我想知道是否可以通过 cloudFormation 配置 SNS 传递重试策略。
我在任何在线文档中都找不到它。如果这样的配置是可能的,如果有人可以发布一个片段来展示如何做到这一点,我将非常感激。
提前致谢,
我想知道是否可以通过 cloudFormation 配置 SNS 传递重试策略。
我在任何在线文档中都找不到它。如果这样的配置是可能的,如果有人可以发布一个片段来展示如何做到这一点,我将非常感激。
提前致谢,
AWS CloudFormation有时不涵盖其他AWS 产品和服务中可用的所有(新)API 操作,尽管它们通常会在几个月后推出。
不幸的是,尽管在 2011 年 12 月已经引入了针对 HTTP/HTTPS 端点的 SNS 传递重试策略,但截至今天仍然不支持此功能。
您可能仍然可以通过专用的CustomResource类型来实现 CloudFormation 的解决方法,这些类型是特殊的 AWS CloudFormation 资源,为模板开发人员提供了一种将资源包含在 AWS CloudFormation 堆栈中的方法,这些资源由 Amazon 以外的源提供网页服务。- 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
存储库中有一个 GitHub 操作,它使用 cdk 来部署主题和 lambda。然后它调用 lambda 来设置主题属性。