Back to docs
AWS

SDK & CLI usage — per service

AWS Swagger ›All consoles ›

Point unmodified AWS tools at this simulator at http://192.168.252.7:9000 — no real credentials needed. Snippets are copy-paste ready (your live host is filled in) and mirror the conformance harness in tests/conformance/.

S3EC2IAMSQSDynamoDBRDSLambdaAPI Gateway
Connect (one-time setup)

AWS CLI / env

bash
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION=us-east-1
# then pass --endpoint-url http://192.168.252.7:9000 to every command (or set a profile).

Java — shared client config

java
var creds = StaticCredentialsProvider.create(AwsBasicCredentials.create("test", "test"));
URI ep = URI.create("http://192.168.252.7:9000");   // pass ep + creds to every <Svc>Client.builder()

Go — shared config

go
cfg, _ := config.LoadDefaultConfig(ctx, config.WithRegion("us-east-1"),
    config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("test", "test", "")))
// then per service: NewFromConfig(cfg, func(o){ o.BaseEndpoint = aws.String("http://192.168.252.7:9000") })
Per-service examples (CLI · Java · Go)

S3

CLI

bash
aws --endpoint-url http://192.168.252.7:9000 s3 mb s3://demo
aws --endpoint-url http://192.168.252.7:9000 s3 cp ./f.txt s3://demo/f.txt
aws --endpoint-url http://192.168.252.7:9000 s3 ls s3://demo

Java

java
S3Client s3 = S3Client.builder().endpointOverride(ep).region(Region.US_EAST_1)
    .credentialsProvider(creds).forcePathStyle(true).build();
s3.createBucket(b -> b.bucket("demo"));

Go

go
s3c := s3.NewFromConfig(cfg, func(o *s3.Options) {
    o.BaseEndpoint = aws.String("http://192.168.252.7:9000"); o.UsePathStyle = true })
s3c.CreateBucket(ctx, &s3.CreateBucketInput{Bucket: aws.String("demo")})

EC2

CLI

bash
aws --endpoint-url http://192.168.252.7:9000 ec2 describe-instances
aws --endpoint-url http://192.168.252.7:9000 ec2 describe-vpcs

Java

java
Ec2Client ec2 = Ec2Client.builder().endpointOverride(ep).region(Region.US_EAST_1)
    .credentialsProvider(creds).build();
ec2.describeInstances();

Go

go
ec2c := ec2.NewFromConfig(cfg, func(o *ec2.Options) { o.BaseEndpoint = aws.String("http://192.168.252.7:9000") })
ec2c.DescribeInstances(ctx, &ec2.DescribeInstancesInput{})

IAM

CLI

bash
aws --endpoint-url http://192.168.252.7:9000 iam create-user --user-name alice
aws --endpoint-url http://192.168.252.7:9000 iam list-users

Java

java
IamClient iam = IamClient.builder().endpointOverride(ep).region(Region.AWS_GLOBAL)
    .credentialsProvider(creds).build();
iam.listUsers();

Go

go
iamc := iam.NewFromConfig(cfg, func(o *iam.Options) { o.BaseEndpoint = aws.String("http://192.168.252.7:9000") })
iamc.ListUsers(ctx, &iam.ListUsersInput{})

SQS

CLI

bash
aws --endpoint-url http://192.168.252.7:9000 sqs create-queue --queue-name demo
aws --endpoint-url http://192.168.252.7:9000 sqs list-queues

Java

java
SqsClient sqs = SqsClient.builder().endpointOverride(ep).region(Region.US_EAST_1)
    .credentialsProvider(creds).build();
sqs.createQueue(b -> b.queueName("demo"));

Go

go
sqsc := sqs.NewFromConfig(cfg, func(o *sqs.Options) { o.BaseEndpoint = aws.String("http://192.168.252.7:9000") })
sqsc.CreateQueue(ctx, &sqs.CreateQueueInput{QueueName: aws.String("demo")})

DynamoDB

CLI

bash
aws --endpoint-url http://192.168.252.7:9000 dynamodb list-tables

Java

java
DynamoDbClient ddb = DynamoDbClient.builder().endpointOverride(ep).region(Region.US_EAST_1)
    .credentialsProvider(creds).build();
ddb.listTables();

Go

go
ddbc := dynamodb.NewFromConfig(cfg, func(o *dynamodb.Options) { o.BaseEndpoint = aws.String("http://192.168.252.7:9000") })
ddbc.ListTables(ctx, &dynamodb.ListTablesInput{})

RDS

CLI

bash
aws --endpoint-url http://192.168.252.7:9000 rds describe-db-instances

Java

java
RdsClient rds = RdsClient.builder().endpointOverride(ep).region(Region.US_EAST_1)
    .credentialsProvider(creds).build();
rds.describeDBInstances();

Go

go
rdsc := rds.NewFromConfig(cfg, func(o *rds.Options) { o.BaseEndpoint = aws.String("http://192.168.252.7:9000") })
rdsc.DescribeDBInstances(ctx, &rds.DescribeDBInstancesInput{})

Lambda

CLI

bash
aws --endpoint-url http://192.168.252.7:9000 lambda list-functions

Java

java
LambdaClient lam = LambdaClient.builder().endpointOverride(ep).region(Region.US_EAST_1)
    .credentialsProvider(creds).build();
lam.listFunctions();

Go

go
lamc := lambda.NewFromConfig(cfg, func(o *lambda.Options) { o.BaseEndpoint = aws.String("http://192.168.252.7:9000") })
lamc.ListFunctions(ctx, &lambda.ListFunctionsInput{})

API Gateway

CLI

bash
aws --endpoint-url http://192.168.252.7:9000 apigateway get-rest-apis

Java

java
ApiGatewayClient ag = ApiGatewayClient.builder().endpointOverride(ep).region(Region.US_EAST_1)
    .credentialsProvider(creds).build();
ag.getRestApis();

Go

go
agc := apigateway.NewFromConfig(cfg, func(o *apigateway.Options) { o.BaseEndpoint = aws.String("http://192.168.252.7:9000") })
agc.GetRestApis(ctx, &apigateway.GetRestApisInput{})