byClassmethod検索AWSAlexaモバイルビッグデータサーバーレスTableauAlteryxイベントFargateのApacheコンテナの環境変数デバッグ方法FargateDocker2019年03月29日かずえ(25)55やることこんにちは。大阪オフィスのかずえです。execでホストインスタンスに入ってゴニョゴニョすることができないので、デバッグが少し大変だったりします。【祝!】FargateでもECSにごっつ簡単に環境変数に機密情報を渡せるようになりました!上記エントリにもある通り、Fargateでも環境変数の参照元としてパラメータストアを簡単に使えるようになっております。SecureStringタイプを使えば機密情報も登録可能です。簡単&便利なので皆さんご利用されることをオススメします。今回は、この環境変数がちゃんと登録できているかコンテナ内で確認したい、という話です。execが使えれば楽なのですが、Fargateなので使えません。前述のエントリではPHPを使っての確認方法が紹介されています。全てのコンテナでphpやruby等が使えるわけではありません。「Apacheコンテナ、ワイはどうすればええんや。」ということでApacheコンテナでの環境変数値の確認方法をご紹介します。方針Apacheではアクセスログに環境変数値を出力することができます。Logsに転送し確認します。APACHE_ENV_TEST1とAPACHE_ENV_TEST2という環境変数の中身を確認することとします。デフォルトのconfファイルの取得まずは素のApacheからデフォルトのconfファイルを取得します。./httpd.confの編集デフォルトから3個所変更します。ディレクティブを使います。複数個の変数を記述する場合は、変数名の間に半角スペースを入れます。含まれたLogFormat作成LogFormatディレクティブ内で%{(環境変数名)}eと書くと、その位置に環境変数値を埋め込むことができます。common-plus-envCustomLogディレクティブで上記LogFormat使う上記LogFormatを使うように設定します。/usr/local/apache2/conf/httpd.confDockerfileと同階層に先ほど編集したconfファイルを置いて下さい。apache-env-testコンテナ作成-eで環境変数を宣言できます。APACHE_ENV_TEST1にlocal、APACHE_ENV_TEST2にdayoを定義しています。アクセスコンソールにアクセスログが表示されます。各行末尾に環境変数値が出力されているのが確認できます。タスク定義で環境変数を設定ECRにイメージをプッシュした後、タスク定義でそのイメージを使用します。コンテナの編集の環境変数欄にて、環境変数を定義します。APACHE_ENV_TEST1にfargate、APACHE_ENV_TEST2にyadeを定義しています。上記はパラメータストアを使わないやり方です。パラメータストアを利用する方法は、環境変数値を確認するという本エントリ内容とは直接関係ないので割愛しました。パラメータストアを利用する場合はこちらなどを参考にしてみてください。ログドライバーでawslogsが設定されていることも確認しておきましょう。各行末尾に先ほどタスク定義で指定した環境変数値が記録されています。256,981かずえは苗字です。