StackSets AWS CloudFormation - AWS CodePipeline

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

StackSets AWS CloudFormation

CodePipeline menawarkan kemampuan untuk melakukanAWS CloudFormationStackSets operasi sebagai bagian dari proses CI/CD Anda. Anda menggunakan set tumpukan untuk membuat tumpukan diAWSakun di seluruhAWSDaerah dengan menggunakan satuAWS CloudFormationtemplat. Semua sumber daya dalam tumpukan didefinisikan oleh set tumpukanAWS CloudFormationtemplat. Ketika Anda membuat set tumpukan, Anda menentukan templat yang akan digunakan, serta parameter dan kemampuan apa pun yang dibutuhkan templat.

Untuk informasi lebih lanjut tentang konsep untukAWS CloudFormationStackSets, lihatKonsep StackSetsdi dalamAWSPanduan Pengguna CloudFormation.

Anda mengintegrasikan pipa Anda denganAWS CloudFormationStackSets melalui dua jenis tindakan berbeda yang Anda gunakan bersama-sama:

  • ParameterCloudFormationStackSettindakan membuat atau memperbarui tumpukan set atau tumpukan contoh dari template yang disimpan di lokasi sumber pipa. Setiap kali kumpulan tumpukan dibuat atau diperbarui, ia memulai penyebaran perubahan tersebut ke instance yang ditentukan. Di konsol, Anda dapat memilihSet Tumpukan CloudFormationpenyedia tindakan ketika Anda membuat atau mengedit pipa Anda.

  • ParameterCloudFormationStackInstancestindakan menyebarkan perubahan dariCloudFormationStackSettindakan untuk instance tertentu, membuat instance stack baru, dan mendefinisikan parameter menimpa ke instance tertentu. Di konsol, Anda dapat memilihInstans Tumpukan CloudFormationpenyedia tindakan ketika Anda mengedit pipeline yang ada.

catatan

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

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

catatan

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

BagaimanaAWS CloudFormationTindakan StackSets

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

ParameterCloudFormationStackSetaksimenghasilkanataupembaruanstack set dan menyebarkan perubahan tersebut ke instance tertentu.

catatan

Jika Anda menggunakan tindakan ini untuk membuat pembaruan yang mencakup menambahkan instance stack, instance baru akan digunakan terlebih dahulu dan pembaruan selesai terakhir. Instans 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,CloudFormationStackSetaction menciptakan set stack tanpa membuat instance apapun.

  • Perbarui: SaatCloudFormationStackSettindakan dijalankan untuk set tumpukan yang sudah dibuat, tindakan update stack set. Jika tidak ada instance yang ditentukan dan set tumpukan sudah ada, semua instance akan diperbarui. Jika tindakan ini digunakan untuk memperbarui instans tertentu, semua instans yang tersisa pindah ke status OUTDATED.

    Anda dapat menggunakanCloudFormationStackSettindakan untuk memperbarui set 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 sesuai dengan peran eksekusi yang ditentukan dalam peran Administrator).

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

    • Mengaktifkan/menonaktifkanAutoDeploymentjika model izin set stackService Managed.

    • Perbarui peran Administrator.

    • Update deskripsi pada set tumpukan.

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

ParameterCloudFormationStackInstancesaction menciptakan instance stack baru atau update instance stack usang. Sebuah instance menjadi usang ketika set tumpukan diperbarui, tetapi tidak semua instance di dalamnya diperbarui.

  • Buat: Jika tumpukan sudah ada,CloudFormationStackInstancestindakan hanya memperbarui 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,CloudFormationStackInstancesmemperbarui sisa instance dalam tumpukan yang diatur dalam gelombang sehingga semua instance ditandaiCURRENT. Tindakan ini juga dapat digunakan untuk menambahkan instance tambahan atau menimpa parameter pada instance baru atau yang sudah ada.

Sebagai bagian dari pembaruan,CloudFormationStackSetdanCloudFormationStackInstancestindakan dapat menentukan target penyebaran baru, yang menciptakan instance stack baru.

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

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

Bagaimana struktur StackSets tindakan dalam pipa

Sebagai praktik terbaik, Anda harus membangun pipa Anda sehingga set tumpukan dibuat dan awalnya menyebarkan ke subset atau satu contoh. Setelah Anda menguji penyebaran Anda dan melihat set tumpukan yang dihasilkan, kemudian tambahkanCloudFormationStackInstancestindakan sehingga instance yang tersisa dibuat dan diperbarui.

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

  1. Buat pipa dengan tindakan sumber (diperlukan) danCloudFormationStackSettindakan sebagai tindakan menyebarkan. Jalankan alur Anda.

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

    Instans tumpukan Wilayah Status
    StackInstanceID-1 us-east-1 SAAT INI
  3. Mengedit pipa Anda untuk menambahkanCloudFormationStackInstancessebagai tindakan penyebaran kedua untuk membuat/memperbarui instance stack untuk target yang Anda tetapkan. Misalnya, untuk pembuatan contoh tumpukan untuk akunAccount-Adi manaus-east-2daneu-central-1Wilayah ditentukan, instance stack yang tersisa dibuat dan instance 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 set tumpukan dan memperbarui atau membuat instance stack.

Ketika Anda memulai pemutakhiran tumpukan di mana Anda telah menghapus target penyebaran dari konfigurasi tindakan, maka instance stack yang tidak ditunjuk untuk pembaruan akan dihapus dari penyebaran dan pindah ke status OUTDATED. Misalnya, untuk pembaruan contoh tumpukan untuk akunAccount-Adi manaus-east-2Wilayah dihapus dari konfigurasi tindakan, instance stack yang tersisa dibuat dan instance dihapus diatur ke OUTDATED 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 diAWSPanduan Pengguna CloudFormation.

Tindakan CloudFormationStackSet

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

Setelah menetapkan set 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 lainnya, seperti urutan Wilayah untuk dilakukan, persentase toleransi kegagalan di luar tumpukan operasi mana yang berhenti, dan jumlah akun di mana operasi dilakukan, dan jumlah akun di mana operasi dilakukan secara bersamaan.

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

Ketika tindakan ini digunakan sebagai tindakan update ke set stack, update ke stack tidak diperbolehkan tanpa penyebaran setidaknya satu contoh stack.

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. Ini harus dimulai dengan karakter abjad dan 128 karakter atau lebih.

Deskripsi

Diperlukan: Tidak

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

TemplatePath

Diperlukan: Ya

Lokasi template yang mendefinisikan sumber daya di 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 set tumpukan yang diperbarui 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 selengkapnya tentang jenis data ini, lihatJenis data parameter Template.

    Contoh berikut menunjukkan parameter bernamaBucketNamedengan nilai saya-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 menimpa 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 di 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 antar kemampuan. Contohnya diContohCloudFormationStackSetkonfigurasi tindakanmenunjukkan 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 men-deploy ke akun target.

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

catatan

Parameter ini hanya dapat diubah bila tidak ada instance stack yang ada di set stack.

AdministrasiroBelajar
catatan

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

Diperlukan: Tidak

catatan

Parameter ini opsional untuk model izin SELF_MANAGELED dan tidak digunakan untuk model izin SERVICE_MANAGELSED.

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 ini tidak peka huruf besar/ kecil. Nama peran ini harus 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, itu diatur ke awscloudFormationStackSetAdministrationRole. Jika Anda menentukan ServiceManaged, Anda tidak boleh menentukan nama peran.

ExecutionRoleName
catatan

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

Diperlukan: Tidak

catatan

Parameter ini opsional untuk model izin SELF_MANAGELED dan tidak digunakan untuk model izin SERVICE_MANAGELSED.

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. Nama ini tidak peka huruf besar/ kecil. Nama peran ini harus 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, itu diatur keAWSCloudFormationStackSetExecutionRole. Jika Anda menetapkan Service_Managed ke true, Anda tidak boleh menentukan nama peran.

OrganisasiSautoDeployment

Diperlukan: Tidak

catatan

Parameter ini bersifat opsional untuk model izin SERVICE_MANAGELED dan tidak digunakan untuk model izin SELF_MANAGELED.

Mendeskripsikan apakahAWS CloudFormationStackSets secara otomatis menyebarkan keAWSAkun Organizations yang ditambahkan ke organisasi target atau unit organisasi (OU). JikaOrganizationsAutoDeploymentditentukan, tidak menentukanDeploymentTargetsdanRegions.

catatan

Jika tidak ada masukan disediakan untukOrganizationsAutoDeployment, 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 CloudFormationStackSets 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_MANELSEED, Anda dapat menyediakan akun atau ID Unit organisasi untuk target penyebaran. Untuk model izin SELF_MANUCEED, Anda hanya dapat menyediakan akun.

catatan

Bila parameter ini dipilih, Anda juga harus memilihKawasan.

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

  • Akun:

    Anda dapat memberikan akun sebagai daftar literal atau path 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 stack set instance 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 bersifat opsional untuk model izin SERVICE_MANAGELED dan tidak digunakan untuk model izin SELF_MANAGELED. Jangan gunakan ini jika Anda memilihOrganisasiSautoDeployment.

    ParameterAWSunit organisasi di mana untuk memperbarui contoh tumpukan terkait.

    Anda dapat menyediakan ID unit organisasi sebagai daftar literal atau path 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 untuk membuat atau memperbarui instans set stack.

      Masukkan jalur ke file dalam formatInputArtifactName::OrganizationalUnitIdsFileName.

      SourceArtifact::OU-IDs.txt
Kawasan

Diperlukan: Tidak

catatan

Bila parameter ini dipilih, Anda juga harus memilihDeploymentTargets.

Daftar dariAWSDaerah di mana stack set instance dibuat atau diperbarui. Wilayah diperbarui sesuai urutan pemasangannya.

Masukkan daftar 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 sebenarnya dari akun yang ditindaklanjuti secara bersamaan mungkin lebih rendah karena throttling layanan.

artefak masukan

Anda harus menyertakan setidaknya satu artefak masukan yang berisi template untuk stack set 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.)

    • Parameter file. (LihatParametersparameter.)

    • Berkas akun. (LihatDeploymentTargetsparameter.)

artefak keluaran

  • Jumlah artefak: 0

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

Variabel output

Jika Anda mengkonfigurasi 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.

ContohCloudFormationStackSetkonfigurasi tindakan

Contoh berikut menunjukkan konfigurasi tindakan untukCloudFormationStackSettindakan.

Contoh untuk model izin yang dikelola sendiri

Contoh berikut menunjukkanCloudFormationStackSettindakan di mana target penyebaran 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 otomatis keAWSOrganizations 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 CloudFormation

Tindakan ini menciptakan instance baru dan menyebarkan set tumpukan ke instance yang ditentukan. 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 instance stack baru dengan menggunakanCloudFormationStackInstances. Nilai parameter Template dapat diganti pada tingkat contoh stack selama membuat atau memperbarui tumpukan mengatur operasi contoh.

Setiap set tumpukan 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 nilaiprod, Anda dapat menimpa nilai parameter yang akanbetaataugamma.

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. Ini harus dimulai dengan karakter abjad dan 128 karakter atau lebih.

DeploymentTargets

Diperlukan: Tidak

catatan

Untuk model izin SERVICE_MANELSEED, Anda dapat menyediakan akun atau ID Unit organisasi untuk target penyebaran. Untuk model izin SELF_MANUCEED, Anda hanya dapat menyediakan akun.

catatan

Bila parameter ini dipilih, Anda juga harus memilihKawasan.

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

  • Akun:

    Anda dapat memberikan akun sebagai daftar literal atau path 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 stack set instance 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 bersifat opsional untuk model izin SERVICE_MANAGELED dan tidak digunakan untuk model izin SELF_MANAGELED. Jangan gunakan ini jika Anda memilihOrganisasiSautoDeployment.

    ParameterAWSunit organisasi di mana untuk memperbarui contoh tumpukan terkait.

    Anda dapat menyediakan ID unit organisasi sebagai daftar literal atau path 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 untuk membuat atau memperbarui instans set stack.

      Masukkan jalur ke file dalam formatInputArtifactName::OrganizationalUnitIdsFileName.

      SourceArtifact::OU-IDs.txt
Kawasan

Diperlukan: Ya

catatan

Bila parameter ini dipilih, Anda juga harus memilihDeploymentTargets.

Daftar dariAWSDaerah di mana stack set instance dibuat atau diperbarui. Wilayah diperbarui sesuai urutan pemasangannya.

Masukkan daftar 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 ditimpa diterapkan untuk semua contoh stack 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 selengkapnya tentang jenis data ini, lihatJenis data parameter Template.

    Contoh berikut menunjukkan parameter bernamaBucketNamedengan nilai saya-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 menimpa 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 sebenarnya dari akun yang ditindaklanjuti secara bersamaan mungkin lebih rendah karena throttling layanan.

artefak masukan

CloudFormationStackInstancesdapat berisi artefak yang mencantumkan target dan parameter penyebaran.

  • Jumlah artefak: 0 to 2

  • Deskripsi: Sebagai masukan, tindakan set tumpukan 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 jenis tindakan ini.

Variabel output

Ketika dikonfigurasi, tindakan ini menghasilkan variabel yang dapat direferensikan oleh konfigurasi aksi aksi 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 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 adalahAWSID unit Organizationsou-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 CloudFormationStackSets melakukan operasi di beberapa akun, Anda harus menentukan izin yang diperlukan di 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 kumpulan tumpukan dan peran eksekusi seperti AWSCloudFormationStackSetExecutionRole di setiap akun tempat Anda menyebarkan contoh 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 CloudFormationStackSets melakukan operasi di beberapa akun, Anda harus menentukan izin yang diperlukan di akun tersebut sebelum Anda dapat membuat set tumpukan.

Dengan izin yang dikelola layanan, 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. Dengan model ini, Anda juga dapat mengaktifkan deployment otomatis ke akun yang ditambahkan ke organisasi di masa mendatang. LihatMengaktifkan akses terpercaya denganAWSOrganizationsdi dalamAWS CloudFormationPanduan Pengguna.

Jenis data parameter Template

Parameter template yang digunakan dalam operasi set tumpukan mencakup jenis data berikut. Untuk informasi selengkapnya, lihatDescriBestackSet.

ParameterKey
  • Deskripsi: Kunci yang terkait dengan parameter. Jika Anda tidak menentukan kunci dan nilai untuk parameter tertentu,AWSCloudFormation 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"
GunakanPreviousValue
  • Selama update stack, gunakan nilai parameter yang ada yang digunakan stack untuk kunci parameter yang diberikan. Jika Anda menentukantrue, tidak menentukan nilai parameter.

  • Contoh:

    "ParameterKey=Asset1,UsePreviousValue=true"

Setiap set tumpukan 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 dikerahkan ke instance itu.

Untuk mengganti nilai parameter pada instance tertentu, misalnya, jika template berisi parameter untukstagedengan nilaiprod, Anda dapat menimpa nilai parameter yang akanbetaataugamma.

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

  • Tipe parameter— Bab referensi ini dalamAWS CloudFormationPanduan Penggunamenyediakan lebih banyak deskripsi dan contoh untuk parameter template CloudFormation.

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

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

    • ParameterCreateStacksettindakan menciptakan set tumpukan.

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

    • ParametercreateStackInstancesaction menciptakan instance stack untuk semua wilayah tertentu dalam semua akun yang ditentukan 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 memanggil UpdateStackInstances dengan parameter input yang sama. Bila Anda menggunakan tindakan ini untuk membuat instance, itu tidak mengubah status instance stack lainnya.

    • ParameterUpdateStackInstancesaction membawa 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 penyebaran 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 instance, itu tidak mengubah status instance stack lainnya.

    • ParameterDescriptionBestackSetOperationtindakan mengembalikan deskripsi operasi set tumpukan yang ditentukan.

    • ParameterDescriBestackSettindakan mengembalikan deskripsi set tumpukan yang ditentukan.