【AWS】codepipelineをterraformで用意する
題材
github→codepipeline→ECRへイメージプッシュ→ECSへローリングアップデート
ポイント
aws_codestarconnections_connectionでgithubと接続
connectorをgithub側で忘れずに
https://qiita.com/yoyoyo_pg/items/91ae1c67d43fb3313e0d
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文字にするのがよさげ
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/build-env-ref-env-vars.html
dockerhubのlimitにひっかかったら暫定としてpublic ecrからイメージを落とすのが吉
You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
参考
https://zenn.dev/nicopin/books/58c922f51ea349/viewer/e4527e
https://zenn.dev/proyogram/articles/a16cce4d1c900f