1

我正在尝试localstack使用 ruby​​ 的aws-sdk-sqs库在本地创建一个 AWS SQS 标准队列。RedrivePolicy将参数传递给属性时遇到错误。我相信我正在正确使用 API 文档,如此所述。

我做了一些研究,似乎传递给RedrivePolicy属性的参数应该是 JSON 格式的,但我可能是错的。

这是我的代码:

c = Aws::SQS::Client.new
c.create_queue(queue_name: "my_queue", attributes: {"RedrivePolicy" => "{\"maxReceiveCount\":\"5\"}"})

这就是我得到的:

Aws::SQS::Errors::MalformedQueryString (MalformedQueryString; see the SQS docs.)

提前致谢。

4

1 回答 1

2

要指定 RedrivePolicy,您还必须给它一个 deadLetterTargetArn,它将放置失败的消息。

因此,您需要先创建该队列,然后将其 Arn 传递给第二个调用:

c.create_queue(queue_name: "my_queue", 
   attributes: {"RedrivePolicy" => "{\"maxReceiveCount\":\"5\",
                                     \"deadLetterTargetArn\": \" #{deadLetterArn}\"}"})
于 2019-08-16T16:21:15.560 回答