【问题标题】:How to send SNS notification after cloud formation is completed?成云完成后如何发送SNS通知?
【发布时间】:2016-02-13 08:26:00
【问题描述】:

是否可以在 AWS 中完成 CFT 后发送 SNS 通知?有什么方法可以获取在 AWS 中启动 CFT 的进度。

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    还有来自 AWS 的 knowledge center article,您可以在其中将 ROLLBACK_IN_PROGRESS 语句替换为 CloudFormation 的任何其他状态以获取 SNS 通知。

    【讨论】:

      【解决方案2】:

      可以欺骗 CloudFormation 从模板内部发送 SNS 消息:

      https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html

      自定义资源使您能够在 AWS CloudFormation 在您创建、更新时运行的模板(如果 您更改了自定义资源),或删除堆栈。例如,你 可能想要包含 AWS 不可用的资源 CloudFormation 资源类型。您可以通过以下方式包含这些资源 使用自定义资源。这样您仍然可以管理所有相关的 单个堆栈中的资源。

      使用 AWS::CloudFormation::CustomResource 或 Custom::String 资源 键入以在模板中定义自定义资源。自定义资源 需要一个属性:服务令牌,它指定 AWS 在哪里 CloudFormation 向例如 Amazon SNS 主题发送请求。

      【讨论】:

      • 没有。不。不。自定义资源要求您做出响应,否则 cf 模板将被阻止 小时 等待完成/失败。
      • 创建了自定义资源来处理外部资源。除了@Dan 提到的,即您将在堆栈创建时阻塞(!)之外,您还将只获得创建/更新/销毁通知,而不是堆栈的完整事件日志
      【解决方案3】:

      您不能通过 CloudFormation 模板本身指定通知 ARN。如果您使用控制台创建堆栈创建,则可以指定它们。但是,一旦创建堆栈,您就无法使用控制台更新 ARN。但是,您可以在创建堆栈后使用 aws-cli 使用通知 ARN 更新堆栈,例如:

      aws cloudformation update-stack --stack-name stack-name --use-previous-template --notification-arns "arn:aws:sns:us-east-1:${ACCOUNT_ID}:${TOPIC_NAME}"

      将变量 ${VARIABLE} 替换为您帐户中的文字值。

      【讨论】:

        【解决方案4】:

        使用 CF 模板创建资源时,选项菜单中有一个高级部分。从那里您可以使用 SNS 和主题设置通知选项。

        当您启动 CF 过程时,您还可以查看状态以及模板可能失败的重要位置。

        【讨论】:

        • 您知道是否有任何方法可以从模板本身设置通知?
        • 您可以使用 CloudFormation SNS 主题资源执行此操作:docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/…
        • @Mac 你有没有想过如何在模板中做到这一点?该链接没有明确说明如何将某些事件绑定到特定的 SNS
        • @VirtualJJ AWS::SNS::Topic 资源用于创建主题并将订阅者附加到它们,而不是发布到现有主题。要发布到现有主题,您必须通过 aws 控制台中的“高级”部分使用堆栈选项,如上面的屏幕截图所示,或者也有一个命令行选项。最重要的是,我认为您无法在部署堆栈后执行此操作,并且我认为您无法从模板本身对其进行配置,但我对此不是 100% 确定。
        • 关于如何使用 AWS lambda 函数解析此通知消息的好例子 => github.com/guardian/cf-notify/blob/master/lambda_notify.py
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多