CodePipeline パイプライン構造リファレンス - AWS CodePipeline

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CodePipeline パイプライン構造リファレンス

デフォルトでは、AWS CodePipeline に正常に作成されたパイプラインには、有効な構造が含まれます。ただし、JSON ファイルを手動で作成または編集して、AWS CLI からパイプラインを作成するか、アップデートする場合、意図せずに無効な構造が作成される場合があります。次のリファレンスは、パイプライン構造の要件や、問題をトラブルシューティングする方法を理解するのに役立ちます。すべてのパイプラインに適用される AWS の CodePipeline 中のクォータ の制約を参照してください。

CodePipeline での有効なアクションタイプとアクションプロバイダ

パイプライン構造の形式は、パイプラインのステージとアクションをビルドするために使用します。アクションタイプは、アクションカテゴリとアクションプロバイダタイプの組み合わせで構成されます。

CodePipeline の有効なアクションカテゴリは以下のとおりです。

  • ソース

  • Build

  • Test

  • デプロイ

  • 承認

  • 呼び出し

アクションカテゴリごとにプロバイダのセットが指定されています。S3 パイプライン構造の 各アクションプロバイダーには、Provider アクションカテゴリのフィールドで使用する必要があるプロバイダー名 ( Amazon S3 など) があります。

パイプライン構造のアクションカテゴリセクションの Owner フィールドには、AWSThirdPartyCustom の 3 つの有効な値があります。

アクションプロバイダーのプロバイダー名と所有者情報を検索するには、「アクション構造リファレンス」または「各アクションタイプの入力および出力アーティファクトの数」を参照してください。

次の表は、アクションタイプ別の有効なプロバイダのリストです。

注記

Bitbucket、GitHub、または GitHub エンタープライズサーバのアクションについては、を参照してください。Bitbucket、GitHub、および CodeStarSourceConnection GitHub Enterprise Server アクションアクション参照トピック。

アクションタイプ別の有効なアクションプロバイダー
アクションカテゴリ 有効なアクションプロバイダー アクションリファレンス
ソース Simple Storage Service (Amazon S3) Amazon S3 ソースアクション
Amazon ECR Amazon ECR
CodeCommit CodeCommit
CodeStarSourceConnection (Bitbucket、GitHub、GitHub、 GitHub Enterprise Server アクション) Bitbucket、GitHub、および CodeStarSourceConnection GitHub Enterprise Server アクション
Build CodeBuild AWS CodeBuild
カスタム CloudBees 各アクションタイプの入力および出力アーティファクトの数
カスタム Jenkins 各アクションタイプの入力および出力アーティファクトの数
カスタム TeamCity 各アクションタイプの入力および出力アーティファクトの数
Test CodeBuild AWS CodeBuild
AWS Device Farm 各アクションタイプの入力および出力アーティファクトの数
カスタム BlazeMeter 各アクションタイプの入力および出力アーティファクトの数
サードパーティー GhostInspector 各アクションタイプの入力および出力アーティファクトの数
カスタム Jenkins 各アクションタイプの入力および出力アーティファクトの数
ThirdParty Micro Focus StormRunner ロード 各アクションタイプの入力および出力アーティファクトの数
サードパーティー Nouvola 各アクションタイプの入力および出力アーティファクトの数
サードパーティー Runscope 各アクションタイプの入力および出力アーティファクトの数
デプロイ Simple Storage Service (Amazon S3) Amazon S3 デプロイアクション
AWS CloudFormation AWS CloudFormation
CodeDeploy 各アクションタイプの入力および出力アーティファクトの数
Amazon ECS 各アクションタイプの入力および出力アーティファクトの数
Amazon ECS (Blue/Green) (これは CodeDeployToECS アクションです) 各アクションタイプの入力および出力アーティファクトの数
Elastic Beanstalk 各アクションタイプの入力および出力アーティファクトの数
AWS AppConfig AWS AppConfig
AWS OpsWorks 各アクションタイプの入力および出力アーティファクトの数
AWS Service Catalog 各アクションタイプの入力および出力アーティファクトの数
Amazon Alexa 各アクションタイプの入力および出力アーティファクトの数
カスタム XebiaLabs 各アクションタイプの入力および出力アーティファクトの数
承認 手動 各アクションタイプの入力および出力アーティファクトの数
呼び出し AWS Lambda AWS Lambda
AWS Step Functions AWS Step Functions

の一部のアクションタイプ CodePipeline 選択で入手可能AWSリージョンのみです。AWS リージョンでアクションタイプが使用できても、そのアクションタイプの AWS プロバイダが使用できない場合があります。

各アクションプロバイダの詳細については、「との統合 CodePipeline アクションタイプ」を参照してください。

以下のセクションでは、アクションタイプ別のプロバイダ情報と設定プロパティの例を示します。

CodePipeline でのパイプラインおよびステージ構造の要件

ステージが 2 つのパイプラインの基本構造は次のとおりです。

{ "roleArn": "An IAM ARN for a service role, such as arn:aws:iam::80398EXAMPLE:role/CodePipeline_Service_Role", "stages": [ { "name": "SourceStageName", "actions": [ ... See CodePipeline でのアクション構造の要件 ... ] }, { "name": "NextStageName", "actions": [ ... See CodePipeline でのアクション構造の要件 ... ] } ], "artifactStore": { "type": "S3", "location": "The name of the Amazon S3 bucket automatically generated for you the first time you create a pipeline using the console, such as codepipeline-us-east-2-1234567890, or any Amazon S3 bucket you provision for this purpose" }, "name": "YourPipelineName", "version": 1 }

パイプライン構造には、次の要件があります。

  • パイプラインに少なくとも 2 つのステージを含める必要がある

  • パイプラインの最初のステージには、少なくとも 1 つのソースアクションが含まれている必要がある ソースアクションのみを含めることができる

  • ソースアクションは、パイプラインの最初のステージにのみ含める

  • 各パイプラインのいずれかのステージには、必ずソースアクション以外のアクションを含めること

  • パイプライン内の全てのステージ名は必ず一意であること

  • ステージ名は、 CodePipeline console. AWS CLI を使用してステージ名を編集し、そのステージのアクションにシークレットパラメータ (OAuth トークンなど) が含まれる場合、そのシークレットパラメータの値が保持されることはありません。パラメータ値 (AWS CLI よって返される JSON で、4 つのアスタリスクでマスクされている) は手動で入力し、JSON 構造に含める必要があります。

  • artifactStore このフィールドには、AWS 同じリージョン内のすべてのアクションを含むパイプラインのアーティファクトバケットタイプと場所が含まれます。パイプラインと異なるリージョンにアクションを追加すると、artifactStores マッピングを使用して、アクションを実行する各 AWS リージョンのアーティファクトバケットが一覧表示されます。パイプラインを作成または編集する場合は、パイプラインリージョンにアーティファクトバケットが必要であり、アクションを実行する予定のリージョンごとに 1 つのアーティファクトバケットが必要です。

    以下の例では、artifactStores パラメータを使用するクロスリージョンアクションを含むパイプラインの基本構造を示しています。

    "pipeline": { "name": "YourPipelineName", "roleArn": "CodePipeline_Service_Role", "artifactStores": { "us-east-1": { "type": "S3", "location": "S3 artifact bucket name, such as codepipeline-us-east-1-1234567890" }, "us-west-2": { "type": "S3", "location": "S3 artifact bucket name, such as codepipeline-us-west-2-1234567890" } }, "stages": [ { ...
  • パイプラインメタデータフィールドはパイプライン構造とは異なり、編集することはできません。パイプラインを更新すると、updated メタデータフィールドの日付が自動的に変更されます。

  • パイプラインを編集または更新する場合、パイプライン名は変更できません。

    注記

    既存のパイプラインの名前を変更するには、CLI get-pipeline コマンドを使用して、パイプライン構造を含む JSON ファイルを作成します。次に CLI create-pipeline コマンドを使用してその構造を持つ新しいパイプラインを作成し、新しい名前を付けて保存します。

パイプラインのバージョン番号は自動的に生成され、パイプラインを更新する度に更新されます。

CodePipeline でのアクション構造の要件

アクション構造の概要は次のとおりです。

[ { "inputArtifacts": [ An input artifact structure, if supported for the action category ], "name": "ActionName", "region": "Region", "namespace": "source_namespace", "actionTypeId": { "category": "An action category", "owner": "AWS", "version": "1" "provider": "A provider type for the action category", }, "outputArtifacts": [ An output artifact structure, if supported for the action category ], "configuration": { Configuration details appropriate to the provider type }, "runOrder": A positive integer that indicates the run order within the stage, } ]

このプロバイダタイプに該当する configuration 例の詳細については、「プロバイダータイプ別の設定の詳細」を参照してください。

アクション構造には、次の要件があります。

  • ステージ内のアクション名が必ず一意であること

  • 入力および出力アーティファクトの詳細 アクションの入力アーティファクトが、前述のアクションで宣言された出力アーティファクトと完全に一致する必要があります。例えば、前述のアクションに次の宣言が含まれているとします。

    "outputArtifacts": [ { "MyApp" } ],

    それ以外に出力アーティファクトが存在しない場合、次のアクションの入力アーティファクトは次のようになります。

    "inputArtifacts": [ { "MyApp" } ],

    これは、同じステージか、次のステージかにかかわらず、すべてのアクションで当てはまりますが、出力アーティファクトを提供したアクションから厳密なシーケンスで、入力アーティファクトを次のアクションにする必要はありません。アクションは並行して、さまざまな出力アーティファクトバンドルを宣言することがあります。これらは、以下のアクションによって、順番に消費されます。

  • 出力アーティファクト名は、パイプライン内で一意である必要があります。例えば、パイプラインには出力アーティファクト ("MyApp") を含むアクションと、出力アーティファクト ("MyBuiltApp") を含む別のアクションが含まれる場合があります。ただし、いずれも出力アーティファクト ("MyApp") の 2 つのアクションをパイプラインに含むことはできません。

  • クロスリージョンアクションでは、Region フィールドを使用して、アクションが作成される AWS リージョンを指定します。このアクション用に作成された AWS リソースは、region フィールドで指定されているリージョンと同じリージョンに作成する必要があります。以下のアクションタイプのクロスリージョンアクションは作成できません。

    • ソースアクション

    • サードパーティープロバイダによるアクション

    • カスタムプロバイダによるアクション

  • アクションは変数で設定できます。namespace フィールドを使用して、実行変数の名前空間と変数の情報を設定します。実行変数とアクション出力変数のリファレンス情報については、「変数」を参照してください。

  • 現在サポートされているすべてのアクションの種類で、有効な所有者の文字列はAWS,ThirdParty, またはCustom。詳細については、CodePipeline API リファレンス の「型」を参照してください。

  • アクションの [runOrder] のデフォルト値は 1 です。値は、正の整数 (自然数) にする必要があります。分数、10 進数、負の数値、ゼロを使用することはできません。アクションのシリアルシーケンスを指定するには、最初のアクションに最小値を使用し、シーケンスの残りの各アクションにそれより大きい数値を使用します。同時に実行するアクションを指定するには、同時に実行する各アクションに同一の整数を使用します。コンソールで、アクショングループを追加する ステージ内で実行したいレベルで選択して、アクションのシリアルシーケンスを指定できます。または アクションを追加する を選択して並列シーケンスを指定することもできます。アクショングループ は、同じレベルにある 1 つ以上のアクションの実行順序を参照します。

    例えば、3 つのアクションをステージのシーケンスで実行する場合、最初のアクションは runOrder 値 1、2 番目のアクションは runOrder 値 2、3 番目のアクションは runOrder 値 3 になります。ただし、2 番目と 3 番目のアクションを同時に行う場合、最初のアクションは runOrder 値 1 になり、2 番目と 3 番目のアクションはいずれも runOrder 値 2 になります。

    注記

    シリアルアクションは、厳密なシーケンスでナンバリングする必要はありません。例えば、シーケンスに 3 つのアクションがあり、2 番目のアクションを削除する場合、3 番目のアクションの runOrder 値をナンバリングし直す必要はありません。アクション (3) の runOrder 値は、最初のアクション (1) の runOrder 値より大きいため、ステージの最初のアクションが終わってから順番に実行されます。

  • デプロイ場所として Amazon S3 バケットを使用するときは、オブジェクトキーも指定します。オブジェクトキーはファイル名 (オブジェクト) にするか、プレフィックス (フォルダパス) とファイル名の組み合わせにすることができます。変数を使用して、パイプラインで使用する場所の名前を指定できます。Amazon S3 デプロイアクションは、Amazon S3 オブジェクトキーでの以下の変数の使用をサポートしています。

    Amazon S3 での変数の使用
    可変 コンソール入力の例 出力
    datetime js-application/{datetime}.zip 次の形式の UTC タイムスタンプ: <YYYYYY>-<MM>-DD>_<HH>-<MM>-<SS>

    例:

    js-application/2019-01-10_07-39-57.zip

    uuid js-application/{uuid}.zip UUID は、他のすべての識別子と異なることが保証されるグローバル一意識別子です。この形式の UUID (すべての桁は 16 進形式): < 8-digits >-< 4-digits >- 4-digits >-< 4-digits >-< 12-digits >

    例:

    js-application/54a60075-b96a-4bf3-9013-db3a9EXAMPLE.zip

  • 以下に示すのは、 CodePipeline の有効な actionTypeId カテゴリです。

    • Source

    • Build

    • Approval

    • Deploy

    • Test

    • Invoke

    一部のプロバイダのタイプと設定オプションを以下に示します。

  • アクションカテゴリの有効なプロバイダタイプは、カテゴリによって異なります。例えば、ソースアクションタイプの場合、有効なプロバイダタイプは S3GitHubCodeCommit、または Amazon ECR です。次の例は、S3 プロバイダのソースアクションの構造を示しています。

    "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3"},
  • 各アクションに有効なアクションを設定する必要があります。この設定は、アクションのプロバイダのタイプによって異なります。次のテーブルでは、有効な各プロバイダのタイプで必要なアクション設定要素を示します。

    プロバイダータイプのアクション設定プロパティ
    プロバイダー名 アクションタイプでのプロバイダー名 設定プロパティ プロパティは必須?
    Amazon S3 (デプロイアクションプロバイダ) Amazon S3 デプロイアクションパラメータに関連する例など、詳細については、「」を参照してください。Amazon S3 デプロイアクション
    Amazon S3 (ソースアクションプロバイダ) Amazon S3 ソースアクションパラメータに関連する例など、詳細については、「Amazon S3 ソースアクション」を参照してください。
    Amazon ECR Amazon ECR パラメータに関連する例など、詳細については、「Amazon ECR」を参照してください。
    CodeCommit 詳細については、「」に関連する例など CodeCommit パラメータ、「」を参照してください。CodeCommit
    GitHub 詳細については、「」に関連する例など GitHub パラメータ、「」を参照してください。GitHub バージョン 1 ソースアクション構造のリファレンス
    AWS CloudFormation AWS CloudFormation パラメータに関連する例など、詳細については、AWS CloudFormation を参照してください。
    CodeBuild 詳細な説明と例については、 CodeBuild パラメータ、「」を参照してください。AWS CodeBuild
    CodeDeploy 詳細な説明と例については、 CodeDeploy パラメータ、「」を参照してください。AWS CodeDeploy
    AWS Device Farm AWS Device Farm パラメータに関する詳細な説明と例については、AWS Device Farm を参照してください。
    AWS Elastic Beanstalk ElasticBeanstalk ApplicationName 必須
    EnvironmentName 必須
    AWS Lambda AWS Lambda パラメータに関連する例など、詳細については、AWS Lambda を参照してください。
    AWS OpsWorks Stacks OpsWorks Stack 必須
    Layer オプション
    App 必須
    Amazon ECS Amazon ECS パラメータに関する詳細な説明と例については、「Amazon Elastic Container Service」を参照してください。
    Amazon ECS と CodeDeploy (Blue/Green) Amazon ECS に関連する詳細な説明と例については、 CodeDeploy 青/緑のパラメーター、「」を参照してください。Amazon Elastic Contain Service CodeDeploy ブルー/グリーン
    AWS Service Catalog ServiceCatalog TemplateFilePath 必須
    ProductVersionName 必須
    ProductType 必須
    ProductVersionDescription オプション
    ProductId 必須
    Alexa Skills Kit AlexaSkillsKit ClientId 必須
    ClientSecret 必須
    RefreshToken 必須
    SkillId 必須
    Jenkins で指定したアクションの名前 CodePipeline Jenkins 用のプラグイン (例えば、MyJenkinsProviderName) ProjectName 必須
    手動承認 Manual CustomData オプション
    ExternalEntityLink オプション
    NotificationArn オプション

各アクションタイプの入力および出力アーティファクトの数

アクションの種類によっては、次の入力および出力アーティファクトの数値になる場合があります。

アーティファクトのアクションタイプの制約
所有者 アクションのタイプ プロバイダー 入力アーティファクト有効な数 出力アーティファクトの有効な数
AWS ソース Simple Storage Service (Amazon S3) 0 1
AWS ソース CodeCommit 0 1
AWS ソース Amazon ECR 0 1
ThirdParty ソース GitHub 0 1
AWS Build CodeBuild 1〜5 0〜5
AWS Test CodeBuild 1〜5 0〜5
AWS Test AWS Device Farm 1 0
AWS 承認 手動 0 0
AWS デプロイ Simple Storage Service (Amazon S3) 1 0
AWS デプロイ AWS CloudFormation 0〜10 0〜1
AWS デプロイ CodeDeploy 1 0
AWS デプロイ AWS Elastic Beanstalk 1 0
AWS デプロイ AWS OpsWorks Stacks 1 0
AWS デプロイ Amazon ECS 1 0
AWS デプロイ AWS Service Catalog 1 0
AWS 呼び出し AWS Lambda 0〜5 0〜5
ThirdParty デプロイ Alexa Skills Kit 1〜2 0
Custom Build Jenkins 0〜5 0〜5
Custom Test Jenkins 0〜5 0〜5
Custom サポートされているカテゴリ カスタムアクションで指定 0〜5 0〜5

デフォルト設定の PollForSourceChanges パラメータ

PollForSourceChanges パラメータのデフォルトは、以下の表に示すように、パイプラインの作成に使用した方法によって決まります。多くの場合、PollForSourceChanges パラメータはデフォルトで true になるため、必要に応じて無効にする必要があります。

PollForSourceChanges パラメータがデフォルトで true になる場合は、以下の操作を行う必要があります。

  • PollForSourceChanges パラメータを JSON ファイルまたは AWS CloudFormation テンプレートに追加します。

  • 変更検出リソース (必要に応じて CloudWatch Events ルールまたはウェブフック) を作成します。

  • PollForSourceChanges パラメータを false に設定します。

    注記

    を作成した場合 CloudWatch Events ルールまたはウェブフックの場合、このパラメータを false に設定してパイプラインが複数回トリガーされるのを避ける必要があります。

    PollForSourceChanges パラメータは、 Amazon ECR ソースアクションには使用されません。

  • PollForSourceChanges パラメータのデフォルト設定
    ソース 作成方法 「設定」JSON 構造の出力例
    CodeCommit パイプラインはコンソールで作成されます (変更検出リソースもコンソールで作成されます)。パラメータは、パイプライン構造の出力に表示され、デフォルトで false になります。
    BranchName": "main", "PollForSourceChanges": "false", "RepositoryName": "my-repo"
    パイプラインは CLI または AWS CloudFormation で作成されます。PollForSourceChanges パラメータ行は JSON 出力に表示されませんが、true に設定されます。
    BranchName": "main", "RepositoryName": "my-repo"
    Simple Storage Service (Amazon S3) パイプラインはコンソールで作成されます (変更検出リソースもコンソールで作成されます)。パラメータは、パイプライン構造の出力に表示され、デフォルトで false になります。
    "S3Bucket": "my-bucket", "S3ObjectKey": "object.zip", "PollForSourceChanges": "false"
    パイプラインは CLI または AWS CloudFormation で作成されます。PollForSourceChanges パラメータ行は JSON 出力に表示されませんが、true に設定されます。²
    "S3Bucket": "my-bucket", "S3ObjectKey": "object.zip"
    GitHub パイプラインはコンソールで作成されます (変更検出リソースもコンソールで作成されます)。パラメータは、パイプライン構造の出力に表示され、デフォルトで false になります。
    "Owner": "MyGitHubAccountName", "Repo": "MyGitHubRepositoryName" "PollForSourceChanges": "false", "Branch": "main" "OAuthToken": "****"
    パイプラインは CLI または AWS CloudFormation で作成されます。PollForSourceChanges パラメータ行は JSON 出力に表示されませんが、true に設定されます。²
    "Owner": "MyGitHubAccountName", "Repo": "MyGitHubRepositoryName", "Branch": "main", "OAuthToken": "****"

    ² PollForSourceChanges は、特定のポイントで JSON 構造または AWS CloudFormation テンプレートに追加されると、次のように表示されます。

    "PollForSourceChanges": "true",

    ³ 各ソースプロバイダに適用される変更検出リソースの詳細については、「 変更検出方法 」を参照してください。

プロバイダータイプ別の設定の詳細

このセクションでは、アクションプロバイダ別の有効な configuration パラメータを示します。

次の例は、AWS Service Catalog を使用するデプロイアクションの有効な設定を示しています。個別の設定ファイルを使用しないでパイプラインをコンソールで作成する場合のものです。

"configuration": { "TemplateFilePath": "S3_template.json", "ProductVersionName": "devops S3 v2", "ProductType": "CLOUD_FORMATION_TEMPLATE", "ProductVersionDescription": "Product version description", "ProductId": "prod-example123456" }

次の例は、AWS Service Catalog を使用するデプロイアクションの有効な設定を示しています。個別の sample_config.json 設定ファイルを使用してパイプラインをコンソールで作成する場合のものです。

"configuration": { "ConfigurationFilePath": "sample_config.json", "ProductId": "prod-example123456" }

次の例は、Alexa Skills Kit を使用するデプロイアクションの有効な設定を示しています。

"configuration": { "ClientId": "amzn1.application-oa2-client.aadEXAMPLE", "ClientSecret": "****", "RefreshToken": "****", "SkillId": "amzn1.ask.skill.22649d8f-0451-4b4b-9ed9-bfb6cEXAMPLE" }

次の例は、手動承認の有効な設定を示しています。

"configuration": { "CustomData": "Comments on the manual approval", "ExternalEntityLink": "http://my-url.com", "NotificationArn": "arn:aws:sns:us-west-2:12345EXAMPLE:Notification" }