

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

# Menambahkan tindakan Lintas wilayah di CodePipeline
<a name="actions-create-cross-region"></a>

AWS CodePipeline menyertakan sejumlah tindakan yang membantu Anda mengonfigurasi pembuatan, pengujian, dan penerapan sumber daya untuk proses rilis otomatis Anda. Anda dapat menambahkan tindakan ke pipeline yang berada di AWS Wilayah yang berbeda dari pipeline Anda. Jika Layanan AWS adalah penyedia tindakan, dan type/provider tipe tindakan ini berada di AWS Wilayah yang berbeda dari pipeline Anda, ini adalah tindakan Lintas wilayah. 

**catatan**  
Tindakan lintas wilayah didukung dan hanya dapat dibuat di AWS Wilayah yang CodePipeline didukung. Untuk daftar AWS Wilayah yang didukung CodePipeline, lihat[Kuota di AWS CodePipeline](limits.md).

Anda dapat menggunakan konsol, AWS CLI, atau CloudFormation untuk menambahkan tindakan lintas wilayah di pipeline.

**catatan**  
Jenis tindakan tertentu CodePipeline mungkin hanya tersedia di AWS Wilayah tertentu. Perhatikan juga bahwa mungkin ada AWS Wilayah di mana tipe tindakan tersedia, tetapi AWS penyedia khusus untuk jenis tindakan tersebut tidak tersedia.

Saat membuat atau mengedit pipeline, Anda harus memiliki bucket artefak di Wilayah pipeline dan kemudian Anda harus memiliki satu bucket artefak per Wilayah tempat Anda berencana untuk menjalankan suatu tindakan. Untuk informasi tentang parameter `ArtifactStores`, lihat [CodePipeline referensi struktur pipa](reference-pipeline-structure.md).

**catatan**  
CodePipeline menangani penyalinan artefak dari satu AWS Wilayah ke Wilayah lain saat melakukan tindakan lintas wilayah.

Jika Anda menggunakan konsol untuk membuat pipeline atau tindakan lintas wilayah, bucket artefak default dikonfigurasi oleh CodePipeline di Wilayah tempat Anda memiliki tindakan. Saat Anda menggunakan AWS CLI, CloudFormation, atau SDK untuk membuat pipeline atau tindakan lintas wilayah, Anda menyediakan bucket artefak untuk setiap Wilayah tempat Anda memiliki tindakan. 

**catatan**  
Anda harus membuat bucket artefak dan kunci enkripsi di AWS Wilayah yang sama dengan tindakan Lintas wilayah dan di akun yang sama dengan pipeline Anda.

Anda tidak dapat membuat tindakan lintas wilayah untuk jenis tindakan berikut:
+ Tindakan sumber
+ Tindakan pihak ketiga
+ Tindakan kustom

**catatan**  
Saat menggunakan tindakan CodePipeline pemanggilan Lambda lintas wilayah, status eksekusi lambda menggunakan [PutJobSuccessResult[PutJobFailureResult](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobFailureResult.html)](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html)dan harus dikirim ke Wilayah tempat fungsi Lambda hadir dan bukan ke AWS Wilayah tempat ada fungsi Lambda. CodePipeline 

Ketika pipeline menyertakan aksi Lintas wilayah sebagai bagian dari tahap, hanya CodePipeline mereplikasi artefak masukan dari aksi Lintas wilayah dari Wilayah pipa ke Wilayah aksi.

**catatan**  
Wilayah pipeline dan Wilayah tempat sumber daya deteksi perubahan CloudWatch Peristiwa Anda dipertahankan tetap sama. Wilayah tempat pipeline Anda di-host tidak berubah.



## Mengelola tindakan lintas wilayah dalam pipeline (konsol)
<a name="actions-cross-region-console"></a>

Anda dapat menggunakan CodePipeline konsol untuk menambahkan tindakan Lintas wilayah ke pipeline yang ada. Untuk membuat pipeline baru dengan tindakan lintas wilayah menggunakan wizard Buat pipeline, lihat[Buat pipeline khusus (konsol)](pipelines-create.md#pipelines-create-console).

Di konsol, Anda membuat tindakan lintas wilayah dalam tahap pipeline dengan memilih penyedia tindakan dan bidang **Wilayah**, yang mencantumkan sumber daya yang telah Anda buat di wilayah tersebut untuk penyedia tersebut. Saat menambahkan tindakan Lintas wilayah, CodePipeline gunakan bucket artefak terpisah di wilayah tindakan. Untuk informasi lebih lanjut tentang ember artefak lintas wilayah, lihat. [CodePipeline referensi struktur pipa](reference-pipeline-structure.md)

### Menambahkan tindakan Lintas wilayah ke tahap pipeline (konsol)
<a name="actions-cross-region-console-add"></a>

Gunakan konsol untuk menambahkan tindakan Lintas wilayah ke pipeline.

**catatan**  
Jika pipeline berjalan saat perubahan disimpan, eksekusi itu tidak selesai.

**Untuk menambahkan tindakan Lintas wilayah**

1. Masuk ke konsol di [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Pilih pipeline Anda, lalu pilih **Edit**.

1. Di bagian bawah diagram, pilih **\$1 Tambahkan tahap** jika Anda menambahkan tahap baru, atau pilih **Edit tahap** jika Anda ingin menambahkan tindakan ke tahap yang ada.

1. Pada **Edit:**<Stage>, pilih **\$1 Tambahkan grup tindakan** untuk menambahkan aksi serial. Atau pilih **\$1 Tambahkan tindakan** untuk menambahkan aksi paralel.

1. Pada halaman **Edit tindakan**:

   1. Di **Nama tindakan**, masukkan nama untuk tindakan Lintas wilayah.

   1. Di **Penyedia tindakan**, pilih penyedia tindakan.

   1. Di **Wilayah**, pilih AWS Wilayah tempat Anda membuat atau rencanakan untuk membuat sumber daya untuk tindakan tersebut. Ketika Wilayah dipilih, sumber daya yang tersedia untuk Wilayah tersebut dicantumkan untuk dipilih. Bidang **Region** menentukan tempat AWS sumber daya dibuat untuk tipe tindakan dan jenis penyedia ini. Bidang ini hanya menampilkan tindakan di mana penyedia tindakan adalah Layanan AWS. Bidang **Region** default sama Wilayah AWS dengan pipeline Anda.

   1. Dalam **artefak Input** pilih input yang sesuai dari tahap sebelumnya. Misalnya, jika tahap sebelumnya adalah tahap sumber, pilih **SourceArtifact**.

   1. Lengkapi semua bidang yang diperlukan untuk penyedia tindakan yang Anda konfigurasikan.

   1. Dalam **artefak Output** pilih output yang sesuai ke tahap berikutnya. Misalnya, jika tahap selanjutnya adalah tahap penyebaran, pilih **BuildArtifact**.

   1. Pilih **Simpan**.

1. Pada **Edit:**<Stage>, pilih **Selesai**.

1. Pilih **Simpan**.

### Mengedit tindakan Lintas wilayah dalam tahap pipeline (konsol)
<a name="actions-cross-region-console-edit"></a>

Gunakan konsol untuk mengedit tindakan Lintas wilayah yang ada dalam pipeline.

**catatan**  
Jika pipeline berjalan saat perubahan disimpan, eksekusi itu tidak selesai.

**Untuk mengedit tindakan Lintas wilayah**

1. Masuk ke konsol di [https://console.aws.amazon.com/codesuite/codepipeline/home.](https://console.aws.amazon.com/codesuite/codepipeline/home.)

1. Pilih pipeline Anda, lalu pilih **Edit**.

1. Pilih **Edit tahap**.

1. Pada **Edit:**<Stage>, pilih ikon untuk mengedit tindakan yang ada.

1. Pada halaman **Edit tindakan**, buat perubahan pada bidang, yang sesuai.

1. Pada **Edit:**<Stage>, pilih **Selesai**.

1. Pilih **Simpan**.

### Menghapus tindakan Lintas wilayah dari tahap pipeline (konsol)
<a name="actions-cross-region-console-delete"></a>

Gunakan konsol untuk menghapus tindakan Lintas wilayah yang ada dari pipeline.

**catatan**  
Jika pipeline berjalan saat perubahan disimpan, eksekusi itu tidak selesai.

**Untuk menghapus tindakan Lintas wilayah**

1. Masuk ke konsol di [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Pilih pipeline Anda, lalu pilih **Edit**.

1. Pilih **Edit tahap**.

1. Pada **Edit:**<Stage>, pilih ikon untuk menghapus tindakan yang ada.

1. Pada **Edit:**<Stage>, pilih **Selesai**.

1. Pilih **Simpan**.

## Tambahkan tindakan Lintas wilayah ke pipeline (CLI)
<a name="actions-cross-region-cli"></a>

Anda dapat menggunakan AWS CLI untuk menambahkan tindakan Lintas wilayah ke pipeline yang ada.

Untuk membuat tindakan Lintas wilayah dalam tahap pipeline dengan AWS CLI, Anda menambahkan tindakan konfigurasi bersama dengan `region` bidang opsional. Anda juga harus sudah membuat ember artefak di wilayah aksi. Alih-alih menyediakan `artifactStore` parameter pipeline wilayah tunggal, Anda menggunakan `artifactStores` parameter tersebut untuk menyertakan daftar bucket artefak masing-masing Region.

**catatan**  
Dalam panduan ini dan contohnya, *RegionA* adalah Wilayah tempat pipa dibuat. Ini memiliki akses ke bucket *RegionA* Amazon S3 yang digunakan untuk menyimpan artefak pipa dan peran layanan yang digunakan oleh. CodePipeline *RegionB*adalah wilayah tempat CodeDeploy aplikasi, grup penyebaran, dan peran layanan yang digunakan oleh CodeDeploy dibuat. 

### Prasyarat
<a name="actions-create-cross-region-prereq"></a>

Anda harus telah membuat yang berikut:
+ Sebuah pipa masuk*RegionA*. 
+ Ember artefak Amazon S3 masuk. *RegionB* 
+ Sumber daya untuk tindakan Anda, seperti CodeDeploy aplikasi dan grup penerapan untuk tindakan penerapan Lintas wilayah, di. *RegionB*

### Tambahkan tindakan Lintas wilayah ke pipeline (CLI)
<a name="actions-create-cross-region-cli"></a>

Gunakan AWS CLI untuk menambahkan tindakan Lintas wilayah ke pipeline.

**Untuk menambahkan tindakan Lintas wilayah**

1. Untuk pipeline*RegionA*, jalankan **get-pipeline** perintah untuk menyalin struktur pipa ke file JSON. Misalnya, untuk pipeline bernama`MyFirstPipeline`, jalankan perintah berikut: 

   ```
   aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json
   ```

   Perintah ini tidak mengembalikan apa pun, tetapi file yang Anda buat akan muncul di direktori tempat Anda menjalankan perintah.

1. Tambahkan `region` bidang untuk menambahkan tahap baru dengan tindakan Lintas wilayah yang menyertakan Wilayah dan sumber daya untuk tindakan Anda. Contoh JSON berikut menambahkan tahap Deploy dengan tindakan penerapan lintas wilayah di mana penyedia berada CodeDeploy, di wilayah baru. `us-east-1`

   ```
    {
                   "name": "Deploy",
                   "actions": [
                       {
                           "inputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "name": "Deploy",
                           "region": "RegionB",
                           "actionTypeId": {
                               "category": "Deploy",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeDeploy"
                           },
                           "outputArtifacts": [],
                           "configuration": {
                               "ApplicationName": "name",
                               "DeploymentGroupName": "name"
                           },
                           "runOrder": 1
                       }
   ```

1. Dalam struktur pipa, hapus `artifactStore` bidang dan tambahkan `artifactStores` peta untuk tindakan Lintas wilayah baru Anda. Pemetaan harus menyertakan entri untuk setiap AWS Wilayah di mana Anda memiliki tindakan. Untuk setiap entri dalam pemetaan, sumber daya harus berada di AWS Wilayah masing-masing. Dalam contoh di bawah ini, `ID-A` adalah ID kunci enkripsi untuk*RegionA*, dan `ID-B` merupakan ID kunci enkripsi untuk*RegionB*.

   ```
   "artifactStores":{  
      "RegionA":{  
         "encryptionKey":{  
            "id":"ID-A",
            "type":"KMS"
         },
         "location":"Location1",
         "type":"S3"
      },
      "RegionB":{  
         "encryptionKey":{  
            "id":"ID-B",
            "type":"KMS"
         },
         "location":"Location2",
         "type":"S3"
      }
   }
   ```

   Contoh JSON berikut menunjukkan bucket us-west-2 sebagai `my-storage-bucket` dan menambahkan bucket us-east-1 baru bernama. `my-storage-bucket-us-east-1`

   ```
           "artifactStores": {
               "us-west-2": {
                   "type": "S3",
                   "location": "my-storage-bucket"
               },
               "us-east-1": {
                   "type": "S3",
                   "location": "my-storage-bucket-us-east-1"
               }
           },
   ```

1. Jika Anda bekerja dengan struktur pipa yang diambil menggunakan **get-pipeline** perintah, hapus `metadata` baris dari file JSON. Jika tidak, **update-pipeline** perintah tidak dapat menggunakannya. Hapus `"metadata": { }` garis dan`"created"`,`"pipelineARN"`, dan `"updated"` bidang.

   Misalnya, hapus baris berikut dari struktur: 

   ```
   "metadata": {  
     "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name",
     "created": "date",
     "updated": "date"
     }
   ```

   Simpan file tersebut.

1. Untuk menerapkan perubahan Anda, jalankan **update-pipeline** perintah, dengan menentukan file JSON pipeline:
**penting**  
Pastikan untuk menyertakan `file://` sebelum nama file. Diperlukan dalam perintah ini.

   ```
   aws codepipeline update-pipeline --cli-input-json file://pipeline.json
   ```

   Perintah ini mengembalikan seluruh struktur pipa yang diedit. Output Anda serupa dengan yang berikut ini.

   ```
   {
       "pipeline": {
           "version": 4,
           "roleArn": "ARN",
           "stages": [
               {
                   "name": "Source",
                   "actions": [
                       {
                           "inputArtifacts": [],
                           "name": "Source",
                           "actionTypeId": {
                               "category": "Source",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeCommit"
                           },
                           "outputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "configuration": {
                               "PollForSourceChanges": "false",
                               "BranchName": "main",
                               "RepositoryName": "MyTestRepo"
                           },
                           "runOrder": 1
                       }
                   ]
               },
               {
                   "name": "Deploy",
                   "actions": [
                       {
                           "inputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "name": "Deploy",
                           "region": "us-east-1",
                           "actionTypeId": {
                               "category": "Deploy",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeDeploy"
                           },
                           "outputArtifacts": [],
                           "configuration": {
                               "ApplicationName": "name",
                               "DeploymentGroupName": "name"
                           },
                           "runOrder": 1
                       }
                   ]
               }
           ],
           "name": "AnyCompanyPipeline",
           "artifactStores": {
               "us-west-2": {
                   "type": "S3",
                   "location": "my-storage-bucket"
               },
               "us-east-1": {
                   "type": "S3",
                   "location": "my-storage-bucket-us-east-1"
               }
           }
       }
   }
   ```
**catatan**  
**update-pipeline**Perintah menghentikan pipa. Jika revisi sedang dijalankan melalui pipeline saat Anda menjalankan **update-pipeline** perintah, proses itu dihentikan. Anda harus memulai pipeline secara manual untuk menjalankan revisi itu melalui pipeline yang diperbarui. Gunakan **`start-pipeline-execution`** perintah untuk memulai pipeline Anda secara manual.

1. Setelah memperbarui pipeline, tindakan lintas wilayah akan ditampilkan di konsol.  
![\[Pandangan tingkat tinggi dari pipa yang mencakup tindakan Lintas wilayah.\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/cross-region-icon.png)

## Menambahkan tindakan Lintas wilayah ke pipeline ()CloudFormation
<a name="actions-create-cross-region-cfn"></a>

Anda dapat menggunakan CloudFormation untuk menambahkan tindakan Lintas wilayah ke pipeline yang ada.

**Untuk menambahkan tindakan Lintas wilayah dengan CloudFormation**

1. Tambahkan `Region` parameter ke `ActionDeclaration` sumber daya di template Anda, seperti yang ditunjukkan dalam contoh ini:

   ```
   ActionDeclaration:
                 Type: Object
                 Properties:
                   ActionTypeId:
                     Type: ActionTypeId
                     Required: true
                   Configuration:
                     Type: Map
                   InputArtifacts:
                     Type: Array
                     ItemType:
                       Type: InputArtifact
                   Name:
                     Type: String
                     Required: true
                   OutputArtifacts:
                     Type: Array
                     ItemType:
                       Type: OutputArtifact
                   RoleArn:
                     Type: String
                   RunOrder:
                     Type: Integer
                   Region:
                     Type: String
   ```

1. Di bawah`Mappings`, tambahkan peta wilayah seperti yang ditunjukkan dalam contoh ini untuk pemetaan bernama `SecondRegionMap` yang memetakan nilai untuk kunci `RegionA` dan`RegionB`. Di bawah `Pipeline` sumber daya, di bawah `artifactStore` bidang, tambahkan `artifactStores` peta untuk tindakan Lintas wilayah baru Anda sebagai berikut:

   ```
   Mappings:
     SecondRegionMap:
       RegionA:
         SecondRegion: "RegionB"
       RegionB:
         SecondRegion: "RegionA"
   
   ...
   
             Properties:
               ArtifactStores:
                 -
                   Region: RegionB
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-RegionB
                 -
                   Region: RegionA
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-RegionA
   ```

   Contoh YAMG berikut menunjukkan *RegionA* bucket sebagai `us-west-2` dan menambahkan *RegionB* bucket baru,`eu-central-1`:

   ```
   Mappings:
     SecondRegionMap:
       us-west-2:
         SecondRegion: "eu-central-1"
       eu-central-1:
         SecondRegion: "us-west-2"
   
   ...
   
             Properties:
               ArtifactStores:
                 -
                   Region: eu-central-1
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-eu-central-1
                 -
                   Region: us-west-2
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-us-west-2
   ```

1. Simpan template yang diperbarui ke komputer lokal Anda, lalu buka CloudFormation konsol.

1. Pilih tumpukan Anda, lalu pilih **Create Change Set for Current Stack**. 

1. Unggah template, lalu lihat perubahan yang tercantum di dalamnya CloudFormation. Ini adalah perubahan yang harus dilakukan pada tumpukan. Anda harus melihat sumber daya baru Anda dalam daftar.

1. Pilih **Eksekusi**.