タイトル : SQSをCLIで少し試す localstackを試そう 2024
更新日 : 2025-03-23
カテゴリ : プログラミング
タグ :
aws   
awscli   

AWS localstackを試そう 2024

SQSをCLIで少し試す

SQS(Simple Queue Service)をCLIで試しましょう。

$ aws sqs create-queue --queue-name SQS-QUEUE-TEST
{
    "QueueUrl": "http://sqs.ap-northeast-1.localhost.localstack.cloud:4566/000000000000/SQS-QUEUE-TEST"
}
$

属性確認

11個メッセージを入れた状態

aws sqs get-queue-attributes --queue-url SQS-QUEUE-TEST --attribute-names All
{
    "Attributes": {
        "ApproximateNumberOfMessages": "11",  何も入ってない時は 0
        "ApproximateNumberOfMessagesNotVisible": "0",
        "ApproximateNumberOfMessagesDelayed": "0",
        "CreatedTimestamp": "1742685237",
        "DelaySeconds": "0",
        "LastModifiedTimestamp": "1742685237",
        "MaximumMessageSize": "262144",
        "MessageRetentionPeriod": "345600",
        "QueueArn": "arn:aws:sqs:ap-northeast-1:000000000000:SQS-QUEUE-TEST",
        "ReceiveMessageWaitTimeSeconds": "0",
        "VisibilityTimeout": "30",
        "SqsManagedSseEnabled": "true"
    }
}
(aws2024) prost@kiss24:~/work/AWS/LocalS

ここでのApproximateNumberOfMessagesって設定値じゃないんだ。

  • カウント
$ aws sqs get-queue-attributes --queue-url SQS-QUEUE-TEST --attribute-names ApproximateNumberOfMessages --query 'Attributes.ApproximateNumberOfMessages'  --output text
11
$ 
  • 一覧
$ aws sqs list-queues 
{
    "QueueUrls": [
        "http://sqs.ap-northeast-1.localhost.localstack.cloud:4566/000000000000/SQS-QUEUE-TEST"
    ]
}
$ 

指定した文字列で始まる名前で

$ aws sqs list-queues --queue-name-prefix SQS
{
    "QueueUrls": [
        "http://sqs.ap-northeast-1.localhost.localstack.cloud:4566/000000000000/SQS-QUEUE-TEST"
    ]
}
$ 
  • 送信
$ aws sqs send-message --queue-url SQS-QUEUE-TEST --message-body "Msg1"
{
    "MD5OfMessageBody": "c05a574aef42a164971e66a827778496",
    "MessageId": "3ec28723-f8f1-4ec1-a833-ca540662e92e"
}
$ 
  • 受信
$ aws sqs receive-message --queue-url SQS-QUEUE-TEST
{
    "Messages": [
        {
            "MessageId": "b7eb82d0-8a9d-4050-b951-e37bd685b671",
            "ReceiptHandle": "Y2Y3MTJkYjgtOTRhYy00ODZhLTliNzgtYWY1MTNlNDc2ODFmIGFybjphd3M6c3FzOmFwLW5vcnRoZWFzdC0xOjAwMDAwMDAwMDAwMDpTUVMtUVVFVUUtVEVTVCBiN2ViODJkMC04YTlkLTQwNTAtYjk1MS1lMzdiZDY4NWI2NzEgMTc0MjY4NTkxMi40MDM0NDY=",
            "MD5OfBody": "c05a574aef42a164971e66a827778496",
            "Body": "Msg1"
        }
    ]
}
$ 

取得個数指定、属性も取得

$ aws sqs receive-message --queue-url  SQS-QUEUE-TEST --attribute-names All --message-attribute-names All --max-number-of-messages 3
{
    "Messages": [
        {
            "MessageId": "a4baa647-46a6-47ce-8c22-7e07fda40069",
            "ReceiptHandle": "YjFjODgwMDQtZjU4Yi00MTAxLWFkNDEtOWY1ODg1ZTk3YjY0IGFybjphd3M6c3FzOmFwLW5vcnRoZWFzdC0xOjAwMDAwMDAwMDAwMDpTUVMtUVVFVUUtVEVTVCBhNGJhYTY0Ny00NmE2LTQ3Y2UtOGMyMi03ZTA3ZmRhNDAwNjkgMTc0MjY4OTUwMi41ODU1NzE=",
            "MD5OfBody": "c05a574aef42a164971e66a827778496",
            "Body": "Msg1",
            "Attributes": {
                "SenderId": "000000000000",
                "SentTimestamp": "1742688478884",
                "ApproximateReceiveCount": "2",
                "ApproximateFirstReceiveTimestamp": "1742689352944"
            }
        },
        {
            "MessageId": "ede17b6f-f43c-4389-b409-f37d1cd8729b",
            "ReceiptHandle": "N2RkNzk1MTAtNWVmNi00OWVkLTkxNGItMDBhZjFjODIxNjBkIGFybjphd3M6c3FzOmFwLW5vcnRoZWFzdC0xOjAwMDAwMDAwMDAwMDpTUVMtUVVFVUUtVEVTVCBlZGUxN2I2Zi1mNDNjLTQzODktYjQwOS1mMzdkMWNkODcyOWIgMTc0MjY4OTUwMi41ODU1Nzky",
            "MD5OfBody": "c05a574aef42a164971e66a827778496",
            "Body": "Msg1",
            "Attributes": {
                "SenderId": "000000000000",
                "SentTimestamp": "1742688500425",
                "ApproximateReceiveCount": "1",
                "ApproximateFirstReceiveTimestamp": "1742689502585"
            }
        },
        {
            "MessageId": "9446133a-2c4a-4a62-a123-6a1f6e3e16ba",
            "ReceiptHandle": "MTg3OGM3ZTUtNDFlMi00NjIzLWE3NGMtNTc1NzE0NzZlYTlkIGFybjphd3M6c3FzOmFwLW5vcnRoZWFzdC0xOjAwMDAwMDAwMDAwMDpTUVMtUVVFVUUtVEVTVCA5NDQ2MTMzYS0yYzRhLTRhNjItYTEyMy02YTFmNmUzZTE2YmEgMTc0MjY4OTUwMi41ODU1ODI3",
            "MD5OfBody": "c05a574aef42a164971e66a827778496",
            "Body": "Msg1",
            "Attributes": {
                "SenderId": "000000000000",
                "SentTimestamp": "1742688503452",
                "ApproximateReceiveCount": "1",
                "ApproximateFirstReceiveTimestamp": "1742689502585"
            }
        }
    ]
}
$
  • 削除

ReceiptHandle指定です

$ aws sqs delete-message --queue-url SQS-QUEUE-TEST --receipt-handle ${SQS_MESSAGE_RECEIPT_HANDLE}
$