我有一个场景,我在 SNS 主题中发布一条消息,然后该消息被发送到 SQS 队列。我想要的是每次向订阅者发送消息(例如我的 sqs 队列)时都在 SNS 中登录。 SNS 是 AWS 的被动组件,日志不会自动生成,必须通过“交付状态日志记录”功能进行设置。我已经通过 AWS 控制台完成了设置,但我想通过 AWS CDK 完成设置。我在文档和网络示例中都没有找到任何内容。有人已经这样做了吗?
问候,
恐怕目前只能通过 AWS SDK 或管理控制台来完成:https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html
要配置消息传送状态的主题属性,您可以使用 AWS 管理控制台、AWS 软件开发工具包 (SDK) 或查询 API。
我看不到通过 CloudFormation 设置它的选项:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html
从 2023 年 12 月开始,SNS 添加了对通过 CloudFormation 模板配置交付状态日志记录的支持。以下是功能公告帖子:https://aws.amazon.com/about-aws/whats-new/2023/12/amazon-sns-configuring-delivery-status-logging-aws-cloudformation/
这就是你如何做到的:
"Resources": {
"MySNSTopic" : {
"Type" : "AWS::SNS::Topic",
"Properties" : {
"TopicName" : "TestTopic",
"DisplayName" : "TestTopic",
"SignatureVersion" : "2",
"DeliveryStatusLogging" : [{
"Protocol": "sqs",
"SuccessFeedbackSampleRate": "95",
"SuccessFeedbackRoleArn": "arn:aws:iam::123456789012:role/SNSSuccessFeedback_test1",
"FailureFeedbackRoleArn": "arn:aws:iam::123456789012:role/SNSFailureFeedback_test2"
}]
}
}
}