View a markdown version of this page

Menambahkan tindakan lintas wilayah di CodePipeline - AWS CodePipeline

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

AWS CodePipeline mencakup sejumlah tindakan yang membantu Anda mengonfigurasi membangun, menguji, dan menyebarkan sumber daya untuk proses rilis otomatis Anda. Anda dapat menambahkan tindakan ke pipeline yang berada di Wil AWS ayah yang berbeda dari pipeline Anda. Jika an Layanan AWS adalah penyedia untuk suatu tindakan, dan type/provider jenis tindakan ini berada di Wilayah yang berbeda AWS dari pipeline Anda, ini adalah tindakan lintas wilayah.

catatan

Cross-region tindakan didukung dan hanya dapat dibuat di Wil AWS ayah yang CodePipeline didukung. Untuk daftar Wilayah yang didukung AWS CodePipeline, lihatKuota di AWS CodePipeline.

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

catatan

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

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. Untuk informasi tentang parameter ArtifactStores, lihat CodePipeline referensi struktur pipa.

catatan

CodePipeline menangani penyalinan artefak dari satu AWS Wilayah ke Wilayah lainnya saat melakukan tindakan lintas wilayah.

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

catatan

Anda harus membuat bucket artefak dan kunci enkripsi di Wilayah yang sama AWS 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

  • Third-party tindakan

  • Tindakan khusus

catatan

Saat menggunakan tindakan panggil Lambda lintas wilayah di CodePipeline, status eksekusi Lambda menggunakan PutJobSuccessResult dan PutJobFailureResult harus dikirim ke Wil AWS ayah tempat fungsi Lambda hadir dan bukan ke Wilayah di mana ada. CodePipeline

Ketika pipeline menyertakan tindakan lintas wilayah sebagai bagian dari tahap, hanya mer CodePipeline eplikasi artefak masukan dari tindakan lintas-wilayah dari Wilayah pipa ke Wilayah tindakan.

catatan

Wilayah pipeline dan Wilayah tempat sumber daya CloudWatch deteksi perubahan Acara Anda dipertahankan tetap sama. Wilayah tempat pipeline Anda dihosting tidak berubah.

Mengelola tindakan lintas wilayah dalam pipeline (konsol)

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, lihatBuat pipeline kustom (konsol).

Di konsol, Anda membuat tindakan lintas wilayah dalam tahap pipeline dengan memilih penyedia tindakan dan bidang Wil ayah, yang mencantumkan sumber daya yang telah Anda buat di Wilayah tersebut untuk penyedia tersebut. Saat Anda menambahkan tindakan lintas wilayah, CodePipeline gunakan bucket artefak terpisah di Wilayah tindakan. Untuk informasi selengkapnya tentang bucket artefak lintas wilayah, lihat. CodePipeline referensi struktur pipa

Menambahkan tindakan lintas wilayah ke tahap pipeline (konsol)

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.

  2. Pilih pipeline Anda, lalu pilih Edit.

  3. Di bagian bawah diagram, pilih + Tambahkan tahap jika Anda menambahkan tahap baru, atau pilih Edit tahap jika Anda ingin menambahkan tindakan ke tahap yang ada.

  4. Pada Edit: <Stage>, pilih + Tambahkan grup tindakan untuk menambahkan tindakan serial. Atau pilih + Tambahkan tindakan untuk menambahkan tindakan paralel.

  5. Pada halaman Edit tindakan:

    1. Di Nama tindakan, masukkan nama untuk tindakan lintas wilayah.

    2. Di Penyedia tindakan, pilih penyedia tindakan.

    3. Di Wilayah, pilih Wil AWS ayah tempat Anda telah membuat atau rencanakan untuk membuat sumber daya untuk tindakan tersebut. Ketika Wilayah dipilih, sumber daya yang tersedia untuk Wilayah tersebut terdaftar untuk dipilih. Bid ang Wilayah menunjukkan tempat AWS sumber daya dibuat untuk jenis tindakan dan jenis penyedia ini. Bidang ini hanya ditampilkan untuk tindakan di mana penyedia tindakan adalah Layanan AWS. Bid ang Wilayah secara default Wilayah AWS sama dengan pipeline Anda.

    4. Dalam artefak masukan pilih input yang sesuai dari tahap sebelumnya. Misalnya, jika tahap sebelumnya adalah tahap sumber, pilih SourceArtifact.

    5. Lengkapi semua bidang yang diperlukan untuk penyedia tindakan yang Anda konfigurasi.

    6. Dalam artefak Output pilih output yang sesuai untuk tahap berikutnya. Misalnya, jika tahap selanjutnya adalah tahap penerapan, pilih BuildArtifact.

    7. Pilih Simpan.

  6. Pada Edit: <Stage>, pilih Sel esai.

  7. Pilih Simpan.

Mengedit tindakan lintas wilayah dalam tahap pipeline (konsol)

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 http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Pilih pipeline Anda, lalu pilih Edit.

  3. Pilih Edit stage.

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

  5. Pada halaman Edit tindakan, buat perubahan pada bidang, jika sesuai.

  6. Pada Edit: <Stage>, pilih Sel esai.

  7. Pilih Simpan.

Menghapus tindakan lintas wilayah dari tahap pipeline (konsol)

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.

  2. Pilih pipeline Anda, lalu pilih Edit.

  3. Pilih Edit stage.

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

  5. Pada Edit: <Stage>, pilih Sel esai.

  6. Pilih Simpan.

Menambahkan tindakan lintas wilayah ke pipeline (CLI)

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 telah membuat bucket artefak di Wilayah aksi. Alih-alih menyediakan artifactStore parameter pipeline satu wilayah, Anda menggunakan artifactStores parameter untuk menyertakan daftar bucket artefak masing-masing Wilayah.

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 pipeline dan peran layanan yang digunakan oleh CodePipeline. RegionBadalah Wilayah tempat CodeDeploy aplikasi, grup penerapan, dan peran layanan yang CodeDeploy digunakan dibuat.

Prasyarat

Anda harus membuat yang berikut:

  • Sebuah pipa masukRegionA.

  • Ember artefak Amazon S3 masukRegionB.

  • Sumber daya untuk tindakan Anda, seperti CodeDeploy aplikasi dan grup penerapan untuk tindakan penerapan lintas wilayah, diRegionB.

Menambahkan tindakan lintas wilayah ke pipeline (CLI)

Gunakan AWS CLI untuk menambahkan tindakan lintas wilayah ke pipeline.

Untuk menambahkan tindakan lintas wilayah
  1. Untuk pipeline masukRegionA, jalankan get-pipeline perintah untuk menyalin struktur pipeline ke file JSON. Misalnya, untuk pipeline bernamaMyFirstPipeline, 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.

  2. Tambahkan region bidang untuk menambahkan tahap baru dengan tindakan lintas wilayah yang mencakup 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 us-east-1 baru.

    { "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 }
  3. Dalam struktur pipeline, 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 Wil AWS ayah masing-masing. Dalam contoh di bawah ini, ID-A adalah ID kunci enkripsi untukRegionA, dan ID-B merupakan ID kunci enkripsi untukRegionB.

    "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" } },
  4. Jika Anda bekerja dengan struktur pipa yang diambil menggunakan get-pipeline perintah, hapus metadata garis dari file JSON. Jika tidak, update-pipeline perintah tidak dapat menggunakannya. Hapus "metadata": { } garis dan "updated" bidang "created""pipelineARN",, dan.

    Misalnya, hapus baris berikut dari struktur:

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

    Simpan file tersebut.

  5. Untuk menerapkan perubahan Anda, jalankan update-pipeline perintah, tentukan 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

    Per update-pipeline intah menghentikan pipa. Jika revisi dijalankan melalui pipeline saat Anda menjalankan update-pipeline perintah, proses tersebut dihentikan. Anda harus memulai pipeline secara manual untuk menjalankan revisi tersebut melalui pipeline yang diperbarui. Gunakan start-pipeline-execution perintah untuk memulai pipeline Anda secara manual.

  6. Setelah Anda memperbarui pipeline, tindakan lintas wilayah ditampilkan di konsol.

    Tampilan tingkat tinggi dari pipa yang mencakup tindakan lintas wilayah.

Menambahkan tindakan lintas wilayah ke pipeline (CloudFormation)

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
  2. Di bawahMappings, tambahkan peta wilayah seperti yang ditunjukkan dalam contoh ini untuk pemetaan bernama SecondRegionMap yang memetakan nilai untuk kunci RegionA danRegionB. 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 YAML 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
  3. Simpan template yang diperbarui ke komputer lokal Anda, lalu buka CloudFormation konsol.

  4. Pilih tumpukan Anda, lalu pilih Buat Set Perubahan untuk Tumpukan Saat Ini.

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

  6. Pilih Eksekusi.