🤧
【AWS】localstack で AWS SQS を local 操作する
はじめに
localstack で AWS SQS を local 操作できる方法を書いていこうかと
構築は、docker-compose
でやってます。
docker-compose.yml
, Dockerfile
は以下を参考にさせて頂きました🙏
後、SQS にリクエストを飛ばすのに開発中やと何回も試すので、Postman で実行できる方法もメモしました!
curlコマンド や aws CLI コマンドを連打しなくていいので楽です!!
作成したリポジトリを clone して docker build コマンドを実行
現状作成しました リポジトリ: aws-localstack を cloen します。
-
作成された localstack のコンテナにアクセス
docker exec -it localstack_main bash
-
queue を作成
$ awslocal sqs create-queue --queue-name test-queue { "QueueUrl": "http://localhost:4566/000000000000/test-queue" }
-
queue message を送信
$ awslocal sqs send-message --queue-url http://localhost:4566/00000000000/test-queue --message-body test { "MD5OfMessageBody": "098f6bcd4621d373cade4e832627b4f6", "MessageId": "9000f162-54b9-4b66-af7f-c69c51db959b" }
-
queue message の受信を確認
$ awslocal sqs receive-message --queue-url http://localhost:4566/00000000000/test-queue { "Messages": [ { "MessageId": "9000f162-54b9-4b66-af7f-c69c51db959b", "ReceiptHandle": "NjZjMjI4NDUtZjg5NC00ZmMxLTlhNTEtZGIzODQzYzE0ZTIyIGFybjphd3M6c3FzOmFwLW5vcnRoZWFzdC0xOjAwMDAwMDAwMDAwMDp0ZXN0LXF1ZXVlIDkwMDBmMTYyLTU0YjktNGI2Ni1hZjdmLWM2OWM1MWRiOTU5YiAxNjY1Mjg0Mjc1LjYyODk2NzU=", "MD5OfBody": "098f6bcd4621d373cade4e832627b4f6", "Body": "test" } ] }
Postman でやるときは
Postman AWS SQS から Postman DeskTop版をインポートする。
1.-
▶︎ Run in Postman
をクリック -
Postman desktop App to Import
を選択 (アプリ入れてる前提)
queue-url
を反映し、Bodyの中身を確認する。
2. Import された AWS SQS プロジェクトのPOST: http://localhost:4566/test-queue
の部分です! Body の使いかも参考になりました。
Pre-request Script
にサンプルが含まれていることを確認し、Send
をクリックします。
3. ここも import したときに反映されてる内容で、そんな使い方があるんや!! って参考になりました。
queue-url
を反映させて受信処理を行う
4. Send Message の内容が受信されたことが確認できます。
これから
localstack サービスをつかうと、AWS サービスをローカルで試すことでき、課金もある程度気にしなくて開発ができるので便利そうです!!
あとは、やりたいことに合わせて調べながら試せると良さそうです!
以上になります。ありがとうございました🙏
参考
Discussion