使用 Lambda Python 更新 Lamb CodeBuild da 函数配置 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Lambda Python 更新 Lamb CodeBuild da 函数配置

以下 Python 示例使用 Boto3 和 Lambda CodeBuild Python 更新 Lambda 函数的配置。此示例可以扩展为以编程方式管理其他Amazon资源。有关更多信息,请参阅 Boto3 文档

先决条件

在您的账户中创建或查找 Lambda 函数。

此示例假设您已经在账户中创建了一个 Lambda 函数,并将用于 CodeBuild 更新 Lambda 函数的环境变量。有关通过设置 Lambda 函数的更多信息 CodeBuild,请参阅使用 Lambda Java 部署 Lam Amazon SAM b CodeBuild da 函数示例或访问。Amazon Lambda

设置您的源代码库

创建一个源存储库来存储你的 Boto3 python 脚本。

设置源存储库
  1. 将以下 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)
  2. 将 python 文件上传到支持的源存储库。有关支持的源类型的列表,请参阅ProjectSource

创建 CodeBuild Lambda Python 项目

创建一个 CodeBuild Lambda Python 项目。

创建你的 CodeBuild Lambda Java 项目
  1. https://console.aws.amazon.com/codesuite/codebuild/home 打开 Amazon CodeBuild 控制台。

  2. 如果显示 CodeBuild 信息页面,请选择 “创建构建项目”。否则,请在导航窗格中,展开构建,选择构建项目,然后选择创建构建项目

  3. 项目名称中,输入此构建项目的名称。构建项目名称在您的各个 Amazon 账户内必须是唯一的。您还可以包含构建项目的可选描述,以帮助其他用户了解此项目的用途。

  4. 源代码中,选择Amazon SAM项目所在的源存储库。

  5. 环境中:

    • 对于计算,选择 Lambda

    • 对于运行时,请选择 Python

    • 对于图片,选择 aws/codebuild/amazonlinux-x86_64-lambda-standarda: python3.12。

    • 对于服务角色,保留选中新服务角色。记下角色名称。在本示例稍后更新项目的 IAM 权限时,这将是必需的。

  6. 选择创建构建项目

  7. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  8. 在导航窗格中,选择角色并选择与您的项目关联的服务角色。您可以 CodeBuild 通过选择构建项目、选择 “编辑”、“环境” 和 “服务角色” 来找到自己的项目角色

  9. 选择 Trust relationships(信任关系)选项卡,然后选择 Edit trust policy(编辑信任策略)。

  10. 将以下内联策略添加到您的 IAM 角色。这将在以后用于部署您的Amazon SAM基础架构。有关更多信息,请参阅《 IAM 用户指南》中的添加和删​​除 IAM 身份权限

    { "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateLambdaPermissions", "Effect": "Allow", "Action": [ "lambda:UpdateFunctionConfiguration" ], "Resource": [ "*" ] } ] }

设置项目构建规范

为了更新 Lambda 函数,脚本会从构建规范中读取环境变量,以查找 Lambda 函数的名称、环境变量名称和环境变量值。

设置项目构建规范
  1. 在 CodeBuild 控制台中,选择您的构建项目,然后选择 “编辑” 和 “Buildspec”。

  2. Buildspec 中,选择 “插入生成命令”,然后选择 “切换到编辑器”。

  3. 删除预先填充的构建命令并粘贴到以下 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
  4. 选择 Update buildspec (更新构建规范)

更新您的 Lambda 配置

使用 CodeBuild Lambda Python 自动更新您的 Lambda 函数的配置。

更新 Lambda 函数的配置
  1. 选择启动构建

  2. 构建完成后,导航到您的 Lambda 函数。

  3. 选择配置,然后选择环境变量。您应该会看到一个带有键FEATURE_ENABLED和值的新环境变量true

清理您的基础架构

为避免对您在本教程中使用的资源收取更多费用,请删除为您的 CodeBuild 项目创建的资源。

清理您的基础架构
  1. 导航到 CloudWatch 控制台并删除与您的 CodeBuild 项目关联的 CloudWatch 日志组。

  2. 导航到 CodeBuild 控制台并通过选择删除构建 CodeBuild 项目来删除您的项目

  3. 如果您为此示例创建了 Lambda 函数,请选择操作删除函数来清理您的 Lambda 函数。

扩展程序

如果您想扩展此示例以使用 Amazon CodeBuild Lambda Python 管理其他Amazon资源,请执行以下操作:

  • 使用 Boto3 更新 Python 脚本以修改新资源。

  • 更新与您的 CodeBuild 项目关联的 IAM 角色以拥有新资源的权限。

  • 将与新资源关联的所有新环境变量添加到 buildspec 中。