本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Python 更新 Lamb CodeBuild da 函數配置
下列 Python 範例使用 Boto3
必要條件
在您的帳戶中建立或尋找 Lambda 函數。
此範例假設您已在帳戶中建立 Lambda 函數,並將用 CodeBuild 來更新 Lambda 函數的環境變數。如需透過設定 Lambda 函數的詳細資訊 CodeBuild,請參閱使用 Lambda Java 來部署 AWS SAM L CodeBuild ambda 函數範例或造訪AWS Lambda
設定您的來源儲存庫
創建一個源代碼存儲庫來存儲您的 Boto3 蟒蛇腳本。
若要設定來源儲存庫
-
將以下 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 蛇項目
創建一 CodeBuild Lambda Python 項目。
若要建立您 CodeBuild Lambda Java 專案
-
請在以下位置開啟AWS CodeBuild主控台。
https://console.aws.amazon.com/codesuite/codebuild/home -
如果顯示 CodeBuild 資訊頁,請選擇 [建立組建專案]。否則,在瀏覽窗格中,展開 [組建],選擇 [建置專案],然後選擇 [建立組建專案]。
在 Project name (專案名稱) 中,輸入此建置專案的名稱。組建專案名稱在每個 AWS 帳戶中都必須是唯一的。您還可以包括構建項目的可選描述,以幫助其他用戶了解該項目的用途。
-
在來源中,選取AWS SAM專案所在的來源儲存庫。
-
在 Environment (環境) 中:
-
對於運算,選取 Lambda。
-
對於執行階段,請選取 Python。
-
對於圖像,選擇 AWS/ 代碼生成器/亞馬遜鏈-x86_64-羔羊標準:蟒蛇 3.12。
-
對於服務角色,請保持選取 [新增服務角色]。記下「角色」名稱。當您稍後在本範例中更新專案的 IAM 許可時,將需要執行此操作。
-
-
選擇 Create build project (建立建置專案)。
-
開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 -
在導覽窗格中,選擇 [角色],然後選取與專案相關聯的服務角色。您可以在 CodeBuild 中找到您的專案角色,方法是選取您的組建專案,然後選擇 [編輯]、[環境],然後選取 [服務
-
選擇 Trust Relationships (信任關係) 標籤,然後選擇 Edit Trust Relationship (編輯信任政策)。
-
將下列內嵌政策新增至您的 IAM 角色。這將用於稍後部署您的AWS SAM基礎結構。如需詳細資訊,請參閱《IAM 使用者指南》中的新增和移除 IAM 身分許可。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateLambdaPermissions", "Effect": "Allow", "Action": [ "lambda:UpdateFunctionConfiguration" ], "Resource": [ "*" ] } ] }
設置項目構建規格
為了更新 Lambda 函數,指令碼會從建置規格讀取環境變數,以尋找 Lambda 函數的名稱、環境變數名稱和環境變數值。
若要設定您的專案建置規格
-
在 CodeBuild 主控台中,選取您的建置專案,然後選擇 [編輯] 和 [建置規格]。
-
在 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 (更新 buildspec)。
更新您的 Lambda 組態
使用 CodeBuild Python 自動更新您的 Lambda 函數的組態。
若要更新 Lambda 函數的組態
-
選擇 Start build (開始組建)。
-
建置完成後,瀏覽至您的 Lambda 函數。
-
選取組態,然後選取環境變數。您應該會看到包含索引鍵
FEATURE_ENABLED
和值的新環境變數true
。
清理您的基礎架構
若要避免您在本教學課程中使用的資源進一步收費,請刪除為 CodeBuild 專案建立的資源。
若要清理您的基礎架構
-
導覽至 CloudWatch 主控台,然後刪除與 CodeBuild 專案相關聯的 CloudWatch 記錄群組。
-
導航到 CodeBuild 控制台並通過選擇刪除構建 CodeBuild 項目刪除項目。
-
如果您為此範例建立 Lambda 函數,請選擇動作和刪除函數來清除 Lambda 函數。
擴充
如果您想要擴充此範例,以便使用 AWS CodeBuild Python 管理其他AWS資源:
-
更新 Python 腳本以使用 Boto3 修改新的資源。
-
更新與 CodeBuild 專案關聯的 IAM 角色,以取得新資源的許可。
-
將與新資源關聯的任何新環境變量添加到構建規格中。