題名の通り
AWSで「サーバレス」だとか「非同期」だとかよく言われる単語で毎度おなじみのSQS。
実際に触ったことがないので、実際にやり取りされる「キュー」ってのが実際にどんな奴なのか全然イメージつかなくて困った。のでまずはChatGPT君に聞いてみた。
ChatGPT君の答え
わし「メッセージキューって何ですか?データレコードみたいなものですか?」
ChatGPT君「メッセージキューの実態は、データレコードそのものではなく、メッセージの一時的な保存・管理を行うための仕組みや構造を指します。メッセージキューは、プロセス間通信や異なるシステム間での非同期通信に利用され、メッセージ(データのパケット)が送信者(プロデューサー)から受信者(コンシューマー)に渡されるまで、キュー内に一時的に蓄積されます。」
聞き方悪かったけど、とりあえずメッセージをキューイングするってのは、上記の通りで、メッセージなるものが送信者から受信者に渡されるまで、キュー内に一時的に蓄積しておくもののことを指す。
じゃあそのメッセージってなんやねん!ってことで聞いてみると、
「Amazon SQS(Simple Queue Service)で扱うメッセージオブジェクトは、主に**メッセージ本文(MessageBody)とメッセージ属性(MessageAttributes)**から構成されます。以下に、具体的な例を示します。Amazon SQSのメッセージオブジェクトは、以下のような構造を持ちます:
MessageBody: メッセージの主な内容。通常はJSON、XML、テキストなどのフォーマットで構成されます。
MessageAttributes: メッセージに付随するメタデータ。キーと値のペアで追加情報を提供します(オプション)。
例
{
"MessageBody": "注文が正常に処理されました。",
"MessageAttributes": {
"OrderId": {
"StringValue": "12345",
"DataType": "String"
},
"CustomerName": {
"StringValue": "山田太郎",
"DataType": "String"
},
"OrderAmount": {
"StringValue": "2500",
"DataType": "Number"
}
}
}
こんな感じらしい。
感想
要はコンパクトに情報がまとめられたJSONだと思えばいいのね。
これをサーバの管理なく一時的に貯めておいてくれるSQSは偉大だわ。