入力および出力アーティファクト
CodePipeline は、デベロッパーツールと統合され、コードの変更をチェックし、継続的デリバリープロセスのすべてのステージを経て構築およびデプロイします。アーティファクトは、パイプライン内のアクションによって処理されるファイルであり、アプリケーションコードが含まれるファイルやフォルダ、インデックスページファイル、スクリプトなどが該当します。例えば、Amazon S3 ソースアクションアーティファクトは、アプリケーションソースコードファイルがパイプラインソースアクションに提供されるファイル名 (またはファイルパス) です。ファイルは、アーティファクト名の例 SampleApp_Windows.zip のように ZIP ファイルとして提供されます。ソースアクションの出力アーティファクトであるアプリケーションソースコードファイルは、アクションからの出力アーティファクトであり、ビルドアクションなどの次のアクションの入力アーティファクトでもあります。別の例として、ビルドアクションは、入力アーティファクトのアプリケーションソースコード (アプリケーションソースコードファイル) をコンパイルするビルドコマンドを実行することがあります。CodeBuild アクションの AWS CodeBuild ビルドおよびテストアクションリファレンス など、アーティファクトパラメータの詳細については、特定のアクションのアクション設定リファレンスページを参照してください。
アクションは、パイプラインの作成時に選択した Amazon S3 アーティファクトバケットに保存されている入力アーティファクトと出力アーティファクトを使用します。CodePipeline は、ステージのアクションタイプに応じて、入力または出力アーティファクトのファイルを zip して転送します。
注記
アーティファクトバケットは、ソースアクションとして S3 が選択されているパイプラインのソースファイルの場所として使用されるバケットとは異なります。
例えば:
-
CodePipeline は、ソースリポジトリへのコミットがあるときにパイプラインをトリガーして実行し、ソース ステージからの出力アーティファクト (構築されるすべてのファイル) を提供します。
-
前のステップの出力アーティファクト (ビルドする任意のファイル) は、ビルドステージに入力アーティファクトとして取り込まれます。ビルドステージからの出力アーティファクト (ビルドされたアプリケーション) は、更新されたアプリケーションまたは更新された Docker イメージ (コンテナへのビルド済み) である場合があります。
-
前のステップの出力アーティファクト (ビルドされたアプリケーション) は、デプロイステージ (AWS クラウド のステージング環境や本稼働環境など) に入力アーティファクトとして取り込まれます。アプリケーションをデプロイのフリートにデプロイすることも、ECS クラスターで実行するタスクにコンテナベースのアプリケーションをデプロイすることもできます。
アクションを作成または編集するときは、アクションの入力および出力アーティファクトを指定します。例えば、ソースステージとデプロイステージを含む 2 ステージのパイプラインに対し、[アクションの編集] で、デプロイアクションの入力アーティファクトに対するソースアクションのアーティファクト名を選択します。
-
コンソールを使用して最初のパイプラインを作成すると、CodePipeline では同じ AWS アカウント と AWS リージョン に Amazon S3 バケットを作成し、すべてのパイプライン項目を保存します。コンソールを使用して、そのリージョンに別のパイプラインを作成するたびに、CodePipeline はバケット内にそのパイプライン用のフォルダを作成します。このフォルダを使用して、自動リリースプロセスの実行時にパイプラインのアイテムを格納します。このバケットは、codepipeline-
region-12345EXAMPLEという名前です。ここでregionはパイプラインを作成した AWS リージョンで、12345EXAMPLEはバケット名が一意になるようにする 12 桁の乱数です。注記
パイプラインを作成しているリージョンに codepipeline-region- で始まるバケットがすでにある場合、CodePipeline はそれをデフォルトのバケットとして使用します。また、辞書式順序に従います。例えば、codepipeline-region-abcexample は、codepipeline-region-defexample の前に選択されます。
CodePipeline はアーティファクト名を切り捨てます。これにより、一部のバケット名が類似しているように見える可能性があります。アーティファクト名が切り詰められたように見えても、CodePipeline は、名前が切り詰められたアーティファクトに影響されない方法でアーティファクトバケットにマッピングします。パイプラインは正常に動作します。これは、フォルダやアーティファクトでは問題となりません。パイプライン名には 100 文字の制限があります。アーティファクトフォルダ名は、短縮されたように見えても、パイプラインに対して依然として一意です。
パイプラインを作成または編集する場合は、パイプライン AWS アカウント と AWS リージョン にアーティファクトバケットが必要です。また、アクションを実行する予定のリージョンごとに 1 つのアーティファクトバケットが必要です。コンソールを使用してパイプラインまたはクロスリージョンアクションを作成する場合は、アクションの作成先のリージョンにデフォルトのアーティファクトバケットが CodePipeline によって設定されます。
AWS CLI を使用してパイプラインを作成する場合、そのバケットがパイプラインと同じ AWS アカウント と AWS リージョン にある限り、そのパイプラインのアーティファクトを任意の Amazon S3 バケットに保存できます。アカウントに許可されている Amazon S3 バケットの制限を超えることが懸念される場合は、これを行うことができます。AWS CLI を使用してパイプラインを作成または編集し、クロスリージョンアクション (パイプラインとは異なるリージョンにある AWS プロバイダーのアクション) を追加する場合は、アクションを実行する予定の追加のリージョンごとにアーティファクトバケットを指定する必要があります。
-
すべてのアクションには種類があります。種類に応じて、アクションは次のいずれかまたは両方を持つ場合があります。
-
アクションが実行されている間に消費または動作するアーティファクトである入力アーティファクト。
-
アクションの出力である出力アーティファクト。
パイプラインの各出力アーティファクトには一意の名前が必要です。アクションのすべての入力アーティファクトは、そのアクションがステージのアクションの直前であるか、あるいはいくつか前のステージで実行されているかどうかにかかわらず、パイプラインの以前のアクションの出力アーティファクトと一致していなければなりません。
アーティファクトは、複数のアクションによって処理することができます。
-