添加 AWS AppConfig 代理 Lambda 扩展 - AWS AppConfig

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

添加 AWS AppConfig 代理 Lambda 扩展

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

注意

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

开始前的准备工作

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

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

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

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

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

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

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

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 函数

重要

您可以在日志中查看 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)