Evg*_*eny 8 amazon-sqs amazon-web-services amazon-cloudwatch
我想使用AWS CloudWatch Events按照预定义的时间表向SQS发送消息。消息正文无关紧要,但是它确实需要几个消息属性。
在CloudFormation中创建此事件规则时,我找不到有关如何指定消息属性的任何文档。目前资源看起来像这样-
ScheduledEvent:
Type: AWS::Events::Rule
Properties:
RoleArn: !Ref ScheduledEventRole
ScheduleExpression: !Ref ScheduledEventRule
Targets:
- Arn: !Ref Queue
Id: !GetAtt Queue.Name
Input: "message body"
Run Code Online (Sandbox Code Playgroud)
要将属性发送到的消息正文应该是什么SQS?
几天前我也遇到了同样的问题,我想出了一个解决办法。Amazon 文档或任何在线资源均未提供有关如何使用 CFT 通过 CloudWatch Events 发送 SQS 消息属性的信息。
在SQS中使用消息属性的目的是传递可以在实际处理消息正文之前使用的元数据。以下内容来自AWS 文档。
您的使用者可以使用消息属性以特定方式处理消息,而不必先处理消息正文。
但在我们的场景中,我们找不到发送消息属性的方法。因此,您可以在消息正文中包含消息属性。例如:
ScheduledEvent:
Type: AWS::Events::Rule
Properties:
RoleArn: !Ref ScheduledEventRole
ScheduleExpression: !Ref ScheduledEventRule
Targets:
- Arn: !Ref Queue
Id: !GetAtt Queue.Name
Input: "{\"attribute1\":\"value1\", \"attribute2\":\"value2\"}"
Run Code Online (Sandbox Code Playgroud)
这样,您就可以从消息正文访问属性。但请记住,这违反了属性的实际使用。
| 归档时间: |
|
| 查看次数: |
426 次 |
| 最近记录: |