概要
CodeDeployのデプロイで使うappspec.ymlの項目をちょっとだけ簡単に解説してみる。
対象のファイル
appspec.yml
version: 0.0
os: linux
files:
- source: ./
destination: /var/www/html/test
file_exists_behavior: OVERWRITE
hooks:
ApplicationStop:
- location: scripts/application_stop.sh
timeout: 60
runas: root
BeforeInstall:
- location: scripts/before_install.sh
timeout: 60
runas: root
AfterInstall:
- location: scripts/after_install.sh
timeout: 60
runas: root
ApplicationStart:
- location: scripts/application_start.sh
timeout: 60
runas: root
ValidateService:
- location: scripts/validate_service.sh
timeout: 60
runas: root
キー | 内容の概要 | 備考 |
---|---|---|
version | appspec.ymlそのものの内容 | 初めて作ったときは0.0を記載 |
os | 動作OSを記載 | 今回はAmazonLinux用なのでlinuxと記載 |
files | デプロイするファイルの設定 | |
┗ - source | デプロイ元となるコードの階層指定 | Githubで管理されているリポジトリのルートがデプロイルートの場合./ になる |
┗ destination | デプロイ先ディレクトリ指定 | EC2インスタンスのどこのディレクトリに- source で指定したファイル群を設置するのかを指定する |
file_exists_behavior | インスタンス内のファイルのふるまい設定 |
OVERWRITE とすることで上書きしてデプロイが可能 |
hooks | デプロイ時の詳細な命令郡 | |
┗ ApplicationStop | デプロイの最も最初に実行される処理郡 | サーバー停止処理などを記載 |
┗ BeforeInstall | コード取得直前に実行される処理郡 | キャッシュ削除やクリーンアップ処理などを記載 |
┗ AfterInstall | コード取得直後に実行される処理郡 | 関連パッケージの取得やサービスの初期化処理などを記載 |
┗ ApplicationStart | アプリケーション起動のための処理群 | サーバー起動処理などを記載 |
┗ ValidateService | デプロイの最も最後に実行される処理群 | ヘルスチェック処理などを記載 |
上記の各hooks内部の要素を簡単に下記に記載する。
-
location
: スクリプトファイルを指定 -
timeout
: 当該hooksのタイムアウトを指定 -
runas
: スクリプト実行時のユーザー指定
参考文献