amazon-web-services - 关于使用 cloudformation 在 AWS 上创建 SQS 队列/死信队列的问题
问题描述
我想创建一个连接到死信队列的 SQS 队列。我希望将 SQS 队列中收到但无法正确处理的消息放入死信队列。另外我想设置这个做云的形成。我看过 这些文档。但我仍然对设置过程有疑问。我在页面下方看到了这段代码片段,它显示了如何执行此操作:
AWSTemplateFormatVersion: "2010-09-09"
Resources:
MySourceQueue:
Type: AWS::SQS::Queue
Properties:
RedrivePolicy:
deadLetterTargetArn:
Fn::GetAtt:
- "MyDeadLetterQueue"
- "Arn"
maxReceiveCount: 5
MyDeadLetterQueue:
Type: AWS::SQS::Queue
Outputs:
SourceQueueURL:
Description: "URL of the source queue"
Value:
Ref: "MySourceQueue"
SourceQueueARN:
Description: "ARN of the source queue"
Value:
Fn::GetAtt:
- "MySourceQueue"
- "Arn"
DeadLetterQueueURL:
Description: "URL of the dead letter queue"
Value:
Ref: "MyDeadLetterQueue"
DeadLetterQueueARN:
Description: "ARN of the dead letter queue"
Value:
Fn::GetAtt:
- "MyDeadLetterQueue"
- "Arn"
我的问题是:
1) 这个代码片段是 1 sqs/dead letter queue 的吗?所以如果我想做很多这些,我会为每个复制整个块?
2)如果sqs队列已经存在但我想在云形成中添加一个死信队列,我可以把那个队列的名称放在某个地方并让它生成正确的死信队列吗?还是我必须拆除旧队列并使用云形成重新创建它们?
解决方案
此代码段正在创建一个名为的 Amazon SQS 队列MyDeadLetterQueue
:
MyDeadLetterQueue:
Type: AWS::SQS::Queue
这个片段:
MySourceQueue:
Type: AWS::SQS::Queue
Properties:
RedrivePolicy:
deadLetterTargetArn:
Fn::GetAtt:
- "MyDeadLetterQueue"
- "Arn"
maxReceiveCount: 5
是说:
- 创建一个名为的 Amazon SQS 队列
MySourceQueue
- 将死信队列设置为
MyDeadLetterQueue
- 如果一条消息处理 5 次失败,则将其移至
MyDeadLetterQueue
如果您愿意,多个队列可以使用相同的死信队列,因此对您希望创建的每个队列重复此块。
如果死信队列已经存在,那么您可以为队列提供 ARN:
- 创建参数以接受 ARN
- 请参阅队列定义中的 ARN
例如:
Parameters:
DLQarn:
Type: String
Resources:
MySourceQueue:
Type: AWS::SQS::Queue
Properties:
RedrivePolicy:
deadLetterTargetArn:
Ref: DLQarn
maxReceiveCount: 5
推荐阅读
- javascript - 如果用户访问 5 个页面或用户在网站上停留 2 分钟,如何显示弹出窗口
- javascript - 无法显示获取参数
- properties - 设置类属性而不是元类的更优雅的方式
- python - 获取元组列表中给定组件的索引
- gnome - 如何允许设备访问在 Gnome Builder 中调试的应用程序?
- html - 有时我的 html 保存文件链接会导致网络错误
- flutter - Flutter/Dart 未处理的异常:“String”类型不是“Map”类型的子类型
' 在类型转换中 - android - 如何更改多模块android项目的包名?
- python-3.x - 如何修复“Tweet”对象没有“retweetCount”属性
- ios - 为什么苹果支付单会弹出两次?