

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

# 添加 AWS AppConfig 代理 Lambda 扩展
<a name="appconfig-integration-lambda-extensions-add"></a>

要使用 AWS AppConfig 代理 Lambda 扩展，您需要将扩展程序添加到您的 Lambda 中。这可以通过将 AWS AppConfig 代理 Lambda 扩展作为层添加到您的 Lambda 函数中，或者在 Lambda 函数上启用该扩展作为容器映像来实现。

**注意**  
该 AWS AppConfig 扩展程序与运行时无关，并且支持所有运行时。

**开始前的准备工作**  
在启用 AWS AppConfig 代理 Lambda 扩展之前，请执行以下操作：
+ 在 Lambda 函数中组织配置，以便将其外部化为 AWS AppConfig。
+ 创建 AWS AppConfig 构件和配置数据，包括功能标志或自由格式配置数据。有关更多信息，请参阅 [在中创建功能标志和自由格式配置数据 AWS AppConfig](creating-feature-flags-and-configuration-data.md)。
+ 在 Lambda 函数执行角色使用的 AWS Identity and Access Management (IAM) 策略中添加`appconfig:StartConfigurationSession`和`appconfig:GetLatestConfiguration`。有关更多信息，请参阅*AWS Lambda 开发人员指南* 中的 [AWS Lambda 执行角色](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)。有关 AWS AppConfig 权限的更多信息，请参阅*《服务授权参考》*中的 [AWS AppConfig操作、资源和条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappconfig.html)。

## 使用层和 ARN 添加 AWS AppConfig 代理 Lambda 扩展
<a name="appconfig-integration-lambda-extensions-enabling"></a>

要使用 AWS AppConfig 代理 Lambda 扩展，您需要将该扩展作为一个层添加到 Lambda 函数中。有关如何向函数添加层的信息，请参阅《*AWS Lambda 开发者指南*》中的[配置扩展](https://docs.aws.amazon.com/lambda/latest/dg/using-extensions.html#using-extensions-config)。 AWS Lambda 控制台中扩展的名称是 **AWS-AppConfig-** Extension。另请注意，当您将扩展作为层添加到 Lambda 时，您必须指定 Amazon 资源名称（ARN）。从以下列表中选择一个 ARN，该列表与平台和您创建 Lambda 的 AWS 区域 位置相对应。
+ [x86-64 平台](appconfig-integration-lambda-extensions-versions.md#appconfig-integration-lambda-extensions-enabling-x86-64)
+ [ARM64 平台](appconfig-integration-lambda-extensions-versions.md#appconfig-integration-lambda-extensions-enabling-ARM64)

如果您想在将扩展添加到函数中之前对其进行测试，可以使用以下代码示例来验证其是否有效。

```
import urllib.request
                

def lambda_handler(event, context):
    url = f'http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name'
    config = urllib.request.urlopen(url).read()
    return config
```

要对其进行测试，请为 Python 创建一个新的 Lambda 函数，添加扩展，然后运行 Lambda 函数。运行 Lambda 函数后，Lambd AWS AppConfig a 函数会返回您为 http://localhost:2772 路径指定的配置。有关如何创建 Lambda 函数的信息，请参阅 *AWS Lambda 《 Lambda 开发人员指南》*中的 [使用控制台创建 Lambda 函数](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html)。

**重要**  
您可以在日志中查看 Ag AWS AppConfig ent Lambda 扩展程序的 AWS Lambda 日志数据。日志条目以 `appconfig agent` 开头。以下为示例。  

```
[appconfig agent] 2024/05/07 04:19:01 ERROR retrieve failure for 'SourceEventConfig:SourceEventConfigEnvironment:SourceEventConfigProfile': StartConfigurationSession: api error AccessDenied: User: arn:aws:sts::0123456789:assumed-role/us-east-1-LambdaRole/extension1 is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::0123456789:role/test1 (retry in 60s)
```