添加 Amazon AppConfig 代理 Lambda 扩展 - Amazon AppConfig
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

添加 Amazon AppConfig 代理 Lambda 扩展

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

注意

该 Amazon AppConfig 扩展程序与运行时无关,并且支持所有运行时。

开始前的准备工作

在启用 Amazon AppConfig 代理 Lambda 扩展之前,请执行以下操作:

  • 在 Lambda 函数中组织配置,以便将其外部化为 Amazon AppConfig。

  • 创建 Amazon AppConfig 构件和配置数据,包括功能标志或自由格式配置数据。有关更多信息,请参阅 在中创建功能标志和自由格式配置数据 Amazon AppConfig

  • 在 Lambda 函数执行角色使用的 Amazon Identity and Access Management (IAM) 策略中添加appconfig:StartConfigurationSessionappconfig:GetLatestConfiguration。有关更多信息,请参阅Amazon Lambda 开发人员指南 中的 Amazon Lambda 执行角色。有关 Amazon AppConfig 权限的更多信息,请参阅《服务授权参考》中的 Amazon AppConfig操作、资源和条件键

使用层和 ARN 添加 Amazon AppConfig 代理 Lambda 扩展

要使用 Amazon AppConfig 代理 Lambda 扩展,您需要将该扩展作为一个层添加到 Lambda 函数中。有关如何向函数添加层的信息,请参阅《Amazon Lambda 开发者指南》中的配置扩展。 Amazon Lambda 控制台中扩展的名称是 Amazon-AppConfig- Extension。另请注意,当您将扩展作为层添加到 Lambda 时,您必须指定 Amazon 资源名称(ARN)。从以下列表中选择一个 ARN,该列表与平台和您创建 Lambda 的 Amazon Web Services 区域 位置相对应。

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

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 Amazon AppConfig a 函数会返回您为 http://localhost:2772 路径指定的配置。有关如何创建 Lambda 函数的信息,请参阅 Amazon Lambda 《 Lambda 开发人员指南》中的 使用控制台创建 Lambda 函数

重要

您可以在日志中查看 Ag Amazon AppConfig ent Lambda 扩展程序的 Amazon 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)