_を使用 CodeDeploy エージェントを使用してローカル マシン上のデプロイ パッケージを検証する - AWS CodeDeploy

_を使用 CodeDeploy エージェントを使用してローカル マシン上のデプロイ パッケージを検証する

の使用 CodeDeploy ログインしているインスタンスにコンテンツをデプロイできます。これにより、デプロイ時に使用予定のアプリケーション仕様ファイル (AppSpec file) とデプロイ予定のコンテンツの整合性を検証することができます。

アプリケーションおよびデプロイグループを作成する必要はありません。ローカルインスタンス上に保存されているコンテンツをデプロイする上で、AWS アカウントは必要ありません。最も簡単なテストでは、 codedeploy-local オプションを指定せずに、 AppSpec file 導入するコンテンツがわかります。このツールには、他のテストケースのオプションが含まれています。

ローカルマシン上のデプロイパッケージを検証することで、以下を行うことができます。

  • アプリケーションリビジョンの整合性の検証。

  • のコンテンツの検証。AppSpec file.

  • 既存のアプリケーションコードを使用した CodeDeploy の初回実行。

  • コンテンツの迅速なデプロイ (インスタンスにすでにログインしている場合)。

ローカルインスタンス、またはサポートされているリモートリポジトリタイプ (Amazon S3 バケットまたはパブリックの GitHub リポジトリ) 上に保存されているコンテンツをデプロイできます。

Prerequisites

ローカルのデプロイを開始する前に、以下の手順を行います。

  • によってサポートされるインスタンス タイプを作成または使用する CodeDeploy エージェント。詳細については、「」を参照してください。エージェントでサポートされているオペレーティングシステムCodeDeploy.

  • バージョン 1.0.1.1352 以降の CodeDeploy エージェントをインストールします。詳細については、「」を参照してください。CodeDeploy エージェントのインストール.

  • バケットや GitHub リポジトリからコンテンツをデプロイする場合は、Amazon S3 で使用する IAM ユーザーをプロビジョニングします。CodeDeploy. 詳細については、「」を参照してください。ステップ 1: ユーザーのプロビジョニングIAM.

  • アプリケーションリビジョンを Amazon S3 バケット、作成 Amazon S3 作業している地域のバケットに Amazon S3 バケットポリシーをバケットに このポリシーでは、アプリケーションリビジョンをダウンロードするために必要なアクセス許可をインスタンスに付与します。

    たとえば、次の Amazon S3 バケットポリシーでは、 Amazon EC2 添付されたインスタンス IAM ARNを含むインスタンス プロファイル arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo からダウンロードできます。 Amazon S3 バケット名 codedeploydemobucket:

    { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo" ] } } ] }

    以下 Amazon S3 バケットポリシーでは、関連する IAM ARNを含むユーザー arn:aws:iam::80398EXAMPLE:user/CodeDeployUser からダウンロードできます。 Amazon S3 バケット名 codedeploydemobucket:

    { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:user/CodeDeployUser" ] } } ] }

    生成および添付方法に関する情報は、 Amazon S3 バケットポリシー、参照 バケットポリシーの例.

  • アプリケーションリビジョンを Amazon S3 バケットまたはGitHubリポジトリでIAMインスタンスプロファイルを設定し、インスタンスに添付します。詳細については、以下を参照してください。 ステップ 4. のIAMインスタンスプロファイルを作成します Amazon EC2 インスタンス用の Amazon EC2 インスタンスを作成する (CodeDeploy または AWS CLI コンソール)Amazon EC2、および 作成 Amazon EC2 インスタンス対象: CodeDeploy (AWS CloudFormation テンプレート).

  • GitHub からコンテンツをデプロイする場合は、GitHub アカウントおよびパブリックリポジトリを作成します。GitHubアカウントを作成するには、以下を参照してください。 GitHubに参加する. GitHubリポジトリを作成するには、以下を参照してください。 レポの作成.

    注記

    プライベートリポジトリは、現在サポートされていません。プライベートの GitHub リポジトリにコンテンツが保存されている場合は、インスタンスにダウンロードし、--bundle-location オプションでローカルパスを指定します。

  • インスタンスにデプロイするコンテンツ (AppSpec ファイルなど) を準備し、Amazon S3 バケットまたは GitHub リポジトリのローカルインスタンスに配置します。詳細については、「」を参照してください。のアプリケーション リビジョンでの作業 CodeDeploy.

  • 他の構成オプションにデフォルト以外の値を使用する場合は、構成ファイルを作成してインスタンス(/etc/codedeploy-agent/conf/codedeployagent.yml 用 Amazon Linux、 RHEL、または Ubuntu Server インスタンスまたは C:\ProgramData\Amazon\CodeDeploy\conf.yml 用 Windows Server インスタンス)。詳細については、「」を参照してください。CodeDeploy エージェント構成リファレンス.

    注記

    設定ファイルを Amazon Linux、 RHEL、または Ubuntu Server インスタンス、次のいずれかが必要です。

    • _を使用 :root_dir: および :log_dir: 配置ルートおよびログ ディレクトリ フォルダのデフォルト以外の場所を指定する変数。

    • 使用 sudo 実行するには CodeDeploy エージェントコマンド。

ローカル展開の作成

ローカルデプロイメントを作成するインスタンスで、ターミナルセッションを開きます(Amazon Linux、 RHEL、または Ubuntu Server またはコマンドプロンプト(Windows Server)をクリックして、ツールコマンドを実行します。

注記

は、 codedeploy-local コマンドは次の場所にインストールされます。

  • オン Amazon Linux、 RHEL、または Ubuntu Server: /opt/codedeploy-agent/bin.

  • の場合Windows Server: C:\ProgramData\Amazon\CodeDeploy\bin.

基本コマンド構文

codedeploy-local [options]

概要

codedeploy-local [--bundle-location <value>] [--type <value>] [--file-exists-behavior <value>] [--deployment-group <value>] [--events <comma-separated values>] [--agent-configuration-file <value>]

Options

-l--バンドルの場所

アプリケーションリビジョンバンドルの場所。場所を指定しない場合は、現在作業中のディレクトリがデフォルトで使用されます。 に値を指定する場合、--bundle-location の値も指定する必要があります。--type.

バンドルの場所を表す形式の例を以下に示します。

  • ローカル Amazon Linux、 RHEL、または Ubuntu Server インスタンス: /path/to/local/bundle.tgz

  • ローカル Windows Server インスタンス: C:/path/to/local/bundle

  • Amazon S3 バケット s3://mybucket/bundle.tar

  • GitHub リポジトリ: https://github.com/account-name/repository-name/

-t--タイプ

アプリケーションリビジョンバンドルの形式。サポートされているタイプは次のとおりです。 tgztarzip、および directory。 タイプを指定しない場合、ツールでは directory 初期設定です。 に値を指定する場合、--type の値も指定する必要があります。--bundle-location.

-b--ファイル-存在-動作

デプロイのターゲット場所に存在しているが、デプロイが正常に完了していないファイルを処理する方法について説明します。オプションには DISALLOW、OVERWRITE、RETAIN などがあります。詳細については、以下を参照してください。 fileExistsBehavior というファイルが存在する () AWS CodeDeploy API Reference.

-g--デプロイ-グループ

デプロイされるコンテンツのターゲット場所を示すフォルダへのパス。フォルダを指定しない場合、ツールによって デフォルト-ローカル-展開-グループ 配置ルートディレクトリ内。ツールでは、作成する各ローカル デプロイメントに対して、このフォルダ内に次のような名前のサブディレクトリを作成します。 d-98761234-ローカル.

-e 氏--イベント

上書きライフサイクルのイベントフックセット。 に表示されているイベントの代わりに、順番に実行されます。AppSpec file. フックが複数ある場合は、カンマ区切りで指定できます。このオプションは以下の場合に使用できます。

  • をアップデートせずに、異なるイベントのセットを実行する場合。AppSpec file.

  • の例外として、単一のイベントフック (AppSpec file など) を実行する場合。ApplicationStop.

指定しない場合 バンドルのダウンロード および インストール イベントは、指定したすべてのイベント フックの前に実行されます。以下を含める場合 バンドルのダウンロード および インストール のリストで --events オプションは、通常は実行前に実行されるイベントの前にのみ追加する必要があります。 CodeDeploy 展開。詳細については、「」を参照してください。AppSpec「hooks」セクション.

-c(c)--agent-configuration-file(エージェント設定ファイル)

デプロイに使用する設定ファイルの場所 (デフォルト以外の場所に設定ファイルを保存している場合)。設定ファイルは、デプロイ向けに別のデフォルト値および動作を指定します。

デフォルトでは、構成ファイルは /etc/codedeploy-agent/conf/codedeployagent.yml (Amazon Linux、 RHEL、または Ubuntu Server インスタンス) または C:/ProgramData/Amazon/CodeDeploy/conf.yml (Windows Server)。詳細については、「」を参照してください。CodeDeploy エージェント構成リファレンス.

-h--ヘルプ

ヘルプコンテンツの概要を表示します。

‐v--バージョン

ツールのバージョン番号を表示します。

Examples

有効なコマンド形式の例を以下に示します。

codedeploy-local
codedeploy-local --bundle-location /path/to/local/bundle/directory
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group
codedeploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group

からバンドルをデプロイする:Amazon S3:

codedeploy-local --bundle-location s3://mybucket/bundle.tgz --type tgz
codedeploy-local --bundle-location s3://mybucket/bundle.zip?versionId=1234&etag=47e8 --type zip --deployment-group my-deployment-group

パブリック GitHub リポジトリからバンドルをデプロイする:

codedeploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/1a2b3c4d --type zip

複数のライフサイクルイベントを指定するバンドルをデプロイする:

codedeploy-local --bundle-location /path/to/local/bundle.tar --type tar --application-folder my-deployment --events DownloadBundle,Install,ApplicationStart,HealthCheck

ApplicationStop ライフサイクルイベントを使用して、以前にデプロイされたアプリケーションを停止する:

codedeploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group --events ApplicationStop

特定のデプロイグループ ID を使用してデプロイする:

codedeploy-local --bundle-location C:/path/to/local/bundle/directory --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca