使用 Python 更新 Lamb CodeBuild da 函數配置 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Python 更新 Lamb CodeBuild da 函數配置

下列 Python 範例使用 Boto3 和 CodeBuild Lambda Python 來更新 Lambda 函數的組態。您可以擴充此範例,以程式設計方式管理其他AWS資源。如需詳細資訊,請參閱 Boto3 文件。

必要條件

在您的帳戶中建立或尋找 Lambda 函數。

此範例假設您已在帳戶中建立 Lambda 函數,並將用 CodeBuild 來更新 Lambda 函數的環境變數。如需透過設定 Lambda 函數的詳細資訊 CodeBuild,請參閱使用 Lambda Java 來部署 AWS SAM L CodeBuild ambda 函數範例或造訪AWS Lambda

設定您的來源儲存庫

創建一個源代碼存儲庫來存儲您的 Boto3 蟒蛇腳本。

若要設定來源儲存庫
  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 蛇項目

創建一 CodeBuild Lambda Python 項目。

若要建立您 CodeBuild Lambda Java 專案
  1. 請在以下位置開啟AWS CodeBuild主控台。 https://console.aws.amazon.com/codesuite/codebuild/home

  2. 如果顯示 CodeBuild 資訊頁,請選擇 [建立組建專案]。否則,在瀏覽窗格中,展開 [組建],選擇 [建置專案],然後選擇 [建立組建專案]。

  3. Project name (專案名稱) 中,輸入此建置專案的名稱。組建專案名稱在每個 AWS 帳戶中都必須是唯一的。您還可以包括構建項目的可選描述,以幫助其他用戶了解該項目的用途。

  4. 來源中,選取AWS SAM專案所在的來源儲存庫。

  5. Environment (環境) 中:

    • 對於運算,選取 Lambda

    • 對於執行階段,請選取 Python

    • 對於圖像,選擇 AWS/ 代碼生成器/亞馬遜鏈-x86_64-羔羊標準:蟒蛇 3.12。

    • 對於服務角色,請保持選取 [新增服務角色]。記下「角色」名稱。當您稍後在本範例中更新專案的 IAM 許可時,將需要執行此操作。

  6. 選擇 Create build project (建立建置專案)

  7. 開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  8. 在導覽窗格中,選擇 [角色],然後選取與專案相關聯的服務角色。您可以在 CodeBuild 中找到您的專案角色,方法是選取您的組建專案,然後選擇 [編輯]、[環境],然後選取 [服務

  9. 選擇 Trust Relationships (信任關係) 標籤,然後選擇 Edit Trust Relationship (編輯信任政策)。

  10. 將下列內嵌政策新增至您的 IAM 角色。這將用於稍後部署您的AWS SAM基礎結構。如需詳細資訊,請參閱《IAM 使用者指南》中的新增和移除 IAM 身分許可

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

設置項目構建規格

為了更新 Lambda 函數,指令碼會從建置規格讀取環境變數,以尋找 Lambda 函數的名稱、環境變數名稱和環境變數值。

若要設定您的專案建置規格
  1. 在 CodeBuild 主控台中,選取您的建置專案,然後選擇 [編輯] 和 [建置規格]。

  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 (更新 buildspec)

更新您的 Lambda 組態

使用 CodeBuild Python 自動更新您的 Lambda 函數的組態。

若要更新 Lambda 函數的組態
  1. 選擇 Start build (開始組建)

  2. 建置完成後,瀏覽至您的 Lambda 函數。

  3. 選取組態,然後選取環境變數。您應該會看到包含索引鍵FEATURE_ENABLED和值的新環境變數true

清理您的基礎架構

若要避免您在本教學課程中使用的資源進一步收費,請刪除為 CodeBuild 專案建立的資源。

若要清理您的基礎架構
  1. 導覽至 CloudWatch 主控台,然後刪除與 CodeBuild 專案相關聯的 CloudWatch 記錄群組。

  2. 導航到 CodeBuild 控制台並通過選擇刪除構建 CodeBuild 項目刪除項目

  3. 如果您為此範例建立 Lambda 函數,請選擇動作刪除函數來清除 Lambda 函數。

擴充

如果您想要擴充此範例,以便使用 AWS CodeBuild Python 管理其他AWS資源:

  • 更新 Python 腳本以使用 Boto3 修改新的資源。

  • 更新與 CodeBuild 專案關聯的 IAM 角色,以取得新資源的許可。

  • 將與新資源關聯的任何新環境變量添加到構建規格中。