🤧

【AWS】localstack で AWS SQS を local 操作する

2022/10/10に公開約2,800字

はじめに

localstack で AWS SQS を local 操作できる方法を書いていこうかと
構築は、docker-composeでやってます。

docker-compose.yml, Dockerfile は以下を参考にさせて頂きました🙏

https://dev.classmethod.jp/articles/docker-compose-localstack-aws-sdk-for-javascript-v3-local/

後、SQS にリクエストを飛ばすのに開発中やと何回も試すので、Postman で実行できる方法もメモしました!

curlコマンドaws CLI コマンドを連打しなくていいので楽です!!

作成したリポジトリを clone して docker build コマンドを実行

現状作成しました リポジトリ: aws-localstack を cloen します。

  1. 作成された localstack のコンテナにアクセス

    docker exec -it localstack_main bash
    
  2. queue を作成

    $ awslocal sqs  create-queue --queue-name test-queue
    {
        "QueueUrl": "http://localhost:4566/000000000000/test-queue"
    }
    
  3. 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"
    }
    
  4. 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 でやるときは

1. Postman AWS SQS から Postman DeskTop版をインポートする。

  1. ▶︎ Run in Postmanをクリック
  2. Postman desktop App to Import を選択 (アプリ入れてる前提)
    postman_import

2. Import された AWS SQS プロジェクトのqueue-urlを反映し、Bodyの中身を確認する。

POST: http://localhost:4566/test-queue の部分です! Body の使いかも参考になりました。

body

3. Pre-request Script にサンプルが含まれていることを確認し、Sendをクリックします。

ここも import したときに反映されてる内容で、そんな使い方があるんや!! って参考になりました。
request_script

4. queue-url を反映させて受信処理を行う

Send Message の内容が受信されたことが確認できます。
recive_message

これから

localstack サービスをつかうと、AWS サービスをローカルで試すことでき、課金もある程度気にしなくて開発ができるので便利そうです!!
あとは、やりたいことに合わせて調べながら試せると良さそうです!

以上になります。ありがとうございました🙏

参考

https://documenter.getpostman.com/view/2631434/SWLh56pX

https://github.com/localstack/localstack

GitHubで編集を提案

Discussion

ログインするとコメントできます