以下 Python 示例使用 Boto3
先决条件
在账户中创建或查找 Lambda 函数。
此示例假设您已经在账户中创建了 Lambda 函数,并将使用 CodeBuild 来更新 Lambda 函数的环境变量。有关通过 CodeBuild 设置 Lambda 函数的更多信息,请参阅 将 AWS SAM 与 CodeBuild Lambda Java 结合使用来部署 Lambda 函数 示例或访问 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-standard:python3.12。
-
在服务角色中,选中新服务角色。记下角色名称。在本示例稍后更新项目的 IAM 权限时,会需要角色名称。
-
-
选择 Create build project(创建构建项目)。
-
通过 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": [ "*" ] } ] }
设置项目 buildspec
为了更新 Lambda 函数,脚本会从 buildspec 中读取环境变量,以便找到 Lambda 函数的名称、环境变量名称和环境变量值。
设置项目 buildspec
-
在 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 -
选择更新 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 中。