配置 Amazon AppConfig 代理 Lambda 扩展
您可以通过更改以下 Amazon Lambda 环境变量配置扩展。有关更多信息,请参阅《Amazon Lambda 开发者指南》中的使用 Amazon Lambda 环境变量。
预取配置数据
环境变量 AWS_APPCONFIG_EXTENSION_PREFETCH_LIST 可以改善函数的启动时间。初始化 Amazon AppConfig 代理 Lambda 扩展时,它会在 Lambda 开始初始化函数和调用处理程序之前从 Amazon AppConfig 检索指定的配置。在某些情况下,在函数请求配置数据之前,配置数据已在本地缓存中可用。
要使用预取功能,请将环境变量的值设置为与配置数据对应的路径。例如,如果您的配置对应于分别名为 “my_application”、“my_environmention” 和 “my_configuration_data” 的应用程序、环境和配置文件,则路径将为 /applications/my_application/environments/my_environment/configurations/my_configuration_data。您可以通过以逗号分隔的列表列出多个配置项目来指定这些配置项目(如果资源名称中包含逗号,请使用资源的 ID 值而不是其名称)。
从其他账户访问配置数据
Amazon AppConfig 代理 Lambda 扩展可通过指定向数据授予权限的 IAM 角色,从其他账户检索配置数据。要设置此策略,请按照下列步骤操作:
-
在使用 Amazon AppConfig 管理配置数据的账户中,创建一个具有信任策略的角色,该策略授予运行 Lambda 函数的账户访问
appconfig:StartConfigurationSession和appconfig:GetLatestConfiguration操作以及与 Amazon AppConfig 配置资源对应的部分或完整 ARN。 -
在运行 Lambda 函数的账户中,使用在步骤 1 中创建的角色的 ARN 将
AWS_APPCONFIG_EXTENSION_ROLE_ARN环境变量添加到 Lambda 函数中。 -
(可选)如果需要,可使用
AWS_APPCONFIG_EXTENSION_ROLE_EXTERNAL_ID环境变量指定外部 ID。同样,可使用AWS_APPCONFIG_EXTENSION_ROLE_SESSION_NAME环境变量配置会话名称。
注意
请注意以下信息。
-
Amazon AppConfig 代理 Lambda 扩展只能从一个账户检索数据。如果您指定 IAM 角色,则扩展将无法从运行 Lambda 函数的账户中检索配置数据。
-
使用 Amazon CloudWatch Logs Amazon Lambda 记录关于 Amazon AppConfig 代理 Lambda 扩展和 Lambda 函数的信息。
-
下表包含一个示例值列。根据您的显示器分辨率,您可能需要滚动到表格底部,然后向右滚动以查看该列。
| 环境变量 | 详细信息 | 默认值 | 示例值 |
|---|---|---|---|
|
|
此环境变量用于指定运行托管扩展的本地 HTTP 服务器的端口。 |
2772 | 2772 |
|
|
此环境变量指定代理记录的详细程度。每个级别包括当前级别和所有更高级别。该值不区分大小写。从最详细到最不详细,日志级别为: |
info |
trace debug info warn error fatal none |
|
|
此环境变量配置扩展用于从 Amazon AppConfig 检索配置的最大连接数。 |
3 | 3 |
|
|
此环境变量控制代理轮询 Amazon AppConfig 以获取更新的配置数据的频率。您可以指定间隔的秒数。您还可以指定一个带有时间单位的数字:s 表示秒,m 表示分钟,h 表示小时。如果未指定单位,则代理默认为秒。例如,60 秒、60 秒和 1 分钟会产生相同的轮询间隔。 |
45 | 45 45 秒 5m 1 小时 |
|
|
此环境变量控制扩展在刷新缓存中的数据时等待 Amazon AppConfig 响应的最大时间(以毫秒为单位)。如果 Amazon AppConfig 在指定的时间内未响应,则扩展会跳过此轮询间隔,并返回之前更新的缓存数据。 |
3000 毫秒 | 3000 300 毫秒 5 秒 |
|
|
此环境变量指定代理启动后立即从 Amazon AppConfig 请求的配置数据。可以使用逗号分隔的列表提供多个配置标识符。从 Amazon AppConfig 预取配置数据可以显著减少函数的冷启动时间。 |
无 | MyApp:MyEnv:MyConfig abcd123:efgh456:ijkl789 MyApp:MyEnv:Config1,MyApp:MyEnv:Config2 |
AWS_APPCONFIG_EXTENSION_PROXY_HEADERS |
此环境变量用于指定 AWS_APPCONFIG_EXTENSION_PROXY_URL 环境变量中引用的代理所需的标头。其值是以逗号分隔的标头列表。 |
无 | header: value h1: v1, h2: v2 |
AWS_APPCONFIG_EXTENSION_PROXY_URL |
此环境变量指定用于从 Amazon AppConfig 扩展到 Amazon Web Services 服务 的连接的代理 URL 。支持 HTTPS 和 HTTP URL。 |
无 | http://localhost:7474 https://my-proxy.example.com |
AWS_APPCONFIG_EXTENSION_ROLE_ARN |
此环境变量指定与 Amazon 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 |
此环境变量指定扩展应用于调用 Amazon AppConfig 服务的备用区域。如果未定义,则扩展将使用当前区域中的终端节点。 | 无 | us-east-1 eu-west-1 |
|
|
此环境变量配置 Amazon AppConfig 代理来利用其它每配置功能,如多账户检索 和将配置保存到磁盘。有关使用这些功能的更多信息,请参阅 使用清单启用其它检索功能。 |
无 | 当使用 Amazon AppConfig 配置作为清单时: 当从磁盘加载清单时: |
|
|
此环境变量配置 Amazon AppConfig 代理,使其在完成启动之前等待清单处理完毕。 |
true | true false |