コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

CodeDeployのコマンドとやっていることのうちわけと手動実行

備忘メモ

CodeDeployの実行コマンドのうちわけ

Code Deployで行うのは aws deploy pushaws deploy create-deployment の2つのコマンドを実行して行う。

おおまかにいうと push のほうで…

  • コマンドが実行されたカレントディレクトリをzip化する
  • そのzipをS3にアップロードしてリビジョン紐付けをする
  • 直ぐに実行できるように、オプション付きの create-deployment のコマンドを出力する

を行い、出力したコマンドを打つとCode Deployが実行されるという仕組みになっている。

手動実行する

aws deploy push \
--region=ap-northeast-1 \
--application-name sampleapp  \
--no-ignore-hidden-files  \
--s3-location s3://sampleapp-deployment/{ユニークになるような文字列}

aws deploy push \
--region=ap-northeast-1 \
--application-name sampleapp  \
--no-ignore-hidden-files  \
--s3-location s3://sampleapp-deployment/demopush01

実行するとこんな感じのコードで出力されます

$ aws deploy push \
> --region=ap-northeast-1 \
> --application-name sampleapp  \
> --no-ignore-hidden-files  \
> --s3-location s3://sampleapp-deployment/demopush01
To deploy with this revision, run:
aws deploy create-deployment --application-name sampleapp --s3-location bucket=sampleapp-deployment,key=demopush01,bundleType=zip,eTag=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-4 --deployment-group-name <deployment-group-name> --deployment-config-name <deployment-config-name> --description <description>

出力結果をコピーして < > で囲われている部分を編集します。

aws deploy create-deployment --application-name sampleapp \ 
--s3-location bucket=sampleapp-deployment,key=demopush01,bundleType=zip,eTag=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-4 \
--deployment-group-name master \
--description "demo release" 
# --deployment-config-name は元のdeployment-groupの設定に従うので削除

上記のようなコマンドを打つと、以下のようになります。

$ aws deploy create-deployment --application-name sampleapp \
> --s3-location bucket=sampleapp-deployment,key=demopush01,bundleType=zip,eTag=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-4 \
> --deployment-group-name master \
> --description "demo release" 
{
    "deploymentId": "d-Y71ZZZZZ"
}

deploymentIdが発行されるので、あとはCodeDeploy側の画面を見ながら進むのを待ちます。

参考リンク

CodeDeploy pushコマンドは裏で何をやっている? | DevelopersIO