

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

# 了解 AWS AppConfig 扩展
<a name="working-with-appconfig-extensions-about"></a>

本主题介绍 AWS AppConfig 扩展概念和术语。这些信息将在设置和使用 AWS AppConfig 扩展程序所需的每个步骤的背景下进行讨论。

**Topics**
+ [

## 第 1 步：确定要对扩展程序执行哪些操作
](#working-with-appconfig-extensions-how-it-works-step-1)
+ [

## 步骤 2：确定扩展程序的运行时间
](#working-with-appconfig-extensions-how-it-works-step-2)
+ [

## 步骤 3：创建扩展程序关联
](#working-with-appconfig-extensions-how-it-works-step-3)
+ [

## 步骤 4：部署配置并验证是否执行了扩展程序操作
](#working-with-appconfig-extensions-how-it-works-step-4)

## 第 1 步：确定要对扩展程序执行哪些操作
<a name="working-with-appconfig-extensions-how-it-works-step-1"></a>

您是否想在 AWS AppConfig 部署完成时收到向 Slack 发送消息的 webhook 的通知？ 您是否希望在部署配置之前将配置文件备份到 Amazon Simple Storage Service (Amazon S3) 存储桶？ 是否要在部署配置之前清理配置数据中的敏感信息？ 您可以使用扩展程序来执行这些类型的任务以及更多任务。您可以创建自定义扩展程序或使用随附 AWS AppConfig的 AWS 创作扩展。

**注意**  
对于大多数用例，要创建自定义扩展，必须创建一个 AWS Lambda 函数来执行扩展中定义的任何计算和处理。有关更多信息，请参阅 [演练：创建自定义扩展 AWS AppConfig](working-with-appconfig-extensions-creating-custom.md)。

以下 AWS 编写的扩展可以帮助您将配置部署与其他服务快速集成。您可以在 AWS AppConfig 控制台中使用这些扩展，也可以直接从 AWS CLI AWS Tools for PowerShell、或 SDK 调用扩展 [API 操作](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_Operations.html)。


****  

| 扩展程序 | 说明 | 
| --- | --- | 
|  [AWS AppConfig 部署事件到 EventBridge](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about-predefined-notification-eventbridge.html)  |  部署配置时，此扩展将事件发送到 EventBridge 默认事件总线。  | 
|  [AWS AppConfig 向亚马逊简单通知服务 (Amazon SNS) 部署事件 Simple Notification SSERVICE](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about-predefined-notification-sns.html)  |  此扩展程序将消息发送到您在部署配置时指定的 Amazon SNS 主题。  | 
|  [AWS AppConfig 向亚马逊简单队列服务 (Amazon SQS) 部署事件 Simple Queue SQS](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about-predefined-notification-sqs.html)  |  部署配置时，此扩展程序会将消息排入 Amazon SQS 队列的队列中。  | 
|  [集成扩展程序 - Atlassian Jira](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about-jira.html)  |  每当你 AWS AppConfig 对[功能标志](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile.html#appconfig-creating-configuration-and-profile-feature-flags)进行更改时，此扩展都允许创建和更新问题。  | 

## 步骤 2：确定扩展程序的运行时间
<a name="working-with-appconfig-extensions-how-it-works-step-2"></a>

扩展程序定义了它在 AWS AppConfig 工作流程中执行的一个或多个操作。例如， AWS 创作的`AWS AppConfig deployment events to Amazon SNS`扩展程序包括向 Amazon SNS 主题发送通知的操作。每个操作都是在您与之交互 AWS AppConfig 或代表您执行流程时 AWS AppConfig 调用的。这些被称为*行动要点*。 AWS AppConfig 扩展支持以下操作要点：

**PRE\$1\$1 操作点**：在 `PRE_*` 操作点上配置的扩展操作在请求验证之后应用，但在 AWS AppConfig 执行与操作点名称对应的活动之前。这些操作调用与请求同时处理。如果发出多个请求，则操作调用将按顺序运行。另请注意，`PRE_*` 操作点接收并可以更改配置的内容。 `PRE_*` 操作点还可以响应错误并防止操作发生。
+ `PRE_CREATE_HOSTED_CONFIGURATION_VERSION`
+ `PRE_START_DEPLOYMENT`

**ON\$1\$1 操作点**：扩展也可以使用`ON_*`操作点与 AWS AppConfig 工作流程并行运行。 `ON_*`操作点是异步调用的。 `ON_*`操作点不接收配置的内容。如果扩展程序在 `ON_*` 操作点期间遇到错误，服务将忽略该错误并继续工作流。
+ `ON_DEPLOYMENT_START`
+ `ON_DEPLOYMENT_STEP`
+ `ON_DEPLOYMENT_BAKING`
+ `ON_DEPLOYMENT_COMPLETE`
+ `ON_DEPLOYMENT_ROLLED_BACK`

**AT\$1\$1 操作点**：在 `AT_*` 操作点上配置的扩展操作是同步调用的，并与 AWS AppConfig 工作流并行。如果扩展在 `AT_*` 操作点期间遇到错误，服务将停止工作流并回滚部署。
+ `AT_DEPLOYMENT_TICK`

## 步骤 3：创建扩展程序关联
<a name="working-with-appconfig-extensions-how-it-works-step-3"></a>

要创建扩展或配置创 AWS 作的扩展，您需要定义在使用特定 AWS AppConfig 资源时调用扩展的操作点。例如，您可以选择运行 `AWS AppConfig deployment events to Amazon SNS` 扩展程序，并在为特定应用程序启动配置部署时接收有关 Amazon SNS 主题的通知。定义哪些操作点调用特定 AWS AppConfig 资源的扩展称为*扩展关联*。扩展关联是扩展与 AWS AppConfig 资源（例如应用程序或配置配置文件）之间的指定关系。

单个 AWS AppConfig 应用程序可以包含多个环境和配置文件。如果将扩展程序与应用程序或环境相关联，则会为与应用程序或环境资源相关的所有工作流程 AWS AppConfig 调用该扩展（如果适用）。

例如，假设你有一个名为的 AWS AppConfig 应用程序 MobileApps ，其中包含一个名为的配置文件 AccessList。假设该 MobileApps 应用程序包括测试版、集成和生产环境。您可以为创 AWS 作的 Amazon SNS 通知扩展信息创建扩展关联，并将该扩展程序与应用程序关联。 MobileApps 每当将应用程序的配置部署到三个环境中的任何一个时，都会调用 Amazon SNS 通知扩展程序。

**注意**  
您不必创建扩展即可使用创 AWS 作的扩展，但必须创建扩展关联。

## 步骤 4：部署配置并验证是否执行了扩展程序操作
<a name="working-with-appconfig-extensions-how-it-works-step-4"></a>

创建关联后，在创建托管配置或部署配置时，会 AWS AppConfig 调用扩展并执行指定的操作。调用扩展时，如果系统在`PRE-*`操作时遇到错误，则 AWS AppConfig 返回有关该错误的信息。