CodeDeploy を使用して Node.js アプリを EC2 にデプロイしています。認証情報を AWS Systems Manager、Parameter Store 内に保存していますが、これらをアプリケーションに公開する方法が見つかりません。
プロセス管理に PM2 を使用しています。ターゲット マシンのパラメータ ストアからパラメータを正常に取得できるため、権限の問題はありません。例えば:
aws ssm get-parameters --region us-east-1 --names LOCAL_CACHE_PATH --with-decryption --query Parameters[0].Value`
...正しい文字列を正常に返します。applicationStart.sh
これをCodeDeploy ファイルで使用して、アプリを起動しようとしました。
#!/bin/bash
export LOCAL_CACHE_PATH=$(aws ssm get-parameters --region us-east-1 --names LOCAL_CACHE_PATH --with-decryption --query Parameters[0].Value)
pm2 start ecosystem.config.js --env production
LOCAL_CACHE_PATH
undefined
にアクセスするとアプリに返されますprocess.env.LOCAL_CACHE_PATH
。
そのため、環境変数はスクリプト内で使用できますがapplicationStart.sh
、アプリがそのスクリプトから開始されると未定義になります。
CodeDeploy で Parameter Store の環境変数を使用するための推奨されるアプローチを探しています。
同様のトピックに関する文字通り数十の投稿を読みましたが、解決できません。ガイダンスに感謝します。