我想知道是否可以配置 通过 cloudFormation 的 SNS 传送重试策略。
我在任何在线文档中都找不到它。如果这样的配置是可能的, 如果有人可以发布一个片段来展示如何做到这一点,我将非常感激。
提前致谢,
AWS CloudFormation 有时并不涵盖其他 AWS 产品和服务中可用的所有(新)API 操作,尽管它们通常会在几个月后引入。
不幸的是,尽管HTTP/HTTPS 端点的 SNS 传输重试策略已于 于 2011 年 12 月推出,但截至目前仍不支持此功能。
您仍然可以通过专用的 CustomResource 类型来实现 CloudFormation 的解决方法,这些类型是 特殊的 AWS CloudFormation 资源,为模板开发人员提供了一种将资源包含在 AWS CloudFormation 堆栈中的方法,这些资源由Amazon Web Services 以外的来源。 - AWS CloudFormation 自定义资源演练 很好地概述了这一切、它的工作原理以及实施您自己的资源所需的内容。
您的自定义资源需要通过显式调用 SetSubscriptionAttributes 或 SetTopicAttributes API 操作以及明显未记录的
DeliveryPolicy
属性(根据此处显示的 示例请求)来实现对交付重试策略的缺失支持,例如:
{
"healthyRetryPolicy":
{
"minDelayTarget": <int>,
"maxDelayTarget": <int>,
"numRetries": <int>,
"numMaxDelayRetries": <int>,
"backoffFunction": "<linear|arithmetic|geometric|exponential>"
},
"throttlePolicy":
{
"maxReceivesPerSecond": <int>
}
}
我能够通过首先使用 CDK 部署 AWS SNS 主题来做到这一点。然后我必须创建一个 Lambda 函数来设置主题的属性。
我在以下存储库中创建了如何执行此操作的示例: https://github.com/Milan9805/cdk-set-topic-attributes
存储库中有一个使用 cdk 部署主题和 lambda 的 GitHub 操作。然后它调用 lambda 来设置主题属性。
有一个办法。通过 CF 创建订阅资源并根据需要设置重试策略。
希望有帮助:)