SQSを使ってテキスト送信してみる
まず、Linuxの環境にAWS CLIのインストールと設定を行います。 公式に書いてあるので、下記の通りやってみます。
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" sudo python get-pip.py sudo pip install awscli
ここでは aws configureにオプションをつけずに実行していますが、 --profile ユーザー名というオプションを付けて、 IAM作成時に発行した AWS Access Key ID AWS Secret Access Key を使うことで、 ユーザ毎に権限を分けてコマンドを実行することができます。
aws configure --profile hogehoge
今回は、hogehogeというユーザの場合のAWSコマンドでSQSを実行していきます。 こちらを参考に swfz.hatenablog.com ※configure時にregionは設定してるので、省きます。
aws --profile hogehoge sqs create-queue --queue-name queue1 { "QueueUrl": "https://ap-northeast-1.queue.amazonaws.com/xxxxxxxxxxxx/queue1" } ※xxxxxxxxxxxxは数字の羅列
こんな感じで出てきます。 次に、キューを送信してみます。
aws --profile hogehoge sqs send-message --queue-url "https://ap-northeast-1.queue.amazonaws.com/xxxxxxxxxxxx/queue1" --message-body "TEST MESSAGE" { "MD5OfMessageBody": "2b3ce69548da118bf617bfdd33a06108", "MessageId": "6e3a2503-eb55-41a3-8e48-bab6b7206778" }
送ったメッセージを確認してみます。
aws --profile hogehoge sqs receive-message --queue-url "https://ap-northeast-1.queue.amazonaws.com/xxxxxxxxxxxx/queue1" { "Messages": [ { "Body": "TEST MESSAGE", "ReceiptHandle": "AQEBTx5P41zgNN4Jwj2ClVs8fBOE74ME346+lTT2GpisLa5GD+x1R5oocHoy0nSfyypv5oCF392Qy0gbg5tDzowXF8eo+W2EApLsUfVFj5t6XOFcI05q6LLm87hx8Lsx7JD1QYQ2AMrUkNRvsrrzuRVs3KzxlJMDwFM+//HjAupwxjdFbdK2pjLKEquPiI8zvatrsWJR/unDm1rt9/18WlkJy2aY3pITdwGCl0/z3VdRQyEnma2+4hFQnVB7vggbx0Gpo95ZLvbLF7soTFQC1QM2+W7n9l2mvIogaXBALA2r+ZXI0A9C1UH3sbBEuy/Vk+9Im2H5Ih4jknjLZ2Cw1kYsNhZvHVsL+9DDRmpCB7LdzVYcQfYQlYJc2LoUsqd1NXhJNT/LrX1psHoGl/Dbk/WFzQ==", "MD5OfBody": "2b3ce69548da118bf617bfdd33a06108", "MessageId": "6e3a2503-eb55-41a3-8e48-bab6b7206778" } ] }
送った後、デフォルトで30秒は次のメッセージを受け取ることができません。 これをvisibility timeoutと呼びます。
こちらも参考に。 d.hatena.ne.jp
他のクライアントから取得されたりしないようにできてます。
deleteするときは--receipt-handleオプションを使います。
aws --profile hogehoge sqs delete-message --queue-url "https://ap-northeast-1.queue.amazonaws.com/xxxxxxxxxxxx/queue1" --receipt-handle "AQEBTx5P41zgNN4Jwj2ClVs8fBOE74ME346+lTT2GpisLa5GD+x1R5oocHoy0nSfyypv5oCF392Qy0gbg5tDzowXF8eo+W2EApLsUfVFj5t6XOFcI05q6LLm87hx8Lsx7JD1QYQ2AMrUkNRvsrrzuRVs3KzxlJMDwFM+//HjAupwxjdFbdK2pjLKEquPiI8zvatrsWJR/unDm1rt9/18WlkJy2aY3pITdwGCl0/z3VdRQyEnma2+4hFQnVB7vggbx0Gpo95ZLvbLF7soTFQC1QM2+W7n9l2mvIogaXBALA2r+ZXI0A9C1UH3sbBEuy/Vk+9Im2H5Ih4jknjLZ2Cw1kYsNhZvHVsL+9DDRmpCB7LdzVYcQfYQlYJc2LoUsqd1NXhJNT/LrX1psHoGl/Dbk/WFzQ=="
今回はテキストなので負荷もないため、キューを待つこともなく、すぐに受け取れてます。