CodeDeploy AWS デプロイ システムを使用してCodeshipを介して Amazon Web Serviceに自動的にデプロイされる Node.js アプリケーションがあります。
展開プロセス中に、現在実行中の Web アプリケーションを停止するようにappspec.ymlに設定しました。デプロイが完了したら、Web アプリケーションを再度起動したいと考えています。
os: linux
files:
- source: /
destination: /var/www/app2
hooks:
AfterInstall:
- location: bash_scripts/stop_forever.sh
runas: ec2-user
ApplicationStart:
- location: bash_scripts/start_forever.sh
runas: ec2-user
ただし、展開中にこれらのスクリプトのいずれかを appspec.yml ファイルから正常に呼び出すことができませんでした。
AWS 展開エージェント ログに表示されている現在のエラーは次のとおりです。
Error CodeScriptMissing
Script Name /var/scripts/stop_forever.sh
MessageScript does not exist at specified location: /var/scripts/stop_forever.sh
Log TailLifecycleEvent - ApplicationStop
これは、これらのスクリプトを別の場所で実行しようとしていた古いバージョンの appspec.yml ファイルを参照しているようです。デプロイされたパッケージの appspec.yml ファイルの内容を変更しましたが、このエラー メッセージはデプロイごとに同じままです。
上記の appspec.yml ファイルに加えて、次の変更も試みました。
- 各フックのrunasパラメーターをリストしない
- デプロイされたディレクトリ内のスクリプトを参照する
- デプロイされたディレクトリ外のスクリプトを参照する
- バージョンパラメータを最初に0.0に設定する
残念ながら、appspec.yml のトラブルシューティングに関しては、 AWS のドキュメントを除いて、オンラインにはほとんどありません。
私が間違っている非常に明白なことは何ですか?