

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

# パイプライン宣言
<a name="pipeline-requirements"></a>

パイプラインレベルおよびメタデータレベルのパイプラインには、以下のパラメータと構文を含む基本構造があります。パイプラインパラメータは、パイプラインで実行するアクションとステージの構造を表します。

詳細については、「*CodePipeline API ガイド*」の「[PipelineDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineDeclaration.html)」オブジェクトを参照してください。

次の例は、V2 タイプのパイプラインについて、パイプラインレベルおよびメタデータレベルのパイプライン構造を JSON と YAML の両方で示しています。

------
#### [ YAML ]

```
pipeline:
  name: MyPipeline
  roleArn: >-
    arn:aws:iam::{{ACCOUNT_ID}}:role/service-role/AWSCodePipelineServiceRole-us-west-2-MyPipeline
  artifactStore:
    type: S3
    location: amzn-s3-demo-bucket
  stages:
    ...
  version: 6
  executionMode: SUPERSEDED
  pipelineType: V2
  variables:
  - name: MyVariable
    defaultValue: '1'
  triggers:
  - providerType: CodeStarSourceConnection
    gitConfiguration:
      sourceActionName: Source
      push:
      - branches:
          includes:
          - main
          excludes:
          - feature-branch
      pullRequest:
      - events:
        - CLOSED
        branches:
          includes:
          - main*
metadata:
  pipelineArn: 'arn:aws:codepipeline:us-west-2:{{ACCOUNT_ID}}:MyPipeline'
  created: '2019-12-12T06:49:02.733000+00:00'
  updated: '2020-09-10T06:34:07.447000+00:00'
  pollingDisabledAt: '2020-09-10T06:34:07.447000\+00:00'
```

------
#### [ JSON ]

```
{
    "pipeline": {
        "name": "MyPipeline",
        "roleArn": "arn:aws:iam::{{ACCOUNT_ID}}:role/service-role/AWSCodePipelineServiceRole-us-west-2-MyPipeline",
        "artifactStore": {
            "type": "S3",
            "location": "amzn-s3-demo-bucket"
        },
        "stages": {
            ...   
    },
        "version": 6,
        "executionMode": "SUPERSEDED",
                "pipelineType": "V2",
        "variables": [
            {
                "name": "MyVariable",
                "defaultValue": "1"
            }
        ],
        "triggers": [
            {
                "providerType": "CodeStarSourceConnection",
                "gitConfiguration": {
                    "sourceActionName": "Source",
                    "push": [
                        {
                            "branches": {
                                "includes": [
                                    "main"
                                ],
                                "excludes": [
                                    "feature-branch"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED"
                            ],
                            "branches": {
                                "includes": [
                                    "main*"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
    "metadata": {
        "pipelineArn": "arn:aws:codepipeline:us-west-2:{{ACCOUNT_ID}}:MyPipeline",
        "created": "2019-12-12T06:49:02.733000+00:00",
        "updated": "2020-09-10T06:34:07.447000+00:00",
        "pollingDisabledAt": "2020-09-10T06:34:07.447000+00:00"
    }
}
```

------

## `name`
<a name="pipeline.name"></a>

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

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

## `roleArn`
<a name="pipeline.roleArn"></a>

CodePipeline サービスロールの IAM ARN (arn:aws:iam::80398EXAMPLE:role/CodePipeline\_Service\_Role など)。

コンソールを使用して、JSON 構造ではなくパイプラインサービスロール ARN を表示するには、コンソールでパイプラインを選択し、**[設定]** を選択します。**[全般]** タブに、**[サービスロール ARN]** フィールドが表示されます。

## `artifactStore` または `artifactStores`
<a name="pipeline.artifactStore"></a>

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

**注記**  
パイプライン構造では、パイプラインに `artifactStore` または `artifactStores` のどちらかを含める必要がありますが、両方を使用することはできません。パイプラインでクロスリージョンアクションを作成する場合は、`artifactStores` を使用する必要があります。

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

```
    "pipeline": {
        "name": "{{YourPipelineName}}",
        "roleArn": "{{CodePipeline_Service_Role}}",
        "artifactStores": {
            "us-east-1": {
                "type": "S3",
                "location": "{{S3 artifact bucket name, such as amzn-s3-demo-bucket}}"
            },
            "us-west-2": {
                "type": "S3",
                "location": "{{S3 artifact bucket name, such as amzn-s3-demo-bucket}}"
            }
        },
        "stages": [
            {

...
```

### `type`
<a name="pipeline.artifactstore.type"></a>

Amazon S3 として指定した、アーティファクトバケットの場所タイプ。

### `location`
<a name="pipeline.artifactstore.location"></a>

コンソールを使用してパイプラインを初めて作成するときに自動的に生成される Amazon S3 バケットの名前 (codepipeline-us-east-2-1234567890 など)、またはこの目的のためにプロビジョニングする任意の Amazon S3 バケットの名前。

## `stages`
<a name="pipeline.stages"></a>

このパラメータには、パイプラインの各ステージの名前が含まれます。パイプライン構造のステージレベルのパラメータと構文の詳細については、「*CodePipeline API ガイド*」の「[StageDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_StageDeclaration.html)」オブジェクトを参照してください。

ステージのパイプライン構造には、以下の要件があります。
+ パイプラインには、少なくとも 2 つのステージが含まれている必要がある
+ パイプラインの最初のステージには、少なくとも 1 つのソースアクションが含まれている必要がある ソースアクションのみを含めることができる
+ ソースアクションを含むことができるのは、パイプラインの最初のステージのみである
+ 各パイプラインの少なくとも 1 つのステージに、ソースアクション以外のアクションが含まれている必要がある
+ パイプライン内のすべてのステージ名は一意である必要がある
+ ステージ名は、CodePipeline コンソール内で編集することはできません。を使用してステージ名を編集し AWS CLI、ステージに 1 つ以上のシークレットパラメータ (OAuth トークンなど) を含むアクションが含まれている場合、それらのシークレットパラメータの値は保持されません。パラメータ値 ( AWS CLIよって返される JSON で、4 つのアスタリスクでマスクされている) は手動で入力し、JSON 構造に含める必要があります。

**重要**  
30 日以上非アクティブなパイプラインでは、パイプラインのポーリングが無効になります。詳細については、パイプイライン構造リファレンスの「[pollingDisabledAt](#metadata.pollingDisabledAt)」を参照してください。パイプラインをポーリングからイベントベースの変更検出に移行する手順については、「[変更検出方法](change-detection-methods.md)」を参照してください。

## `version`
<a name="pipeline.version"></a>

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

## `executionMode`
<a name="pipeline.executionmode"></a>

パイプライン実行モードを設定すると、キュー、優先、並列モードでの実行など、連続した実行のパイプライン動作を指定できます。詳細については、「[パイプライン実行モードを設定または変更する](execution-modes.md)」を参照してください。

**重要**  
PARALLEL モードのパイプラインでは、ステージのロールバックは使用できません。同様に、ロールバック結果タイプの障害条件を PARALLEL モードのパイプラインに追加することはできません。

## `pipelineType`
<a name="pipeline.pipelineType"></a>

パイプラインタイプは、V2 タイプのパイプラインなど、パイプラインで利用可能な構造と機能を指定します。詳細については、「[パイプラインのタイプ](pipeline-types.md)」を参照してください。

## `variables`
<a name="pipeline.variables"></a>

パイプラインレベルの変数は、パイプラインの作成時に定義され、パイプラインの実行時に解決されます。詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。パイプラインの実行時に渡されるパイプラインレベルの変数のチュートリアルについては、「[チュートリアル: パイプラインレベルの変数を使用する](tutorials-pipeline-variables.md)」を参照してください。

## `triggers`
<a name="pipeline.triggers"></a>

トリガーを使用すると、特定のブランチやプルリクエストの変更を検出したときなど、特定のイベントタイプやフィルタリングされたイベントタイプに応じて開始するようにパイプラインを設定できます。トリガーは、GitHub、Bitbucket、GitLab など、CodePipeline の `CodeStarSourceConnection` アクションを実行する接続を使用するソースアクションに対して設定できます。接続を使用するソースアクションの詳細については、「[CodeConnections を使用してサードパーティのソースプロバイダーを追加する](pipelines-connections.md)」を参照してください。

詳細とより具体的な例については、「[トリガーとフィルタリングを使用してパイプラインを自動的に開始する](pipelines-triggers.md)」を参照してください。

フィルタリングでは、「[構文での glob パターンの使用](syntax-glob.md)」で詳述しているように、正規表現パターンを glob 形式でサポートしています。

**注記**  
CodeCommit および S3 ソースアクションには、設定済みの変更検出リソース (EventBridge ルール)、またはオプションを使用してソースの変更をリポジトリにポーリングする必要があります。Bitbucket、GitHub、または GitHub Enterprise Server のソースアクションを持つパイプラインの場合、ウェブフックを設定したり、デフォルトでポーリングを行う必要はありません。接続アクションは、変更検出を管理します。

**重要**  
30 日以上非アクティブなパイプラインでは、パイプラインのポーリングが無効になります。詳細については、パイプイライン構造リファレンスの「[pollingDisabledAt](#metadata.pollingDisabledAt)」を参照してください。パイプラインをポーリングからイベントベースの変更検出に移行する手順については、「[変更検出方法](change-detection-methods.md)」を参照してください。

### `gitConfiguration` フィールド
<a name="pipeline.triggers.fields"></a>

イベントタイプ、ブランチ、ファイルパス、タグ、プルリクエストイベントでフィルタリングするためのパラメータなど、トリガーの Git 設定。

JSON 構造内のフィールドの定義は以下のとおりです。
+ `sourceActionName`: Git 設定のパイプラインソースアクションの名前。
+ `push`: フィルタリングを含むプッシュイベント。これらのイベントは、異なるプッシュフィルター間では OR 演算を使用し、フィルター内では AND 演算を使用します。
  + `branches`: フィルタリングするブランチ。ブランチは、[含める] と [除外する] の間で AND 演算を使用します。
    + `includes`: 含めるブランチをフィルタリングするパターン。[含める] では OR 演算を使用します。
    + `excludes`: 除外するブランチをフィルタリングするパターン。[除外する] では OR 演算を使用します。
  + `filePaths`: フィルタリングするファイルパス名。
    + `includes`: 含めるファイルパスをフィルタリングするパターン。[含める] では OR 演算を使用します。
    + `excludes`: 除外するファイルパスをフィルタリングするパターン。[除外する] では OR 演算を使用します。
  + `tags`: フィルタリングするタグ名。
    + `includes`: 含めるタグをフィルタリングするパターン。[含める] では OR 演算を使用します。
    + `excludes`: 除外するタグをフィルタリングするパターン。[除外する] では OR 演算を使用します。
+ `pullRequest`: プルリクエストイベントとプルリクエストフィルターのフィルタリングを含むプルリクエストイベント。
  + `events`: オープン、更新、またはクローズしたプルリクエストイベントを指定どおりにフィルタリングします。
  + `branches`: フィルタリングするブランチ。ブランチは、[含める] と [除外する] の間で AND 演算を使用します。
    + `includes`: 含めるブランチをフィルタリングするパターン。[含める] では OR 演算を使用します。
    + `excludes`: 除外するブランチをフィルタリングするパターン。[除外する] では OR 演算を使用します。
  + `filePaths`: フィルタリングするファイルパス名。
    + `includes`: 含めるファイルパスをフィルタリングするパターン。[含める] では OR 演算を使用します。
    + `excludes`: 除外するファイルパスをフィルタリングするパターン。[除外する] では OR 演算を使用します。

プッシュおよびプルリクエストイベントタイプのトリガー設定の例を次に示します。

```
"triggers": [
            {
                "provider": "Connection",
                "gitConfiguration": {
                    "sourceActionName": "ApplicationSource",
                    "push": [
                        {
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            },
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "tags": {
                                "includes": [
                                    "release-v0", "release-v1"
                                ],
                                "excludes": [
                                    "release-v2"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED"
                            ],
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            }
                        }
                    ]
                }
            }
        ],
```

### 包含および除外のイベントタイプ `push` フィールド
<a name="w2aac54c27c27c15"></a>

**プッシュ**イベントタイプの Git 設定フィールドレベルの包含および除外動作を次のリストに示します。

```
push {{(OR operation is used between push and pullRequest or multiples)}}
    filePaths {{(AND operation is used between filePaths, branches, and tags)}}
        includes {{(AND operation is used between includes and excludes)}}
            **/FILE.md, **/FILE2 {{(OR operation is used between file path names)}}
        excludes {{(AND operation is used between includes and excludes)}}
            **/FILE.md, **/FILE2 {{(OR operation is used between file path names)}}
    branches {{(AND operation is used between filePaths, branches, and tags)}}
        includes {{(AND operation is used between includes and excludes)}}
            BRANCH/**", "BRANCH2/** {{(OR operation is used between branch names)}}
        excludes {{(AND operation is used between includes and excludes)}}
            BRANCH/**", "BRANCH2/** {{(OR operation is used between branch names)}}
    tags {{(AND operation is used between filePaths, branches, and tags)   }}     
         includes {{(AND operation is used between includes and excludes)}}
            TAG/**", "TAG2/** {{(OR operation is used between tag names)}}
         excludes {{(AND operation is used between includes and excludes)}}
            TAG/**", "TAG2/** {{(OR operation is used between tag names)}}
```

### 包含および除外のイベントタイプ `pull request` フィールド
<a name="w2aac54c27c27c17"></a>

**プルリクエスト**イベントタイプの Git 設定フィールドレベルの包含および除外動作を次のリストに示します。

```
pullRequest {{(OR operation is used between push and pullRequest or multiples)}}
    events {{(AND operation is used between events, filePaths, and branches)}}. Includes/excludes are N/A for pull request events.
    filePaths {{(AND operation is used between events, filePaths, and branches)}}
        includes {{(AND operation is used between includes and excludes)}}
            **/FILE.md, **/FILE2 {{(OR operation is used between file path names)}}
        excludes {{(AND operation is used between includes and excludes)}}
            **/FILE.md, **/FILE2 {{(OR operation is used between file path names)}}
    branches {{(AND operation is used between events, filePaths, and branches)}}
        includes {{(AND operation is used between includes and excludes)}}
            BRANCH/**", "BRANCH2/** {{(OR operation is used between branch names)}}
        excludes {{(AND operation is used between includes and excludes)}}
            BRANCH/**", "BRANCH2/** {{(OR operation is used between branch names)}}
```

## `metadata`
<a name="metadata.top-level"></a>

パイプラインメタデータフィールドはパイプライン構造とは異なり、編集することはできません。パイプラインを更新すると、`updated` メタデータフィールドの日付が自動的に変更されます。

### `pipelineArn`
<a name="metadata.pipelineArn"></a>

パイプラインの Amazon リソースネーム (ARN)。

コンソールを使用して、JSON 構造ではなくパイプライン ARN を表示するには、コンソールでパイプラインを選択し、**[設定]** を選択します。**[全般]** タブに、**[パイプライン ARN]** フィールドが表示されます。

### `created`
<a name="metadata.created"></a>

パイプラインの作成日時。

### `updated`
<a name="metadata.updated"></a>

パイプラインの最終更新日時。

### `pollingDisabledAt`
<a name="metadata.pollingDisabledAt"></a>

変更検出のポーリング用に設定されたパイプラインについて、ポーリングが無効になった日時。

30 日以上非アクティブなパイプラインでは、パイプラインのポーリングが無効になります。
+ 30 日間実行しない場合、非アクティブなパイプラインのポーリングは無効になります。
+ EventBridge、CodeStar Connections、またはウェブフックを使用するパイプラインは影響を受けません。
+ アクティブなパイプラインは影響を受けません。

詳細については、「*CodePipeline API ガイド*」の [PipelineMetadata](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineMetadata.html) オブジェクトの `pollingDisabledAt` パラメータを参照してください。パイプラインをポーリングからイベントベースの変更検出に移行する手順については、「[変更検出方法](change-detection-methods.md)」を参照してください。