次の Python サンプルは、Boto3
前提条件
アカウントで Lambda 関数を作成または検索します。
このサンプルは、アカウントで Lambda 関数を既に作成しており、CodeBuild を使用して Lambda 関数の環境変数を更新することを前提としています。CodeBuild を使用して Lambda 関数を設定する方法の詳細については、「CodeBuild Lambda Java で AWS SAM を使用して 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 プロジェクトを作成するには
-
AWS CodeBuild コンソール (https://console.aws.amazon.com/codesuite/codebuild/home
) を開きます。 -
CodeBuild の情報ページが表示された場合、ビルドプロジェクトを作成するを選択します。それ以外の場合は、ナビゲーションペインでビルドを展開し、[ビルドプロジェクト] を選択し、次に [Create build project (ビルドプロジェクトの作成)] を選択します。
[プロジェクト名] に、このビルドプロジェクトの名前を入力します。ビルドプロジェクトの名前は、各 AWS アカウントで一意である必要があります。また、他のユーザーがこのプロジェクトの使用目的を理解できるように、ビルドプロジェクトの説明を任意で指定することもできます。
-
[ソース] で、AWS SAM プロジェクトがあるソースリポジトリを選択します。
-
[環境] で以下の操作を行います。
-
[コンピューティング] で、[Lambda] を選択します。
-
[ランタイム] で [Python] を選択します。
-
[イメージ] で、[aws/codebuild/amazonlinux-x86_64-lambda-standard:python3.12] を選択します。
-
[サービスロール] では、[新しいサービスロール] を選択したままにします。[ロール名] を書き留めます。これは、このサンプルの後半でプロジェクトの IAM アクセス許可を更新するときに必要です。
-
-
Create build project (ビルドプロジェクトの作成)を選択します。
-
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、[ロール] を選択し、プロジェクトに関連付けられたサービスロールを選択します。CodeBuild でプロジェクトロールを見つけるには、ビルドプロジェクトを選択し、[編集]、[環境]、[サービスロール] を選択します。
-
[信頼関係] タブを選択し、続いて [信頼ポリシーの編集] を選択します。
-
IAM ロールに以下のインラインポリシーを追加します。これは、後で AWS SAM インフラストラクチャをデプロイするために使用されます。詳細については、「 IAM ユーザーガイド」の「IAM ID アクセス許可の追加および削除」を参照してください。
{ "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 -
[Update buildspec (buildspec の更新)] を選択します。
Lambda 設定を更新
CodeBuild Lambda Python を使用して、Lambda 関数の設定を自動的に更新します。
Lambda 関数の設定を更新するには
-
[Start build] を選択します。
-
ビルドが完了したら、Lambda 関数に移動します。
-
[設定] を選択してから、[環境] 変数を選択します。キー
FEATURE_ENABLED
と値true
を持つ新しい環境変数が表示されます。
インフラストラクチャをクリーンアップ
このチュートリアルで使用したリソースに対して追加料金が発生しないようにするには、CodeBuild プロジェクト用に作成されたリソースを削除します。
インフラストラクチャをクリーンアップするには
-
CloudWatch コンソールに移動し、CodeBuild プロジェクトに関連付けられている CloudWatch ロググループを削除します。
-
CodeBuild コンソールに移動し、[ビルドプロジェクトを削除] を選択して CodeBuild プロジェクトを削除します。
-
このサンプル用に Lambda 関数を作成した場合は、[アクション] および [関数を削除] を選択して Lambda 関数をクリーンアップします。
拡張子
このサンプルを拡張し、AWS CodeBuild Lambda Python を使用して他の AWS リソースを管理する場合:
-
Boto3 を使用して新しいリソースを変更するように Python スクリプトを更新します。
-
CodeBuild プロジェクトに関連付けられた IAM ロールを更新して、新しいリソースに対するアクセス許可を付与します。
-
新しいリソースに関連付けられた新しい環境変数を buildspec に追加します。