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 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 untuk suatu tindakan, dan jenis tindakan/tipe penyedia 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, lihatKuota di AWS CodePipeline.

Anda dapat menggunakan konsol, AWS CLI, atau AWS 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.

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, AWS 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 PutJobSuccessResultPutJobFailureResultdan 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)

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 (konsol).

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

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 aksi serial. Atau pilih + Tambahkan tindakan untuk menambahkan aksi 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 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.

    4. Dalam artefak Input 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 konfigurasikan.

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

    7. Pilih Simpan.

  6. Pada Edit:<Stage>, pilih Selesai.

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

  2. Pilih pipeline Anda, lalu pilih Edit.

  3. Pilih Edit tahap.

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

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

  6. Pada Edit:<Stage>, pilih Selesai.

  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 tahap.

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

  5. Pada Edit:<Stage>, pilih Selesai.

  6. Pilih Simpan.

Tambahkan 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 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 dibuat. CodeDeploy

Prasyarat

Anda harus telah membuat yang berikut:

  • Sebuah pipa di RegionA.

  • Bucket artefak Amazon S3 di 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)

Gunakan AWS CLI untuk menambahkan tindakan Lintas wilayah ke pipeline.

Untuk menambahkan tindakan Lintas wilayah
  1. Untuk pipeline di RegionA, jalankan get-pipeline perintah untuk menyalin struktur pipa 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 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 }
  3. 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" } },
  4. 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.

  5. 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-pipelinePerintah 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.

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

    Pandangan tingkat tinggi dari pipa yang mencakup tindakan Lintas wilayah.

Menambahkan tindakan Lintas wilayah ke pipeline ()AWS CloudFormation

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

Untuk menambahkan tindakan Lintas wilayah dengan AWS 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 YAMB berikut menunjukkan bucket RegionA us-west-2 sebagai dan menambahkan bucket RegionB 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 AWS CloudFormation konsol.

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

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

  6. Pilih Eksekusi.