本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Lambda Python 更新 Lamb CodeBuild da 函数配置
以下 Python 示例使用 Boto3 和
先决条件
在您的账户中创建或查找 Lambda 函数。
此示例假设您已经在账户中创建了一个 Lambda 函数,并将用于 CodeBuild 更新 Lambda 函数的环境变量。有关通过设置 Lambda 函数的更多信息 CodeBuild,请参阅使用 Lambda Java 部署 Lam AWS SAM b CodeBuild da 函数示例或访问。AWS Lambda
设置您的源代码库
创建一个源存储库来存储你的 Boto3 python 脚本。
设置源存储库
-
将以下 python 脚本复制到名为的新文件中
update_lambda_environment_variables.py
。import boto3 from os import environ def update_lambda_env_variable(lambda_client): lambda_function_name = environ['LAMBDA_FUNC_NAME'] lambda_env_variable = environ['LAMBDA_ENV_VARIABLE'] lambda_env_variable_value = environ['LAMBDA_ENV_VARIABLE_VALUE'] print("Updating lambda function " + lambda_function_name + " environment variable " + lambda_env_variable + " to " + lambda_env_variable_value) lambda_client.update_function_configuration( FunctionName=lambda_function_name, Environment={ 'Variables': { lambda_env_variable: lambda_env_variable_value } }, ) if __name__ == "__main__": region = environ['AWS_REGION'] client = boto3.client('lambda', region) update_lambda_env_variable(client)
-
将 python 文件上传到支持的源存储库。有关支持的源类型的列表,请参阅ProjectSource。
创建 CodeBuild Lambda Python 项目
创建一个 CodeBuild Lambda Python 项目。
创建你的 CodeBuild Lambda Java 项目
-
从 https://console.aws.amazon.com/codesuite/codebuild/home
打开 AWS CodeBuild 控制台。 -
如果显示 CodeBuild 信息页面,请选择 “创建构建项目”。否则,请在导航窗格中,展开构建,选择构建项目,然后选择创建构建项目。
在项目名称中,输入此构建项目的名称。构建项目名称在您的各个 AWS 账户内必须是唯一的。您还可以包含构建项目的可选描述,以帮助其他用户了解此项目的用途。
-
在源代码中,选择AWS SAM项目所在的源存储库。
-
在环境中:
-
对于计算,选择 Lambda。
-
对于运行时,请选择 Python。
-
对于图片,选择 aws/codebuild/amazonlinux-x86_64-lambda-standarda: python3.12。
-
对于服务角色,保留选中新服务角色。记下角色名称。在本示例稍后更新项目的 IAM 权限时,这将是必需的。
-
-
选择创建构建项目。
-
通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择角色并选择与您的项目关联的服务角色。您可以 CodeBuild 通过选择构建项目、选择 “编辑”、“环境” 和 “服务角色” 来找到自己的项目角色。
-
选择 Trust relationships(信任关系)选项卡,然后选择 Edit trust policy(编辑信任策略)。
-
将以下内联策略添加到您的 IAM 角色。这将在以后用于部署您的AWS SAM基础架构。有关更多信息,请参阅《 IAM 用户指南》中的添加和删除 IAM 身份权限。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateLambdaPermissions", "Effect": "Allow", "Action": [ "lambda:UpdateFunctionConfiguration" ], "Resource": [ "*" ] } ] }
设置项目构建规范
为了更新 Lambda 函数,脚本会从构建规范中读取环境变量,以查找 Lambda 函数的名称、环境变量名称和环境变量值。
设置项目构建规范
-
在 CodeBuild 控制台中,选择您的构建项目,然后选择 “编辑” 和 “Buildspec”。
-
在 Buildspec 中,选择 “插入生成命令”,然后选择 “切换到编辑器”。
-
删除预先填充的构建命令并粘贴到以下 buildspec 中。
version: 0.2 env: variables: LAMBDA_FUNC_NAME: "
<lambda-function-name>
" LAMBDA_ENV_VARIABLE: "FEATURE_ENABLED" LAMBDA_ENV_VARIABLE_VALUE: "true" phases: install: commands: - pip3 install boto3 build: commands: - python3 update_lambda_environment_variables.py -
选择 Update buildspec (更新构建规范)。
更新您的 Lambda 配置
使用 CodeBuild Lambda Python 自动更新您的 Lambda 函数的配置。
更新 Lambda 函数的配置
-
选择启动构建。
-
构建完成后,导航到您的 Lambda 函数。
-
选择配置,然后选择环境变量。您应该会看到一个带有键
FEATURE_ENABLED
和值的新环境变量true
。
清理您的基础架构
为避免对您在本教程中使用的资源收取更多费用,请删除为您的 CodeBuild 项目创建的资源。
清理您的基础架构
-
导航到 CloudWatch 控制台并删除与您的 CodeBuild 项目关联的 CloudWatch 日志组。
-
导航到 CodeBuild 控制台并通过选择删除构建 CodeBuild 项目来删除您的项目。
-
如果您为此示例创建了 Lambda 函数,请选择操作和删除函数来清理您的 Lambda 函数。
扩展程序
如果您想扩展此示例以使用 AWS CodeBuild Lambda Python 管理其他AWS资源,请执行以下操作:
-
使用 Boto3 更新 Python 脚本以修改新资源。
-
更新与您的 CodeBuild 项目关联的 IAM 角色以拥有新资源的权限。
-
将与新资源关联的所有新环境变量添加到 buildspec 中。