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
-
Masuk ke konsol di http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Pilih pipeline Anda, lalu pilih Edit.
-
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.
-
Pada Edit: <Stage>, pilih + Tambahkan grup tindakan untuk menambahkan tindakan serial. Atau pilih + Tambahkan tindakan untuk menambahkan tindakan paralel.
-
Pada halaman Edit tindakan:
-
Di Nama tindakan, masukkan nama untuk tindakan lintas wilayah.
-
Di Penyedia tindakan, pilih penyedia tindakan.
-
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.
-
Dalam artefak masukan pilih input yang sesuai dari tahap sebelumnya. Misalnya, jika tahap sebelumnya adalah tahap sumber, pilih SourceArtifact.
-
Lengkapi semua bidang yang diperlukan untuk penyedia tindakan yang Anda konfigurasi.
-
Dalam artefak Output pilih output yang sesuai untuk tahap berikutnya. Misalnya, jika tahap selanjutnya adalah tahap penerapan, pilih BuildArtifact.
-
Pilih Simpan.
-
-
Pada Edit: <Stage>, pilih Sel esai.
-
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
-
Masuk ke konsol di http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Pilih pipeline Anda, lalu pilih Edit.
-
Pilih Edit stage.
-
Pada Edit: <Stage>, pilih ikon untuk mengedit tindakan yang ada.
-
Pada halaman Edit tindakan, buat perubahan pada bidang, jika sesuai.
-
Pada Edit: <Stage>, pilih Sel esai.
-
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
-
Masuk ke konsol di http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Pilih pipeline Anda, lalu pilih Edit.
-
Pilih Edit stage.
-
Pada Edit: <Stage>, pilih ikon untuk menghapus tindakan yang ada.
-
Pada Edit: <Stage>, pilih Sel esai.
-
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 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.
Menambahkan tindakan lintas wilayah ke pipeline (CLI)
Gunakan AWS CLI untuk menambahkan tindakan lintas wilayah ke pipeline.
Untuk menambahkan tindakan lintas wilayah
-
Untuk pipeline masuk
RegionA, jalankan get-pipeline perintah untuk menyalin struktur pipeline ke file JSON. Misalnya, untuk pipeline bernamaMyFirstPipeline, jalankan perintah berikut:aws codepipeline get-pipeline --nameMyFirstPipeline>pipeline.jsonPerintah ini tidak mengembalikan apa pun, tetapi file yang Anda buat akan muncul di direktori tempat Anda menjalankan perintah.
-
Tambahkan
regionbidang 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 Wilayahus-east-1baru.{ "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 } -
Dalam struktur pipeline, hapus
artifactStorebidang dan tambahkanartifactStorespeta 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-Aadalah ID kunci enkripsi untukRegionA, danID-Bmerupakan 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-bucketdan 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" } }, -
Jika Anda bekerja dengan struktur pipa yang diambil menggunakan get-pipeline perintah, hapus
metadatagaris 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.
-
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.jsonPerintah 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-executionperintah untuk memulai pipeline Anda secara manual. -
Setelah Anda memperbarui pipeline, tindakan lintas wilayah ditampilkan di konsol.
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
-
Tambahkan
Regionparameter keActionDeclarationsumber 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: IntegerRegion:Type: String -
Di bawah
Mappings, 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:RegionBArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionB- Region:RegionAArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionAContoh YAML berikut menunjukkan
RegionAbucket sebagaius-west-2dan menambahkanRegionBbucket baru,:eu-central-1Mappings: 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 -
Simpan template yang diperbarui ke komputer lokal Anda, lalu buka CloudFormation konsol.
-
Pilih tumpukan Anda, lalu pilih Buat Set Perubahan untuk Tumpukan Saat Ini.
-
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.
-
Pilih Eksekusi.