📅  最后修改于: 2023-12-03 15:10:25.709000             🧑  作者: Mango
在开发服务器less应用程序时,SQS是AWS的首选消息代理服务。这篇文章将介绍如何使用Shell/Bash编写AWS CLI命令来调用SQS消息队列。
要将消息发送到SQS队列,需要执行以下命令:
aws sqs send-message --queue-url [SQS队列URL] --message-body "[消息正文]"
其中,您需要将[SQS队列URL]
替换为您的SQS队列URL,将[消息正文]
替换为要发送的消息正文。
例如,要将一个字符串"hello world"发送到名为"my-queue"的SQS队列中,可以执行以下命令:
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/my-queue --message-body "hello world"
要从SQS队列接收消息,需要执行以下命令:
aws sqs receive-message --queue-url [SQS队列URL]
该命令将返回队列中下一条可用的消息。
例如,要从名为"my-queue"的SQS队列中接收消息,可以执行以下命令:
aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/my-queue
要从SQS队列中删除消息,需要知道消息的句柄(类似于MySQL中的ROWID)。您可以通过执行receive-message
命令返回的响应中获取句柄并将其传递给delete-message
命令。
例如,如果receive-message
命令的响应如下所示:
{
"Messages": [
{
"MessageId": "abcdefg",
"ReceiptHandle": "example-receipt-handle",
"Body": "This is a test message"
}
]
}
则可以通过以下命令删除消息:
aws sqs delete-message --queue-url [SQS队列URL] --receipt-handle [receipt-handle]
其中,您需要将[SQS队列URL]
替换为您的SQS队列URL,将[receipt-handle]
替换为上述响应中的ReceiptHandle
值。
例如,要从名为"my-queue"的SQS队列中删除上述响应中的消息,可以执行以下命令:
aws sqs delete-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/my-queue --receipt-handle example-receipt-handle
这篇文章介绍了如何使用Shell/Bash编写AWS CLI命令来与SQS队列交互。有了这些命令,您可以轻松地在无服务器应用程序中使用SQS进行消息传递。