

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 AWS AppConfig 部署事件到 Amazon SNS 扩展程序
<a name="working-with-appconfig-extensions-about-predefined-notification-sns"></a>

该`AWS AppConfig deployment events to Amazon SNS`扩展是 AWS 编写的扩展，可帮助您监控 AWS AppConfig 配置部署工作流程并对其采取行动。每当部署配置时，该扩展程序都会将消息发布到 Amazon SNS 主题。将扩展程序与您的一个 AWS AppConfig 应用程序、环境或配置文件关联后，在每次配置部署开始、结束和回滚之后，都会向该主题 AWS AppConfig 发布一条消息。

如果您希望更好地控制哪些操作点发送 Amazon SNS 通知，您可以创建自定义扩展程序，并在 URI 字段中输入 Amazon SNS 主题 Amazon 资源名称（ARN）。有关创建扩展程序的信息，请参阅 [演练：创建自定义扩展 AWS AppConfig](working-with-appconfig-extensions-creating-custom.md)。

## 使用扩展程序
<a name="working-with-appconfig-extensions-about-predefined-notification-sns-using"></a>

本节介绍如何使用 `AWS AppConfig deployment events to Amazon SNS` 扩展程序。

**步骤 1：配置 AWS AppConfig 为向主题发布消息**  
向 Amazon SNS 主题添加访问控制策略，授予 AWS AppConfig (`appconfig.amazonaws.com`) 发布权限 (`sns:Publish`)。有关更多信息，请参阅 [Amazon SNS 访问控制的示例案例](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html)。

**步骤 2：创建扩展程序关联**  
通过创建扩展关联，将扩展附加到您的一个 AWS AppConfig 资源。您可以使用 AWS AppConfig 控制台或 [CreateExtensionAssociation](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateExtensionAssociation.html)API 操作创建关联。创建关联时，您可以指定 AWS AppConfig 应用程序、环境或配置文件的 ARN。如果将扩展程序关联到应用程序或环境，则会针对指定应用程序或环境中包含的任何配置文件发送通知。在创建关联时，您必须为 `topicArn` 参数输入一个值，该参数包含要使用的 Amazon SNS 主题的 ARN。

创建关联后，部署指定 AWS AppConfig 资源的配置时，会 AWS AppConfig 调用该扩展程序并根据扩展中指定的操作点发送通知。

**注意**  
此扩展程序由以下操作点调用：  
`ON_DEPLOYMENT_START`
`ON_DEPLOYMENT_COMPLETE`
`ON_DEPLOYMENT_ROLLED_BACK`
您无法自定义此扩展程序的操作点。若要调用不同的操作点，可以创建自己的扩展程序。有关更多信息，请参阅 [演练：创建自定义扩展 AWS AppConfig](working-with-appconfig-extensions-creating-custom.md)。

使用以下过程通过 AWS Systems Manager 控制台或控制台创建 AWS AppConfig 扩展关联 AWS CLI。

**创建扩展程序关联（控制台）**

1. 在 [https://console.aws.amazon.com/systems-manager/appconfig](https://console.aws.amazon.com/systems-manager/appconfig/)/上打开 AWS Systems Manager 控制台。

1. 在导航窗格中，请选择 **AWS AppConfig**。

1. 在 **扩展程序** 选项卡上，选择 **添加到资源**。

1. 在**扩展资源详细信息**部分的**资源类型**中，选择一种 AWS AppConfig 资源类型。根据您选择的资源， AWS AppConfig 会提示您选择其他资源。

1. 选择**创建与资源的关联**。

以下是调用扩展程序时发送到 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"
        }
    }
}
```