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 melakukanAWS CloudFormation StackSets operasi sebagai bagian dari proses CI/CD Anda. Anda menggunakan tumpukan set untuk membuat tumpukan diAWSakun diAWSDaerah dengan menggunakan satuAWS CloudFormationtemplat. Semua sumber daya yang disertakan dalam tumpukan ditentukan oleh set tumpukanAWS CloudFormationtemplat. Ketika Anda membuat set tumpukan, Anda menentukan templat yang akan digunakan, serta parameter dan kemampuan apa pun yang dibutuhkan templat.

catatan

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

Untuk informasi lebih lanjut tentang konsep untukAWS CloudFormation StackSetsLihatStackSets konsepdi dalamAWS CloudFormation Panduan Pengguna.

Anda mengintegrasikan pipeline Anda denganAWS CloudFormation StackSets melalui dua tipe aksi berbeda yang Anda gunakan bersama:

  • YangCloudFormationStackSettindakan membuat atau memperbarui tumpukan set atau tumpukan contoh dari template yang disimpan di lokasi sumber pipeline. Setiap kali kumpulan tumpukan dibuat atau diperbarui, ia memulai penyebaran perubahan tersebut ke instance tertentu. Di konsol, Anda dapat memilihCloudFormation Set Tumpukanpenyedia tindakan ketika membuat atau mengedit pipeline.

  • YangCloudFormationStackInstancestindakan menyebarkan perubahan dariCloudFormationStackSettindakan untuk contoh tertentu, menciptakan contoh stack baru, dan mendefinisikan parameter menimpa untuk contoh tertentu. Di konsol, Anda dapat memilihCloudFormation Instans tumpukanpenyedia tindakan ketika Anda mengedit pipeline yang ada.

catatan

Fitur ini tidak tersedia di Wilayah Asia Pacific (Hong Kong) dan Europe (Milan). Untuk mereferensikan tindakan lain yang tersedia, lihatIntegrasi produk dan layanan dengan CodePipeline.

Anda dapat menggunakan tindakan ini untuk menyebarkan ke targetAWSakun atau targetAWSOrganizations unit organisasi ID.

catatan

Untuk men-deploy ke targetAWSAkun Organizations atau ID unit organisasi dan menggunakan model izin yang dikelola layanan, Anda harus mengaktifkan akses tepercaya antaraAWS CloudFormation StackSets danAWSOrganizations. Untuk informasi selengkapnya, lihatMengaktifkan akses terpercaya denganAWS CloudFormation StackSets.

BagaimanaAWS CloudFormation StackSets tindakan

SEBUAHCloudFormationStackSettindakan menciptakan atau memperbarui sumber daya tergantung pada apakah tindakan berjalan untuk pertama kalinya.

YangCloudFormationStackSetaksimenghasilkanataupembaruanstack mengatur dan menyebarkan perubahan tersebut ke instance tertentu.

catatan

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

  • Buat: Ketika tidak ada contoh yang ditentukan dan stack set tidak ada,CloudFormationStackSettindakan menciptakan stack set tanpa membuat contoh apapun.

  • Perbarui: SaatCloudFormationStackSetaction dijalankan untuk stack set yang sudah dibuat, tindakan update stack set. Jika tidak ada contoh yang ditentukan dan kumpulan tumpukan sudah ada, semua instance diperbarui. Jika tindakan ini digunakan untuk memperbarui instance tertentu, semua instance yang tersisa pindah ke status USANG.

    Anda dapat menggunakanCloudFormationStackSettindakan untuk memperbarui set tumpukan dengan cara berikut.

    • Perbarui template pada beberapa atau semua contoh.

    • Perbarui parameter pada beberapa atau semua instance.

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

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

    • Mengaktifkan/menonaktifkanAutoDeploymentjika model perizinan stack set adalahService Managed.

    • Memperbarui peran Administrator.

    • Perbarui deskripsi set tumpukan.

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

YangCloudFormationStackInstancesaction menciptakan instance stack baru atau memperbarui instance stack yang sudah ketinggalan zaman. Instance menjadi usang saat kumpulan tumpukan diperbarui, tetapi tidak semua instance di dalamnya diperbarui.

  • Buat: Jika tumpukan sudah ada,CloudFormationStackInstancestindakan hanya update contoh dan tidak membuat contoh stack.

  • Perbarui: SetelahCloudFormationStackSettindakan dilakukan, jika template atau parameter telah diperbarui hanya dalam beberapa kasus, sisanya akan ditandaiOUTDATED. Pada tahap pipa selanjutnya,CloudFormationStackInstancesupdate sisa contoh dalam stack diatur dalam gelombang sehingga semua instance ditandaiCURRENT. Tindakan ini juga dapat digunakan untuk menambahkan instance tambahan atau mengganti parameter pada instance baru atau yang sudah ada.

Sebagai bagian dari pembaruan,CloudFormationStackSetdanCloudFormationStackInstancestindakan dapat menentukan target penyebaran baru, yang menciptakan contoh tumpukan baru.

Sebagai bagian dari pembaruan,CloudFormationStackSetdanCloudFormationStackInstancestindakan tidak menghapus set tumpukan, contoh, atau sumber daya. Ketika tindakan memperbarui tumpukan tetapi tidak menentukan semua contoh yang akan diperbarui, contoh yang tidak ditentukan untuk pembaruan dihapus dari pembaruan dan diatur ke statusOUTDATED.

Selama penerapan, instance stack juga dapat menampilkan statusOUTDATEDjika penyebaran ke instance gagal.

Bagaimana struktur StackSetstindakan dalam alur

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

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

  1. Buat pipeline dengan aksi sumber (wajib) danCloudFormationStackSettindakan sebagai tindakan menyebarkan. Jalankan alur Anda.

  2. Ketika pipa Anda pertama kali berjalan,CloudFormationStackSetaksimenghasilkanstack set Anda dan setidaknya satu contoh awal. Verifikasi pembuatan stack set dan tinjau penyebaran ke instance awal Anda. Misalnya, untuk pembuatan set tumpukan awal untuk akun Account-A dimanaus-east-1adalah Region tertentu, contoh stack dibuat dengan stack set:

    Instans tumpukan Wilayah Status
    StackInstanceID-1 us-east-1 SAAT INI
  3. Edit pipeline Anda untuk menambahkanCloudFormationStackInstancessebagai tindakan penyebaran kedua untuk membuat/memperbarui instance tumpukan untuk target yang Anda tetapkan. Misalnya, untuk pembuatan instance stack untuk akunAccount-Adi manaus-east-2daneu-central-1Daerah ditentukan, contoh tumpukan yang tersisa dibuat dan contoh awal tetap diperbarui sebagai berikut:

    Instans 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 Anda sesuai kebutuhan untuk memperbarui kumpulan tumpukan dan memperbarui atau membuat instance tumpukan.

Ketika Anda memulai pembaruan tumpukan di mana Anda telah menghapus target penyebaran dari konfigurasi tindakan, maka instance tumpukan yang tidak ditetapkan untuk pembaruan akan dihapus dari penyebaran dan pindah ke status USANG. Misalnya, untuk pembaruan stack instance untuk akunAccount-Adi manaus-east-2Wilayah dihapus dari konfigurasi tindakan, contoh tumpukan yang tersisa dibuat dan contoh dihapus diatur ke USANG sebagai berikut:

Instans 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 men-deploy set tumpukan, lihatPraktik terbaikuntuk StackSets di dalamAWS CloudFormation Panduan Pengguna.

Tindakan CloudFormationStackSet

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

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

Satu set tumpukan adalah sumber daya regional. Jika Anda membuat tumpukan diatur dalam satuAWSWilayah, Anda tidak dapat mengaksesnya dari Wilayah lain.

Ketika tindakan ini digunakan sebagai tindakan pembaruan ke set tumpukan, pembaruan ke tumpukan tidak diizinkan tanpa penyebaran 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 pembuatannya.

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

Deskripsi

Diperlukan: Tidak

Deskripsi set tumpukan. Anda dapat menggunakan ini untuk menggambarkan tujuan stack set atau informasi lain yang relevan.

TemplatePath

Diperlukan: Ya

Lokasi templat yang mendefinisikan sumber daya dalam set 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 dalam contoh berikut.

SourceArtifact::template.txt
Parameter

Diperlukan: Tidak

Daftar parameter template untuk tumpukan Anda menetapkan pembaruan itu selama penyebaran.

Anda dapat memberikan parameter sebagai daftar literal atau path 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 lebih lanjut tentang jenis data ini, lihatJenis data parameter template.

    Contoh berikut menunjukkan parameter bernamaBucketNamedengan nilai sayabucket.

    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 dalam 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 dalam template tumpukan Anda atau Anda membuat tumpukan langsung dari template yang berisi makro. UntukAWS CloudFormationuntuk berhasil beroperasi dengan cara ini, Anda harus menggunakan salah satu kemampuan berikut:

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

Anda dapat menentukan lebih dari satu kemampuan dengan menggunakan koma dan tidak ada spasi antara kemampuan. Contohnya diContohCloudFormationStackSetkonfigurasi tindakanmenunjukkan entri dengan beberapa kemampuan.

PermissionModel

Diperlukan: Tidak

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

Nilai yang valid adalah:

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

  • SERVICE_MANAGED:AWS CloudFormation StackSets secara otomatis membuat peran IAM yang dibutuhkan untuk men-deploy ke akun yang dikelola olehAWSOrganizations. Ini membutuhkan akun untuk menjadi anggota Organisasi.

catatan

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

AdministrationRoleArn
catatan

KarenaAWS CloudFormation StackSets melakukan operasi di beberapa akun, Anda harus menentukan izin yang diperlukan dalam akun tersebut sebelum Anda dapat membuat set tumpukan.

Diperlukan: Tidak

catatan

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

ARN 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. Nama tidak peka huruf besar/ kecil. Nama peran ini harus memiliki panjang minimal 20 karakter dan panjang maksimal 2048 karakter. Nama peran harus unik dalam akun tersebut. Nama peran yang ditentukan di sini harus berupa nama peran yang ada. Jika Anda tidak menentukan nama peran, ia diatur ke AWSCloudFormationStackSetAdministrationRole. Jika Anda menentukan ServiceManaged, Anda tidak harus mendefinisikan nama peran.

ExecutionRoleName
catatan

KarenaAWS CloudFormation StackSets melakukan operasi di beberapa akun, Anda harus menentukan izin yang diperlukan dalam akun tersebut sebelum Anda dapat membuat set 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 stack set. Nama mungkin berisi karakter alfanumerik, salah satu karakter berikut: _+=, .@-, dan tidak ada spasi. Nama tidak peka huruf besar/ kecil. Nama peran ini harus panjang minimal 1 karakter dan panjang maksimal 64 karakter. Nama peran harus unik dalam akun tersebut. 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, ia 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.

Mendeskripsikan apakahAWS CloudFormation StackSets men-deploy secara otomatis keAWSakun Organizations yang ditambahkan ke organisasi target atau unit organisasi (OU). JikaOrganizationsAutoDeploymentditentukan, jangan tentukanDeploymentTargetsdanRegions.

catatan

Jika tidak ada masukan yang disediakanOrganizationsAutoDeployment, maka nilai default adalahDisabled.

Nilai yang valid adalah:

  • Enabled. Diperlukan: Tidak.

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

  • Disabled. Diperlukan: Tidak.

    StackSets tidak secara otomatis menyebarkan instance stack tambahan keAWSakun Organizations yang ditambahkan ke organisasi target atau unit organisasi (OU) di Wilayah tertentu.

  • 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 penyebaran. Untuk model izin SELF_MANAGED, Anda hanya dapat menyediakan akun.

catatan

Ketika parameter ini dipilih, Anda juga harus memilihKawasan.

Daftar dariAWSakun atau ID unit organisasi di mana instance stack set harus dibuat/diperbarui.

  • Akun:

    Anda dapat menyediakan akun sebagai daftar literal atau jalur file:

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

      111111222222,333333444444
    • Jalur file: Lokasi file yang berisi daftarAWSakun di mana instance stack set harus dibuat/diperbarui, dimasukkan dalam formatInputArtifactName::AccountsFileName, seperti yang ditunjukkan dalam contoh berikut.

      SourceArtifact::accounts.txt

      Contoh berikut menunjukkan isi file untukaccounts.txt.

      [ "111111222222" ]
  • OrganizationalUnitIds:

    catatan

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

    YangAWSunit organisasi di mana untuk memperbarui contoh tumpukan terkait.

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

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

      ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    • Jalur file: Lokasi file yang berisi daftar OrganizationalUnitIds di mana untuk membuat atau memperbarui contoh stack set.

      Masukkan jalur ke file dalam formatInputArtifactName::OrganizationalUnitIdsFileName.

      SourceArtifact::OU-IDs.txt
Kawasan

Diperlukan: Tidak

catatan

Ketika parameter ini dipilih, Anda juga harus memilihDeploymentTargets.

Daftar dariAWSWilayah di mana instance stack set dibuat atau diperbarui. Wilayah diperbarui sesuai urutan pemasukannya.

Masukkan daftar yang validAWSDaerah dalam formatRegion1,Region2, seperti yang ditunjukkan dalam contoh berikut.

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

Diperlukan: Tidak

Persentase akun per Wilayah di mana operasi tumpukan ini bisa gagal sebelumnyaAWS CloudFormationmenghentikan operasi di Wilayah itu. Jika operasi dihentikan di Wilayah,AWS CloudFormationtidak 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 CloudFormationmengatur jumlah sebesar satu sebagai gantinya. Meskipun Anda menggunakan pengaturan ini untuk menentukanmaksimum, untuk deployment yang besar, jumlah akun aktual yang ditindaklanjuti secara bersamaan mungkin lebih rendah karena throttling layanan.

Artefak

Anda harus menyertakan setidaknya satu artefak masukan yang berisi template untuk tumpukan yang ditetapkan dalamCloudFormationStackSettindakan. Anda dapat menyertakan lebih banyak artefak masukan untuk daftar target penyebaran, akun, dan parameter.

  • Jumlah artefak: 1 to 3

  • Deskripsi: Anda dapat menyertakan artefak untuk menyediakan:

    • File template stack. (LihatTemplatePathparameter.)

    • File parameter. (LihatParametersparameter.)

    • File akun. (LihatDeploymentTargetsparameter.)

artefak

  • Jumlah artefak: 0

  • Deskripsi: Artefak keluaran tidak berlaku untuk tipe aksi ini.

Variabel keluaran

Jika Anda mengkonfigurasi tindakan ini, itu menghasilkan variabel yang dapat direferensikan oleh konfigurasi tindakan tindakan hilir dalam pipa. Anda mengkonfigurasi tindakan dengan namespace untuk membuat variabel tersebut tersedia untuk konfigurasi tindakan hilir.

  • StackSetId: ID set tumpukan.

  • OperationId: ID operasi set tumpukan.

Untuk informasi selengkapnya, lihat Variabel.

ContohCloudFormationStackSetkonfigurasi tindakan

Contoh berikut menunjukkan konfigurasi tindakan untukCloudFormationStackSettindakan.

Contoh untuk model izin yang dikelola sendiri

Contoh berikut menunjukkanCloudFormationStackSettindakan di mana target penyebaran yang dimasukkan adalahAWSID 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 menunjukkanCloudFormationStackSettindakan untuk model izin yang dikelola layanan di mana opsi untuk penyebaran autoAWSOrganizations diaktifkan dengan retensi 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 set tumpukan ke instance tertentu. Instans tumpukan adalah referensi ke tumpukan di akun target dalam Wilayah. Instans tumpukan dapat eksis tanpa tumpukan; misalnya, jika pembuatan tumpukan tidak berhasil, instans tumpukan menunjukkan alasan kegagalan pembuatan tumpukan. Sebuah instans templat dikaitkan dengan hanya satu set tumpukan.

Setelah pembuatan awal set tumpukan, Anda dapat menambahkan contoh tumpukan baru dengan menggunakanCloudFormationStackInstances. Nilai parameter template dapat diganti pada tingkat instance stack selama operasi instance create atau update stack set.

Setiap stack set memiliki satu template dan set parameter template. Ketika Anda memperbarui template atau template parameter, Anda memperbarui mereka untuk seluruh set. Kemudian semua status instance diatur keOUTDATEDsampai perubahan dikerahkan ke instance itu.

Untuk mengganti nilai parameter pada instance tertentu, misalnya, jika template berisi parameter untukstagedengan nilai dariprod, Anda dapat menimpa nilai parameter itubetaataugamma.

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

Nama mungkin hanya berisi karakter alfanumerik dan tanda hubung. Nama itu harus dimulai dengan karakter abjad 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 penyebaran. Untuk model izin SELF_MANAGED, Anda hanya dapat menyediakan akun.

catatan

Ketika parameter ini dipilih, Anda juga harus memilihKawasan.

Daftar dariAWSakun atau ID unit organisasi di mana instance stack set harus dibuat/diperbarui.

  • Akun:

    Anda dapat menyediakan akun sebagai daftar literal atau jalur file:

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

      111111222222,333333444444
    • Jalur file: Lokasi file yang berisi daftarAWSakun di mana instance stack set harus dibuat/diperbarui, dimasukkan dalam formatInputArtifactName::AccountsFileName, seperti yang ditunjukkan dalam contoh berikut.

      SourceArtifact::accounts.txt

      Contoh berikut menunjukkan isi file untukaccounts.txt:

      [ "111111222222" ]
  • OrganizationalUnitIds:

    catatan

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

    YangAWSunit organisasi di mana untuk memperbarui contoh tumpukan terkait.

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

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

      ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    • Jalur file: Lokasi file yang berisi daftar OrganizationalUnitIds di mana untuk membuat atau memperbarui contoh stack set.

      Masukkan jalur ke file dalam formatInputArtifactName::OrganizationalUnitIdsFileName.

      SourceArtifact::OU-IDs.txt
Kawasan

Diperlukan: Ya

catatan

Ketika parameter ini dipilih, Anda juga harus memilihDeploymentTargets.

Daftar dariAWSWilayah di mana instance stack set dibuat atau diperbarui. Wilayah diperbarui sesuai urutan pemasukannya.

Masukkan daftar yang validAWSDaerah dalam format:Region1,Region2, seperti yang ditunjukkan dalam contoh berikut.

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

Diperlukan: Tidak

Daftar parameter set tumpukan yang ingin Anda timpa dalam instans tumpukan yang dipilih. Nilai parameter diganti diterapkan untuk semua contoh tumpukan di account tertentu dan Daerah.

Anda dapat memberikan parameter sebagai daftar literal atau path 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 lebih lanjut tentang jenis data ini, lihatJenis data parameter template.

    Contoh berikut menunjukkan parameter bernamaBucketNamedengan nilai sayabucket.

    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 dalam 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 bisa gagal sebelumnyaAWS CloudFormationmenghentikan operasi di Wilayah itu. Jika operasi dihentikan di Wilayah,AWS CloudFormationtidak 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 CloudFormationmengatur jumlah sebesar satu sebagai gantinya. Meskipun Anda menentukanmaksimum, untuk deployment yang besar, jumlah akun aktual yang ditindaklanjuti secara bersamaan mungkin lebih rendah karena throttling layanan.

Artefak

CloudFormationStackInstancesdapat berisi artefak yang mencantumkan target dan parameter penyebaran.

  • Jumlah artefak: 0 to 2

  • Deskripsi: Sebagai masukan, aksi stack set secara opsional menerima artefak untuk tujuan ini:

    • Untuk menyediakan file parameter yang akan digunakan. (LihatParameterOverridesparameter.)

    • Untuk menyediakan file akun target yang akan digunakan. (LihatDeploymentTargetsparameter.)

artefak keluaran

  • Jumlah artefak: 0

  • Deskripsi: Artefak keluaran tidak berlaku untuk tipe aksi ini.

Variabel keluaran

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

  • StackSetId: ID set tumpukan.

  • OperationId: ID operasi set tumpukan.

Untuk informasi selengkapnya, lihat Variabel.

Contoh konfigurasi tindakan

Contoh berikut menunjukkan konfigurasi tindakan untukCloudFormationStackInstancestindakan.

Contoh untuk model izin yang dikelola sendiri

Contoh berikut menunjukkanCloudFormationStackInstancestindakan di mana target penyebaran yang dimasukkan adalahAkun AWSID111111222222.

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 menunjukkanCloudFormationStackInstancestindakan untuk model izin yang dikelola layanan di mana target penyebaran adalahAWSunit Organizations IDou-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

KarenaAWS CloudFormation StackSets melakukan operasi di beberapa akun, Anda harus menentukan izin yang diperlukan dalam akun tersebut sebelum Anda dapat membuat set 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 set tumpukan dan peran eksekusi seperti AWSCloudFormationStackSetExecutionRole di setiap akun tempat Anda menerapkan instance stack set. Menggunakan model izin ini, StackSets dapat menyebarkan keAWSakun di mana pengguna memiliki izin untuk membuat peran IAM. Untuk informasi selengkapnya, lihatMemberikan izin yang dikelola sendiridi dalamAWS CloudFormationPanduan Pengguna.

catatan

KarenaAWS CloudFormation StackSets melakukan operasi di beberapa akun, Anda harus menentukan izin yang diperlukan dalam akun tersebut sebelum Anda dapat membuat set tumpukan.

Dengan service-managed, Anda dapat men-deploy instans tumpukan ke akun yang dikelola olehAWSOrganizations. Menggunakan model izin ini, Anda tidak perlu membuat peran IAM yang diperlukan karena StackSets membuat peran IAM atas nama Anda. Anda juga dapat mengaktifkan deployment otomatis ke akun yang ditambahkan ke organisasi di masa future. LihatMengaktifkan akses terpercaya denganAWSOrganizationsdi dalamAWS CloudFormationPanduan Pengguna.

Jenis data parameter template

Parameter template yang digunakan dalam operasi stack set mencakup tipe data berikut. Untuk informasi selengkapnya, lihatDescribeStackSet.

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

  • Contoh:

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

  • Contoh:

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

  • Contoh:

    "ParameterKey=Asset1,UsePreviousValue=true"

Setiap stack set memiliki satu template dan set parameter template. Ketika Anda memperbarui template atau template parameter, Anda memperbarui mereka untuk seluruh set. Kemudian semua status instance diatur ke OUTDATED sampai perubahan diterapkan ke instance itu.

Untuk mengganti nilai parameter pada instance tertentu, misalnya, jika template berisi parameter untukstagedengan nilai dariprod, Anda dapat menimpa nilai parameter itubetaataugamma.

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

  • Tipe parameter- Bab referensi ini diAWS CloudFormationPanduan Penggunamemberikan lebih banyak deskripsi dan contoh untuk CloudFormation parameter templat.

  • Praktik terbaik - Untuk informasi selengkapnya tentang praktik terbaik untuk men-deploy set tumpukan, lihathttps://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.htmldi dalamAWS CloudFormation Panduan Pengguna.

  • AWS CloudFormationReferensi API- Anda dapat referensi berikut CloudFormation tindakan diAWS CloudFormationReferensi APIuntuk informasi lebih lanjut tentang parameter yang digunakan dalam operasi set tumpukan:

    • YangCreateStackSettindakan membuat set tumpukan.

    • YangUpdateStackSettindakan update stack set dan contoh stack terkait dalam account tertentu dan Regions. Bahkan jika operasi stack set dibuat dengan memperbarui stack set gagal (sepenuhnya atau sebagian, di bawah atau di atas toleransi kegagalan tertentu), stack set diperbarui dengan perubahan ini. Selanjutnya CreateStackInstances panggilan pada stack set tertentu menggunakan stack set diperbarui.

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

    • YangUpdateStackInstancesaction membuat instance stack up to date dengan tumpukan yang ditetapkan 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 diperbarui oleh tindakan ini. Bila Anda menggunakan tindakan ini untuk memperbarui subset contoh, itu tidak mengubah status contoh tumpukan lainnya.

    • YangDescribeStackSetOperationtindakan mengembalikan deskripsi operasi stack set ditentukan.

    • YangDescribeStackSettindakan mengembalikan deskripsi stack set tertentu.