CodePipeline でパイプラインを作成する - AWS CodePipeline

CodePipeline でパイプラインを作成する

AWS CodePipeline コンソールまたは AWS CLI を使用してパイプラインを作成できます。パイプラインには少なくとも 2 つのステージが必要です。パイプラインの第 1 ステージは、ソースステージである必要があります。パイプラインには、ビルドまたはデプロイステージである他のステージが少なくとも 1 つ必要です。

パイプラインとは異なる AWS リージョン内にあるアクションをパイプラインに追加できます。クロスリージョンアクションは、AWS のサービスがアクションのプロバイダーであり、アクションタイプまたはプロバイダータイプがパイプラインとは異なる AWS リージョンにあるアクションです。詳細については、「CodePipeline でクロスリージョンアクションを追加する」を参照してください。

Amazon ECS をデプロイプロバイダとして使用して、コンテナベースのアプリケーションをビルドおよびデプロイするパイプラインを作成することもできます。Amazon ECS でコンテナベースのアプリケーションをデプロイするパイプラインを作成する前に、イメージ定義ファイルのリファレンス の説明に従ってイメージ定義ファイルを作成する必要があります。

CodePipeline は、ソースコードの変更がプッシュされたときに変更検出方法を使用してパイプラインを開始します。この検出方法はソースタイプに基づいています。

  • CodePipeline は Amazon CloudWatch Events を使用して、CodeCommit ソースリポジトリとブランチの変更や S3 ソースバケットの変更を検出します。

注記

コンソールを使用してパイプラインを作成または編集すると、変更検出リソースが作成されます。AWS CLI を使用してパイプラインを作成するときは、追加のリソースを各自で作成する必要があります。詳細については、「 CodeCommit ソースアクションと CloudWatch イベント」を参照してください。

パイプラインを作成する (コンソール)

コンソールでパイプラインを作成するには、ソースファイルの場所と、アクションに使用するプロバイダに関する情報を提供する必要があります。

コンソールを使用してパイプラインを作成する場合、ソースステージに加えて、以下のいずれかまたは両方が必要です。

  • ビルドステージ

  • デプロイステージ

パイプラインウィザードを使用する場合、CodePipeline によってステージの名前 (ソース、ビルド、ステージング) が作成されます。これらの名前は変更できません。ステージの後半で、より具体的な名前 (BuildToGamma や DeployToProd など) を使用できます。

ステップ 1: パイプラインの作成と名前付け

  1. AWS マネジメントコンソール にサインインし、CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home) を開きます。

  2. [Welcome (ようこそ)] ページで、[Create pipeline (パイプラインの作成)] を選択します。

    CodePipeline を初めて使用する場合は、[Get Started] を選択します。

  3. [Step 1:] [Choose pipeline settings (パイプラインの設定の選択)] ページで、[パイプライン名] にパイプラインの名前を入力します。

    単一の AWS アカウントで、AWS リージョン内に作成するパイプラインごとに一意の名前が必要です。名前は、異なるリージョンのパイプラインに再利用できます。

    注記

    パイプラインを作成したら、その名前を変更することはできません。その他の制限についての詳細については、「AWS CodePipeline のクォータ」を参照してください。

  4. [Service role (サービスロール)] で、次のいずれかの操作を行います。

    • [New service role (新しいサービスロール)] を選択して、CodePipeline に IAM での新しいサービスロールの作成を許可します。[Role name] では、ロールとポリシーの名前はいずれもデフォルトで次の形式になります。AWSCodePipelineServiceRole -region-pipeline_name。 たとえば、これは MyPipeline という名前のパイプライン用に作成されたサービスロールです。AWSCodePipelineServiceRole -eu-west-2-MyPipeline。

    • IAM で作成済みのサービスロールを使用するには、[Existing service role (既存のサービスロール)] を選択します。[ロール ARN] で、リストからサービスロール ARN を選択します。

    注記

    サービスロールを作成したタイミングに応じて、追加の AWS のサービスをサポートするためにロールのアクセス権限の更新が必要になる場合があります。詳細については、CodePipeline サービスロールにアクセス許可を追加する を参照してください。

    サービスロールとそのポリシーステートメントの詳細については、「CodePipeline サービスロールを管理する」を参照してください。

  5. (オプション) [詳細設定] を展開します。

  6. [アーティファクトストア] で、以下のいずれかの操作を行います。

    1. パイプライン用に選択した AWS リージョンでパイプラインのデフォルトの S3 アーティファクトストア (デフォルトとして指定した S3 アーティファクトバケットなど) を使用するには、[デフォルトの場所] を選択します。

    2. S3 アーティファクトバケットなどのアーティファクトストアがパイプラインと同じリージョンに既に存在する場合は、[Custom location (カスタムの場所)] を選択します。[バケット] で、バケット名を選択します。

    注記

    これはソースコードのソースバケットではありません。これはパイプラインのアーティファクトストアです。パイプラインごとに個別のアーティファクトストア(S3 バケットなど)が必要です。パイプラインを作成または編集する場合は、パイプラインリージョンにアーティファクトバケットが必要であり、アクションを実行している AWS リージョンごとに 1 つのアーティファクトバケットが必要です。

    詳細については、「入力および出力アーティファクト」および「CodePipeline パイプライン構造リファレンス」を参照してください。

  7. [暗号化キー] で、次のいずれかの操作を行います。

    1. CodePipeline のデフォルトの AWS マネージド AWS KMS カスタマーマスターキー (CMK) を使用してパイプラインアーティファクトストア (S3 バケット) 内のデータを暗号化するには、[Default AWS Managed Key] を選択します。

    2. CMK を使用してパイプラインアーティファクトストア (S3 バケット) 内のデータを暗号化するには、[Customer Managed Key] を選択します。[KMS カスタマーマスターキー] で、キー ID、キー ARN、またはエイリアス ARN を選択します。

  8. [次へ] を選択します。

ステップ 2: ソースステージの作成

  • [ステップ 2:] [ Add source stage (ソースステージの追加)] ページの [ソースプロバイダ] で、ソースコードが保存されているリポジトリのタイプを選択し、必要なオプションを指定してから [次のステップ] を選択します。

    • 複数 GitHub:

      1. [接続] で、既存の接続を選択するか、新しい接続を作成します。ソースアクションの接続を作成または管理するには、「GitHub」を参照してください。GitHub 接続

      2. パイプラインのソース場所として使用する GitHub リポジトリを選択します。[Branch ] で、ドロップダウンリストから使用するブランチを選択します。

      3. [Output artifact format] で、アーティファクトの形式を選択します。

        • デフォルトの方法を使用して GitHub アクションからの出力アーティファクトを保存するには、[デフォルトCodePipeline] を選択します。このアクションは、GitHub リポジトリからファイルにアクセスし、パイプラインアーティファクトストアの ZIP ファイルにアーティファクトを保存します。

        • リポジトリへの URL 参照を含む JSON ファイルを保存して、ダウンストリームのアクションで Git コマンドを直接実行できるようにするには、[Full clone (フルクローン)] を選択します。このオプションは、CodeBuild ダウンストリームアクションでのみ使用できます。

          このオプションを選択した場合は、「CodeBuild」に示すように、CodePipeline のトラブルシューティング プロジェクトサービスロールのアクセス許可を更新する必要があります。[Full clone (完全クローン)] オプションの使用方法を示すチュートリアルについては、「チュートリアル: パイプラインソースで完全なクローンを使用するGitHub」を参照してください。

    • 複数 Amazon S3:

      1. [Amazon S3 の場所] で、S3 バケットの名前と、バージョニングが有効になっているバケット内のオブジェクトへのパスを指定します。バケット名とパスの形式は以下のようになります。

        s3://bucketName/folderName/objectName
        注記

        Amazon S3 がパイプラインのソースプロバイダーである場合、ソースファイルを 1 つの .zip に圧縮し、その .zip をソースバケットにアップロードすることができます。解凍されたファイルを 1 つアップロードすることもできます。ただし、.zip ファイルを想定するダウンストリームアクションは失敗します。

      2. S3 ソースバケットを選択すると、CodePipeline は、このパイプライン用に作成する必要がある Amazon CloudWatch Events ルールと AWS CloudTrail 証跡を作成します。[Change detection options (変更検出オプション)] で、デフォルト値を受け入れます。これにより、CodePipeline は Amazon CloudWatch Events と AWS CloudTrail を使用して、新しいパイプラインの変更を検出できます。[次へ] を選択します。

    • 複数 AWS CodeCommit:

      • [レポジトリ名] で、パイプラインのソース場所として使用する CodeCommit リポジトリの名前を選択します。[Branch name] で、ドロップダウンリストから使用するブランチを選択します。

      • [Output artifact format] で、アーティファクトの形式を選択します。

        • デフォルトの方法を使用して CodeCommit アクションからの出力アーティファクトを保存するには、[デフォルトCodePipeline] を選択します。このアクションは、CodeCommit リポジトリからファイルにアクセスし、パイプラインアーティファクトストアの ZIP ファイルにアーティファクトを保存します。

        • リポジトリへの URL 参照を含む JSON ファイルを保存して、ダウンストリームのアクションで Git コマンドを直接実行できるようにするには、[Full clone (フルクローン)] を選択します。このオプションは、CodeBuild ダウンストリームアクションでのみ使用できます。

          このオプションを選択した場合は、「codecommit:GitPull」に示すように、CodeBuild サービスロールに ソースアクションに CodeBuild GitClone アクセス許可を追加するCodeCommit アクセス許可を追加する必要があります。また、「codecommit:GetRepository」で示しているように、CodePipeline サービスロールに CodePipeline サービスロールにアクセス許可を追加する アクセス権限を追加する必要があります。[Full clone (完全クローン)] オプションの使用方法を示すチュートリアルについては、「チュートリアル: パイプラインソースで完全なクローンを使用するGitHub」を参照してください。

      • CodeCommit リポジトリ名とブランチを選択すると、[Change detection options (変更検出オプション)] にメッセージが表示されて、このパイプライン用に作成される Amazon CloudWatch Events ルールが示されます。[Change detection options (変更検出オプション)] で、デフォルト値を受け入れます。これにより、CodePipeline は Amazon CloudWatch Events を使用して、新しいパイプラインの変更を検出できます。

    • 複数 Amazon ECR:

      • [リポジトリ名] で、Amazon ECR リポジトリの名前を選択します。

      • [Image tag] で、イメージの名前とバージョンを指定します (最新でない場合)。

      • [出力アーティファクト] で、デフォルトの出力アーティファクト (例: MyApp) を選択します。これには、次のステージで使用するイメージ名とリポジトリの URI 情報が含まれます。

        ソースステージを含む Amazon ECS Blue-Green デプロイを使用して CodeDeploy のパイプラインを作成するチュートリアルについては、「Amazon ECR」を参照してください。チュートリアル: ソースと ECS と CodeDeploy 間のデプロイでパイプラインを作成するAmazon ECR

      パイプラインに Amazon ECR のソースステージを含めると、変更をコミットしたときにソースアクションによって出力アーティファクトとして imageDetail.json ファイルが生成されます。imageDetail.json ファイルの詳細については、「Amazon ECS Blue/Green デプロイアクション用 imageDetail.json ファイル」を参照してください。

    注記

    オブジェクトとファイルのタイプは、使用するデプロイシステム (Elastic Beanstalk や CodeDeploy など) と互換性があることが必要です。サポートされているファイルのタイプは .zip、.tar、.tgz ファイルなどです。Elastic Beanstalk でサポートされているコンテナのタイプの詳細については、「Elastic Beanstalk 環境のカスタマイズと設定」と「サポートされているプラットフォーム」を参照してください。CodeDeploy によるリビジョンのデプロイの詳細については、「アプリケーションリビジョンのアップロード」と「リビジョンの準備」を参照してください。

ステップ 3: ビルドステージの作成

デプロイステージを作成する予定の場合、このステップはオプションです。

  • [Step 3:] [Add build stage (ビルドステージの追加)] ページで、以下のいずれかの操作を行い、[次へ] を選択します。

    • デプロイステージを作成する予定の場合は、[Skip build stage (ビルドステージのスキップ)] を選択します。

    • [ビルドプロバイダー] から、ビルドサービスのカスタムアクションプロバイダーを選択し、そのプロバイダーの設定詳細を入力します。Jenkins をビルドプロバイダとして追加する方法の例については、「チュートリアル: 4 ステージのパイプラインを作成する」を参照してください。

    • [ビルドプロバイダ] から、[AWS CodeBuild] を選択します。

      [リージョン] で、リソースが存在する AWS リージョンを選択します。[リージョン] フィールドは、このアクションタイプとプロバイダタイプに対して作成済みの AWS リソースの場所を示します。このフィールドは、アクションプロバイダーが AWS のサービスであるアクションの場合のみ表示されます。[リージョン] フィールドは、デフォルトで、パイプラインと同じ AWS リージョンになります。

      [プロジェクト名] で、ビルドプロジェクトを選択します。CodeBuild にビルドプロジェクトがすでにある場合は、選択します。または、CodeBuild でビルドプロジェクトを作成し、その後でこのタスクに戻ります。ユーザーガイドの「CodeBuild を使用するパイプラインを作成する」の手順に従います。CodeBuild

      [環境変数] で、ビルドアクションに CodeBuild 環境変数を追加するには、[環境変数の追加] を選択します。各変数は、次の 3 つのエントリで構成されます。

      • [名前] には、環境変数の名前またはキーを入力します。

      • [] には、環境変数の値を入力します。変数タイプで [パラメータ] を選択した場合は、この値が、AWS Systems Manager パラメータストアに既に保存されているパラメータの名前であることを確認してください。

        注記

        機密情報、特に AWS シークレットキー IDs とシークレットアクセスキーを格納する場合には、環境変数を使用しないことを強くお勧めします。CodeBuild コンソールまたは AWS CLI を使用する場合、環境変数はプレーンテキストで表示されます。機密の値の場合は、代わりに [パラメータ] 型を使用することをお勧めします。

      • (オプション) [] に、環境変数の型を入力します。有効な値は、[プレーンテキスト] または [パラメータ] です。デフォルトは [プレーンテキスト] です。

      (オプション) [ビルドタイプ] で、以下のいずれかを選択します。

      • 1 つのビルドアクションの実行で各ビルドを実行するには、[Single build] を選択します。

      • 同じビルドアクションの実行で複数のビルドを実行するには、[Batch build (バッチビルド)] を選択します。

      (オプション) バッチビルドを実行するように選択した場合は、[Combine all artifacts from batch in a single location] を選択して、すべてのビルドアーティファクトを単一の出力アーティファクトに配置できます。

ステップ 4: デプロイステージの作成

ビルドステージをすでに作成している場合、このステップはオプションです。

  • [ステップ 4:] [ Add deploy stage (デプロイステージの追加)] ページで、以下のいずれかの操作を行い、[Next (次へ)] を選択します。

    • 前のステップでビルドステージを作成した場合は、[Skip deploy stage (デプロイステージのスキップ)] を選択します。

      注記

      すでにビルドステージをスキップしている場合、このオプションは表示されません。

    • [デプロイプロバイダ] で、デプロイプロバイダ用に作成したカスタムアクションを選択します。

      [リージョン] で、クロスリージョンアクション専用に、リソースの作成先となる AWS リージョンを選択します。[リージョン] フィールドは、このアクションタイプとプロバイダタイプに対して作成済みの AWS リソースの場所を示します。このフィールドには、アクションプロバイダが AWS のサービスであるアクションのみが表示されます。[リージョン] フィールドは、デフォルトで、パイプラインと同じ AWS リージョンになります。

    • [デプロイプロバイダ] で、デフォルトプロバイダ用の以下のフィールドを使用できます。

      • CodeDeploy

        [アプリケーション名] で、既存の CodeDeploy アプリケーションの名前を入力または選択します。[デプロイグループ] に、アプリケーションのデプロイグループの名前を入力します。[次へ] を選択します。アプリケーション、デプロイグループ、または両方を CodeDeploy コンソールで作成することもできます。

      • AWS Elastic Beanstalk

        [アプリケーション名] で、既存の Elastic Beanstalk アプリケーションの名前を入力または選択します。[環境名] に、アプリケーションの環境を入力します。[次へ] を選択します。アプリケーション、環境、または両方を Elastic Beanstalk コンソールで作成することもできます。

      • AWS OpsWorks Stacks

        [スタック] で、使用するスタックの名前を入力または選択します。[レイヤー] で、ターゲットインスタンスがあるレイヤーを選択します。[デプロイ] で、更新およびデプロイするアプリケーションを選択します。アプリケーションを作成する必要がある場合は、[Create a new one in AWS OpsWorks] を選択します。

        AWS OpsWorks でスタックとレイヤーにアプリケーションを追加する方法については、https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.htmlの「AWS OpsWorks ユーザーガイドアプリケーションの追加」を参照してください。

        CodePipeline でシンプルなパイプラインを、AWS OpsWorks レイヤーで実行するコードのソースとして使用する方法のエンドツーエンドの例については、「AWS OpsWorks Stacks での CodePipeline の使用」を参照してください。

      • AWS CloudFormation

        次のいずれかを行ってください。

        • [アクションモード] で、[スタックの作成または更新] を選択し、スタック名とテンプレートファイル名を入力します。次に、AWS CloudFormation で引き受けるロールの名前を選択します。必要に応じて、設定ファイルの名前を入力し、IAM 機能オプションを選択します。

        • [アクションモード] で [変更セットの作成または置換] を選択し、スタック名を入力して、セット名を変更します。次に、AWS CloudFormation で引き受けるロールの名前を選択します。必要に応じて、設定ファイルの名前を入力し、IAM 機能オプションを選択します。

        AWS CloudFormation で CodePipeline 機能をパイプラインに統合する方法の詳細については、CodePipelineの「AWS CloudFormation ユーザーガイド による継続的な配信」を参照してください。

      • Amazon ECS

        [クラスター名] で、既存の Amazon ECS クラスターの名前を入力または選択します。[サービス名] で、クラスターで実行されているサービスの名前を入力または選択します。クラスターとサービスを作成することもできます。[イメージのファイル名] で、サービスのコンテナとイメージを説明するイメージ定義ファイルの名前を入力します。

        注記

        Amazon ECS デプロイアクションでは、デプロイアクションへの入力として imagedefinitions.json ファイルが必要です。ファイルのデフォルトのファイル名は、imagedefinitions.json です。別のファイル名を使用することを選択した場合は、パイプラインデプロイステージを作成するときにそれを指定する必要があります。詳細については、「Amazon ECS 標準デプロイアクション用 imagedefinitions.json ファイル」を参照してください。

        [次へ] を選択します。

        注記

        Amazon ECS クラスターに 2 つ以上の Amazon ECS インスタンスが設定されていることを確認します。1 つはプライマリインスタンスとして維持し、もう 1 つは新しいデプロイに対応するために使用します。

        パイプラインを使用したコンテナベースのアプリケーションのデプロイに関するチュートリアルについては、「チュートリアル:」を参照してください。 を使用した CodePipeline の継続的なデプロイ

      • Amazon ECS (Blue/Green)

        アプリケーションとデプロイグループ、CodeDeploy タスク定義、および Amazon ECS ファイル情報を入力し、[AppSpec次へ] を選択します。

        注記

        Amazon ECS (Blue/Green) アクションには、デプロイアクションへの入力アーティファクトとして ファイルが必要です。imageDetail.jsonAmazon ECR ソースアクションがこのファイルを作成するので、Amazon ECR ソースアクションを持つパイプラインは imageDetail.json ファイルを提供する必要はありません。詳細については、「Amazon ECS Blue/Green デプロイアクション用 imageDetail.json ファイル」を参照してください。

        CodeDeploy を使用して Amazon ECS クラスターへの blue-green デプロイ用のパイプラインを作成するためのチュートリアルについては、「チュートリアル: ソースと ECS と CodeDeploy 間のデプロイでパイプラインを作成するAmazon ECR」を参照してください。

      • AWS Service Catalog

        コンソールのフィールドを使用して設定を指定する場合は [Enter deployment configuration (デプロイ設定の入力)] を選択します。あるいは、個別の設定ファイルがある場合は [設定ファイル] を選択します。製品と設定の情報を入力し、[次へ] を選択します。

        パイプラインを使用して製品の変更を AWS Service Catalog にデプロイする方法のチュートリアルについては、「チュートリアル: AWS Service Catalog にデプロイするパイプラインを作成する」を参照してください。

      • Alexa Skills Kit

        [Alexa Skill ID (Alexa スキル ID)] に Alexa スキルのスキル ID を入力します。[クライアント ID] と [クライアントシークレット] に、Login with Amazon (LWA) セキュリティプロファイルを使用して生成された認証情報を入力します。[Refresh token (更新トークン)] に、ASK CLI コマンドを使用して生成した更新トークンを入力します。[次へ] を選択します。

        パイプラインにより Alexa スキルをデプロイする方法、LWA 認証情報を生成する方法のチュートリアルについては、「チュートリアル: Amazon Alexa スキルをデプロイするパイプラインを作成する」を参照してください。

      • Amazon S3

        [バケット] に、使用する S3 バケットの名前を入力します。デプロイステージへの入力アーティファクトが ZIP ファイルの場合は、[Extract file before deploy (デプロイ前にファイルを展開)] を選択します。[Extract file before deploy (デプロイ前にファイルを展開)] を選択した場合は、オプションで [Deployment path (デプロイパス)] に ZIP ファイルの解凍先を入力できます。選択しなかった場合は、[S3 object key (S3 オブジェクトキー)] に値を入力する必要があります。

        注記

        ほとんどのソースステージおよびビルドステージの出力アーティファクトは圧縮されます。Amazon S3 を除くすべてのパイプラインソースプロバイダーは、ソースファイルを次のアクションに入力アーティファクトとして渡す前に圧縮します。

        (オプション) [既定 ACL] で、 にデプロイされたオブジェクトに適用する既定 ACLAmazon S3 を入力します。

        注記

        既定 ACL を適用すると、オブジェクトに適用された既存の ACL が上書きされます。

        (オプション) [キャッシュコントロール] で、バケットからオブジェクトをダウンロードするリクエストのキャッシュコントロールパラメータを指定します。有効な値のリストについては、HTTP オペレーションの Cache-Control ヘッダーフィールドを参照してください。[Cache control (キャッシュコントロール)] に複数の値を入力するには、各値の間にカンマを使用します。この例に示すように、各カンマの後にスペースを追加できます (オプション)。

        上記のエントリ例は、CLI に次のように表示されます。

        "CacheControl": "public, max-age=0, no-transform"

        [次へ] を選択します。

        デプロイアクションプロバイダとして Amazon S3 を使用するパイプラインを作成する方法のチュートリアルについては、「チュートリアル 使用するパイプラインを作成する Amazon S3 導入プロバイダーとして」を参照してください。

ステップ 5: パイプラインの確認

  • ステップ 5: で [確認] ページで、パイプラインの設定を確認し、[パイプラインの作成] を選択してパイプラインを作成するか、[戻る] を選択してオプションを編集します。パイプラインを作成せずにウィザードを終了するには、[Cancel] を選択します。

パイプラインが作成され、コンソールで表示できるようになりました。パイプラインは、作成後に実行されます。詳細については、「CodePipeline でパイプラインの詳細と履歴を表示する」を参照してください。パイプラインを変更する方法の詳細については、「CodePipeline でパイプラインを編集する」を参照してください。

パイプラインを作成する (CLI)

AWS CLI を使用してパイプラインを作成するには、JSON ファイルを作成してパイプライン構造を定義し、--cli-input-json パラメータを指定して create-pipeline コマンドを実行します。

重要

AWS CLI を使用して、パートナーアクションを含むパイプラインを作成することはできません。代わりに CodePipeline コンソールを使用する必要があります。

パイプライン構造に関する詳細については、「CodePipeline パイプライン構造リファレンス」、および create-pipeline の「CodePipelineAPI リファレンス」の を参照してください。

JSON ファイルを作成するには、同じパイプラインの JSON ファイルを使用して編集し、create-pipeline コマンドを実行するときにこのファイルを呼び出します。

前提条件:

CodePipeline の開始方法 で CodePipeline 用に作成したサービスロールの ARN が必要です。CodePipeline サービスロールの ARN は、create-pipeline コマンドの実行時にパイプライン JSON ファイルで使用します。サービスロールの作成の詳細については、「CodePipeline サービスロールを作成する」を参照してください。コンソールとは異なり、AWS CLI で create-pipeline コマンドを実行する場合、CodePipeline サービスロールを自動的に作成するオプションはありません。サービスロールがすでに存在している必要があります。

パイプラインのアーティファクトの保存先である S3 バケットの名前が必要です。このバケットはパイプラインと同じリージョンに存在する必要があります。バケット名は、create-pipeline コマンドの実行時にパイプライン JSON ファイルで使用します。コンソールとは異なり、AWS CLI で create-pipeline コマンドを実行しても、アーティファクトを保存する S3 バケットは作成されません。バケットが存在している必要があります。

注記

get-pipeline コマンドを使用して、パイプラインの JSON 構造のコピーを取得し、プレーンテキストエディタで構造を変更することもできます。

トピック

    JSON ファイルを作成するには

    1. ターミナル (Linux, macOS, or Unix) またはコマンドプロンプト (Windows) で、ローカルディレクトリに新規のテキストファイルを作成します。

    2. プレーンテキストエディタでファイルを開き、作成する構造を反映するように値を編集します。少なくとも、パイプラインの名前を変更する必要があります。また、変更するかを考慮する必要もあります。

      • このパイプラインのアーティファクトの保存先の S3 バケット。

      • コードのソースの場所。

      • デプロイのプロバイダ。

      • コードをデプロイする方法。

      • パイプラインのタグ。

      以下の 2 ステージのサンプルパイプライン構造では、変更を検討する必要があるパイプラインの値を強調表示しています。パイプラインには多くの場合、2 つ以上のステージが含まれます。

      { "pipeline": { "roleArn": "arn:aws:iam::80398EXAMPLE::role/AWS-CodePipeline-Service", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "awscodepipeline-demobucket-example-date", "S3ObjectKey": "ExampleCodePipelineSampleBundle.zip", "PollForSourceChanges": "false" }, "runOrder": 1 } ] }, { "name": "Staging", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-CodeDeploy-Application", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineDemoFleet" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "codepipeline-us-east-2-250656481468" }, "name": "MyFirstPipeline", "version": 1 }, "metadata": { "pipelineArn": "arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline", "updated": 1501626591.112, "created": 1501626591.112 }, "tags": [{ "key": "Project", "value": "ProjectA" }] }

      この例では、パイプラインの Project タグキーと ProjectA 値を含めることによって、タグ付けをパイプラインに追加します。CodePipeline におけるリソースのタグ付けの詳細については、「 リソースのタグ付け」を参照してください。

      JSON ファイルの PollForSourceChanges パラメータが次のように設定されていることを確認します。

      "PollForSourceChanges": "false",

      CodePipeline は Amazon CloudWatch Events を使用して、CodeCommit ソースリポジトリとブランチの変更や S3 ソースバケットの変更を検出します。次のステップには、パイプラインにこれらのリソースを手動で作成する手順が含まれています。フラグを false に設定すると、定期的なチェックが無効になります。これは、推奨される変更検出メソッドを使用している場合には、必要ではありません。

    3. パイプラインとは異なるリージョンでビルド、テスト、またはデプロイアクションを作成するには、パイプライン構造に以下を追加する必要があります。手順については、「CodePipeline でクロスリージョンアクションを追加する」を参照してください。

      • Region パラメータをアクションのパイプライン構造に追加します。

      • アクションの作成先の AWS リージョンごとにアーティファクトバケットを指定するには、artifactStores パラメータを使用します。

    4. その構造で問題がなければ、pipeline.json のような名前でファイルを保存します。

    パイプラインを作成するには

    1. 先ほど作成した JSON ファイルを --cli-input-json パラメータで指定して、create-pipeline コマンドを実行します。

      という名前のパイプラインを作成するには MySecondPipeline という名前の JSON ファイルに「pipeline.json」という名前を付けます。MySecondPipeline" を JSON の name の値として使用する場合、コマンドは次のようになります。

      aws codepipeline create-pipeline --cli-input-json file://pipeline.json
      重要

      ファイル名の前に必ず file:// を含めてください。このコマンドでは必須です。

      このコマンドは、作成したパイプライン全体の構造を返します。

    2. パイプラインを表示するには、CodePipeline コンソールを開いてパイプラインのリストから選択するか、get-pipeline-state コマンドを使用します。詳細については、「CodePipeline でパイプラインの詳細と履歴を表示する」を参照してください。

    3. パイプラインの作成に CLI を使用する場合には、推奨される変更検出リソースを手動でパイプラインに作成する必要があります。