gpt4 book ai didi

amazon-web-services - CloudFormation SQS 队列重新驱动策略依赖于创建的 DLQ

转载 作者:行者123 更新时间:2023-12-01 10:37:57 25 4
gpt4 key购买 nike

我正在使用 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 需要一个字符串。

最佳答案

Just to add, making a "Ref" to other queue doesn't work because dlqtargetArn expects a string.

Ref仅提供 AWS CloudFormation 的(默认)值资源,但可以通过Fn::GetAtt获取资源的其他属性值如下:

"Fn::GetAtt" : [ "logicalNameOfResource", "attributeName" ]

也就是说,按照AWS::SQS::Queue内的返回值部分,手头的死信队列的 ARN 可通过以下方式获得:

"Fn::GetAtt" : [ "queueservicesdlqevents", "Arn" ]

一旦您从依赖资源引用实际 ARN,CloudFormation 将确保首先创建依赖项,以便在您创建 queueservicesevents 时死信目标 queueservicesdlqevents 已存在> 队列。

关于amazon-web-services - CloudFormation SQS 队列重新驱动策略依赖于创建的 DLQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32513049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com