codepipeline-cdkで構築した。CodeBuildにも記載はされている。実際にはドキュメント以外にも環境変数は定義されている。イメージaws/codebuild/standard:4.0を選択した場合の結果。ドキュメントに記載さている環境変数の他に各種言語、ツールのバージョンの環境変数が定義されていることがわかる。5.4.1JAVA_11_HOME=/opt/jvm/amazon-corretto-11JAVA_8_HOME=/usr/lib/jvm/java-1.8.0-amazon-correttoJAVA_HOME=/opt/jvm/amazon-corretto-11JDK_11_HOME=/opt/jvm/amazon-corretto-11JDK_8_HOME=/usr/lib/jvm/java-1.8.0-amazon-correttoJDK_DOWNLOAD_SHA256=4cc9e65e6e3d036b18cfd5fd6c7843d48244e44a60350f7e45036f4825bd3812JDK_DOWNLOAD_TAR=java-11-amazon-corretto-jdk.tarJDK_HOME=/opt/jvm/amazon-corretto-11JRE_11_HOME=/opt/jvm/amazon-corretto-11JRE_8_HOME=/usr/lib/jvm/java-1.8.0-amazon-corretto/jreJRE_HOME=/opt/jvm/amazon-corretto-11MAVEN_DOWNLOAD_SHA512=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0MAVEN_HOME=/opt/mavenMAVEN_OPTS=-Dmaven.wagon.httpconnectionManager.maxPerRoute=2MAVEN_VERSION=3.6.3NODE_10_VERSION=10.19.0NODE_12_VERSION=12.16.1NUGET_XMLDOC_MODE=skipN_SRC_DIR=/usr/src/nOLDPWD=/codebuild/readonlyPATH=/root/.phpenv/shims:/root/.phpenv/bin:/root/.goenv/shims:/root/.goenv/bin:/go/bin:/root/.phpenv/shims:/root/.phpenv/bin:/root/.pyenv/shims:/root/.pyenv/bin:/root/.rbenv/shims:/usr/local/rbenv/bin:/usr/local/rbenv/shims:/root/.dotnet/:/root/.dotnet/tools/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/tools:/usr/local/android-sdk-linux/tools:/usr/local/android-sdk-linux/tools/bin:/usr/local/android-sdk-linux/platform-tools:/codebuild/user/binPHP_73_VERSION=7.3.13PHP_74_VERSION=7.4.1POWERSHELL_DOWNLOAD_SHA=E8287687C99162BF70FEFCC2E492F3B54F80BE880D86B9A0EC92C71B05C40013POWERSHELL_DOWNLOAD_URL=https://github.com/PowerShell/PowerShell/releases/download/v6.2.1/powershell-6.2.1-linux-x64.tar.gzPOWERSHELL_VERSION=6.2.1PWD=/codebuild/output/src993565028/src/github.com/HeRoMo/codepipeline-cdkPYTHON_37_VERSION=3.7.6PYTHON_38_VERSION=3.8.1PYTHON_PIP_VERSION=19.3.1RBENV_SRC_DIR=/usr/local/rbenvRUBY_26_VERSION=2.6.5RUBY_27_VERSION=2.7.0RUBY_BUILD_SRC_DIR=/usr/local/rbenv/plugins/ruby-buildSBT_VERSION=1.2.8SRC_DIR=/usr/srcCodePipelineから実行した場合CodePipelineに組み込まれたCodeBuildではソースはCodePipelineからアーティファクト経由で渡されるのでCODEBUILD_SOURCE_REPO_URLは定義されていない。CODEBUILD_INITIATORの値がトリガーしたCodePipelineの名前になっている。5.4.1JAVA_11_HOME=/opt/jvm/amazon-corretto-11JAVA_8_HOME=/usr/lib/jvm/java-1.8.0-amazon-correttoJAVA_HOME=/opt/jvm/amazon-corretto-11JDK_11_HOME=/opt/jvm/amazon-corretto-11JDK_8_HOME=/usr/lib/jvm/java-1.8.0-amazon-correttoJDK_DOWNLOAD_SHA256=4cc9e65e6e3d036b18cfd5fd6c7843d48244e44a60350f7e45036f4825bd3812JDK_DOWNLOAD_TAR=java-11-amazon-corretto-jdk.tarJDK_HOME=/opt/jvm/amazon-corretto-11JRE_11_HOME=/opt/jvm/amazon-corretto-11JRE_8_HOME=/usr/lib/jvm/java-1.8.0-amazon-corretto/jreJRE_HOME=/opt/jvm/amazon-corretto-11MAVEN_DOWNLOAD_SHA512=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0MAVEN_HOME=/opt/mavenMAVEN_OPTS=-Dmaven.wagon.httpconnectionManager.maxPerRoute=2MAVEN_VERSION=3.6.3NODE_10_VERSION=10.19.0NODE_12_VERSION=12.16.1NUGET_XMLDOC_MODE=skipN_SRC_DIR=/usr/src/nOLDPWD=/codebuild/readonlyPATH=/root/.phpenv/shims:/root/.phpenv/bin:/root/.goenv/shims:/root/.goenv/bin:/go/bin:/root/.phpenv/shims:/root/.phpenv/bin:/root/.pyenv/shims:/root/.pyenv/bin:/root/.rbenv/shims:/usr/local/rbenv/bin:/usr/local/rbenv/shims:/root/.dotnet/:/root/.dotnet/tools/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/tools:/usr/local/android-sdk-linux/tools:/usr/local/android-sdk-linux/tools/bin:/usr/local/android-sdk-linux/platform-tools:/codebuild/user/binPHP_73_VERSION=7.3.13PHP_74_VERSION=7.4.1POWERSHELL_DOWNLOAD_SHA=E8287687C99162BF70FEFCC2E492F3B54F80BE880D86B9A0EC92C71B05C40013POWERSHELL_DOWNLOAD_URL=https://github.com/PowerShell/PowerShell/releases/download/v6.2.1/powershell-6.2.1-linux-x64.tar.gzPOWERSHELL_VERSION=6.2.1PWD=/codebuild/output/src027937492/srcPYTHON_37_VERSION=3.7.6PYTHON_38_VERSION=3.8.1PYTHON_PIP_VERSION=19.3.1RBENV_SRC_DIR=/usr/local/rbenvRUBY_26_VERSION=2.6.5RUBY_27_VERSION=2.7.0RUBY_BUILD_SRC_DIR=/usr/local/rbenv/plugins/ruby-buildSBT_VERSION=1.2.8SRC_DIR=/usr/srcこの場合も基本的にCodeBuild内で設定されている環境変数は変わらない。NatGatewayの利用CodeBuildからインターネット側にアクセスする際にIPアドレスを固定できるのか?接続先のサーバがIP接続元のIPアドレスで制限をかけている場合には必要となると思う。VPC内に作り、プライベートなサブネットに入れる場合、デフォルトルートがNatGatewayになっていれば、そこからインターネット側に出ていくようだ。buildフェーズのみ定義したbuildspec.yamlを実行する。'https://api.ipify.org?format=json'その結果は次の様になり、buildspec.yamlにないフェーズについても出力されている。渡してやると環境変数をビルドのトリガーから追加してやることができる。Eventが追加される。この通りWebConsoleから作ってもできるのであろう。sort結果は次の通り。トリガーから追加した環境変数が出力されている。CodeBuildで示されているパラメータは同様に上書きや設定が可能だと思われる。イベントを例えばLambdaで受けると次のイベントオブエジェクトがハンドラーの引数として渡される。CodeBuildプロジェクトのARNを指定するのかと思いきや、どうやら個々のビルド実行に付与されるARNっぽい。実行のたびに毎回変わるARNをどうやって設定するのがわからない。ビルド実行の固有値の部分を*にしてみたがダメだった。Chatbotとの連携つぎの記事を読んで、Slackに通知できそうなのでやってみた。通知受け取りが開始にフルフルに出力する設定にすると次の通り通知が来る。buildspec.yamlに定義していないPhaseのものも通知される。通知の内容をカスタマイズできないのが不便。最低限の通知はできる。awscodestarnotifications-ruleという名前のルールが作成される。]}通知先としてはSNSトピックとChatbotを選択できる。SNSトピックを通知先に選択して、そのトピックをChatbotに関連付けてもSlackに通知は届かなかった。):というログが出ている。Event]->[Notifications]->[SNS]->[Chatbot]という連携になるようだ。[Notifications]というのがイベントを調整してくれるようだ。