【AWS】codepipelineをterraformで用意する
題材
github→codepipeline→ECRへイメージプッシュ→ECSへローリングアップデート
ポイント
aws_codestarconnections_connectionでgithubと接続
connectorをgithub側で忘れずに
codebuild用のs3にbuildspec.yamlを投げ込む
Ubuntuイメージだと起動が早い
IAMポリシー周り
codebuildにlogs用のIAMポリシーをつけないと、cloudwatch logsにログを吐けずエラーとなる
test-codepipeline-codebuild-role does not allow AWS CodeBuild to create Amazon CloudWatch Logs log streams for build
codebuildにs3用のIAMポリシーをつけないと、artifact(githubから引っ張ってきたソースコード)をダウンロード出来ず、エラーとなる
CLIENT_ERROR: error while downloading key
CODEBUILD_RESOLVED_SOURCE_VERSIONを使うとタグにコミットIDを利用可能
codebuildの環境変数で設定する必要ナシ
githubの表示に併せてecho $CODEBUILD_RESOLVED_SOURCE_VERSION | head -c 7と頭7文字にするのがよさげ
dockerhubのlimitにひっかかったら暫定としてpublic ecrからイメージを落とすのが吉
参考