![](/img/trans.png)
[英]How to fix error message when adding SQS redrive policy for deadletter queue created using for_each
[英]CloudFormation SQS Queue Redrive policy dependency on a DLQ created
我正在使用CloudFormation模板为SQS创建堆栈。 我有一个SQS队列集与依赖于另一个用作DLQ的SQS队列。 当我创建堆栈时,我收到此错误:
Value {"deadLetterTargetArn":"arn:aws:sqs:eu-west-1:xxxxxxxxx:services-abc-dlq","maxReceiveCount":"10"} for parameter RedrivePolicy is invalid. Reason: Dead letter target does not exist.
如何设置重新启动策略以等待DLQ完成创建?
以下是我的模板中的相关信息:
"Resources": {
"queueservicesdlqevents": {
"Type": "AWS::SQS::Queue",
"Properties": {
"DelaySeconds": "0",
"MaximumMessageSize": "262144",
"MessageRetentionPeriod": "345600",
"QueueName": "services-abc-dlq",
"ReceiveMessageWaitTimeSeconds": "0",
"VisibilityTimeout": "30"
}
},
"queueservicesevents": {
"Type": "AWS::SQS::Queue",
"Properties": {
"DelaySeconds": "0",
"MaximumMessageSize": "262144",
"MessageRetentionPeriod": "345600",
"QueueName": "services-abc-events",
"ReceiveMessageWaitTimeSeconds": "20",
"VisibilityTimeout": "30",
"RedrivePolicy": {
"deadLetterTargetArn" : "arn:aws:sqs:eu-west-1:xxxxxx:services-abc-dlq",
"maxReceiveCount" : 10
}
}
},
只是要添加,对其他队列进行“Ref”不起作用,因为dlqtargetArn需要一个字符串。
只是要添加,对其他队列进行“Ref”不起作用,因为dlqtargetArn需要一个字符串。
Ref仅提供AWS CloudFormation资源的(默认)值,但您可以通过Fn :: GetAtt获取资源的其他属性的值,如下所示:
"Fn::GetAtt" : [ "logicalNameOfResource", "attributeName" ]
也就是说,根据AWS :: SQS :: Queue中的 返回值部分,可以通过以下方式获取死信队列的ARN:
"Fn::GetAtt" : [ "queueservicesdlqevents", "Arn" ]
从依赖资源引用实际ARN后,CloudFormation将确保首先创建依赖关系,以便在创建queueservicesevents
队列时已存在死信目标queueservicesdlqevents
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.