Otomatiskan penerapan set tumpukan dengan menggunakan AWS dan AWS CodePipeline CodeBuild - AWS Prescriptive Guidance

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

Otomatiskan penerapan set tumpukan dengan menggunakan AWS dan AWS CodePipeline CodeBuild

Thiyagarajan Mani, Mihir Borkar, dan Raghu Gowda, Amazon Web Services

Ringkasan

Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya

Dalam integrasi berkelanjutan dan pengiriman berkelanjutan Anda (CI/CD) processes, you might want to deploy applications automatically into all your existing AWS accounts and into new accounts that you add to your organization in AWS Organizations. When you architect a CI/CDsolusi untuk persyaratan ini, kemampuan administrator set tumpukan AWS CloudFormation yang didelegasikan berguna karena memungkinkan lapisan keamanan dengan membatasi akses ke akun manajemen. Namun, AWS CodePipeline menggunakan model izin yang dikelola layanan untuk menyebarkan aplikasi ke beberapa akun dan Wilayah. Anda harus menggunakan akun manajemen AWS Organizations untuk menerapkan dengan kumpulan tumpukan, karena AWS CodePipeline tidak mendukung fitur administrator kumpulan tumpukan yang didelegasikan.

Pola ini menjelaskan bagaimana Anda dapat mengatasi batasan ini. Pola ini menggunakan AWS CodeBuild dan skrip khusus untuk mengotomatiskan penerapan set tumpukan dengan AWS. CodePipeline Ini mengotomatiskan aktivitas penyebaran aplikasi ini:

  • Menyebarkan aplikasi sebagai set tumpukan ke unit organisasi yang ada () OUs

  • Memperluas penyebaran aplikasi ke tambahan OUs dan Wilayah 

  • Menghapus aplikasi yang digunakan dari semua atau spesifik OUs atau Wilayah

Prasyarat dan batasan

Prasyarat

Sebelum Anda mengikuti langkah-langkah dalam pola ini:

Batasan

Kode yang disertakan dengan pola ini memiliki batasan berikut: 

  • Anda hanya dapat menerapkan satu CloudFormation templat untuk aplikasi; beberapa penerapan templat saat ini tidak didukung.

  • Menyesuaikan implementasi saat ini membutuhkan DevOps keahlian.

  • Pola ini tidak menggunakan kunci AWS Key Management System (AWS KMS). Namun, Anda dapat mengaktifkan fungsi ini dengan mengkonfigurasi ulang CloudFormation template yang disertakan dengan pola ini.

Arsitektur

Arsitektur otomatisasi pipa CI/CD

Arsitektur untuk pipeline CI/CD penerapan ini menangani hal berikut:

  • Membatasi akses langsung ke akun manajemen dengan mendelegasikan tanggung jawab penyebaran set tumpukan ke CI/CD akun khusus sebagai administrator set tumpukan untuk penerapan aplikasi.

  • Menggunakan model izin yang dikelola layanan untuk menyebarkan aplikasi secara otomatis setiap kali akun baru dibuat dan dipetakan di bawah OU.

  • Memastikan konsistensi versi aplikasi di semua akun di tingkat lingkungan.

  • Menggunakan beberapa tahap persetujuan di tingkat repositori dan pipa untuk menyediakan lapisan keamanan dan tata kelola tambahan untuk aplikasi yang digunakan.

  • Mengatasi batasan saat ini CodePipeline dengan menggunakan skrip penerapan yang dibuat khusus CodeBuild untuk menerapkan atau menghapus kumpulan tumpukan dan instance tumpukan secara otomatis. Untuk ilustrasi kontrol aliran dan hierarki panggilan API yang diterapkan oleh skrip kustom, lihat bagian Informasi tambahan.

  • Membuat set tumpukan individu untuk pengembangan, pengujian, dan lingkungan produksi. Selain itu, Anda dapat membuat kumpulan tumpukan yang menggabungkan beberapa OUs dan Wilayah di setiap tahap. Misalnya, Anda dapat menggabungkan sandbox dan pengembangan OUs dalam tahap penyebaran pengembangan.

  • Mendukung penerapan aplikasi ke, atau pengecualian dari, subset akun atau daftar. OUs

Otomatisasi dan skala

Anda dapat menggunakan kode yang disediakan dengan pola ini untuk membuat CodeCommit repositori AWS dan pipeline kode untuk aplikasi Anda. Anda kemudian dapat menerapkan ini sebagai set tumpukan ke beberapa akun di tingkat OU. Kode ini juga mengotomatiskan komponen seperti topik Amazon Simple Notification Service (Amazon SNS) untuk memberi tahu pemberi persetujuan, peran AWS Identity and Access Management (IAM) yang diperlukan, dan kebijakan kontrol layanan (SCP) untuk diterapkan di akun manajemen.

Alat

Layanan AWS

  • AWS CloudFormation membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh akun dan Wilayah AWS.

  • AWS CodeBuild adalah layanan build terkelola penuh yang membantu Anda mengompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.

  • AWS CodeCommit adalah layanan kontrol versi yang membantu Anda menyimpan dan mengelola repositori Git secara pribadi, tanpa perlu mengelola sistem kontrol sumber Anda sendiri.

  • AWS CodeDeploy mengotomatiskan penerapan ke Amazon Elastic Compute Cloud (Amazon EC2) atau instans lokal, fungsi AWS Lambda, atau layanan Amazon Elastic Container Service (Amazon ECS).

  • AWS CodePipeline membantu Anda memodelkan dan mengonfigurasi berbagai tahapan rilis perangkat lunak dengan cepat dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak secara terus menerus.

  • AWS Organizations adalah layanan manajemen akun yang membantu Anda mengkonsolidasikan beberapa akun AWS ke dalam organisasi yang Anda buat dan kelola secara terpusat.

  • Amazon Simple Notification Service (Amazon SNS) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.

Repositori kode

Kode untuk pola ini tersedia di repositori GitHub automated-code-pipeline-stackset-deployment. Untuk struktur folder dan detail lainnya, lihat file readme untuk repositori.

Praktik terbaik

Pola ini membatasi akses langsung ke akun manajemen saat menerapkan aplikasi di tingkat OU. Menambahkan beberapa tahapan persetujuan ke proses pipeline dan repositori membantu memberikan keamanan dan tata kelola tambahan untuk aplikasi dan komponen yang Anda terapkan dengan menggunakan pendekatan ini.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Aktifkan semua fitur di akun manajemen.

Aktifkan semua fitur di akun manajemen untuk organisasi Anda dengan mengikuti petunjuk dalam dokumentasi AWS Organizations.

Administrator AWS, Administrator platform

Buat CI/CD akun.

Di AWS Organizations, di organisasi Anda, buat CI/CD akun khusus, dan tetapkan tim untuk memiliki dan mengontrol akses ke akun.

Administrator AWS

Tambahkan administrator yang didelegasikan.

Di akun manajemen, daftarkan CI/CD akun yang Anda buat di langkah sebelumnya sebagai administrator kumpulan tumpukan yang didelegasikan. Untuk petunjuk, lihat CloudFormation dokumentasi AWS.

Administrator AWS, Administrator platform
TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori kode.

  1. Kloning repositori kode yang disediakan dengan pola ini ke komputer Anda:

    git clone https://github.com/aws-samples/automated-code-pipeline-stackset-deployment.git
  2. Tinjau file readme untuk memahami struktur direktori dan detail lainnya.

AWS DevOps

Buat topik SNS.

Anda dapat menggunakan sns-template.yaml template yang disediakan di GitHub repositori untuk membuat topik SNS dan mengonfigurasi langganan untuk permintaan persetujuan.

  1. Di konsol AWS, masuk ke CI/CD akun.

  2. Buka CloudFormation konsol di at https://console.aws.amazon.com/cloudformation.

  3. Buat tumpukan baru dengan sumber daya baru (opsi standar).

  4. Untuk Tentukan templat, pilih Unggah file templat, Pilih file, lalu pilih sns-template.yaml file dari templates folder GitHub repositori kloning. Pilih Berikutnya.

  5. Berikan nama tumpukan aplikasi yang berarti.

  6. Tentukan awalan untuk sumber daya.

  7. Pilih Berikutnya, Berikutnya, dan Kirim.

  8. Jika tumpukan telah berhasil dibuat, pilih tab Output, dan catat Amazon Resource Names (ARNs) topik SNS untuk permintaan tarik, lingkungan pengujian, dan lingkungan produksi. Anda akan menggunakan informasi ini dalam langkah selanjutnya.

AWS DevOps

Buat peran IAM untuk CI/CD komponen.

Anda dapat menggunakan cicd-role-template.yaml template yang disediakan di GitHub repositori untuk membuat peran dan kebijakan IAM yang diperlukan oleh komponen. CI/CD

  1. Di konsol AWS, masuk ke CI/CD akun.

  2. Buka CloudFormation konsol di at https://console.aws.amazon.com/cloudformation.

  3. Buat tumpukan baru dengan sumber daya baru (opsi standar).

  4. Untuk Tentukan templat, pilih Unggah file templat, Pilih file, lalu pilih cicd-role-template.yaml file dari templates folder GitHub repositori kloning. Pilih Berikutnya.

  5. Berikan nama tumpukan aplikasi yang berarti.

  6. Masukkan nilai untuk parameter berikut:

    • ARN untuk kebijakan batas izin. Anda dapat memperoleh ARN ini dari bagian Detail kebijakan kebijakan kebijakan batas izin Anda di konsol IAM.

    • ARN untuk topik persetujuan produksi SNS yang Anda catat sebelumnya.

    • ARN untuk topik persetujuan tes SNS yang Anda catat sebelumnya.

    • Awalan untuk sumber daya yang dibuat oleh template.

  7. Pilih Berikutnya, Berikutnya, dan Kirim.

  8. Ketika tumpukan telah berhasil dibuat, pilih tab Output, dan catat peran IAM yang dibuat. ARNs Anda akan menggunakan informasi ini dalam langkah selanjutnya.

AWS DevOps

Buat CodeCommit repositori dan pipeline kode untuk aplikasi Anda.

Anda dapat menggunakan cicd-pipeline-template.yaml template yang disediakan di GitHub repositori untuk membuat CodeCommit repositori dan pipeline kode untuk aplikasi Anda.

  1. Di konsol AWS, masuk ke CI/CD akun.

  2. Buka CloudFormation konsol di at https://console.aws.amazon.com/cloudformation.

  3. Buat tumpukan baru dengan sumber daya baru (opsi standar).

  4. Untuk Tentukan templat, pilih Unggah file templat, Pilih file, lalu pilih cicd-pipeline-template.yaml file dari templates folder GitHub repositori kloning. Pilih Berikutnya.

  5. Berikan nama tumpukan aplikasi yang berarti.

  6. Masukkan nilai untuk parameter berikut:

    • AppRepositoryName— Nama CodeCommit repositori yang akan dibuat untuk aplikasi.

    • AppRepositoryDescription— Penjelasan singkat tentang CodeCommit repositori yang akan dibuat untuk aplikasi.

    • ApplicationName— Nama aplikasi Anda. String ini digunakan sebagai nama CodeCommit repositori dan sebagai awalan dari pipeline. CI/CD

    • CloudWatchEventRoleARN — ARN dari peran CloudWatch acara dari tugas sebelumnya.

    • CodeBuildProjectRoleARN — ARN peran CodeBuild proyek dari tugas sebelumnya.

    • CodePipelineRoleARN — ARN dari CodePipeline peran dari tugas sebelumnya.

    • DeploymentConfigBucket— Nama bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) tempat file konfigurasi deployment dan file skrip.zip akan disimpan.

    • DeploymentConfigKey— Jalur dan nama file.zip (kunci Amazon S3).

    • PRApprovalSNSARN - ARN untuk topik SNS untuk pemberitahuan permintaan tarik.

    • ProdApprovalSNSARN — ARN untuk topik SNS untuk persetujuan produksi.

    • TESTApprovalSNSARN - ARN untuk topik SNS untuk persetujuan tes.

    • TemplateBucket— Nama bucket S3 di CI/CD akun tempat template pembuatan CI/CD pipeline akan disimpan.

  7. Pilih Berikutnya, Berikutnya, dan Kirim.

  8. Ketika tumpukan berhasil diselesaikan, ia menciptakan CodeCommit repositori yang memiliki nama yang ditentukan dan struktur direktori default, file konfigurasi penerapan, skrip, dan pipa kode untuk repositori.

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori aplikasi.

Template CI/CD pipeline yang Anda gunakan sebelumnya membuat contoh repositori aplikasi dan pipeline kode. Untuk mengkloning dan memverifikasi repositori:

  1. Masuk ke CI/CD akun.

  2. Temukan repositori aplikasi dan CI/CD pipeline yang Anda buat di epik sebelumnya.

  3. Salin URL untuk repositori dan gunakan perintah git clone untuk mengkloning repositori pada mesin lokal Anda.

  4. Verifikasi bahwa struktur direktori dan file cocok dengan yang berikut:

    root |- deploy_configs | |- deployment_config.json |- parameters | |- template-parameter-dev.json | |- template-parameter-test.json | |- template-parameter-prod.json |- templates | |- template.yml |- buildspec.yml

    di mana deploy_configs folder berisi file konfigurasi penyebaran, dan parameters folder templates dan menyertakan file default yang akan Anda ganti dengan file CloudFormation template dan parameter Anda sendiri.

    penting

    Jangan menyesuaikan struktur folder.

  5. Buat cabang fitur.

Pengembang aplikasi, Insinyur data

Tambahkan artefak aplikasi.

Perbarui repositori aplikasi dengan menggunakan template. CloudFormation

catatan

Solusi ini mendukung penyebaran hanya satu CloudFormation template.

  1. Buat CloudFormation template Anda untuk menerapkan perubahan kode aplikasi Anda, dan beri nama. <application-name>.yaml

  2. Ganti template.yml file di templates folder repositori aplikasi dengan CloudFormation template yang Anda buat di langkah 1.

  3. Siapkan file parameter untuk setiap lingkungan (pengembangan, pengujian, dan produksi). 

  4. Beri nama file parameter dengan menggunakan format<cloudformation-template-name>-parameter-<environment-name>.json.

  5. Ganti file parameter default di parameters folder dengan file Anda dari langkah 4.

Pengembang aplikasi, Insinyur data

Perbarui file konfigurasi penyebaran.

Perbarui deployment_config.json file:

  1. Di repositori aplikasi, navigasikan ke folder. deploy_configs

  2. Buka filedeployment_config.json:

    { "deployment_action": "<deploy/delete>", "stack_set_name": "<stack set name>", "stack_set_desciption": "<stack set description>", "deployment_targets": { "dev": { "org_units": ["list of OUs"], "regions": ["list of regions"], "filter_accounts": ["list of accounts"], "filter_type": "<DIFFERENCE/INTERSECTION/UNION>" }, "test": { "org_units": ["list of OUs"], "regions": ["list of regions"], "filter_accounts": ["list of accounts"], "filter_type": "<DIFFERENCE/INTERSECTION/UNION>" }, "prod": { "org_units": ["list of OUs"], "regions": ["list of regions"], "filter_accounts": ["list of accounts"], "filter_type": "<DIFFERENCE/INTERSECTION/UNION>" } }, "cft_capabilities": ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"], "auto_deployement": "<True/False>", "retain_stacks_on_account_removal": "<True/False>", "region_deployment_concurrency": "<SEQUENTIAL/PARALLEL>" }
  3. Perbarui nilai untuk tindakan penerapan, nama set tumpukan, deskripsi kumpulan tumpukan, dan target penerapan.

    Misalnya, Anda dapat mengatur deployment_action delete untuk menghapus seluruh kumpulan tumpukan dan instance tumpukan yang terkait. Gunakan deploy untuk membuat kumpulan tumpukan baru, memperbarui kumpulan tumpukan yang ada, atau untuk menambah atau menghapus instance tumpukan untuk tambahan OUs atau Wilayah. Untuk contoh lainnya, lihat bagian Informasi tambahan.

Pola ini membuat kumpulan tumpukan individual untuk setiap lingkungan dengan menambahkan nama lingkungan ke nama set tumpukan yang Anda berikan dalam file konfigurasi penerapan.

Pengembang aplikasi, Insinyur data

Komit perubahan dan terapkan set tumpukan.

Komit perubahan yang Anda tentukan dalam template aplikasi Anda, dan gabungkan serta terapkan kumpulan tumpukan ke beberapa lingkungan tahap demi tahap:

  1. Simpan semua file Anda dan komit perubahan ke cabang fitur repositori aplikasi lokal Anda.

  2. Dorong cabang fitur ke repositori jarak jauh.

  3. Buat permintaan tarik untuk menggabungkan perubahan ke cabang utama.

    Ketika permintaan tarik telah disetujui dan perubahan telah digabungkan ke cabang utama, CI/CD pipeline akan dimulai.

  4. Jika tahap Dev-Deployment telah berhasil diselesaikan, periksa CloudFormation konsol,, tab StackSetsService-Managed.

    Anda akan melihat set tumpukan baru dengan akhirandev.

  5. Periksa CodeBuild log untuk tahap penyebaran Dev untuk masalah apa pun.

  6. Terapkan set tumpukan ke lingkungan pengujian dan produksi dengan meminta pemberi persetujuan Anda untuk menyetujui penerapan untuk tahapan tersebut dan mengulangi langkah 5 dan 6. Set tumpukan untuk lingkungan pengujian dan produksi memiliki sufiks test dan. prod

Pengembang aplikasi, Insinyur data

Pemecahan Masalah

IsuSolusi

Penerapan gagal dengan pengecualian:

Ubah Nama file Parameter Template sebagai -parameter- .json dengan, nama default tidak diperbolehkan <application name><evn>

File parameter CloudFormation template harus mengikuti konvensi penamaan yang ditentukan. Perbarui nama file parameter dan coba lagi.

Penerapan gagal dengan pengecualian:

Mengubah Nama CloudFormation Template sebagai.yl, default template.yml/template.yaml tidak diperbolehkan <application name>

Nama CloudFormation template harus mengikuti konvensi penamaan yang ditentukan. Perbarui nama file dan coba lagi.

Penerapan gagal dengan pengecualian:

Tidak ada CloudFormation Template yang valid dan File Parameternya yang ditemukan untuk lingkungan {nama lingkungan}

Periksa konvensi penamaan file untuk CloudFormation templat dan file parameternya untuk lingkungan yang ditentukan.

Penerapan gagal dengan pengecualian:

Tindakan penerapan tidak valid yang disediakan dalam file konfigurasi penerapan. Opsi yang valid adalah 'menyebarkan' dan 'hapus'.

Anda menetapkan nilai yang tidak valid untuk deployment_action parameter dalam file konfigurasi deployment. Parameter memiliki dua nilai yang valid: deploy dandelete. Gunakan deploy untuk membuat dan memperbarui kumpulan tumpukan dan instance tumpukan terkait. Gunakan delete hanya ketika Anda ingin menghapus seluruh kumpulan tumpukan dan instance tumpukan terkait.

Sumber daya terkait

Informasi tambahan

Diagram alir

Diagram alir berikut menggambarkan kontrol aliran dan hierarki panggilan API yang diimplementasikan oleh skrip khusus untuk mengotomatiskan penerapan set tumpukan.

Kontrol aliran dan panggilan API diimplementasikan oleh skrip Python

Contoh file konfigurasi penyebaran

Membuat set tumpukan baru

File konfigurasi penerapan berikut membuat kumpulan tumpukan baru yang disebut sample-stack-set di Wilayah AWS us-east-1 dalam tiga OUs.

{ "deployment_action": "deploy", "stack_set_name": "sample-stack-set", "stack_set_desciption": "this is a sample stack set", "deployment_targets": { "dev": { "org_units": ["dev-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" }, "test": { "org_units": ["test-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" }, "prod": { "org_units": ["prod-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" } }, "cft_capabilities": ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"], "auto_deployement": "True", "retain_stacks_on_account_removal": "True", "region_deployment_concurrency": "PARALLEL" }

Menerapkan tumpukan yang ada disetel ke OU lain

Jika Anda menerapkan konfigurasi yang ditunjukkan pada contoh sebelumnya dan Anda ingin menerapkan kumpulan tumpukan ke OU tambahan yang dipanggil dev-org-unit-2 di lingkungan pengembangan, file konfigurasi penerapan mungkin terlihat seperti berikut ini.

{ "deployment_action": "deploy", "stack_set_name": "sample-stack-set", "stack_set_desciption": "this is a sample stack set", "deployment_targets": { "dev": { "org_units": ["dev-org-unit-1", "dev-org-unit-2"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" }, "test": { "org_units": ["test-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" }, "prod": { "org_units": ["prod-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" } }, "cft_capabilities": ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"], "auto_deployement": "True", "retain_stacks_on_account_removal": "True", "region_deployment_concurrency": "PARALLEL" }

Menerapkan tumpukan yang ada yang disetel ke Wilayah AWS lain

Jika Anda menerapkan konfigurasi yang ditunjukkan pada contoh sebelumnya dan Anda ingin menerapkan kumpulan tumpukan ke AWS Region (us-east-2) tambahan di lingkungan pengembangan untuk dua OUs (dev-org-unit-1dandev-org-unit-2), file konfigurasi penerapan mungkin terlihat seperti berikut.

catatan

Sumber daya dalam CloudFormation template harus valid dan spesifik Wilayah.

{ "deployment_action": "deploy", "stack_set_name": "sample-stack-set", "stack_set_desciption": "this is a sample stack set", "deployment_targets": { "dev": { "org_units": ["dev-org-unit-1", "dev-org-unit-2"], "regions": ["us-east-1", "us-east-2"], "filter_accounts": [], "filter_type": "" }, "test": { "org_units": ["test-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" }, "prod": { "org_units": ["prod-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" } }, "cft_capabilities": ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"], "auto_deployement": "True", "retain_stacks_on_account_removal": "True", "region_deployment_concurrency": "PARALLEL" }

Menghapus instans tumpukan dari Wilayah OU atau AWS

Katakanlah konfigurasi penerapan yang ditunjukkan pada contoh sebelumnya telah diterapkan. File konfigurasi berikut menghapus instance tumpukan dari kedua Wilayah OUdev-org-unit-2.

{ "deployment_action": "deploy", "stack_set_name": "sample-stack-set", "stack_set_desciption": "this is a sample stack set", "deployment_targets": { "dev": { "org_units": ["dev-org-unit-1"], "regions": ["us-east-1", "us-east-2"], "filter_accounts": [], "filter_type": "" }, "test": { "org_units": ["test-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" }, "prod": { "org_units": ["prod-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" } }, "cft_capabilities": ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"], "auto_deployement": "True", "retain_stacks_on_account_removal": "True", "region_deployment_concurrency": "PARALLEL" }

File konfigurasi berikut menghapus instance tumpukan dari Wilayah AWS us-east-1 untuk keduanya OUs di lingkungan pengembangan.    

{ "deployment_action": "deploy", "stack_set_name": "sample-stack-set", "stack_set_desciption": "this is a sample stack set", "deployment_targets": { "dev": { "org_units": ["dev-org-unit-1", "dev-org-unit-2"], "regions": ["us-east-2"], "filter_accounts": [], "filter_type": "" }, "test": { "org_units": ["test-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" }, "prod": { "org_units": ["prod-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" } }, "cft_capabilities": ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"], "auto_deployement": "True", "retain_stacks_on_account_removal": "True", "region_deployment_concurrency": "PARALLEL" }

Menghapus seluruh set tumpukan

File konfigurasi penerapan berikut menghapus seluruh kumpulan tumpukan dan semua instance tumpukan yang terkait.

{ "deployment_action": "delete", "stack_set_name": "sample-stack-set", "stack_set_desciption": "this is a sample stack set", "deployment_targets": { "dev": { "org_units": ["dev-org-unit-1", "dev-org-unit-2"], "regions": ["us-east-2"], "filter_accounts": [], "filter_type": "" }, "test": { "org_units": ["test-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" }, "prod": { "org_units": ["prod-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" } }, "cft_capabilities": ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"], "auto_deployement": "True", "retain_stacks_on_account_removal": "True", "region_deployment_concurrency": "PARALLEL" }

Mengecualikan akun dari penerapan

 File konfigurasi penyebaran berikut mengecualikan akun111122223333, yang merupakan bagian dari OUdev-org-unit-1, dari penerapan.

{ "deployment_action": "deploy", "stack_set_name": "sample-stack-set", "stack_set_desciption": "this is a sample stack set", "deployment_targets": { "dev": { "org_units": ["dev-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": ["111122223333"], "filter_type": "DIFFERENCE" }, "test": { "org_units": ["test-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" }, "prod": { "org_units": ["prod-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" } }, "cft_capabilities": ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"], "auto_deployement": "True", "retain_stacks_on_account_removal": "True", "region_deployment_concurrency": "PARALLEL" }

Menyebarkan aplikasi ke subset akun di OU

File konfigurasi deployment berikut menyebarkan aplikasi ke hanya tiga akun (111122223333,444455556666, dan777788889999) di OU. dev-org-unit-1

{ "deployment_action": "deploy", "stack_set_name": "sample-stack-set", "stack_set_desciption": "this is a sample stack set", "deployment_targets": { "dev": { "org_units": ["dev-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": ["111122223333", "444455556666", "777788889999"], "filter_type": "INTERSECTION" }, "test": { "org_units": ["test-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" }, "prod": { "org_units": ["prod-org-unit-1"], "regions": ["us-east-1"], "filter_accounts": [], "filter_type": "" } }, "cft_capabilities": ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"], "auto_deployement": "True", "retain_stacks_on_account_removal": "True", "region_deployment_concurrency": "PARALLEL" }