本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon AppConfig Amazon SNS 扩展的部署事件
该Amazon AppConfig deployment events to Amazon SNS扩展是 Amazon 创作的扩展,可帮助您监控 Amazon AppConfig 配置部署工作流程并采取行动。每当部署配置时,该扩展程序都会将消息发布到 Amazon SNS 主题。将扩展与某个 Amazon AppConfig 应用程序、环境或配置文件关联后,在每次配置部署开始、结束和回滚后向该主题 Amazon AppConfig 发布一条消息。
如果您希望更好地控制哪些操作点发送 Amazon SNS 通知,您可以创建自定义扩展程序,并在 URI 字段中输入 Amazon SNS 主题 Amazon 资源名称(ARN)。有关创建扩展程序的信息,请参阅 演练:创建自定义 Amazon AppConfig 扩展。
使用扩展程序
本节介绍如何使用 Amazon AppConfig deployment events to Amazon SNS 扩展程序。
步骤 1:配置 Amazon AppConfig 向主题发布消息
向您的 Amazon SNS 主题添加访问控制策略,以授予 Amazon AppConfig
(appconfig.amazonaws.com) 发布消息的权限 (sns:Publish)。为确保只有您自己的账户可以发送这些消息,请在政策中添加aws:SourceAccount条件并将其设置为您的 Amazon 账户 ID。这样可以防止其他 Amazon 账户中的某人使用该扩展程序向您的主题发送消息。要更严格地确定访问范围,可以改用为扩展关联的 ARN 设置的aws:SourceArn条件。有关更多信息,请参阅 Amazon SNS 访问控制的示例案例。
以下示例策略允许仅在请求来自您自己的账户时向您的主题 Amazon AppConfig 发布内容。将示例账户 ID 替换MySNSTopic为你自己的值。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAppConfigPublish", "Effect": "Allow", "Principal": { "Service": "appconfig.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-east-1:111122223333:MySNSTopic", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } } } ] }
防止跨账户访问
您必须在 Amazon SNS 主题政策中包含aws:SourceAccount或aws:SourceArn条件,以防止跨账户访问。如果没有这些条件,另一个 Amazon 账户可以配置其Amazon AppConfig deployment events to Amazon SNS扩展以向您的主题发送部署事件。务必将保单限制在您自己的账户上。
步骤 2:创建扩展程序关联
通过创建扩展关联将扩展连接到您的一个 Amazon AppConfig 资源。您可以使用 Amazon AppConfig 控制台或 CreateExtensionAssociation API 操作来创建关联。创建关联时,需要指定 Amazon AppConfig 应用程序、环境或配置文件的 ARN。如果将扩展程序关联到应用程序或环境,则会针对指定应用程序或环境中包含的任何配置文件发送通知。在创建关联时,您必须为 topicArn 参数输入一个值,该参数包含要使用的 Amazon SNS 主题的 ARN。
创建关联后,当部署指定 Amazon AppConfig 资源的配置时,会 Amazon AppConfig 调用该扩展并根据扩展中指定的操作点发送通知。
注意
此扩展程序由以下操作点调用:
-
ON_DEPLOYMENT_START -
ON_DEPLOYMENT_COMPLETE -
ON_DEPLOYMENT_ROLLED_BACK
您无法自定义此扩展程序的操作点。若要调用不同的操作点,可以创建自己的扩展程序。有关更多信息,请参阅 演练:创建自定义 Amazon AppConfig 扩展。
使用以下过程通过 Amazon Systems Manager 控制台或,创建 Amazon AppConfig 扩展关联 Amazon CLI。
创建扩展程序关联(控制台)
在处打开 Amazon Systems Manager 控制台https://console.aws.amazon.com/systems-manager/appconfig/
。 -
在导航窗格中,请选择 Amazon AppConfig。
-
在 扩展程序 选项卡上,选择 添加到资源。
-
在扩展资源详细信息部分中,对于资源类型,选择 Amazon AppConfig 资源类型。根据您选择的资源, Amazon AppConfig 提示您选择其他资源。
-
选择创建与资源的关联。
以下是调用扩展程序时发送到 Amazon SNS 主题的消息示例。
{ "Type": "Notification", "MessageId": "ae9d702f-9a66-51b3-8586-2b17932a9f28", "TopicArn": "arn:aws:sns:us-east-1:111122223333:MySNSTopic", "Message": { "InvocationId": "7itcaxp", "Parameters": { "topicArn": "arn:aws:sns:us-east-1:111122223333:MySNSTopic" }, "Application": { "Id": "1a2b3c4d", "Name": MyApp }, "Environment": { "Id": "1a2b3c4d", "Name": MyEnv }, "ConfigurationProfile": { "Id": "1a2b3c4d", "Name": "MyConfigProfile" }, "Description": null, "DeploymentNumber": "3", "ConfigurationVersion": "1", "Type": "OnDeploymentComplete" }, "Timestamp": "2022-06-30T20:26:52.067Z", "SignatureVersion": "1", "Signature": "<...>", "SigningCertURL": "<...>", "UnsubscribeURL": "<...>", "MessageAttributes": { "MessageType": { "Type": "String", "Value": "OnDeploymentStart" } } }