7

我想知道是否可以通过 cloudFormation 配置 SNS 传递重试策略。

我在任何在线文档中都找不到它。如果这样的配置是可能的,如果有人可以发布一个片段来展示如何做到这一点,我将非常感激。

提前致谢,

4

2 回答 2

6

AWS CloudFormation有时不涵盖其他AWS 产品和服务中可用的所有(新)API 操作,尽管它们通常会在几个月后推出。

不幸的是,尽管在 2011 年 12 月已经引入了针对 HTTP/HTTPS 端点的 SNS 传递重试策略,但截至今天仍然不支持此功能。

解决方法

您可能仍然可以通过专用的CustomResource类型来实现 CloudFormation 的解决方法,这些类型是特殊的 AWS CloudFormation 资源,为模板开发人员提供了一种将资源包含在 AWS CloudFormation 堆栈中的方法,这些资源由 Amazon 以外的源提供网页服务。- AWS CloudFormation 自定义资源演练很好地概述了这一切的内容、工作原理以及实施您自己的资源所需的条件。

您的自定义资源将需要通过显式调用SetSubscriptionAttributesSetTopicAttributes API 操作来实现对交付重试策略的缺失支持,该操作具有明显也未记录的DeliveryPolicy属性,根据此处显示的示例请求,例如:

{
    "healthyRetryPolicy": 
    {
        "minDelayTarget":  <int>,
        "maxDelayTarget": <int>,
        "numRetries": <int>,
        "numMaxDelayRetries": <int>,
        "backoffFunction": "<linear|arithmetic|geometric|exponential>"
    },
    "throttlePolicy":
    {
        "maxReceivesPerSecond": <int>
    }
}
于 2013-08-20T23:52:31.973 回答
1

通过首先使用 CDK 部署 AWS SNS 主题,我能够做到这一点。然后我必须创建一个 Lambda 函数来设置主题的属性。

我在以下存储库中创建了一个如何执行此操作的示例: https ://github.com/Milan9805/cdk-set-topic-attributes

存储库中有一个 GitHub 操作,它使用 cdk 来部署主题和 lambda。然后它调用 lambda 来设置主题属性。

于 2020-07-25T06:56:10.727 回答