Ruby 创建SQS标准队列时获取格式错误的QueryString异常

Ruby 创建SQS标准队列时获取格式错误的QueryString异常,ruby,amazon-web-services,amazon-sqs,aws-sdk-ruby,Ruby,Amazon Web Services,Amazon Sqs,Aws Sdk Ruby,我正在尝试使用ruby的AWS sdk SQS库在本地创建一个AWS SQS标准队列。将参数传递到RedrivePolicy属性时遇到错误。我相信我使用的API文档是正确的 我做了一些研究,似乎传入RedrivePolicy属性的参数应该是JSON格式的,但我可能错了 这是我的代码: c=Aws::SQS::Client.new c、 创建队列(队列名称:“我的队列”,属性:{“RedrivePolicy”=>“{\”maxReceiveCount\:\“5\”}) 这就是我得到的: Aws:

我正在尝试使用ruby的
AWS sdk SQS
库在本地创建一个AWS SQS标准队列。将参数传递到
RedrivePolicy
属性时遇到错误。我相信我使用的API文档是正确的

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

这是我的代码:

c=Aws::SQS::Client.new
c、 创建队列(队列名称:“我的队列”,属性:{“RedrivePolicy”=>“{\”maxReceiveCount\:\“5\”})
这就是我得到的:

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

提前感谢。

要指定RedrivePolicy,您还必须为其提供一个死信targetran,它将在其中放置失败的消息

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

c.create_queue(queue_name: "my_queue", 
   attributes: {"RedrivePolicy" => "{\"maxReceiveCount\":\"5\",
                                     \"deadLetterTargetArn\": \" #{deadLetterArn}\"}"})