Localstackの環境構築と基本的なアクセス方法

Localstackの環境構築と基本的なアクセス方法

Twitter LINEで送る Facebook はてなブログ

環境準備

リポジトリのダウンロードと実行 & 環境設定ファイルの作成
事前にawsコマンドのインストールが必要です.

git clone https://github.com/localstack/localstack.git
cd localstack/
# pro版は使用しないので削除しておく
rm docker-compose-pro.yml
docker-compose up -d

aws configure --profile=localstack
AWS Access Key ID [None]: dummy
AWS Secret Access Key [None]: dummy
Default region name [None]: ap-northeast-1
Default output format [None]: json

各種アクセス環境

サービスサービス名エンドポイント
API Gatewayapigatewayhttp://localhost:4567
Kinesiskinesishttp://localhost:4568
DynamoDBdynamodbhttp://localhost:4569
DynamoDB Streamsdynamodbstreamshttp://localhost:4570
Elasticsearchelasticsearchhttp://localhost:4571
S3s3http://localhost:4572
Firehosefirehosehttp://localhost:4573
Lambdalambdahttp://localhost:4574
SNSsnshttp://localhost:4575
SQSsqshttp://localhost:4576
Redshiftredshifthttp://localhost:4577
ES(Elasticsearch Service)eshttp://localhost:4578
SESseshttp://localhost:4579
Route53route53http://localhost:4580
CloudFormationcloudformationhttp://localhost:4581
CloudWatchcloudwatchhttp://localhost:4582
SSMssmhttp://localhost:4583
SecretsManagersecretsmanagerhttp://localhost:4584
StepFunctionsstepfunctionshttp://localhost:4585
CloudWatchlogshttp://localhost:4586
STSstshttp://localhost:4592
IAMiamhttp://localhost:4593
EC2ec2http://localhost:4597

各種環境にアクセス

S3のアクセスとファイルの保存

touch test.txt
aws s3 mb s3://test-bucket --profile=localstack --endpoint-url=http://localhost:4566
aws s3 mv test.txt s3://test-bucket/ --profile=localstack --endpoint-url=http://localhost:4566
aws s3 ls  --profile=localstack --endpoint-url=http://localhost:4566
  2024-02-02 07:25:19 test-bucket
aws s3 ls s3://test-bucket/ --profile=localstack --endpoint-url=http://localhost:4566
  2024-02-02 08:38:31          0 test.txt

Dynamoのテーブル作成と表示

# テーブルの作成
aws dynamodb create-table --table-name test --attribute-definitions AttributeName=id,AttributeType=S AttributeName=name,AttributeType=S --key-schema AttributeName=id,KeyType=HASH AttributeName=name,KeyType=RANGE --billing-mode PAY_PER_REQUEST --profile=localstack --endpoint-url=http://localhost:4566
# テーブルの参照
aws  dynamodb describe-table --table-name test --profile=localstack --endpoint-url=http://localhost:4566

# テーブルへのINSERT
aws dynamodb put-item --table-name test --item '{"id": {"S": "1"}, "name": {"S": "user1"}, "title": {"S": "title1"}, "contents": {"S": "contents1"}, "status": {"N": "0"}}' --profile=localstack --endpoint-url=http://localhost:4566

# データの取り出し
aws dynamodb scan  --table-name test --profile=localstack --endpoint-url=http://localhost:4566

## テーブル削除
aws dynamodb delete-table --table-name test --profile=localstack --endpoint-url=http://localhost:4566

SQSの実行

キュー作成

aws sqs create-queue --queue-name test-queue --profile=localstack --endpoint-url=http://localhost:4566 

キューの確認

aws sqs list-queues --profile=localstack --endpoint-url=http://localhost:4566

指定してキューの確認

aws sqs get-queue-attributes --queue-url http://localhost:4566/000000000000/test-queue --attribute-names All --profile=localstack --endpoint-url=http://localhost:4566 

キューの送信

aws sqs send-message --queue-url "http://localhost:4566/000000000000/test-queue" --message-body "hello sqs" --profile=localstack --endpoint-url=http://localhost:4566

件数の確認

aws sqs get-queue-attributes --queue-url 'http://localhost:4566/000000000000/test-queue' --attribute-names ApproximateNumberOfMessages --query 'Attributes.ApproximateNumberOfMessages' --profile=localstack --endpoint-url=http://localhost:4566

キューの消費

aws sqs receive-message --queue-url 'http://localhost:4566/000000000000/test-queue' --profile=localstack --endpoint-url=http://localhost:4566

キューの削除

# メッセージ削除
aws sqs delete-message --queue-url 'http://localhost:4566/000000000000/test-queue' --receipt-handle "Yzk1MTVlMzktNmUwMy00NTY4LTk2MzYtMjNmNzc3YjQ5MTgxIGFybjphd3M6c3FzOmFwLW5vcnRoZWFzdC0xOjAwMDAwMDAwMDAwMDp0ZXN0LXF1ZXVlIGViZTY1OWY4LTM1ODgtNGQ0OC05MjUxLTRlYThmNmJhZjVjYyAxNzA2ODQ5Mjg0LjI4NTQ4MzY=" --profile=localstack --endpoint-url=http://localhost:4566
# メッセージ数確認
aws sqs get-queue-attributes --queue-url 'http://localhost:4566/000000000000/test-queue' --attribute-names ApproximateNumberOfMessages --query 'Attributes.ApproximateNumberOfMessages' --profile=localstack --endpoint-url=http://localhost:4566

まとめ

  1. LocalstackはDockerでの構築は簡単にできる
  2. 基本的なサービスはあるのでとりあえず試したいならこちらの方が楽