概要
- 前任者が構成したAWS環境を確認していて、「CodeBuildの環境変数が設定されていないのに、ビルド履歴では環境変数がある...あれ、どこで設定してあるの!?」となったので、その問題の答えを備忘を兼ねて記します。
結論
- CodePipelineからCodeBuildの環境変数がされていました。CodeBuildの方をいくら見ても見つからないわけです。
- 以下リンクに詳しく記載がありますが、環境変数は以下のどちらでも設定ができます。今回は下記のうち、CodePipelineの方から設定されていたのでした。
- CodePipeline
- CodeBuild
- 参考:CodePipelineからCodeBuildの環境変数が設定できるようになりました!
CodePipelineからCodeBuildの環境変数が設定ができる(2019/4-)
- CodePipelineからCodeBuildの環境変数が設定ができるようになったのは、2019年10月から。以下がAWS公式サイトのアップデート案内です。
パイプラインで CodeBuild のビルドジョブの環境変数を設定できるようになりました。これまでパイプラインのビルドジョブでは、ビルドプロジェクトの設定や buildspec ファイルで定義された環境変数のみを使用可能でした。今後は、別の環境やステージでビルドする場合でも、CodePipeline から直接、環境変数を設定できます。同じビルドプロジェクトを複数のアクションで再利用できるようになり、パイプラインのステージング環境や本番環境に向けたデプロイが簡略化されました。また、パイプラインの実行履歴から、ビルドで使用された環境変数やその他のアクション設定の詳細をすべて確認できます。
- つまり、以下のような変化・メリットがあるということですね。
- 従来:環境ごとにCodeBuildプロジェクトを用意し、そのCodeBuildで環境変数を設定する必要があった(=環境変数が環境ごとに必要だった)
- アップデート後:CodePipelineのCodeBuildに環境変数を設定し、このCodeBuildを汎用的に使い回すことができるようになった(=環境変数が複数環境で使えるようになった)
- そんな方法があったのか...知らなかった。
確認方法(設定手順)
- 実際の手順は以下の通りです。
- CodePipeline→CodeBuildがプロジェクトに入っている該当のパイプラインをクリック
- 右上の「編集」のボタンをクリック
- CodeBuildの右上にある「ステージを編集する」をクリック
- 以下の画像のように、鉛筆の編集マークが出てくるので、そこをクリック
- 「環境変数 - オプショナル」のところで設定・追加が可能です。
- これから設定する場合は「環境変数の追加」をクリックします
- コンソール画面上ではこんな形になります。
CodePipelineのCodeBuild
CodeBuild
↓
↓
↓
-
こちらには何も設定されていません。当然、Pipeline側で設定しているからですね。
-
ということで、くれぐれも「あれ、CodeBuildには環境変数が設定されていないのに!?」とならないように...どなたかの一助になればと思います(自分で設定していれば問題ないのでしょうが、他の方が構成したものを触るという機会はエンジニアは誰しもあると思いますので...)