Tambahkan aksi 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.

Tambahkan aksi lintas Wilayah di CodePipeline

AWS CodePipelinemenyertakan sejumlah tindakan yang membantu Anda mengonfigurasi build, menguji, dan menyebarkan sumber daya untuk proses rilis otomatis Anda. Anda dapat menambahkan tindakan ke saluran pipa yang ada diAWSWilayah berbeda dari pipa Anda. SaatAWSlayanan adalah penyedia untuk tindakan, dan jenis tindakan/jenis penyedia ini berbedaAWSWilayah Anda, ini tindakan lintas Wilayah.

catatan

Jenis tindakan tertentu dalam CodePipeline mungkin hanya tersedia di tertentuAWSWilayah. Perhatikan juga bahwa mungkin adaAWSDaerah di mana jenis tindakan tersedia, tetapi spesifikAWSpenyedia untuk jenis tindakan tersebut tidak tersedia.

Anda dapat menggunakan konsol,AWS CLI, atauAWS CloudFormationuntuk menambahkan tindakan lintas wilayah di jaringan pipa.

Ketika Anda membuat atau mengedit pipa, Anda harus memiliki ember artefak di daerah pipa dan kemudian Anda harus memiliki satu ember artefak per Wilayah di mana Anda berencana untuk menjalankan tindakan. Untuk informasi tentang parameter ArtifactStores, lihat Referensi struktur pipa CodePipeline.

catatan

CodePipeline menangani penyalinan artefak dari satuAWSWilayah ke Wilayah lain saat melakukan tindakan lintas wilayah.

Jika Anda menggunakan konsol untuk membuat pipeline atau tindakan lintas wilayah, ember artefak default dikonfigurasi oleh CodePipeline di Wilayah tempat Anda memiliki tindakan. Saat Anda menggunakanAWS CLI,AWS CloudFormation, atau SDK untuk membuat saluran pipa atau tindakan lintas wilayah, Anda memberikan ember artefak untuk setiap Wilayah di mana Anda memiliki tindakan.

catatan

Anda harus membuat ember artefak dan kunci enkripsi yang samaAWSWilayah sebagai tindakan lintas wilayah dan di akun yang sama dengan pipa Anda.

Anda tidak dapat membuat tindakan lintas wilayah untuk jenis tindakan berikut:

  • Tindakan sumber

  • Tindakan pihak ketiga

  • Tindakan kustom

Ketika pipa mencakup tindakan lintas wilayah sebagai bagian dari panggung, CodePipeline mereplikasi hanya artefak masukan dari tindakan lintas wilayah dari daerah pipa ke Wilayah tindakan ini.

catatan

Wilayah pipa dan Wilayah tempat CloudWatch Events mengubah sumber daya deteksi tetap sama. Wilayah tempat pipa Anda di-host tidak berubah.

Mengelola tindakan lintas wilayah dalam pipeline (konsol)

Anda dapat menggunakan konsol CodePipeline untuk menambahkan tindakan Cross-region ke pipeline yang ada. Untuk membuat pipeline baru dengan tindakan Cross-region menggunakan Create pipeline wizard, lihatBuat pipeline (konsol).

Di konsol, Anda membuat tindakan lintas wilayah dalam tahap pipa dengan memilih penyedia tindakan danWilayahbidang, yang mencantumkan sumber daya yang telah Anda buat di wilayah tersebut untuk penyedia tersebut. Ketika Anda menambahkan tindakan lintas wilayah, CodePipeline menggunakan ember artefak terpisah di wilayah aksi. Untuk informasi tentang bucket artefak lintas Region, lihatReferensi struktur pipa CodePipeline.

Tambahkan tindakan lintas wilayah ke tahap pipa (konsol)

Gunakan konsol untuk menambahkan tindakan Cross-region ke pipeline.

catatan

Jika pipa berjalan saat perubahan disimpan, eksekusi tersebut tidak selesai.

Untuk menambahkan tindakan lintas Region

  1. Masuk ke konsol dihttp://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Pilih alur Anda, lalu pilihMengedit.

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

  4. PadaMengedit: <Stage>, pilih+ Tambahkan grup aksiuntuk menambahkan aksi serial. Atau pilih+ Tindakan menambahkanuntuk menambahkan tindakan paralel.

  5. PadaEdit tindakanhalaman:

    1. MasukNama tindakan, masukkan nama untuk tindakan lintas-Wilayah.

    2. MasukPenyedia tindakan, pilih penyedia tindakan.

    3. MasukWilayah, pilihAWSWilayah di mana Anda telah membuat atau berencana untuk membuat sumber daya untuk tindakan. Ketika Wilayah dipilih, sumber daya yang tersedia untuk Wilayah tersebut terdaftar untuk seleksi. ParameterWilayahbidang menunjuk di manaAWSsumber daya dibuat untuk jenis tindakan dan jenis penyedia ini. Bidang ini hanya menampilkan untuk tindakan di mana penyedia tindakan adalahAWSlayanan. ParameterWilayahdefault bidang yang samaWilayah AWSsebagai alur Anda.

    4. Masukartefak masukanpilih input yang sesuai dari tahap sebelumnya. Misalnya, jika tahap sebelumnya adalah tahap sumber, pilihSourceArtifact.

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

    6. Masukartefak outputmemilih output yang sesuai ke tahap berikutnya. Misalnya, jika tahap berikutnya adalah tahap penyebaran, pilihBuildArtifact.

    7. Pilih Save (Simpan).

  6. PadaMengedit: <Stage>, pilihSelesai.

  7. Pilih Save (Simpan).

Mengedit tindakan lintas wilayah dalam tahap pipa (konsol)

Gunakan konsol untuk mengedit tindakan Cross-region yang ada dalam pipeline.

catatan

Jika pipa berjalan saat perubahan disimpan, eksekusi tersebut tidak selesai.

Untuk mengedit tindakan lintas Region

  1. Masuk ke konsol dihttps://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Pilih alur Anda, lalu pilihMengedit.

  3. PilihMengedit tahap.

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

  5. PadaEdit tindakanhalaman, membuat perubahan pada bidang, yang sesuai.

  6. PadaMengedit: <Stage>, pilihSelesai.

  7. Pilih Save (Simpan).

Menghapus tindakan lintas wilayah dari tahap pipa (konsol)

Gunakan konsol untuk menghapus tindakan Cross-region yang ada dari pipeline.

catatan

Jika pipa berjalan saat perubahan disimpan, eksekusi tersebut tidak selesai.

Untuk menghapus tindakan lintas Region

  1. Masuk ke konsol dihttp://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Pilih alur Anda, lalu pilihMengedit.

  3. PilihMengedit tahap.

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

  5. PadaMengedit: <Stage>, pilihSelesai.

  6. Pilih Save (Simpan).

Tambahkan tindakan lintas wilayah ke pipeline (CLI)

Anda dapat menggunakanAWS CLIuntuk menambahkan tindakan lintas wilayah ke pipa yang ada.

Untuk membuat tindakan lintas Region di tahap pipa denganAWS CLI, Anda menambahkan tindakan konfigurasi bersama dengan opsionalregionbidang. Anda juga harus telah membuat ember artefak di wilayah aksi. Alih-alih menyediakanartifactStoredari pipa wilayah tunggal, Anda menggunakanartifactStoresparameter untuk menyertakan daftar ember artefak masing-masing Wilayah.

catatan

Dalam panduan ini dan contoh-contohnya,RegionAadalah Wilayah tempat alur dibuat. Ini memiliki akses keRegionABucket Amazon S3 digunakan untuk menyimpan artefak pipa dan peran layanan yang digunakan oleh CodePipeline. RegionBadalah wilayah di mana aplikasi CodeDeploy, grup penyebaran, dan peran layanan yang digunakan oleh CodeDeploy dibuat.

Prasyarat

Anda harus membuat yang berikut ini:

  • Sebuah alur diRegionA.

  • Bucket artefak Amazon S3RegionB.

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

Tambahkan tindakan lintas wilayah ke pipeline (CLI)

MenggunakanAWS CLIuntuk menambahkan tindakan lintas wilayah ke pipa.

Untuk menambahkan tindakan lintas Region

  1. Untuk alur diRegionA, jalankanget-pipelineperintah untuk menyalin struktur pipa ke dalam file JSON. Misalnya, untuk pipa bernamaMyFirstPipeline, jalankan perintah berikut:

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

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

  2. Tambahkanregionbidang untuk menambahkan tahap baru dengan tindakan lintas wilayah Anda yang mencakup Wilayah dan sumber daya untuk tindakan Anda. Contoh JSON berikut menambahkan tahap Deploy dengan aksi penyebaran Cross-region di mana penyedia adalah CodeDeploy, di wilayah baruus-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, lepaskanartifactStorebidang dan menambahkanartifactStorespeta untuk tindakan Lintas wilayah baru Anda. Pemetaan harus menyertakan entri untuk masing-masingAWSWilayah di mana Anda memiliki tindakan. Untuk setiap entri dalam pemetaan, sumber daya harus di masing-masingAWSWilayah. Pada contoh di bawah ini,ID-Aadalah ID kunci enkripsi untukRegionA, danID-Badalah 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-barat-2 sebagaimy-storage-bucketdan menambahkan bucket us-east-1 yang baru bernamamy-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 diambil menggunakanget-pipelineperintah, menghapusmetadatabaris dari file JSON. Jika tidak,update-pipelineperintah 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.

  5. Untuk menerapkan perubahan Anda, jalankanupdate-pipelineperintah, menentukan pipa JSON file:

    penting

    Pastikan untuk menyertakan file:// sebelum nama file. Hal ini diperlukan dalam perintah ini.

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

    Perintah ini mengembalikan seluruh struktur pipa 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

    Parameterupdate-pipelineperintah berhenti pipa. Jika revisi sedang dijalankan melalui pipa ketika Anda menjalankanupdate-pipelineperintah, yang menjalankan dihentikan. Anda harus secara manual memulai pipa untuk menjalankan revisi melalui pipa yang diperbarui. Menggunakanstart-pipeline-executionperintah untuk secara manual memulai pipa Anda.

  6. Setelah memperbarui saluran pipa, tindakan Cross-region ditampilkan di konsol.

    
                            Pandangan tingkat tinggi dari pipa yang mencakup tindakan lintas wilayah.

Tambahkan tindakan lintas wilayah ke saluran pipa (AWS CloudFormation)

Anda dapat menggunakanAWS CloudFormationuntuk menambahkan tindakan lintas wilayah ke pipa yang ada.

Untuk menambahkan tindakan lintas Wilayah denganAWS CloudFormation

  1. TambahkanRegionparameter keActionDeclarationsumber daya dalam 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 bernamaSecondRegionMapyang memetakan nilai untuk kunciRegionAdanRegionB. Di bawahPipelinesumber daya, di bawahartifactStorebidang, tambahkanartifactStorespeta 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 menunjukkanRegionAbucket sebagaius-west-2dan menambahkan yang baruRegionBbucket,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, dan kemudian bukaAWS CloudFormationkonsol.

  4. Pilih tumpukan Anda, lalu pilihBuat Ubah Set untuk Stack Saat Ini.

  5. Upload template, dan kemudian melihat perubahan yang tercantum dalamAWS CloudFormation. Ini adalah perubahan yang akan dibuat untuk tumpukan. Anda akan melihat sumber daya baru Anda di daftar.

  6. Pilih Eksekusi.