🐳
CodeCommitのトリガーからCodeBuildを起動
CodePipelineを使えばいいのでは?となりそうですが、CodePipelineの月額1ドルも節約したい時の話です。
前提
サービス | 項目 | 設定値 |
---|---|---|
CodeCommit | リポジトリ名 | sample_repo |
CodeBuild | ビルドプロジェクト名 | sample_build |
IAMの作成
Lambdaでの実行ロールを作成します。次のポリシーをアタッチした、IAMを作成します。
- AWSCodeBuildDeveloperAccess
- AWSLambdaBasicExecutionRole
Lambdaの作成
作成したIAMを指定してLambdaを作成します。
Lambdaのトリガーを作成します。今回はブランチをプッシュした際に起動するようにしておきます。
lambda_function.py
import boto3
def lambda_handler(event, context):
print("start build")
client = boto3.client('codebuild')
client.start_build(projectName='sample_build')
return 0
まとめ
lambdaが動かせるので、単にAWS SDKを使って起動しました。
Discussion