新米インフラエンジニアの研修日記

とある会社で研修させて頂いたことを書いてます。

SQSを使ってテキスト送信してみる

まず、Linuxの環境にAWS CLIのインストールと設定を行います。
公式に書いてあるので、下記の通りやってみます。

docs.aws.amazon.com


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と呼びます。

docs.aws.amazon.com

こちらも参考に。 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=="


今回はテキストなので負荷もないため、キューを待つこともなく、すぐに受け取れてます。