- LocalStack上で動くAWS SQSをAWS CLIで操作して動作確認する。
LocalStack準備
-
docker-compose.yml
version: "3.8" networks: container-link: name: docker.internal services: localstack: container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}" image: localstack/localstack ports: - "127.0.0.1:53:53" # only required for Pro - "127.0.0.1:53:53/udp" # only required for Pro - "127.0.0.1:443:443" # only required for Pro - "127.0.0.1:4510-4530:4510-4530" # only required for Pro - "127.0.0.1:4566:4566" - "127.0.0.1:4571:4571" environment: - SERVICES=${SERVICES- } - DEBUG=${DEBUG- } - DATA_DIR=${DATA_DIR- } - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR- } - LOCALSTACK_API_KEY=${LOCALSTACK_API_KEY- } # only required for Pro - HOST_TMP_FOLDER=${TMPDIR:-/tmp/}localstack - DOCKER_HOST=unix:///var/run/docker.sock volumes: - "${TMPDIR:-/tmp}/localstack:/tmp/localstack" - "/var/run/docker.sock:/var/run/docker.sock" networks: - container-link
-
起動
docker-compose up
動作確認
キュー作成
aws sqs create-queue --queue-name test-queue --endpoint-url http://localhost:4566 --profile localstack
{
"QueueUrl": "http://localhost:4566/000000000000/test-queue"
}
キューの確認
aws sqs list-queues --endpoint-url http://localhost:4566 --profile localstack
{
"QueueUrls": [
"http://localhost:4566/000000000000/test-queue"
]
}
aws sqs get-queue-attributes --queue-url http://localhost:4566/000000000000/test-queue --attribute-names All --endpoint-url http://localhost:4566 --profile localstack
{
"Attributes": {
"ApproximateNumberOfMessages": "0",
"ApproximateNumberOfMessagesDelayed": "0",
"ApproximateNumberOfMessagesNotVisible": "0",
"CreatedTimestamp": "1635594888.406909",
"DelaySeconds": "0",
"LastModifiedTimestamp": "1635594888.406909",
"MaximumMessageSize": "262144",
"MessageRetentionPeriod": "345600",
"QueueArn": "arn:aws:sqs:ap-northeast-1:000000000000:test-queue",
"ReceiveMessageWaitTimeSeconds": "0",
"VisibilityTimeout": "30"
}
}
メッセージをキューに送信する
aws sqs send-message --queue-url "http://localhost:4566/000000000000/test-queue" --message-body "hello sqs" --endpoint-url http://localhost:4566 --profile localstack
{
"MD5OfMessageBody": "3b7bef57d06c0021d0aafe8f6d587241",
"MessageId": "f6c15b00-73fe-703c-9dea-58a452416096"
}
キューにあるメッセージ数を確認する
aws sqs get-queue-attributes --queue-url 'http://localhost:4566/000000000000/test-queue' --attribute-names ApproximateNumberOfMessages --query 'Attributes.ApproximateNumberOfMessages' --endpoint-url http://localhost:4566 --profile localstack
"1"
メッセージをキューから消費する
aws sqs receive-message --queue-url 'http://localhost:4566/000000000000/test-queue' --endpoint-url http://localhost:4566 --profile localstack
{
"Messages": [
{
"MessageId": "f6c15b00-73fe-703c-9dea-58a452416096",
"ReceiptHandle": "qalxyspqosaejvtpyzymnopxtjvfyahzzfuelsesxkjcnqkiwgsztcklctzrxzwqdsimfpawzjwkwgleykejpskdhkhytmrtciocgegskkinjaqzvqnkvuzylkelzwckqtwfioxaywpfhfkfqghaorhiluvpmsdydkrkawatjlqircwnykvdayydy",
"MD5OfBody": "3b7bef57d06c0021d0aafe8f6d587241",
"Body": "hello sqs"
}
]
}
キューからメッセージを削除する
# メッセージ削除
aws sqs delete-message --queue-url 'http://localhost:4566/000000000000/test-queue' --receipt-handle "afofosypthoqphrwwnayjnlnoiuvhvoqzrawwlerwtitpxbyskgksvnzkqrwtwcvvavdcnlrlbdawkzyyijgoznacuiavkkygokonnoxdstwcsktczryujjsypselwdeoicoivsmjgqkxiilhbjnzojdqmzvsjqtqpjpiqqbscoemntwzufgjdkje" --endpoint-url http://localhost:4566 --profile localstack
# メッセージ数確認
aws sqs get-queue-attributes --queue-url 'http://localhost:4566/000000000000/test-queue' --attribute-names ApproximateNumberOfMessages --query 'Attributes.ApproximateNumberOfMessages' --endpoint-url http://localhost:4566 --profile localstack"0"