AWS CloudFormation StackSets - AWS CodePipeline

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

AWS CloudFormation StackSets

CodePipeline menawarkan kemampuan untuk melakukan AWS CloudFormation StackSets operasi sebagai bagian dari proses CI/CD Anda. Anda menggunakan kumpulan tumpukan untuk membuat tumpukan di AWS akun di seluruh AWS Wilayah dengan menggunakan satu AWS CloudFormation templat. Semua sumber daya yang disertakan dalam setiap tumpukan ditentukan oleh AWS CloudFormation template set tumpukan. Saat Anda membuat kumpulan tumpukan, Anda menentukan template yang akan digunakan, serta parameter dan kemampuan apa pun yang dibutuhkan template.

catatan

Anda harus menggunakan akun manajemen AWS Organizations untuk menyebarkan dengan AWS CloudFormation StackSets. Anda tidak dapat menggunakan akun administrasi yang didelegasikan untuk tindakan ini.

Untuk informasi selengkapnya tentang konsep AWS CloudFormation StackSets, lihat StackSets konsep di Panduan AWS CloudFormation Pengguna.

Anda mengintegrasikan pipeline Anda dengan AWS CloudFormation StackSets melalui dua tipe tindakan berbeda yang Anda gunakan bersama-sama:

  • CloudFormationStackSetTindakan membuat atau memperbarui kumpulan tumpukan atau instance tumpukan dari template yang disimpan di lokasi sumber pipeline. Setiap kali kumpulan tumpukan dibuat atau diperbarui, ia memulai penerapan perubahan tersebut ke instance tertentu. Di konsol, Anda dapat memilih penyedia tindakan CloudFormation Stack Set saat membuat atau mengedit pipeline.

  • CloudFormationStackInstancesTindakan ini menerapkan perubahan dari CloudFormationStackSet tindakan ke instance tertentu, membuat instance tumpukan baru, dan mendefinisikan penggantian parameter ke instance tertentu. Di konsol, Anda dapat memilih penyedia tindakan CloudFormation Stack Instances saat mengedit pipeline yang ada.

catatan

Tindakan CloudFormationStackSet dan CloudFormationStackInstances tindakan tidak tersedia di Asia Pasifik (Hong Kong), Eropa (Zurich), Eropa (Milan), Afrika (Cape Town), dan Timur Tengah (Bahrain). Untuk mereferensikan tindakan lain yang tersedia, lihatIntegrasi produk dan layanan dengan CodePipeline.

Anda dapat menggunakan tindakan ini untuk menyebarkan ke AWS akun target atau menargetkan ID unit AWS organisasi Organizations.

catatan

Untuk menerapkan ke akun AWS Organizations target atau ID unit organisasi dan menggunakan model izin yang dikelola layanan, Anda harus mengaktifkan akses tepercaya antara dan Organizations. AWS CloudFormation StackSets AWS Untuk informasi selengkapnya, lihat Mengaktifkan akses tepercaya dengan AWS CloudFormation Stacksets.

Bagaimana AWS CloudFormation StackSets tindakan bekerja

CloudFormationStackSetTindakan membuat atau memperbarui sumber daya tergantung pada apakah tindakan tersebut berjalan untuk pertama kalinya.

CloudFormationStackSetTindakan membuat atau memperbarui kumpulan tumpukan dan menyebarkan perubahan tersebut ke instance tertentu.

catatan

Jika Anda menggunakan tindakan ini untuk membuat pembaruan yang menyertakan penambahan instance tumpukan, instance baru akan diterapkan terlebih dahulu dan pembaruan selesai terakhir. Instans baru pertama menerima versi lama, dan kemudian pembaruan diterapkan ke semua instance.

  • Buat: Ketika tidak ada instance yang ditentukan dan kumpulan tumpukan tidak ada, CloudFormationStackSettindakan membuat kumpulan tumpukan tanpa membuat instance apa pun.

  • Pembaruan: Saat CloudFormationStackSettindakan dijalankan untuk kumpulan tumpukan yang sudah dibuat, tindakan akan memperbarui kumpulan tumpukan. Jika tidak ada instance yang ditentukan dan kumpulan tumpukan sudah ada, semua instance diperbarui. Jika tindakan ini digunakan untuk memperbarui instance tertentu, semua instance yang tersisa akan berpindah ke status USANG.

    Anda dapat menggunakan CloudFormationStackSettindakan untuk memperbarui kumpulan tumpukan dengan cara berikut.

    • Perbarui template pada beberapa atau semua contoh.

    • Perbarui parameter pada beberapa atau semua contoh.

    • Perbarui peran eksekusi untuk kumpulan tumpukan (ini harus cocok dengan peran eksekusi yang ditentukan dalam peran Administrator).

    • Ubah model izin (hanya jika tidak ada instance yang dibuat).

    • Aktifkan/Nonaktifkan AutoDeployment jika model izin set tumpukan adalah. Service Managed

    • Perbarui peran Administrator.

    • Perbarui deskripsi pada set tumpukan.

    • Tambahkan target penerapan ke pembaruan set tumpukan untuk membuat instance tumpukan baru.

CloudFormationStackInstancesTindakan ini membuat instance tumpukan baru atau memperbarui instance tumpukan yang sudah ketinggalan zaman. Sebuah instance menjadi usang ketika kumpulan tumpukan diperbarui, tetapi tidak semua instance di dalamnya diperbarui.

  • Buat: Jika tumpukan sudah ada, CloudFormationStackInstances tindakan hanya memperbarui instance dan tidak membuat instance tumpukan.

  • Pembaruan: Setelah CloudFormationStackSet tindakan dilakukan, jika templat atau parameter telah diperbarui hanya dalam beberapa kasus, sisanya akan ditandaiOUTDATED. Pada tahap pipeline selanjutnya, CloudFormationStackInstances perbarui sisa instance di tumpukan yang disetel dalam gelombang sehingga semua instance ditandai. CURRENT Tindakan ini juga dapat digunakan untuk menambahkan instance tambahan atau mengganti parameter pada instance baru atau yang sudah ada.

Sebagai bagian dari pembaruan, CloudFormationStackInstances tindakan CloudFormationStackSet dan dapat menentukan target penerapan baru, yang membuat instance tumpukan baru.

Sebagai bagian dari pembaruan, CloudFormationStackInstances tindakan CloudFormationStackSet dan tidak menghapus kumpulan tumpukan, instance, atau sumber daya. Saat tindakan memperbarui tumpukan tetapi tidak menentukan semua instance yang akan diperbarui, instance yang tidak ditentukan untuk pembaruan akan dihapus dari pembaruan dan disetel ke status. OUTDATED

Selama penerapan, instance tumpukan juga dapat menampilkan status OUTDATED jika penerapan ke instance gagal.

Cara menyusun StackSets tindakan dalam pipa

Sebagai praktik terbaik, Anda harus membangun pipeline Anda sehingga kumpulan tumpukan dibuat dan awalnya diterapkan ke subset atau satu instance. Setelah Anda menguji penerapan dan melihat kumpulan tumpukan yang dihasilkan, lalu tambahkan CloudFormationStackInstances tindakan sehingga instance yang tersisa dibuat dan diperbarui.

Gunakan konsol atau CLI untuk membuat struktur pipa yang direkomendasikan sebagai berikut:

  1. Buat pipeline dengan aksi sumber (wajib) dan CloudFormationStackSet tindakan sebagai tindakan penerapan. Jalankan pipeline Anda.

  2. Saat pipeline Anda pertama kali berjalan, CloudFormationStackSet tindakan akan membuat kumpulan tumpukan Anda dan setidaknya satu instance awal. Verifikasi pembuatan set tumpukan dan tinjau penerapan ke instance awal Anda. Misalnya, untuk pembuatan set tumpukan awal untuk akun Account-A di mana us-east-1 Region yang ditentukan, instance stack dibuat dengan kumpulan tumpukan:

    Contoh tumpukan wilayah Status
    StackInstanceID-1 us-east-1 SAAT INI
  3. Edit pipeline Anda untuk ditambahkan CloudFormationStackInstances sebagai tindakan penerapan kedua untuk membuat/memperbarui instance tumpukan untuk target yang Anda tetapkan. Misalnya, untuk pembuatan instance tumpukan untuk akun Account-A tempat eu-central-1 Wilayah us-east-2 dan ditentukan, instance tumpukan yang tersisa dibuat dan instance awal tetap diperbarui sebagai berikut:

    Contoh tumpukan wilayah Status
    StackInstanceID-1 us-east-1 SAAT INI
    StackInstanceID-2 us-east-2 SAAT INI
    StackInstanceID-3 eu-central-1 SAAT INI
  4. Jalankan pipeline sesuai kebutuhan untuk memperbarui kumpulan tumpukan dan memperbarui atau membuat instance tumpukan.

Saat Anda memulai pembaruan tumpukan di mana Anda telah menghapus target penerapan dari konfigurasi tindakan, maka instance tumpukan yang tidak ditunjuk untuk pembaruan akan dihapus dari penerapan dan dipindahkan ke status USANG. Misalnya, untuk pembaruan instans tumpukan untuk akun Account-A di mana us-east-2 Wilayah dihapus dari konfigurasi tindakan, instance tumpukan yang tersisa dibuat dan instance yang dihapus disetel ke USANG sebagai berikut:

Contoh tumpukan wilayah Status
StackInstanceID-1 us-east-1 SAAT INI
StackInstanceID-2 us-east-2 KETINGGALAN JAMAN
StackInstanceID-3 eu-central-1 SAAT INI

Untuk informasi selengkapnya tentang praktik terbaik untuk menerapkan kumpulan tumpukan, lihat Praktik terbaik untuk StackSets di Panduan AWS CloudFormation Pengguna.

Tindakan CloudFormationStackSet

Tindakan ini membuat atau memperbarui kumpulan tumpukan dari template yang disimpan di lokasi sumber pipeline.

Setelah menentukan kumpulan tumpukan, Anda dapat membuat, memperbarui, atau menghapus tumpukan di akun target dan Wilayah yang ditentukan dalam parameter konfigurasi. Saat membuat, memperbarui, dan menghapus tumpukan, Anda dapat menentukan preferensi lain, seperti urutan Wilayah untuk operasi yang akan dilakukan, persentase toleransi kegagalan di luar operasi tumpukan berhenti, dan jumlah akun tempat operasi dilakukan pada tumpukan secara bersamaan.

Satu set tumpukan adalah sumber daya regional. Jika Anda membuat kumpulan tumpukan di satu AWS Wilayah, Anda tidak dapat mengaksesnya dari Wilayah lain.

Saat tindakan ini digunakan sebagai tindakan pembaruan ke kumpulan tumpukan, pembaruan ke tumpukan tidak diizinkan tanpa penerapan ke setidaknya satu instance tumpukan.

Tipe tindakan

  • Kategori: Deploy

  • Pemilik: AWS

  • Penyedia: CloudFormationStackSet

  • Versi: 1

Parameter konfigurasi

StackSetName

Diperlukan: Ya

Nama yang akan dikaitkan dengan set tumpukan. Nama ini harus unik di Wilayah tempat ia dibuat.

Nama mungkin hanya berisi karakter alfanumerik dan tanda hubung. Itu harus dimulai dengan karakter alfabet dan 128 karakter atau kurang.

Deskripsi

Diperlukan: Tidak

Deskripsi set tumpukan. Anda dapat menggunakan ini untuk menggambarkan tujuan kumpulan tumpukan atau informasi relevan lainnya.

TemplatePath

Diperlukan: Ya

Lokasi template yang mendefinisikan sumber daya dalam kumpulan tumpukan. Ini harus menunjuk ke template dengan ukuran maksimum 460.800 byte.

Masukkan path ke nama artefak sumber dan file template dalam format"InputArtifactName::TemplateFileName", seperti yang ditunjukkan pada contoh berikut.

SourceArtifact::template.txt
Parameter

Diperlukan: Tidak

Daftar parameter template untuk kumpulan tumpukan Anda yang diperbarui selama penerapan.

Anda dapat memberikan parameter sebagai daftar literal atau jalur file:

  • Anda dapat memasukkan parameter dalam format sintaks singkatan berikut:. ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string Untuk informasi selengkapnya tentang tipe data ini, lihatJenis data parameter template.

    Contoh berikut menunjukkan parameter bernama BucketName dengan nilai my-bucket.

    ParameterKey=BucketName,ParameterValue=my-bucket

    Contoh berikut menunjukkan entri dengan beberapa parameter:

    ParameterKey=BucketName,ParameterValue=my-bucket ParameterKey=Asset1,ParameterValue=true ParameterKey=Asset2,ParameterValue=true
  • Anda dapat memasukkan lokasi file yang berisi daftar penggantian parameter template yang dimasukkan dalam format"InputArtifactName::ParametersFileName", seperti yang ditunjukkan pada contoh berikut.

    SourceArtifact::parameters.txt

    Contoh berikut menunjukkan isi file untukparameters.txt.

    [ { "ParameterKey": "KeyName", "ParameterValue": "true" }, { "ParameterKey": "KeyName", "ParameterValue": "true" } ]
Kemampuan

Diperlukan: Tidak

Menunjukkan bahwa template dapat membuat dan memperbarui sumber daya, tergantung pada jenis sumber daya dalam template.

Anda harus menggunakan properti ini jika Anda memiliki sumber daya IAM di template tumpukan Anda atau Anda membuat tumpukan langsung dari template yang berisi makro. Agar AWS CloudFormation tindakan berhasil beroperasi dengan cara ini, Anda harus menggunakan salah satu dari kemampuan berikut:

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

Anda dapat menentukan lebih dari satu kemampuan dengan menggunakan koma dan tidak ada spasi di antara kemampuan. Contoh di Contoh konfigurasi CloudFormationStackSettindakan menunjukkan entri dengan beberapa kemampuan.

PermissionModel

Diperlukan: Tidak

Menentukan bagaimana peran IAM dibuat dan dikelola. Jika bidang tidak ditentukan, default digunakan. Untuk informasi, lihat Model izin untuk operasi set tumpukan.

Nilai yang valid adalah:

  • SELF_MANAGED(default): Anda harus membuat peran administrator dan eksekusi untuk menyebarkan ke akun target.

  • SERVICE_MANAGED: AWS CloudFormation StackSets secara otomatis membuat peran IAM yang diperlukan untuk menyebarkan ke akun yang dikelola oleh OrganizationsAWS. Ini membutuhkan akun untuk menjadi anggota Organisasi.

catatan

Parameter ini hanya dapat diubah ketika tidak ada instance tumpukan di set tumpukan.

AdministrationRoleArn
catatan

Karena AWS CloudFormation StackSets melakukan operasi di beberapa akun, Anda harus menentukan izin yang diperlukan di akun tersebut sebelum Anda dapat membuat kumpulan tumpukan.

Diperlukan: Tidak

catatan

Parameter ini opsional untuk model izin SELF_MANAGED dan tidak digunakan untuk model izin SERVICE_MANAGED.

ARN dari peran IAM di akun administrator yang digunakan untuk melakukan operasi set tumpukan.

Nama mungkin berisi karakter alfanumerik, salah satu karakter berikut: _+=, .@-, dan tidak ada spasi. Namanya tidak peka huruf besar/kecil. Nama peran ini harus memiliki panjang minimal 20 karakter dan panjang maksimum 2048 karakter. Nama peran harus unik di dalam akun. Nama peran yang ditentukan di sini harus berupa nama peran yang ada. Jika Anda tidak menentukan nama peran, itu diatur ke AWSCloudFormationStackSetAdministrationRole. Jika Anda menentukan ServiceManaged, Anda tidak boleh menentukan nama peran.

ExecutionRoleName
catatan

Karena AWS CloudFormation StackSets melakukan operasi di beberapa akun, Anda harus menentukan izin yang diperlukan di akun tersebut sebelum Anda dapat membuat kumpulan tumpukan.

Diperlukan: Tidak

catatan

Parameter ini opsional untuk model izin SELF_MANAGED dan tidak digunakan untuk model izin SERVICE_MANAGED.

Nama peran IAM dalam akun target yang digunakan untuk melakukan operasi set tumpukan. Nama mungkin berisi karakter alfanumerik, salah satu karakter berikut: _+=, .@-, dan tidak ada spasi. Namanya tidak peka huruf besar/kecil. Nama peran ini harus memiliki panjang minimal 1 karakter dan panjang maksimum 64 karakter. Nama peran harus unik di dalam akun. Nama peran yang ditentukan di sini harus berupa nama peran yang ada. Jangan tentukan peran ini jika Anda menggunakan peran eksekusi yang disesuaikan. Jika Anda tidak menentukan nama peran, itu diatur keAWSCloudFormationStackSetExecutionRole. Jika Anda menyetel Service_Managed ke true, Anda tidak boleh menentukan nama peran.

OrganizationsAutoDeployment

Diperlukan: Tidak

catatan

Parameter ini opsional untuk model izin SERVICE_MANAGED dan tidak digunakan untuk model izin SELF_MANAGED.

Menjelaskan apakah AWS CloudFormation StackSets secara otomatis menyebarkan ke akun AWS Organizations yang ditambahkan ke organisasi target atau unit organisasi (OU). Jika OrganizationsAutoDeployment ditentukan, jangan tentukan DeploymentTargets danRegions.

catatan

Jika tidak ada input yang disediakanOrganizationsAutoDeployment, maka nilai defaultnya adalahDisabled.

Nilai yang valid adalah:

  • Enabled. Diperlukan: Tidak.

    StackSets secara otomatis menyebarkan instance tumpukan tambahan ke akun AWS Organizations yang ditambahkan ke organisasi target atau unit organisasi (OU) di Wilayah yang ditentukan. Jika akun dihapus dari organisasi target atau OU, AWS CloudFormation StackSets menghapus instance tumpukan dari akun di Wilayah yang ditentukan.

  • Disabled. Diperlukan: Tidak.

    StackSets tidak secara otomatis menyebarkan instance tumpukan tambahan ke akun AWS Organizations yang ditambahkan ke organisasi target atau unit organisasi (OU) di Wilayah yang ditentukan.

  • EnabledWithStackRetention. Diperlukan: Tidak.

    Sumber daya tumpukan dipertahankan ketika akun dihapus dari organisasi target atau OU.

DeploymentTargets

Diperlukan: Tidak

catatan

Untuk model izin SERVICE_MANAGED, Anda dapat memberikan ID root organisasi atau ID Unit organisasi untuk target penerapan. Untuk model izin SELF_MANAGED, Anda hanya dapat menyediakan akun.

catatan

Ketika parameter ini dipilih, Anda juga harus memilih Wilayah.

Daftar AWS akun atau ID unit organisasi tempat instance kumpulan tumpukan harus dibuat/diperbarui.

  • Akun:

    Anda dapat memberikan akun sebagai daftar literal atau jalur file:

    • Literal: Masukkan parameter dalam format sintaks singkatanaccount_ID,account_ID, seperti yang ditunjukkan pada contoh berikut.

      111111222222,333333444444
    • Jalur file: Lokasi file yang berisi daftar AWS akun tempat instance kumpulan tumpukan harus dibuat/diperbarui, dimasukkan dalam format. InputArtifactName::AccountsFileName Jika Anda menggunakan jalur file untuk menentukan salah satu akun atau OrganizationalUnitIds, format file harus dalam JSON, seperti yang ditunjukkan pada contoh berikut.

      SourceArtifact::accounts.txt

      Contoh berikut menunjukkan isi file untukaccounts.txt.

      [ "111111222222" ]

      Contoh berikut menunjukkan isi file accounts.txt saat mencantumkan lebih dari satu akun:

      [ "111111222222","333333444444" ]
  • OrganizationalUnitIds:

    catatan

    Parameter ini opsional untuk model izin SERVICE_MANAGED dan tidak digunakan untuk model izin SELF_MANAGED. Jangan gunakan ini jika Anda memilih OrganizationsAutoDeployment.

    Unit AWS organisasi untuk memperbarui instance tumpukan terkait.

    Anda dapat memberikan ID unit organisasi sebagai daftar literal atau jalur file:

    • Literal: Masukkan array string dipisahkan dengan koma, seperti yang ditunjukkan pada contoh berikut.

      ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    • Jalur file: Lokasi file yang berisi daftar tempat untuk membuat atau memperbarui instance kumpulan tumpukan. OrganizationalUnitIds Jika Anda menggunakan jalur file untuk menentukan salah satu akun atau OrganizationalUnitIds, format file harus dalam JSON, seperti yang ditunjukkan pada contoh berikut.

      Masukkan jalur ke file dalam formatInputArtifactName::OrganizationalUnitIdsFileName.

      SourceArtifact::OU-IDs.txt

      Contoh berikut menunjukkan isi file untukOU-IDs.txt:

      [ "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222" ]
Daerah

Diperlukan: Tidak

catatan

Ketika parameter ini dipilih, Anda juga harus memilih DeploymentTargets.

Daftar AWS Wilayah tempat instance kumpulan tumpukan dibuat atau diperbarui. Wilayah diperbarui dalam urutan di mana mereka dimasukkan.

Masukkan daftar AWS Wilayah yang valid dalam formatRegion1,Region2, seperti yang ditunjukkan pada contoh berikut.

us-west-2,us-east-1
FailureTolerancePercentage

Diperlukan: Tidak

Persentase akun per Wilayah di mana operasi tumpukan ini dapat gagal sebelum AWS CloudFormation menghentikan operasi di Wilayah tersebut. Jika operasi dihentikan di Wilayah, AWS CloudFormation tidak mencoba operasi di Wilayah berikutnya. Ketika menghitung jumlah akun berdasarkan persentase yang ditentukan, AWS CloudFormation membulatkan ke bawah ke jumlah bulat berikutnya.

MaxConcurrentPercentage

Diperlukan: Tidak

Persentase maksimum akun untuk melakukan operasi ini pada satu waktu. Ketika menghitung jumlah akun berdasarkan persentase yang ditentukan, AWS CloudFormation membulatkan ke bawah ke jumlah bulat berikutnya. Jika pembulatan ke bawah akan menghasilkan nol, AWS CloudFormation tetapkan angka sebagai satu sebagai gantinya. Meskipun Anda menggunakan pengaturan ini untuk menentukan maksimum, untuk penerapan besar jumlah aktual akun yang ditindaklanjuti secara bersamaan mungkin lebih rendah karena pelambatan layanan.

RegionConcurrencyType

Diperlukan: Tidak

Anda dapat menentukan apakah kumpulan tumpukan harus diterapkan Wilayah AWS secara berurutan atau paralel dengan mengonfigurasi parameter penerapan konkurensi Wilayah. Ketika konkurensi Wilayah ditentukan untuk menyebarkan tumpukan di beberapa Wilayah AWS secara paralel, ini dapat menghasilkan waktu penerapan keseluruhan yang lebih cepat.

  • Paralel: Penerapan set tumpukan akan dilakukan pada saat yang sama, selama kegagalan penerapan Wilayah tidak melebihi toleransi kegagalan yang ditentukan.

  • Berurutan: Penerapan set tumpukan akan dilakukan satu per satu, selama kegagalan penerapan Wilayah tidak melebihi toleransi kegagalan yang ditentukan. Deployment berurutan adalah pilihan default.

ConcurrencyMode

Diperlukan: Tidak

Mode konkurensi memungkinkan Anda memilih bagaimana tingkat konkurensi berperilaku selama operasi set tumpukan, baik dengan toleransi kegagalan yang ketat atau lunak. Toleransi Kegagalan Ketat menurunkan kecepatan penerapan karena kegagalan operasi set tumpukan terjadi karena konkurensi menurun untuk setiap kegagalan. Soft Failure Tolerance memprioritaskan kecepatan penerapan sambil tetap memanfaatkan AWS CloudFormation kemampuan keselamatan.

  • STRICT_FAILURE_TOLERANCE: Opsi ini secara dinamis menurunkan tingkat konkurensi untuk memastikan jumlah akun yang gagal tidak pernah melebihi toleransi kegagalan tertentu. Ini adalah perilaku default.

  • SOFT_FAILURE_TOLERANCE: Opsi ini memisahkan toleransi kegagalan dari konkurensi yang sebenarnya. Hal ini memungkinkan operasi stack set berjalan pada tingkat konkurensi yang ditetapkan, terlepas dari jumlah kegagalan.

Artefak masukan

Anda harus menyertakan setidaknya satu artefak masukan yang berisi template untuk kumpulan tumpukan dalam CloudFormationStackSet tindakan. Anda dapat menyertakan lebih banyak artefak masukan untuk daftar target penyebaran, akun, dan parameter.

  • Jumlah artefak: 1 to 3

  • Deskripsi: Anda dapat memasukkan artefak untuk menyediakan:

    • File template tumpukan. (Lihat TemplatePath parameternya.)

    • File parameter. (Lihat Parameters parameternya.)

    • File akun. (Lihat DeploymentTargets parameternya.)

Artefak keluaran

  • Jumlah artefak: 0

  • Deskripsi: Artefak keluaran tidak berlaku untuk jenis tindakan ini.

Variabel keluaran

Jika Anda mengonfigurasi tindakan ini, ini menghasilkan variabel yang dapat direferensikan oleh konfigurasi tindakan tindakan hilir di pipeline. Anda mengonfigurasi tindakan dengan namespace untuk membuat variabel-variabel tersebut tersedia untuk konfigurasi tindakan hilir.

  • StackSetId: ID dari set tumpukan.

  • OperationId: ID operasi stack set.

Untuk informasi selengkapnya, lihat Variabel.

Contoh konfigurasi CloudFormationStackSettindakan

Contoh berikut menunjukkan konfigurasi tindakan untuk CloudFormationStackSettindakan tersebut.

Contoh untuk model izin yang dikelola sendiri

Contoh berikut menunjukkan CloudFormationStackSettindakan di mana target penyebaran yang dimasukkan adalah ID AWS akun.

YAML
Name: CreateStackSet ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackSet Version: '1' RunOrder: 1 Configuration: DeploymentTargets: '111111222222' FailureTolerancePercentage: '20' MaxConcurrentPercentage: '25' PermissionModel: SELF_MANAGED Regions: us-east-1 StackSetName: my-stackset TemplatePath: 'SourceArtifact::template.json' OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2 Namespace: DeployVariables
JSON
{ "Name": "CreateStackSet", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackSet", "Version": "1" }, "RunOrder": 1, "Configuration": { "DeploymentTargets": "111111222222", "FailureTolerancePercentage": "20", "MaxConcurrentPercentage": "25", "PermissionModel": "SELF_MANAGED", "Regions": "us-east-1", "StackSetName": "my-stackset", "TemplatePath": "SourceArtifact::template.json" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2", "Namespace": "DeployVariables" }

Contoh untuk model izin yang dikelola layanan

Contoh berikut menunjukkan CloudFormationStackSettindakan untuk model izin yang dikelola layanan di mana opsi untuk penerapan otomatis ke AWS Organizations diaktifkan dengan penyimpanan tumpukan.

YAML
Name: Deploy ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackSet Version: '1' RunOrder: 1 Configuration: Capabilities: 'CAPABILITY_IAM,CAPABILITY_NAMED_IAM' OrganizationsAutoDeployment: EnabledWithStackRetention PermissionModel: SERVICE_MANAGED StackSetName: stacks-orgs TemplatePath: 'SourceArtifact::template.json' OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: eu-central-1 Namespace: DeployVariables
JSON
{ "Name": "Deploy", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackSet", "Version": "1" }, "RunOrder": 1, "Configuration": { "Capabilities": "CAPABILITY_IAM,CAPABILITY_NAMED_IAM", "OrganizationsAutoDeployment": "EnabledWithStackRetention", "PermissionModel": "SERVICE_MANAGED", "StackSetName": "stacks-orgs", "TemplatePath": "SourceArtifact::template.json" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "eu-central-1", "Namespace": "DeployVariables" }

Tindakan CloudFormationStackInstances

Tindakan ini membuat instance baru dan menyebarkan kumpulan tumpukan ke instance tertentu. Instans tumpukan adalah referensi ke tumpukan di akun target dalam Wilayah. Sebuah instance stack bisa ada tanpa stack; misalnya, jika pembuatan stack tidak berhasil, instance stack menunjukkan alasan kegagalan pembuatan stack. Sebuah instans templat dikaitkan dengan hanya satu set tumpukan.

Setelah pembuatan awal kumpulan tumpukan, Anda dapat menambahkan instance tumpukan baru dengan menggunakanCloudFormationStackInstances. Nilai parameter template dapat diganti pada tingkat instance tumpukan selama membuat atau memperbarui operasi instance set tumpukan.

Setiap set tumpukan memiliki satu template dan set parameter template. Saat Anda memperbarui parameter template atau template, Anda memperbaruinya untuk seluruh rangkaian. Kemudian semua status instance disetel ke OUTDATED sampai perubahan diterapkan ke instance itu.

Untuk mengganti nilai parameter pada instance tertentu, misalnya, jika templat berisi parameter untuk stage dengan nilaiprod, Anda dapat mengganti nilai parameter tersebut menjadi atau. beta gamma

Tipe tindakan

  • Kategori: Deploy

  • Pemilik: AWS

  • Penyedia: CloudFormationStackInstances

  • Versi: 1

Parameter konfigurasi

StackSetName

Diperlukan: Ya

Nama yang akan dikaitkan dengan set tumpukan. Nama ini harus unik di Wilayah tempat ia dibuat.

Nama mungkin hanya berisi karakter alfanumerik dan tanda hubung. Itu harus dimulai dengan karakter alfabet dan 128 karakter atau kurang.

DeploymentTargets

Diperlukan: Tidak

catatan

Untuk model izin SERVICE_MANAGED, Anda dapat memberikan ID root organisasi atau ID Unit organisasi untuk target penerapan. Untuk model izin SELF_MANAGED, Anda hanya dapat menyediakan akun.

catatan

Ketika parameter ini dipilih, Anda juga harus memilih Wilayah.

Daftar AWS akun atau ID unit organisasi tempat instance kumpulan tumpukan harus dibuat/diperbarui.

  • Akun:

    Anda dapat memberikan akun sebagai daftar literal atau jalur file:

    • Literal: Masukkan parameter dalam format sintaks singkatanaccount_ID,account_ID, seperti yang ditunjukkan pada contoh berikut.

      111111222222,333333444444
    • Jalur file: Lokasi file yang berisi daftar AWS akun tempat instance kumpulan tumpukan harus dibuat/diperbarui, dimasukkan dalam format. InputArtifactName::AccountsFileName Jika Anda menggunakan jalur file untuk menentukan salah satu akun atau OrganizationalUnitIds, format file harus dalam JSON, seperti yang ditunjukkan pada contoh berikut.

      SourceArtifact::accounts.txt

      Contoh berikut menunjukkan isi file untukaccounts.txt:

      [ "111111222222" ]

      Contoh berikut menunjukkan isi file accounts.txt saat mencantumkan lebih dari satu akun:

      [ "111111222222","333333444444" ]
  • OrganizationalUnitIds:

    catatan

    Parameter ini opsional untuk model izin SERVICE_MANAGED dan tidak digunakan untuk model izin SELF_MANAGED. Jangan gunakan ini jika Anda memilih OrganizationsAutoDeployment.

    Unit AWS organisasi untuk memperbarui instance tumpukan terkait.

    Anda dapat memberikan ID unit organisasi sebagai daftar literal atau jalur file.

    • Literal: Masukkan array string dipisahkan dengan koma, seperti yang ditunjukkan pada contoh berikut.

      ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    • Jalur file: Lokasi file yang berisi daftar tempat untuk membuat atau memperbarui instance kumpulan tumpukan. OrganizationalUnitIds Jika Anda menggunakan jalur file untuk menentukan salah satu akun atau OrganizationalUnitIds, format file harus dalam JSON, seperti yang ditunjukkan pada contoh berikut.

      Masukkan jalur ke file dalam formatInputArtifactName::OrganizationalUnitIdsFileName.

      SourceArtifact::OU-IDs.txt

      Contoh berikut menunjukkan isi file untukOU-IDs.txt:

      [ "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222" ]
Daerah

Diperlukan: Ya

catatan

Ketika parameter ini dipilih, Anda juga harus memilih DeploymentTargets.

Daftar AWS Wilayah tempat instance kumpulan tumpukan dibuat atau diperbarui. Wilayah diperbarui dalam urutan di mana mereka dimasukkan.

Masukkan daftar AWS Wilayah yang valid dalam format:Region1,Region2, seperti yang ditunjukkan pada contoh berikut.

us-west-2,us-east-1
ParameterOverrides

Diperlukan: Tidak

Daftar parameter set tumpukan yang ingin Anda timpa dalam instance tumpukan yang dipilih. Nilai parameter yang diganti diterapkan ke semua instance tumpukan di akun dan Wilayah yang ditentukan.

Anda dapat memberikan parameter sebagai daftar literal atau jalur file:

  • Anda dapat memasukkan parameter dalam format sintaks singkatan berikut:. ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string Untuk informasi selengkapnya tentang tipe data ini, lihatJenis data parameter template.

    Contoh berikut menunjukkan parameter bernama BucketName dengan nilai my-bucket.

    ParameterKey=BucketName,ParameterValue=my-bucket

    Contoh berikut menunjukkan entri dengan beberapa parameter.

    ParameterKey=BucketName,ParameterValue=my-bucket ParameterKey=Asset1,ParameterValue=true ParameterKey=Asset2,ParameterValue=true
  • Anda dapat memasukkan lokasi file yang berisi daftar penggantian parameter template yang dimasukkan dalam formatInputArtifactName::ParameterOverridessFileName, seperti yang ditunjukkan pada contoh berikut.

    SourceArtifact::parameter-overrides.txt

    Contoh berikut menunjukkan isi file untukparameter-overrides.txt.

    [ { "ParameterKey": "KeyName", "ParameterValue": "true" }, { "ParameterKey": "KeyName", "ParameterValue": "true" } ]
FailureTolerancePercentage

Diperlukan: Tidak

Persentase akun per Wilayah di mana operasi tumpukan ini dapat gagal sebelum AWS CloudFormation menghentikan operasi di Wilayah tersebut. Jika operasi dihentikan di Wilayah, AWS CloudFormation tidak mencoba operasi di Wilayah berikutnya. Ketika menghitung jumlah akun berdasarkan persentase yang ditentukan, AWS CloudFormation membulatkan ke bawah ke jumlah bulat berikutnya.

MaxConcurrentPercentage

Diperlukan: Tidak

Persentase maksimum akun untuk melakukan operasi ini pada satu waktu. Ketika menghitung jumlah akun berdasarkan persentase yang ditentukan, AWS CloudFormation membulatkan ke bawah ke jumlah bulat berikutnya. Jika pembulatan ke bawah akan menghasilkan nol, AWS CloudFormation tetapkan angka sebagai satu sebagai gantinya. Meskipun Anda menentukan maksimum, untuk penerapan besar jumlah aktual akun yang ditindaklanjuti secara bersamaan mungkin lebih rendah karena pelambatan layanan.

RegionConcurrencyType

Diperlukan: Tidak

Anda dapat menentukan apakah kumpulan tumpukan harus diterapkan Wilayah AWS secara berurutan atau paralel dengan mengonfigurasi parameter penerapan konkurensi wilayah. Ketika konkurensi Wilayah ditentukan untuk menyebarkan tumpukan di beberapa Wilayah AWS secara paralel, ini dapat menghasilkan waktu penerapan keseluruhan yang lebih cepat.

  • Paralel: Penerapan set tumpukan akan dilakukan pada saat yang sama, selama kegagalan penerapan Wilayah tidak melebihi toleransi kegagalan yang ditentukan.

  • Berurutan: Penerapan set tumpukan akan dilakukan satu per satu, selama kegagalan penerapan Wilayah tidak melebihi toleransi kegagalan yang ditentukan. Deployment berurutan adalah pilihan default.

ConcurrencyMode

Diperlukan: Tidak

Mode konkurensi memungkinkan Anda memilih bagaimana tingkat konkurensi berperilaku selama operasi set tumpukan, baik dengan toleransi kegagalan yang ketat atau lunak. Toleransi Kegagalan Ketat menurunkan kecepatan penerapan karena kegagalan operasi set tumpukan terjadi karena konkurensi menurun untuk setiap kegagalan. Soft Failure Tolerance memprioritaskan kecepatan penerapan sambil tetap memanfaatkan AWS CloudFormation kemampuan keselamatan.

  • STRICT_FAILURE_TOLERANCE: Opsi ini secara dinamis menurunkan tingkat konkurensi untuk memastikan jumlah akun yang gagal tidak pernah melebihi toleransi kegagalan tertentu. Ini adalah perilaku default.

  • SOFT_FAILURE_TOLERANCE: Opsi ini memisahkan toleransi kegagalan dari konkurensi yang sebenarnya. Hal ini memungkinkan operasi stack set berjalan pada tingkat konkurensi yang ditetapkan, terlepas dari jumlah kegagalan.

Artefak masukan

CloudFormationStackInstancesdapat berisi artefak yang mencantumkan target dan parameter penerapan.

  • Jumlah artefak: 0 to 2

  • Deskripsi: Sebagai masukan, aksi kumpulan tumpukan secara opsional menerima artefak untuk tujuan ini:

    • Untuk menyediakan file parameter yang akan digunakan. (Lihat ParameterOverrides parameternya.)

    • Untuk menyediakan file akun target untuk digunakan. (Lihat DeploymentTargets parameternya.)

Artefak keluaran

  • Jumlah artefak: 0

  • Deskripsi: Artefak keluaran tidak berlaku untuk jenis tindakan ini.

Variabel keluaran

Ketika dikonfigurasi, tindakan ini menghasilkan variabel yang dapat direferensikan oleh konfigurasi tindakan tindakan hilir dalam pipeline. Anda mengonfigurasi tindakan dengan namespace untuk membuat variabel-variabel tersebut tersedia untuk konfigurasi tindakan hilir.

  • StackSetId: ID dari set tumpukan.

  • OperationId: ID operasi stack set.

Untuk informasi selengkapnya, lihat Variabel.

Contoh konfigurasi tindakan

Contoh berikut menunjukkan konfigurasi tindakan untuk CloudFormationStackInstancestindakan tersebut.

Contoh untuk model izin yang dikelola sendiri

Contoh berikut menunjukkan CloudFormationStackInstancestindakan di mana target penyebaran yang dimasukkan adalah Akun AWS ID111111222222.

YAML
Name: my-instances ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackInstances Version: '1' RunOrder: 2 Configuration: DeploymentTargets: '111111222222' Regions: 'us-east-1,us-east-2,us-west-1,us-west-2' StackSetName: my-stackset OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2
JSON
{ "Name": "my-instances", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackInstances", "Version": "1" }, "RunOrder": 2, "Configuration": { "DeploymentTargets": "111111222222", "Regions": "us-east-1,us-east-2,us-west-1,us-west-2", "StackSetName": "my-stackset" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2" }

Contoh untuk model izin yang dikelola layanan

Contoh berikut menunjukkan CloudFormationStackInstancestindakan untuk model izin yang dikelola layanan di mana target penerapan adalah ID unit AWS organisasi Organizations. ou-1111-1example

YAML
Name: Instances ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackInstances Version: '1' RunOrder: 2 Configuration: DeploymentTargets: ou-1111-1example Regions: us-east-1 StackSetName: my-stackset OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: eu-central-1
JSON
{ "Name": "Instances", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackInstances", "Version": "1" }, "RunOrder": 2, "Configuration": { "DeploymentTargets": "ou-1111-1example", "Regions": "us-east-1", "StackSetName": "my-stackset" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "eu-central-1" }

Model izin untuk operasi set tumpukan

Karena AWS CloudFormation StackSets melakukan operasi di beberapa akun, Anda harus menentukan izin yang diperlukan di akun tersebut sebelum Anda dapat membuat kumpulan tumpukan. Anda dapat menentukan izin melalui izin yang dikelola sendiri atau izin yang dikelola layanan.

Dengan izin yang dikelola sendiri, Anda membuat dua peran IAM yang diperlukan oleh StackSets - peran administrator seperti AWSCloudFormationStackSetAdministrationRole di akun tempat Anda menentukan kumpulan tumpukan dan peran eksekusi seperti AWSCloudFormationStackSetExecutionRole di setiap akun tempat Anda menerapkan instance kumpulan tumpukan. Menggunakan model izin ini, StackSets dapat menyebarkan ke AWS akun mana pun di mana pengguna memiliki izin untuk membuat peran IAM. Untuk informasi selengkapnya, lihat Memberikan izin yang dikelola sendiri di AWS CloudFormationPanduan Pengguna.

catatan

Karena AWS CloudFormation StackSets melakukan operasi di beberapa akun, Anda harus menentukan izin yang diperlukan di akun tersebut sebelum Anda dapat membuat kumpulan tumpukan.

Dengan izin yang dikelola layanan, Anda dapat menerapkan instance tumpukan ke akun yang dikelola oleh Organizations. AWS Dengan menggunakan model izin ini, Anda tidak perlu membuat peran IAM yang diperlukan karena StackSets membuat peran IAM atas nama Anda. Dengan model ini, Anda juga dapat mengaktifkan penerapan otomatis ke akun yang ditambahkan ke organisasi di masa mendatang. Lihat Mengaktifkan akses tepercaya dengan AWS Organizations di Panduan AWS CloudFormation Pengguna.

Jenis data parameter template

Parameter template yang digunakan dalam operasi stack set termasuk tipe data berikut. Untuk informasi lebih lanjut, lihat DescribeStackSet.

ParameterKey
  • Deskripsi: Kunci yang terkait dengan parameter. Jika Anda tidak menentukan kunci dan nilai untuk parameter tertentu, AWS CloudFormation gunakan nilai default yang ditentukan dalam template.

  • Contoh:

    "ParameterKey=BucketName,ParameterValue=my-bucket"
ParameterValue
  • Deskripsi: Nilai masukan yang terkait dengan parameter.

  • Contoh:

    "ParameterKey=BucketName,ParameterValue=my-bucket"
UsePreviousValue
  • Selama pembaruan tumpukan, gunakan nilai parameter yang ada yang digunakan tumpukan untuk kunci parameter yang diberikan. Jika Anda menentukantrue, jangan tentukan nilai parameter.

  • Contoh:

    "ParameterKey=Asset1,UsePreviousValue=true"

Setiap set tumpukan memiliki satu template dan set parameter template. Saat Anda memperbarui parameter template atau template, Anda memperbaruinya untuk seluruh rangkaian. Kemudian semua status instance disetel ke USANG hingga perubahan diterapkan ke instance itu.

Untuk mengganti nilai parameter pada instance tertentu, misalnya, jika templat berisi parameter untuk stage dengan nilaiprod, Anda dapat mengganti nilai parameter tersebut menjadi atau. beta gamma

Sumber daya terkait berikut dapat membantu Anda saat Anda bekerja dengan tindakan ini.

  • Jenis parameter - Bab referensi di Panduan AWS CloudFormation Pengguna ini memberikan lebih banyak deskripsi dan contoh untuk parameter CloudFormation templat.

  • Praktik terbaik — Untuk informasi selengkapnya tentang praktik terbaik untuk menerapkan kumpulan tumpukan, lihat https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html di Panduan AWS CloudFormation Pengguna.

  • AWS CloudFormationReferensi API - Anda dapat mereferensikan CloudFormation tindakan berikut di Referensi AWS CloudFormation API untuk informasi selengkapnya tentang parameter yang digunakan dalam operasi kumpulan tumpukan:

    • CreateStackSetTindakan membuat set tumpukan.

    • UpdateStackSetTindakan ini memperbarui kumpulan tumpukan dan instance tumpukan terkait di akun dan Wilayah yang ditentukan. Bahkan jika operasi set tumpukan yang dibuat dengan memperbarui kumpulan tumpukan gagal (sepenuhnya atau sebagian, di bawah atau di atas toleransi kegagalan yang ditentukan), kumpulan tumpukan diperbarui dengan perubahan ini. CreateStackInstances Panggilan selanjutnya pada set tumpukan yang ditentukan menggunakan set tumpukan yang diperbarui.

    • CreateStackInstancesTindakan ini membuat instance tumpukan untuk semua wilayah tertentu dalam semua akun yang ditentukan pada model izin yang dikelola sendiri, atau dalam semua target penerapan yang ditentukan pada model izin yang dikelola layanan. Anda dapat mengganti parameter untuk instance yang dibuat oleh tindakan ini. Jika instance sudah ada, CreateStackInstances panggilan UpdateStackInstances dengan parameter input yang sama. Saat Anda menggunakan tindakan ini untuk membuat instance, tindakan ini tidak mengubah status instance tumpukan lainnya.

    • UpdateStackInstancesTindakan ini memperbarui instance tumpukan dengan kumpulan tumpukan untuk semua wilayah tertentu dalam semua akun tertentu pada model izin yang dikelola sendiri, atau dalam semua target penerapan yang ditentukan pada model izin yang dikelola layanan. Anda dapat mengganti parameter untuk instance yang diperbarui oleh tindakan ini. Saat Anda menggunakan tindakan ini untuk memperbarui subset instance, tindakan ini tidak mengubah status instance tumpukan lainnya.

    • DescribeStackSetOperationTindakan mengembalikan deskripsi operasi stack set tertentu.

    • DescribeStackSetTindakan mengembalikan deskripsi set stack yang ditentukan.