配置SNS传递重试策略

时间:2013-08-15 22:42:35

标签: amazon-web-services amazon-cloudformation amazon-sns

我想知道是否可以配置 通过cloudFormation进行SNS交付重试策略。

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

先谢谢,

2 个答案:

答案 0 :(得分:4)

AWS CloudFormation有时并未涵盖其他AWS Products & Services内可用的所有(新)API操作,但它们通常会在几个月后推出。

不幸的是,尽管SNS Delivery Retry Policies for HTTP/HTTPS Endpoints已经introduced in December 2011,但截至今天仍然不支持此功能。

解决方法

您或许可以通过专用的CustomResource类型实现CloudFormation的变通方法,这些类型是特殊的AWS CloudFormation资源,为模板开发人员提供了一种在AWS CloudFormation中包含资源的方法由Amazon Web Services以外的源提供的堆栈。 - AWS CloudFormation Custom Resource Walkthrough可以很好地概述这是什么,它是如何工作的以及实现自己需要什么。

您的自定义资源需要通过明确调用SetSubscriptionAttributesSetTopicAttributes API操作以及明显无文档的DeliveryPolicy属性来实现对交付重试策略的缺失支持>那里显示了样本请求,例如:

{
    "healthyRetryPolicy": 
    {
        "minDelayTarget":  <int>,
        "maxDelayTarget": <int>,
        "numRetries": <int>,
        "numMaxDelayRetries": <int>,
        "backoffFunction": "<linear|arithmetic|geometric|exponential>"
    },
    "throttlePolicy":
    {
        "maxReceivesPerSecond": <int>
    }
}

答案 1 :(得分:0)

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

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

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