

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

# 演练：创建自定义扩展 AWS AppConfig
<a name="working-with-appconfig-extensions-creating-custom"></a>

要创建自定义 AWS AppConfig 扩展模块，请完成以下任务。在后面的主题中将更详细地介绍每个任务。

**注意**  
你可以在以下网址查看自定义 AWS AppConfig 扩展程序的示例 GitHub：  
[Sample extension that prevents deployments with a `blocked day` moratorium calendar using Systems Manager Change Calendar](https://github.com/aws-samples/aws-appconfig-change-calendar-extn)
[Sample extension that prevents secrets from leaking into configuration data using git-secrets](https://github.com/aws-samples/aws-appconfig-git-secrets-extn)
[Sample extension that prevents personally identifiable information (PII) from leaking into configuration data using Amazon Comprehend](https://github.com/aws-samples/aws-appconfig-pii-extn)

**1. [创建 AWS Lambda 函数](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-creating-custom-lambda.html)**  
对于大多数用例，要创建自定义扩展，必须创建一个 AWS Lambda 函数来执行扩展中定义的任何计算和处理。此规则的一个例外是，您创建了 [AWS 创作的通知扩展程序](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about-predefined.html)的*自定义*版本来添加或删除操作点。有关此例外的更多详细信息，请参阅 [步骤 3：创建自定义 AWS AppConfig 扩展](working-with-appconfig-extensions-creating-custom-extensions.md)。

**2. [为您的自定义扩展程序配置权限](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-creating-custom-permissions.html)**  
若要为自定义扩展程序配置权限，可以执行下列操作之一：  
+ 创建包含`InvokeFunction`权限的 AWS Identity and Access Management (IAM) 服务角色。
+ 使用 Lambda [AddPermission](https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html)API 操作创建资源策略。
此预排描述如何创建 IAM 服务角色。

**3. [创建扩展](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-creating-custom-extensions.html)**  
您可以使用 AWS AppConfig 控制台或从 AWS CLI、 AWS Tools for PowerShell或 SDK 中调用 [CreateExtension](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateExtension.html)API 操作来创建扩展。本演练使用控制台。

**4. [创建扩展关联](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-creating-custom-association.html)**  
您可以使用 AWS AppConfig 控制台或从 AWS CLI、 AWS Tools for PowerShell或 SDK 调用 [CreateExtensionAssociation](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateExtensionAssociation.html)API 操作来创建扩展关联。本演练使用控制台。

**5. 执行调用扩展程序的操作**  
创建关联后，当扩展定义的操作点出现在该资源上时，将 AWS AppConfig 调用该扩展。例如，如果关联包含 `PRE_CREATE_HOSTED_CONFIGURATION_VERSION` 操作的扩展程序，则每次创建新的托管配置版本时都会调用该扩展程序。

本节中的主题介绍创建自定义 AWS AppConfig 扩展程序所涉及的每个任务。每个任务都在一个使用案例的上下文中进行描述，在该用例中，客户希望创建一个扩展程序，该扩展程序会自动将配置备份到 Amazon Simple Storage Service (Amazon S3) 存储桶。每当创建 (`PRE_CREATE_HOSTED_CONFIGURATION_VERSION`) 或部署 (`PRE_START_DEPLOYMENT`) 托管配置时，扩展程序就会运行。

**Topics**
+ [步骤 1：为自定义扩展程序创建 Lambda 函数 AWS AppConfig](working-with-appconfig-extensions-creating-custom-lambda.md)
+ [步骤 2：为自定义 AWS AppConfig 扩展程序配置权限](working-with-appconfig-extensions-creating-custom-permissions.md)
+ [步骤 3：创建自定义 AWS AppConfig 扩展](working-with-appconfig-extensions-creating-custom-extensions.md)
+ [步骤 4：为自定义扩展程序创建 AWS AppConfig 扩展关联](working-with-appconfig-extensions-creating-custom-association.md)