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

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

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

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

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

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

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

  • 送信元

  • Build

  • Test

  • デプロイ

  • 承認

  • 呼び出し

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

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

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

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

注記

Bitbucket、GitHub、または GitHub Enterprise Server アクションについては、Bitbucket、GitHub、および GitHub Enterprise Server アクション用の CodeStarSourceConnectionアクションリファレンストピックを参照してください。

アクションタイプ別の有効なアクションプロバイダー
アクションカテゴリ 有効なアクションプロバイダー アクションリファレンス
送信元 Amazon S3 Amazon S3
Amazon ECR Amazon ECR
CodeCommit CodeCommit
CodeStarSourceConnection (Bitbucket、GitHub、GitHub、GitHub Enterprise Server アクションの場合) Bitbucket、GitHub、および GitHub Enterprise Server アクション用の CodeStarSourceConnection
Build CodeBuild AWS CodeBuild
カスタム CloudBees 各アクションタイプの入力および出力アーティファクトの数
カスタム Jenkins 各アクションタイプの入力および出力アーティファクトの数
カスタム TeamCity 各アクションタイプの入力および出力アーティファクトの数
Test CodeBuild AWS CodeBuild
AWS Device Farm 各アクションタイプの入力および出力アーティファクトの数
カスタム BlazeMeter 各アクションタイプの入力および出力アーティファクトの数
サードパーティー GhostInspector 各アクションタイプの入力および出力アーティファクトの数
カスタム Jenkins 各アクションタイプの入力および出力アーティファクトの数
サードパーティー Micro Focus StormRunner Load 各アクションタイプの入力および出力アーティファクトの数
サードパーティー Nouvola 各アクションタイプの入力および出力アーティファクトの数
サードパーティー Runscope 各アクションタイプの入力および出力アーティファクトの数
デプロイ Amazon S3 各アクションタイプの入力および出力アーティファクトの数
AWS CloudFormation AWS CloudFormation
CodeDeploy 各アクションタイプの入力および出力アーティファクトの数
Amazon ECS 各アクションタイプの入力および出力アーティファクトの数
Amazon ECS (Blue/Green) (これは CodeDeployToECS アクションです) 各アクションタイプの入力および出力アーティファクトの数
Elastic Beanstalk 各アクションタイプの入力および出力アーティファクトの数
AWS AppConfig AWSAppConfig
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/AWS-CodePipeline-Service", "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 コンソール内で編集することはできません。AWS CLI を使用してステージ名を編集し、そのステージのアクションにシークレットパラメータ (OAuth トークンなど) が含まれる場合、そのシークレットパラメータの値が保持されることはありません。パラメータ値 (AWS CLI よって返される JSON で、4 つのアスタリスクでマスクされている) は手動で入力し、JSON 構造に含める必要があります。

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

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

    "pipeline": { "name": "YourPipelineName", "roleArn": "ServiceRoleARN", "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 フィールドを使用して、実行変数の名前空間と変数の情報を設定します。実行変数とアクション出力変数のリファレンス情報については、「Variables」を参照してください。

  • 現在サポートされているすべてのアクションの種類で、有効な所有者の文字列は「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 タイムスタンプ (次の形式): <YYYY>-<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

  • これらは有効なactionTypeIdCodePipeline カテゴリ:

    • Source

    • Build

    • Approval

    • Deploy

    • Test

    • Invoke

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

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

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

    プロバイダータイプのアクション設定プロパティ
    プロバイダー名 アクションタイプでのプロバイダー名 設定プロパティ プロパティは必須?
    Amazon S3 (デプロイアクションプロバイダ) S3 BucketName 必須
    Extract 必須
    ObjectKey Extract = false の場合は必須
    KMSEncryptionKeyARN1 オプション
    CannedACL2 オプション
    CacheControl3 オプション
    Amazon ECR Amazon ECR パラメータに関連する例など、詳細については、Amazon ECR
    CodeCommit CodeCommit パラメータに関連する例など、詳細については、CodeCommit
    GitHub GitHub パラメータに関連する例など、詳細については、「GitHub バージョン1のソースアクション構造リファレンス」を参照してください。
    Amazon S3 (ソースアクションプロバイダ) Amazon S3 ソースアクションパラメータに関連する例など、詳細については、Amazon S3
    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 Blue/Green パラメータに関する詳細な説明と例については、Amazon Elastic Container Service と CodeDeploy
    AWS Service Catalog ServiceCatalog TemplateFilePath 必須
    ProductVersionName 必須
    ProductType 必須
    ProductVersionDescription オプション
    ProductId 必須
    Alexa Skills Kit AlexaSkillsKit ClientId 必須
    ClientSecret 必須
    RefreshToken 必須
    SkillId 必須
    Jenkins Jenkinsの CodePipeline プラグインで指定したアクションの名前 (MyJenkinsProviderName) ProjectName 必須
    手動承認 Manual CustomData オプション
    ExternalEntityLink オプション
    NotificationArn オプション

    1-KMSEncryptionKeyARNパラメータは、提供されたAWS KMSカスタマーマスターキー (CMK) の場合、AWS KMSCMK では、キー ID、キー ARN、またはエイリアス ARN を使用できます。

    注記

    を指定するにはAWS KMSCMK を別のAWSアカウントでは、キー ARN またはエイリアス ARN を使用する必要があります。

    重要

    CodePipeline では、対称カスタマーマスターキー (CMK) のみをサポートしています。S3 バケット内のデータを暗号化するために非対称 CMK を使用しないでください。

    2-CannedACLパラメーターは、指定された既定 ACLAmazon S3 にデプロイされたオブジェクトに このオブジェクトに適用された既存の ACL が上書きされます。

    3CacheControl パラメータは、バケットのオブジェクトのリクエストやレスポンスのキャッシュ動作を制御します。有効な値のリストについては、HTTP オペレーションの Cache-Control ヘッダーフィールドを参照してください。CacheControl に複数の値を入力するには、各値の間にカンマを使用します。CLI の例に示すように、各カンマの後にスペースを追加できます (オプション)。

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

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

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

アーティファクトのアクションタイプの制約
所有者 アクションのタイプ プロバイダー 入力アーティファクト有効な数 出力アーティファクトの有効な数
AWS 送信元 Amazon S3 0 1
AWS 送信元 CodeCommit 0 1
AWS 送信元 Amazon ECR 0 1
サードパーティー 送信元 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 デプロイ 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
サードパーティー デプロイ 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"
    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": "****"

    ² IfPollForSourceChangesは、任意のポイントで 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" }

次の例では、Amazon S3 を使用するデプロイアクションで有効な設定を示します。

"configuration": { "BucketName": "website-bucket", "Extract": "true", "ObjectKey": "MyWebsite" }

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

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