

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Deklarasi pipa
<a name="pipeline-requirements"></a>

Tingkat pipeline dan metadata dari pipeline memiliki struktur dasar yang mencakup parameter dan sintaks berikut. Parameter pipa mewakili struktur tindakan dan tahapan yang akan dilakukan dalam pipa. 

Untuk informasi selengkapnya, lihat [ PipelineDeclaration ](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineDeclaration.html) objek di Panduan * CodePipeline API*.

Contoh berikut menunjukkan tingkat pipeline dan metadata dari struktur pipeline di JSON dan YAML untuk pipeline tipe V2.

------
#### [ 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>

Nama dari alur. Saat Anda mengedit atau memperbarui pipeline, nama pipeline tidak dapat diubah.

**catatan**  
Jika Anda ingin mengganti nama pipeline yang ada, Anda dapat menggunakan `get-pipeline` perintah CLI untuk membangun file JSON yang berisi struktur pipeline Anda. Anda kemudian dapat menggunakan `create-pipeline` perintah CLI untuk membuat pipeline dengan struktur itu dan memberinya nama baru.

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

ARN IAM untuk peran CodePipeline layanan, seperti arn:aws:iam: :80398 \_. EXAMPLE:role/CodePipeline Service\_Role

Untuk menggunakan konsol untuk melihat peran layanan pipeline ARN alih-alih struktur JSON, pilih pipeline Anda di konsol, lalu pilih Peng ** aturan**. Di bawah ** tab ** Umum, ** bidang Arn peran ** layanan ditampilkan.

## `ArtifactStore ATAU ArtifactStores` ``
<a name="pipeline.artifactStore"></a>

Bid `artifactStore` ang berisi jenis bucket artefak dan lokasi untuk pipeline dengan semua tindakan di Wilayah yang sama AWS . Jika Anda menambahkan tindakan di Wilayah yang berbeda dari pipeline Anda, pem `artifactStores` etaan digunakan untuk mencantumkan bucket artefak untuk setiap Wil AWS ayah tempat tindakan dijalankan. Saat Anda membuat atau mengedit pipeline, Anda harus memiliki bucket artefak di Wilayah pipa dan kemudian Anda harus memiliki satu bucket artefak per Wilayah tempat Anda berencana untuk menjalankan tindakan. 

**catatan**  
Dalam struktur pipa, Anda harus menyertakan salah satu `artifactStore` atau `artifactStores` dalam pipeline Anda, tetapi Anda tidak dapat menggunakan keduanya. Jika Anda membuat tindakan lintas wilayah di alur Anda, Anda harus menggunakan `artifactStores`.

Contoh berikut menunjukkan struktur dasar untuk pipeline dengan tindakan lintas wilayah yang menggunakan `artifactStores` parameter: 

```
    "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": [
            {

...
```

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

Jenis lokasi untuk bucket artefak, ditentukan sebagai Amazon S3.

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

Nama bucket Amazon S3 yang dibuat secara otomatis untuk Anda saat pertama kali Anda membuat pipeline menggunakan konsol, seperti codepipeline-us-east-2-1234567890, atau bucket Amazon S3 apa pun yang Anda sediakan untuk tujuan ini

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

Parameter ini berisi nama setiap tahap dalam pipeline. Untuk informasi selengkapnya tentang parameter dan sintaks pada tingkat tahap struktur pipeline, lihat [ StageDeclaration ](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_StageDeclaration.html) objek di Panduan * CodePipeline API*.

Struktur pipa untuk tahapan memiliki persyaratan sebagai berikut:
+ Sebuah pipa harus berisi setidaknya dua tahap.
+ Tahap pertama pipa harus berisi setidaknya satu aksi sumber. Itu hanya dapat berisi tindakan sumber.
+ Hanya tahap pertama pipa yang dapat berisi tindakan sumber.
+ Setidaknya satu tahap di setiap pipeline harus berisi tindakan yang bukan tindakan sumber.
+ Semua nama panggung dalam pipeline harus unik.
+ Nama panggung tidak dapat diedit di CodePipeline konsol. Jika Anda mengedit nama panggung dengan menggunakan AWS CLI, dan panggung berisi tindakan dengan satu atau lebih parameter rahasia (seperti token OAuth), nilai parameter rahasia tersebut tidak dipertahankan. Anda harus memasukkan nilai parameter secara manual (yang ditutupi oleh empat tanda bintang dalam JSON yang dikembalikan oleh AWS CLI) dan memasukkannya ke dalam struktur JSON.

**penting**  
Pipeline yang tidak aktif selama lebih dari 30 hari akan menonaktifkan polling untuk pipeline. Untuk informasi selengkapnya, lihat [ polling DisabledAt ](#metadata.pollingDisabledAt) dalam referensi struktur pipa. Untuk langkah-langkah untuk memigrasikan pipeline Anda dari polling ke deteksi perubahan berbasis peristiwa, lihat Metode Deteksi [ Perubahan. ](change-detection-methods.md)

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

Nomor versi pipeline secara otomatis dibuat dan diperbarui setiap kali Anda memperbarui pipeline.

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

Anda dapat mengatur mode eksekusi pipeline sehingga Anda dapat menentukan perilaku pipeline untuk proses berturut-turut, seperti mengantri, mengganti, atau menjalankan dalam mode paralel. Untuk informasi selengkapnya, lihat [Mengatur atau mengubah mode eksekusi pipeline](execution-modes.md).

**penting**  
Untuk saluran pipa dalam mode PARALEL, rollback panggung tidak tersedia. Demikian pula, kondisi kegagalan dengan tipe hasil rollback tidak dapat ditambahkan ke pipeline mode PARALLEL.

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

Jenis pipa menentukan struktur dan fitur yang tersedia dalam pipeline, seperti untuk pipa tipe V2. Untuk informasi selengkapnya, lihat [Jenis pipa](pipeline-types.md).

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

Variabel pada tingkat pipeline ditentukan saat pipeline dibuat dan diselesaikan pada waktu proses pipeline. Untuk informasi selengkapnya, lihat [Referensi variabel](reference-variables.md). Untuk tutorial dengan variabel tingkat pipeline yang dilewatkan pada saat eksekusi pipeline, lihat. [Tutorial: Gunakan variabel tingkat pipa](tutorials-pipeline-variables.md)

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

Pemicu memungkinkan Anda mengonfigurasi pipeline untuk memulai pada jenis peristiwa tertentu atau jenis peristiwa yang difilter, seperti ketika perubahan pada cabang tertentu atau permintaan tarik terdeteksi. Pemicu dapat dikonfigurasi untuk tindakan sumber dengan koneksi yang menggunakan `CodeStarSourceConnection` tindakan di CodePipeline, seperti, Bitbucket GitHub, dan. GitLab Untuk informasi selengkapnya tentang tindakan sumber yang menggunakan koneksi, lihat[Tambahkan penyedia sumber pihak ketiga ke saluran pipa menggunakan CodeConnections](pipelines-connections.md).

Untuk informasi lebih lanjut dan contoh yang lebih rinci, lihat[Otomatiskan saluran pipa awal menggunakan pemicu dan penyaringan](pipelines-triggers.md).

Untuk pemfilteran, pola ekspresi reguler dalam format glob didukung seperti yang dijelaskan dalam[Bekerja dengan pola glob dalam sintaks](syntax-glob.md).

**catatan**  
T CodeCommit indakan sumber dan S3 memerlukan sumber daya deteksi perubahan yang dikonfigurasi ( EventBridge aturan) atau menggunakan opsi untuk mensurvei repositori untuk perubahan sumber. Untuk pipeline dengan tindakan sumber Bitbucket GitHub,, atau GitHub Enterprise Server, Anda tidak perlu mengatur webhook atau default untuk polling. Tindakan koneksi mengelola deteksi perubahan untuk Anda. 

**penting**  
Pipeline yang tidak aktif selama lebih dari 30 hari akan menonaktifkan polling untuk pipeline. Untuk informasi selengkapnya, lihat [ polling DisabledAt ](#metadata.pollingDisabledAt) dalam referensi struktur pipa. Untuk langkah-langkah untuk memigrasikan pipeline Anda dari polling ke deteksi perubahan berbasis peristiwa, lihat Metode Deteksi [ Perubahan. ](change-detection-methods.md)

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

Konfigurasi Git untuk pemicu, termasuk jenis peristiwa dan parameter apa pun untuk pemfilteran berdasarkan cabang, jalur file, tag, atau peristiwa permintaan tarik. 

Bidang dalam struktur JSON didefinisikan sebagai berikut:
+ `sourceActionName`: Nama tindakan sumber pipeline dengan konfigurasi Git.
+ `push`: Dorong acara dengan pemfilteran. Peristiwa ini menggunakan operasi OR antara filter push yang berbeda dan operasi AND di dalam filter.
  + `branches`: Cabang untuk disaring. Cabang menggunakan operasi AND antara termasuk dan tidak termasuk. 
    + `includes`: Pola untuk disaring untuk cabang yang akan disertakan. Termasuk menggunakan operasi OR.
    + `excludes`: Pola untuk disaring untuk cabang yang akan dikecualikan. Tidak termasuk menggunakan operasi OR.
  + `filePaths`: Nama jalur file untuk difilter. 
    + `includes`: Pola untuk difilter untuk jalur file yang akan disertakan. Termasuk menggunakan operasi OR.
    + `excludes`: Pola untuk difilter untuk jalur file yang akan dikecualikan. Tidak termasuk menggunakan operasi OR.
  + `tags`: Nama tag untuk difilter.
    + `includes`: Pola untuk difilter untuk tag yang akan disertakan. Termasuk menggunakan operasi OR.
    + `excludes`: Pola untuk difilter untuk tag yang akan dikecualikan. Tidak termasuk menggunakan operasi OR.
+ `pullRequest`: Acara permintaan tarik dengan pemfilteran pada peristiwa permintaan tarik dan filter permintaan tarik.
  + `events`: Memfilter pada acara permintaan tarik terbuka, diperbarui, atau ditutup seperti yang ditentukan.
  + `branches`: Cabang untuk disaring. Cabang menggunakan operasi AND antara termasuk dan tidak termasuk. 
    + `includes`: Pola untuk disaring untuk cabang yang akan disertakan. Termasuk menggunakan operasi OR.
    + `excludes`: Pola untuk disaring untuk cabang yang akan dikecualikan. Tidak termasuk menggunakan operasi OR.
  + `filePaths`: Nama jalur file untuk difilter. 
    + `includes`: Pola untuk difilter untuk jalur file yang akan disertakan. Termasuk menggunakan operasi OR.
    + `excludes`: Pola untuk difilter untuk jalur file yang akan dikecualikan. Tidak termasuk menggunakan operasi OR.

Berikut ini adalah contoh konfigurasi pemicu untuk jenis peristiwa permintaan push dan pull.

```
"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"
                                ]
                            }
                        }
                    ]
                }
            }
        ],
```

### Bidang `push jenis acara untuk` menyertakan dan mengecualikan
<a name="w2aac54c27c27c15"></a>

Sertakan dan mengecualikan perilaku untuk tingkat bidang konfigurasi Git untuk jenis ** peristiwa ** push ditampilkan dalam daftar berikut:

```
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)}}
```

### Bidang permintaan `tarik jenis acara untuk` menyertakan dan mengecualikan
<a name="w2aac54c27c27c17"></a>

Sertakan dan mengecualikan perilaku untuk tingkat bidang konfigurasi Git untuk jenis ** peristiwa permintaan ** tarik ditampilkan dalam daftar berikut:

```
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>

Bidang metadata pipeline berbeda dari struktur pipeline dan tidak dapat diedit. Saat Anda memperbarui pipeline, tanggal di bidang `updated` metadata berubah secara otomatis.

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

Nama Sumber Daya Amazon (ARN) dari pipeline.

Untuk menggunakan konsol untuk melihat ARN pipeline alih-alih struktur JSON, pilih pipeline Anda di konsol, lalu pilih Peng ** aturan**. Di bawah ** tab ** Umum, ** bidang ** Pipeline ARN ditampilkan.

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

Tanggal dan waktu ketika pipa dibuat.

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

Tanggal dan waktu ketika pipeline terakhir diperbarui.

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

Tanggal dan waktu kapan, untuk pipeline yang dikonfigurasi untuk polling untuk deteksi perubahan, saat polling dinonaktifkan.

Pipeline yang tidak aktif selama lebih dari 30 hari akan menonaktifkan polling untuk pipeline.
+ Pipeline yang tidak aktif akan menonaktifkan polling setelah 30 hari tanpa eksekusi.
+ Pipeline EventBridge yang menggunakan, Kon CodeStar eksi, atau webhook tidak akan terpengaruh.
+ Pipeline aktif tidak akan terpengaruh.

Untuk informasi selengkapnya, lihat `pollingDisabledAt` parameter di bawah [ PipelineMetadata ](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineMetadata.html) objek di Panduan * CodePipeline API*. Untuk langkah-langkah untuk memigrasikan pipeline Anda dari polling ke deteksi perubahan berbasis peristiwa, lihat Metode Deteksi [ Perubahan. ](change-detection-methods.md)