

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

# 配置   AWS AppConfig 代理 Lambda 扩展
<a name="appconfig-integration-lambda-extensions-config"></a>

您可以通过更改以下 AWS Lambda 环境变量来配置扩展。有关更多信息，请参阅《*AWS Lambda 开发者指南》[中的](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html)使用 AWS Lambda 环境变量*。

**预取配置数据**

环境变量 `AWS_APPCONFIG_EXTENSION_PREFETCH_LIST` 可以改善函数的启动时间。当初始化 AWS AppConfig Agent Lambda 扩展时，它会从 Lambda 开始初始化您的函数和调用您的处理程序 AWS AppConfig 之前检索指定的配置。在某些情况下，在函数请求配置数据之前，配置数据已在本地缓存中可用。

要使用预取功能，请将环境变量的值设置为与配置数据对应的路径。例如，如果您的配置对应于分别名为 “my\_application”、“my\_environmention” 和 “my\_configuration\_data” 的应用程序、环境和配置文件，则路径将为 `/applications/my_application/environments/my_environment/configurations/my_configuration_data`。您可以通过将多个配置项目列为逗号分隔的列表来指定这些配置项目（如果您的资源名称包含逗号，请使用资源的 ID 值而不是其名称）。

**从其他账户访问配置数据**

A AWS AppConfig gent Lambda 扩展可以通过指定[向数据授予](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html)权限的 IAM 角色来从另一个账户检索配置数据。要设置此策略，请按照下列步骤操作：

1. 在用于管理配置数据的账户中 AWS AppConfig ，使用信任策略创建一个角色，向运行 Lambda 函数的账户授予对`appconfig:StartConfigurationSession`和`appconfig:GetLatestConfiguration`操作的访问权限，以及与 AWS AppConfig 配置资源相对应的部分或完整 ARN。

1. 在运行 Lambda 函数的账户中，使用在步骤 1 中创建的角色的 ARN 将 `AWS_APPCONFIG_EXTENSION_ROLE_ARN` 环境变量添加到 Lambda 函数中。

1. （可选）如果需要，可使用 `AWS_APPCONFIG_EXTENSION_ROLE_EXTERNAL_ID` 环境变量指定[外部 ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)。同样，可使用 `AWS_APPCONFIG_EXTENSION_ROLE_SESSION_NAME` 环境变量配置会话名称。

**注意**  
请注意以下信息。  
 AWS AppConfig 代理 Lambda 扩展只能从一个账户检索数据。如果您指定 IAM 角色，则扩展将无法从运行 Lambda 函数的账户中检索配置数据。
AWS Lambda 使用亚马逊 CloudWatch 日志记录有关 AWS AppConfig 代理 Lambda 扩展和 Lambda 函数的信息。
下表包含一个**示例值**列。根据您的显示器分辨率，您可能需要滚动到表的底部，然后向右滚动才能看到该列。



| 环境变量 | 说明 | 默认 值 | 示例值 | 
| --- | --- | --- | --- | 
| `AWS_APPCONFIG_EXTENSION_EXPERIMENT_ASSIGNMENT_LOG_DESTINATION` | 此环境变量使 AWS AppConfig 代理能够记录实验分配记录，这些记录捕获在给定时间分配给定实体的实验处理的每一次发生。可能的值：`file:<path>/`表示将任务记录写入磁盘的基目录；`stderr`表示分配记录发送到 stderr。此功能需要 AWS AppConfig 代理 Lambda 扩展版本 2.0.20159 或更高版本。 | 无 | `file:/tmp/aws-appconfig/assignments/`<br />`stderr` | 
| `AWS_APPCONFIG_EXTENSION_HTTP_PORT` | 此环境变量用于指定运行托管扩展的本地 HTTP 服务器的端口。 | 2772 | 2772 | 
| `AWS_APPCONFIG_EXTENSION_LOG_LEVEL` | 此环境变量指定代理记录的详细程度。每个级别包括当前级别和所有更高级别。该值不区分大小写。从最详细到最不详细，日志级别分别为：`trace`、`debug`、`info`、`warn`、`error`、`fatal` 和 `none`。`trace` 日志包含关于 Agent 的详细信息，包括时间信息。 | info | trace<br />debug<br />info<br />warn<br />错误<br />fatal<br />无 | 
| `AWS_APPCONFIG_EXTENSION_MAX_CONNECTIONS` | 此环境变量配置扩展用于从 AWS AppConfig检索配置的最大连接数。 | 3 | 3 | 
| `AWS_APPCONFIG_EXTENSION_POLL_INTERVAL_SECONDS` | 此环境变量控制代理轮 AWS AppConfig 询更新的配置数据的频率。您可以指定间隔的秒数。您还可以指定一个带有时间单位的数字：s 表示秒，m 表示分钟，h 表示小时。如果未指定单位，则代理默认为秒。例如，60 秒、60 秒和 1 分钟会产生相同的轮询间隔。 | 45 | 45<br />45 秒<br />5m<br />1 小时 | 
| `AWS_APPCONFIG_EXTENSION_POLL_TIMEOUT_MILLIS` | 此环境变量控制在刷新缓存中的数据 AWS AppConfig 时扩展程序等待响应的最大时间（以毫秒为单位）。如果在指定的时间内 AWS AppConfig 没有响应，则扩展程序将跳过此轮询间隔并返回先前更新的缓存数据。 | 3000 毫秒 | 3000<br />300 毫秒<br />5 秒 | 
| `AWS_APPCONFIG_EXTENSION_PREFETCH_LIST` | 此环境变量指定代理启动后立即请求 AWS AppConfig 的配置数据。可以使用逗号分隔的列表提供多个配置标识符。从 AWS AppConfig 预取配置数据可以显著减少函数的冷启动时间。 | 无 | MyApp:MyEnv:MyConfig<br />abcd123:efgh456:ijkl789<br />MyApp:MyEnv:Config1,MyApp:MyEnv:Config2 | 
| AWS\_APPCONFIG\_EXTENSION\_PROXY\_HEADERS | 此环境变量用于指定 AWS\_APPCONFIG\_EXTENSION\_PROXY\_URL 环境变量中引用的代理所需的标头。其值是以逗号分隔的标头列表。 | 无 | header: value<br />h1: v1, h2: v2 | 
| AWS\_APPCONFIG\_EXTENSION\_PROXY\_URL | 此环境变量指定用于从 AWS AppConfig 扩展到的连接的代理 URL AWS 服务。HTTPS并支持 HTTP URL。 | 无 | http://localhost:7474<br />https://my-proxy.example.com | 
| AWS\_APPCONFIG\_EXTENSION\_ROLE\_ARN | 此环境变量指定了与 AWS AppConfig 扩展程序在检索配置时应担任的角色相对应的 IAM 角色 ARN。 | 无 | arn: aws: iam:: 123456789012: role/MyRole | 
| AWS\_APPCONFIG\_EXTENSION\_ROLE\_EXTERNAL\_ID | 此环境变量指定要与代入角色 ARN 结合使用的外部 ID。 | 无 | MyExternalId | 
| AWS\_APPCONFIG\_EXTENSION\_ROLE\_SESSION\_NAME | 此环境变量指定要与代入的 IAM 角色的凭证关联的会话名称。 | 无 | AWSAppConfigAgentSession | 
| AWS\_APPCONFIG\_EXTENSION\_SERVICE\_REGION | 此环境变量指定了扩展程序调用该 AWS AppConfig 服务的备用区域。如果未定义，则扩展将使用当前区域中的终端节点。 | 无 | us-east-1<br />eu-west-1 | 
| `AWS_APPCONFIG_EXTENSION_MANIFEST` | 此环境变量将 AWS AppConfig Agent 配置为利用额外的每种配置功能，例如多帐户检索和将配置保存到磁盘。有关使用这些功能的更多信息，请参阅 [使用清单启用其它检索功能](appconfig-agent-how-to-use-additional-features.md)。 | 无 | 使用 AWS AppConfig 配置作为清单时:`MyApp:MyEnv:MyManifestConfig`.<br />当从磁盘加载清单时：`file:/path/to/manifest.json` | 
| `AWS_APPCONFIG_EXTENSION_WAIT_ON_MANIFEST` | 此环境变量将 AWS AppConfig Agent 配置为等到清单处理完成后再完成启动。 | true | true<br />false | 