View a markdown version of this page

正在添加AWS AppConfig Agent Lambda 扩展 - AWS AppConfig

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

正在添加AWS AppConfig Agent 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使用层和 ARN 进行代理 Lambda 扩展

要使用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 函数后,Lambda AWS AppConfig函数会返回您为:2772 路径指定的配置。http://localhost有关如何创建 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)