UpdatePolicyatribut - AWS CloudFormation

Ini adalah Panduan Referensi CloudFormation Template baru. Harap perbarui bookmark dan tautan Anda. Untuk bantuan memulai CloudFormation, lihat Panduan AWS CloudFormation Pengguna.

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

UpdatePolicyatribut

Gunakan UpdatePolicy atribut untuk menentukan cara CloudFormation menangani pembaruan ke sumber daya tertentu selama operasi pembaruan tumpukan.

Gambaran umum

Dengan menggunakan UpdatePolicy atribut, Anda dapat mengontrol bagaimana sumber daya berikut diperbarui, seperti yang dijelaskan di sini:

  • AWS::AppStream::Fleet— CloudFormation dapat menghentikan dan memulai armada, yang menyebabkan instance armada diganti. Dengan demikian, semua instance akan memiliki perubahan terbaru yang diterapkan segera setelah pembaruan tumpukan.

  • AWS::AutoScaling::AutoScalingGroup— Dengan grup Amazon EC2 Auto Scaling, Anda dapat menggunakan satu atau beberapa kebijakan pembaruan untuk mengontrol cara CloudFormation menangani pembaruan tertentu. Kebijakan ini meliputi:

    • AutoScalingReplacingUpdatedan AutoScalingRollingUpdate kebijakan — CloudFormation dapat mengganti grup EC2 Auto Scaling Amazon dan instansnya dengan AutoScalingReplacingUpdate kebijakan, atau hanya mengganti instans dengan kebijakan. AutoScalingRollingUpdate Operasi penggantian ini terjadi ketika Anda membuat satu atau beberapa perubahan berikut:

      • Ubah grup EC2 Auto Scaling Amazon. AWS::AutoScaling::LaunchConfiguration

      • Ubah properti grup EC2 Auto Scaling Amazon. VPCZoneIdentifier

      • Ubah properti grup EC2 Auto Scaling Amazon. LaunchTemplate

      • Ubah properti grup EC2 Auto Scaling Amazon. PlacementGroup

      • Perbarui grup EC2 Auto Scaling Amazon yang berisi instance yang tidak cocok dengan saat ini. LaunchConfiguration

      Jika AutoScalingReplacingUpdate dan AutoScalingRollingUpdate kebijakan yang ditentukan, pengaturan WillReplace properti untuk true memberikan AutoScalingReplacingUpdate diutamakan.

    • AutoScalingScheduledActionkebijakan — Kebijakan ini berlaku saat Anda memperbarui tumpukan yang menyertakan grup EC2 Auto Scaling Amazon dengan tindakan terjadwal yang menskalakan grup pada waktu tertentu. CloudFormation tidak dapat mengubah ukuran minimum, ukuran maksimum, atau kapasitas grup yang diinginkan kecuali mereka telah diubah secara eksplisit dalam template tumpukan. Kebijakan ini membantu mencegah pembaruan tak terduga yang dapat mengganggu aktivitas penskalaan terjadwal.

  • AWS::ElastiCache::ReplicationGroup— CloudFormation dapat memodifikasi pecahan grup replikasi dengan menambahkan atau menghapus pecahan, daripada mengganti seluruh sumber daya.

  • AWS::OpenSearchService::Domaindan AWS::Elasticsearch::Domain(lama) — CloudFormation dapat memutakhirkan domain OpenSearch Layanan ke versi baru OpenSearch atau Elasticsearch tanpa mengganti seluruh sumber daya.

  • AWS::Lambda::Alias— CloudFormation dapat melakukan CodeDeploy penyebaran ketika versi berubah pada alias.

Bagian berikut menjelaskan sintaks dan properti untuk UpdatePolicy atribut yang didukung oleh setiap jenis sumber daya.

WorkSpaces Kebijakan pembaruan aplikasi

Untuk menghentikan armada WorkSpaces Aplikasi sebelum pembaruan dan memulai ulang setelah pembaruan, gunakan kebijakan pembaruan WorkSpaces Aplikasi.

Sintaksis

JSON

{ "UpdatePolicy": { "StopBeforeUpdate": { "Type": "Boolean" }, "StartAfterUpdate": { "Type": "Boolean" } } }

YAML

UpdatePolicy: StopBeforeUpdate: Type: Boolean StartAfterUpdate: Type: Boolean
StopBeforeUpdate

Menghentikan armada yang ditentukan sebelum pembaruan.

Wajib: Tidak

StartAfterUpdate

Memulai armada yang ditentukan setelah pembaruan.

Wajib: Tidak

AutoScalingReplacingUpdatekebijakan

Untuk mengganti grup EC2 Auto Scaling Amazon dan instance yang dikandungnya, gunakan kebijakan tersebut. AutoScalingReplacingUpdate

Sebelum mencoba pembaruan, pastikan Anda memiliki EC2 kapasitas Amazon yang cukup untuk grup EC2 Auto Scaling Amazon lama dan baru Anda.

Sintaksis

JSON

"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" : Boolean } }

YAML

UpdatePolicy: AutoScalingReplacingUpdate: WillReplace: Boolean

Sifat-sifat

WillReplace

Menentukan apakah grup EC2 Auto Scaling Amazon dan instance yang dikandungnya diganti selama pembaruan. Selama penggantian, CloudFormation pertahankan grup lama sampai selesai membuat yang baru. Jika pembaruan gagal, CloudFormation dapat memutar kembali ke grup EC2 Auto Scaling Amazon lama dan menghapus grup Amazon Auto EC2 Scaling yang baru.

Saat CloudFormation membuat grup baru, itu tidak melepaskan atau melampirkan instance apa pun. Setelah berhasil membuat grup Amazon EC2 Auto Scaling baru, CloudFormation hapus grup Amazon EC2 Auto Scaling lama selama proses pembersihan.

Ketika Anda mengatur WillReplace parameter, ingat untuk menentukan pencocokan CreationPolicyatribut. Jika jumlah minimum instance (ditentukan oleh MinSuccessfulInstancesPercent properti) tidak menandakan keberhasilan dalam Timeout periode (ditentukan dalam CreationPolicy atribut), pembaruan penggantian gagal dan kembali ke CloudFormation grup Amazon EC2 Auto Scaling lama.

Tipe: Boolean

Wajib: Tidak

AutoScalingRollingUpdatekebijakan

Untuk melakukan pembaruan bergulir instans dalam grup EC2 Auto Scaling Amazon daripada menunggu aktivitas penskalaan untuk secara bertahap mengganti instans lama dengan instans yang lebih baru, gunakan kebijakan tersebut. AutoScalingRollingUpdate Kebijakan ini memberi Anda fleksibilitas untuk menentukan apakah CloudFormation menggantikan instance yang ada di grup Auto EC2 Scaling Amazon dalam batch atau sekaligus tanpa mengganti seluruh sumber daya.

Hal-hal yang perlu dipertimbangkan saat menggunakan AutoScalingRollingUpdate kebijakan:

  • Saat CloudFormation memutar kembali pembaruan, ia menggunakan UpdatePolicy konfigurasi yang ditentukan dalam template sebelum pembaruan tumpukan saat ini. Misalnya, Anda mengubah MaxBatchSize dari 1 menjadi 10 diUpdatePolicy, melakukan pembaruan tumpukan, dan pembaruan itu gagal. CloudFormation akan menggunakan 1 sebagai ukuran batch maksimum saat berputar kembali, bukan 10. Untuk menghindari skenario ini, buat perubahan UpdatePolicy pada pembaruan terpisah sebelum pembaruan apa pun ke grup Amazon EC2 Auto Scaling yang kemungkinan akan memulai pembaruan bergulir.

  • CloudFormation merekomendasikan untuk menentukan SuspendProcesses properti untuk menangguhkan sementara proses Auto EC2 Scaling Amazon yang mungkin mengganggu pembaruan bergulir dan menyebabkannya gagal. Untuk informasi selengkapnya, lihat Bagaimana cara memperbarui grup EC2 Auto Scaling Amazon saat memperbarui tumpukan? CloudFormation

  • CloudFormation mendukung penggunaan kait siklus hidup Amazon EC2 Auto Scaling saat meluncurkan atau menghentikan instance. Ini memberi Anda waktu untuk melakukan tindakan kustom pada instance sebelum pindah ke status berikutnya. Untuk memastikan bahwa instance baru mencapai InService status, selesaikan kait siklus hidup dengan CONTINUE hasil saat tindakan kustom selesai. Secara default, jika tidak ada respons yang diterima dan waktu pengait siklus hidup habis, peluncuran instance akan dianggap tidak berhasil dan ditinggalkan. Jika tidak ada instance yang mencapai InService status, pembaruan bergulir pada akhirnya akan gagal.

  • Fitur EC2 Auto Scaling Amazon seperti kebijakan pemeliharaan instans, kebijakan penghentian, dan perlindungan penskalaan tidak tersedia untuk digunakan dengan pembaruan bergulir. CloudFormation Rencanakan pembaruan bergulir Anda sesuai dengan itu.

  • Jika Anda menggunakan AutoScalingRollingUpdate kebijakan dan menghapus setelan grup penempatan, grup penempatan akan dihapus dari grup EC2 Auto Scaling Amazon dan template. CloudFormation Ini juga memicu pembaruan bergulir, sehingga instance baru tidak akan diluncurkan ke grup penempatan.

Sintaksis

JSON

"UpdatePolicy" : { "AutoScalingRollingUpdate" : { "MaxBatchSize" : Integer, "MinActiveInstancesPercent" : Integer, "MinInstancesInService" : Integer, "MinSuccessfulInstancesPercent" : Integer, "PauseTime" : String, "SuspendProcesses" : [ List of processes ], "WaitOnResourceSignals" : Boolean } }

Sifat-sifat

MaxBatchSize

Menentukan jumlah maksimum contoh yang dapat diganti secara bersamaan.

Default: 1

Maksimum: 100

Tipe: Integer

Wajib: Tidak

MinActiveInstancesPercent

Menentukan persentase instans dalam grup Auto EC2 Scaling Amazon yang harus berada dalam InService status relatif terhadap kapasitas yang diinginkan grup tersebut selama pembaruan bergulir agar pembaruan berhasil. Anda dapat menentukan nilai dari 0 hingga 100. CloudFormation putaran ke sepersepuluh persen terdekat. Misalnya, jika Anda memperbarui lima instans dengan InService persentase minimum 50, setidaknya tiga instance harus dalam status. InService Jika sebuah instance tidak bertransisi ke InService status dalam waktu tetap 1 jam, CloudFormation asumsikan bahwa instance tidak diperbarui.

Pengaturan MinActiveInstancesPercent di dalam Anda juga UpdatePolicy akan memengaruhi instans yang diluncurkan saat DesiredCapacity properti AWS::AutoScaling::AutoScalingGroup sumber daya disetel lebih tinggi dari kapasitas yang diinginkan saat ini dari grup EC2 Auto Scaling Amazon tersebut.

Default: 100

Tipe: Integer

Wajib: Tidak

MinInstancesInService

Menentukan jumlah minimum instans yang harus ada dalam layanan dalam grup Amazon Auto EC2 Scaling CloudFormation saat memperbarui instans lama. Nilai ini harus kurang MaxSizedari grup Amazon EC2 Auto Scaling.

Awas

Kami menyarankan Anda menetapkan nilai MinInstancesInService properti ke setidaknya grup EC2 Auto Scaling Amazon. MinSize Ini menghindari potensi masalah ketersediaan selama pembaruan bergulir karena 0 instance yang melayani lalu lintas pelanggan.

Default: 0

Tipe: Integer

Wajib: Tidak

MinSuccessfulInstancesPercent

Menentukan persentase instans dalam pembaruan bergulir Auto EC2 Scaling Amazon yang harus memberi sinyal keberhasilan agar pembaruan berhasil. Anda dapat menentukan nilai dari 0 hingga 100. CloudFormationputaran ke sepersepuluh persen terdekat. Sebagai contoh, jika Anda memperbarui lima instans dengan persentase sukses minimum 50, tiga instans harus memberi sinyal berhasil. Jika instance tidak mengirim sinyal dalam waktu yang ditentukan di PauseTime properti, CloudFormation asumsikan bahwa instance tidak diperbarui.

Kami menyarankan Anda menetapkan nilai MinSuccessfulInstancesPercent properti ke nilai yang lebih besar dari 0. Ketika MinSuccessfulInstancesPercent properti diatur ke 0, CloudFormation menunggu 0% dari instance kapasitas berada dalam keadaan. InService MinSuccessfulInstancesPercentsegera kembali dan sebelum mempertimbangkan status grup Amazon EC2 Auto Scaling UPDATE_COMPLETE untuk beralih ke sumber daya berikutnya yang ditentukan dalam template tumpukan. Jika grup EC2 Auto Scaling Amazon lainnya ditentukan dalam CloudFormation template Anda, grup tersebut akan diperbarui secara bersamaan. Jika semua grup EC2 Auto Scaling Amazon diterapkan sekaligus dengan 0% instance kapasitas dalam suatu InService status, maka Anda akan mengalami masalah ketersediaan, karena 0 instans yang melayani lalu lintas pelanggan.

Default: 100

Tipe: Integer

Wajib: Tidak

PauseTime

Jumlah waktu yang CloudFormation berhenti setelah membuat perubahan ke batch instance untuk memberikan waktu untuk memulai aplikasi perangkat lunak.

Tentukan PauseTime dalam format durasi ISO86 01 (dalam formatPT#H#M#S, di mana masing-masing # adalah jumlah jam, menit, dan detik, masing-masing). Maksimum PauseTime adalah satu jam (PT1H).

Awas

Kapan WaitOnResourceSignals diatur ketrue, PauseTime bertindak sebagai nilai batas waktu. Ini menentukan waktu maksimum yang CloudFormation menunggu untuk menerima jumlah sinyal valid yang diperlukan dari instance yang diganti selama pembaruan bergulir dan dari instance baru yang ditambahkan dengan meningkatkan DesiredCapacityproperti sumber daya. AWS::AutoScaling::AutoScalingGroup Jika PauseTime terlampaui sebelum CloudFormation menerima sinyal yang diharapkan, pembaruan gagal. Untuk hasil terbaik, tentukan periode waktu yang menyediakan waktu yang cukup bagi aplikasi Anda untuk memulai. Jika update perlu di-rollback, singkat PauseTime dapat menyebabkan rollback gagal.

Default: PT5M (5 menit) saat WaitOnResourceSignals properti disetel ketrue. Jika tidak, tidak ada nilai default yang ditetapkan.

Tipe: String

Wajib: Tidak

SuspendProcesses

Menentukan proses EC2 Auto Scaling Amazon untuk ditangguhkan selama pembaruan tumpukan. Proses penangguhan mencegah Amazon EC2 Auto Scaling mengganggu pembaruan tumpukan. Misalnya, Anda dapat menangguhkan hal yang mengkhawatirkan sehingga Amazon EC2 Auto Scaling tidak memulai kebijakan penskalaan yang terkait dengan alarm. Untuk nilai yang valid, lihat Jenis proses di Panduan Pengguna EC2 Auto Scaling Amazon.

Default: Tidak ditentukan

Jenis: Daftar proses EC2 Auto Scaling Amazon

Wajib: Tidak

WaitOnResourceSignals

Menentukan apakah CloudFormation menunggu sinyal sukses dari instance baru sebelum melanjutkan pembaruan. CloudFormation menunggu PauseTime durasi yang ditentukan untuk sinyal sukses.

Untuk memberi sinyal pada grup EC2 Auto Scaling Amazon, gunakan skrip cfn-signal helper. Untuk grup Amazon EC2 Auto Scaling yang terkait dengan ELB, pertimbangkan untuk menambahkan pemeriksaan kesehatan untuk memastikan bahwa instans sehat sebelum menandakan keberhasilan dengan menggunakan skrip helper. cfn-init Sebagai contoh, lihat verify_instance_health perintah dalam contoh template untuk pembaruan bergulir Amazon EC2 Auto Scaling di repositori kamiGitHub .

Default: false

Jenis: Boolean

Diperlukan: Bersyarat. Jika Anda menentukan MinSuccessfulInstancesPercent properti, WaitOnResourceSignals properti harus diatur ketrue.

AutoScalingScheduledActionkebijakan

Untuk menentukan cara CloudFormation menangani pembaruan untukMinSize,MaxSize, dan DesiredCapacity properti saat AWS::AutoScaling::AutoScalingGroup sumber daya memiliki tindakan terjadwal terkait, gunakan AutoScalingScheduledAction kebijakan tersebut.

Dengan tindakan terjadwal, properti ukuran grup grup EC2 Auto Scaling Amazon dapat berubah kapan saja. Saat Anda memperbarui tumpukan dengan grup EC2 Auto Scaling Amazon dan tindakan terjadwal, CloudFormation selalu tetapkan nilai properti ukuran grup grup Amazon EC2 Auto Scaling Anda ke nilai yang ditentukan dalam AWS::AutoScaling::AutoScalingGroup sumber daya templat Anda, meskipun tindakan terjadwal berlaku.

Jika Anda tidak CloudFormation ingin mengubah salah satu nilai properti ukuran grup ketika Anda memiliki tindakan terjadwal yang berlaku, gunakan kebijakan AutoScalingScheduledAction pembaruan dan atur IgnoreUnmodifiedGroupSizeProperties true untuk CloudFormation mencegah perubahanMinSize,MaxSize, atau DesiredCapacity properti kecuali Anda telah mengubah nilai ini di templat Anda.

Sintaksis

JSON

"UpdatePolicy" : { "AutoScalingScheduledAction" : { "IgnoreUnmodifiedGroupSizeProperties" : Boolean } }

Sifat-sifat

IgnoreUnmodifiedGroupSizeProperties

Jikatrue, CloudFormation abaikan perbedaan dalam properti ukuran grup antara grup EC2 Auto Scaling Amazon Anda saat ini dan grup Auto EC2 Scaling Amazon yang dijelaskan dalam sumber daya template Anda AWS::AutoScaling::AutoScalingGroup selama pembaruan tumpukan. Jika Anda mengubah salah satu nilai properti ukuran grup dalam templat Anda, CloudFormation gunakan nilai yang dimodifikasi dan memperbarui grup EC2 Auto Scaling Amazon Anda.

catatan

Properti ini diabaikan selama rollback stack.

Default: false

Tipe: Boolean

Wajib: Tidak

UseOnlineReshardingkebijakan

Untuk memodifikasi serpihan grup replikasi dengan menambahkan atau menghapus serpihan, daripada mengganti seluruh sumber daya AWS::ElastiCache::ReplicationGroup, gunakan kebijakan pembaruan UseOnlineResharding.

Jika UseOnlineResharding diatur ketrue, Anda dapat memperbarui NumNodeGroups dan NodeGroupConfiguration properti AWS::ElastiCache::ReplicationGroup sumber daya, dan CloudFormation akan memperbarui properti tersebut tanpa gangguan. Ketika UseOnlineResharding diatur kefalse, atau tidak ditentukan, memperbarui NumNodeGroups dan NodeGroupConfiguration properti menghasilkan CloudFormation penggantian seluruh AWS::ElastiCache::ReplicationGroup sumber daya.

Kebijakan UseOnlineResharding pembaruan tidak memiliki properti.

Hal-hal yang perlu dipertimbangkan saat mengatur UseOnlineResharding kebijakan pembaruan ke true:

  • Kami sangat menyarankan Anda melakukan pembaruan untuk NumNodeGroups dan NodeGroupConfiguration properti sebagai satu-satunya pembaruan dalam operasi pembaruan tumpukan tertentu.

    Memperbarui konfigurasi grup simpul grup replikasi adalah operasi intensif sumber daya. Jika pembaruan tumpukan gagal, CloudFormation tidak akan mengembalikan perubahan pada konfigurasi grup node dari grup replikasi. Namun, CloudFormation akan memutar kembali properti lain yang diubah sebagai bagian dari operasi pembaruan yang gagal.

  • Pembaruan grup simpul apa pun memerlukan identifikasi semua grup simpul.

    Jika Anda menentukan NodeGroupConfiguration properti, Anda juga harus menentukan NodeGroupId untuk setiap konfigurasi grup node CloudFormation untuk memperbarui jumlah node tanpa gangguan.

    Saat membuat grup replikasi, jika Anda tidak menentukan ID untuk setiap grup simpul, ElastiCache secara otomatis menghasilkan ID untuk setiap grup simpul. Untuk memperbarui grup replikasi tanpa gangguan, gunakan ElastiCache console (https://console.aws.amazon.com/elasticache/) atau DescribeReplicationGroupsuntuk mengambil IDs untuk semua grup node dalam grup replikasi. Kemudian tentukan ID untuk setiap grup simpul dalam templat tumpukan Anda sebelum mencoba untuk menambah atau menghapus serpihan.

    catatan

    Sebagai praktik terbaik, ketika Anda membuat grup replikasi dalam templat tumpukan, termasuk ID untuk setiap grup simpul yang Anda tentukan.

    Selain itu, memperbarui jumlah simpul tanpa gangguan mengharuskan Anda telah secara akurat menentukan PrimaryAvailabilityZone, ReplicaAvailabilityZones, dan ReplicaCount properti untuk setiap NodeGroupConfiguration juga. Sekali lagi, Anda dapat menggunakan ElastiCache console (https://console.aws.amazon.com/elasticache/) atau DescribeReplicationGroupsuntuk mengambil nilai aktual untuk setiap grup node dan membandingkannya dengan nilai dalam template tumpukan Anda. Anda dapat memperbarui nilai properti dari grup simpul sebagai pembaruan tumpukan terpisah, atau sebagai bagian dari pembaruan tumpukan yang sama yang mengubah jumlah grup simpul.

    Saat Anda menggunakan kebijakan UseOnlineResharding pembaruan untuk memperbarui jumlah grup node tanpa gangguan, mendistribusikan ruang kunci ElastiCache secara merata di antara jumlah slot yang ditentukan. Ini tidak dapat diperbarui nanti. Oleh karena itu, setelah memperbarui jumlah grup simpul dengan cara ini, Anda harus menghapus nilai yang ditentukan untuk Slots properti masing-masing NodeGroupConfiguration templat tumpukan, karena tidak lagi mencerminkan nilai-nilai yang sebenarnya dalam setiap grup simpul.

  • Hasil penghapusan grup simpul yang sebenarnya mungkin berbeda.

    Ketika Anda menentukan NumNodeGroups nilai yang kurang dari jumlah grup node saat ini, CloudFormation menginstruksikan ElastiCache untuk menghapus sebanyak mungkin grup node yang diperlukan untuk mencapai jumlah node yang ditentukan. Namun, ElastiCache mungkin tidak selalu dapat menghapus jumlah kelompok node yang diinginkan. Jika tidak ElastiCache dapat menghapus jumlah grup node yang diinginkan, CloudFormation buat acara tumpukan yang mengingatkan Anda akan hal ini. Dalam kasus di mana tidak ElastiCache dapat menghapus grup node apa pun, pembaruan CloudFormation sumber daya gagal.

Untuk informasi selengkapnya tentang memodifikasi grup replikasi, lihat ModifyReplicationGroupShardConfigurationdi Referensi Amazon ElastiCache API.

Sintaksis

JSON

"UpdatePolicy" : { "UseOnlineResharding" : Boolean }

YAML

UpdatePolicy: UseOnlineResharding: Boolean

EnableVersionUpgradekebijakan

Untuk memutakhirkan domain OpenSearch Layanan ke versi baru OpenSearch atau Elasticsearch daripada mengganti keseluruhan AWS::OpenSearchService::Domainatau AWS::Elasticsearch::Domainsumber daya, gunakan kebijakan EnableVersionUpgrade pembaruan.

Jika EnableVersionUpgrade disetel ketrue, Anda dapat memperbarui EngineVersion properti AWS::OpenSearchService::Domain sumber daya (atau ElasticsearchVersion properti sumber AWS::Elasticsearch::Domain daya lama), dan CloudFormation akan memperbarui properti itu tanpa gangguan. Kapan EnableVersionUpgrade diatur kefalse, atau tidak ditentukan, memperbarui EngineVersion atau ElasticsearchVersion properti menghasilkan CloudFormation penggantian seluruh AWS::Elasticsearch::Domain sumber dayaAWS::OpenSearchService::Domain/.

Kebijakan EnableVersionUpgrade pembaruan tidak memiliki properti.

Untuk informasi selengkapnya, lihat Memutakhirkan domain OpenSearch Layanan di Panduan Pengembang OpenSearch Layanan Amazon.

Sintaksis

JSON

"UpdatePolicy" : { "EnableVersionUpgrade" : Boolean }

YAML

UpdatePolicy: EnableVersionUpgrade: Boolean

CodeDeployLambdaAliasUpdate kebijakan

Untuk melakukan CodeDeploy penerapan saat versi berubah pada AWS::Lambda::Alias sumber daya, gunakan kebijakan CodeDeployLambdaAliasUpdate pembaruan.

Sintaksis

JSON

"UpdatePolicy" : { "CodeDeployLambdaAliasUpdate" : { "AfterAllowTrafficHook" : String, "ApplicationName" : String, "BeforeAllowTrafficHook" : String, "DeploymentGroupName" : String } }

Sifat-sifat

AfterAllowTrafficHook

Nama fungsi Lambda untuk dijalankan setelah perutean lalu lintas selesai.

Wajib: Tidak

Tipe: String

ApplicationName

Nama CodeDeploy aplikasi.

Wajib: Ya

Tipe: String

BeforeAllowTrafficHook

Nama fungsi Lambda untuk dijalankan sebelum perutean lalu lintas dimulai.

Wajib: Tidak

Tipe: String

DeploymentGroupName

Nama grup CodeDeploy penyebaran. Di sinilah kebijakan pergeseran lalu lintas ditetapkan.

Wajib: Ya

Tipe: String

Untuk contoh yang menentukan UpdatePolicy atribut untuk AWS::Lambda::Alias sumber daya, lihat Kebijakan pembaruan alias Lambda.

Contoh

Contoh berikut menunjukkan cara menambahkan kebijakan pembaruan ke grup EC2 Auto Scaling Amazon dan cara menjaga ketersediaan saat memperbarui metadata.

Menambahkan UpdatePolicy ke grup EC2 Auto Scaling Amazon

Contoh berikut menunjukkan cara menambahkan kebijakan pembaruan. Selama pembaruan, grup EC2 Auto Scaling Amazon memperbarui instance dalam batch dua dan menyimpan minimal satu instance dalam layanan. Karena WaitOnResourceSignals bendera disetel, grup EC2 Auto Scaling Amazon menunggu instance baru yang ditambahkan ke grup. Instans baru harus memberi sinyal pada grup EC2 Auto Scaling Amazon sebelum memperbarui batch instance berikutnya.

JSON

"ASG" : { "Type":"AWS::AutoScaling::AutoScalingGroup", "Properties":{ "VPCZoneIdentifier":[ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchTemplate":{ "LaunchTemplateId":{ "Ref":"logicalName" }, "Version":{ "Fn::GetAtt":[ "logicalName", "LatestVersionNumber" ] } }, "MaxSize":"4", "MinSize":"1" }, "UpdatePolicy":{ "AutoScalingScheduledAction":{ "IgnoreUnmodifiedGroupSizeProperties":"true" }, "AutoScalingRollingUpdate":{ "MinInstancesInService":"1", "MaxBatchSize":"2", "WaitOnResourceSignals":"true", "PauseTime":"PT10M", "SuspendProcesses":[ "HealthCheck", "ReplaceUnhealthy", "AZRebalance", "AlarmNotification", "ScheduledActions", "InstanceRefresh" ] } } }

YAML

ASG: Type: 'AWS::AutoScaling::AutoScalingGroup' Properties: VPCZoneIdentifier: - subnetIdAz1 - subnetIdAz2 - subnetIdAz3 LaunchTemplate: LaunchTemplateId: !Ref logicalName Version: !GetAtt logicalName.LatestVersionNumber MaxSize: '4' MinSize: '1' UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties: 'true' AutoScalingRollingUpdate: MinInstancesInService: '1' MaxBatchSize: '2' WaitOnResourceSignals: 'true' PauseTime: PT10M SuspendProcesses: - HealthCheck - ReplaceUnhealthy - AZRebalance - AlarmNotification - ScheduledActions - InstanceRefresh

AutoScalingReplacingUpdate kebijakan

Contoh berikut mendeklarasikan kebijakan yang memaksa grup EC2 Auto Scaling Amazon terkait diganti selama pembaruan. Agar pembaruan berhasil, persentase instans (ditentukan oleh MinSuccessfulPercentParameter parameter) harus menandakan keberhasilan dalam Timeout periode.

JSON

"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" : true } }, "CreationPolicy" : { "ResourceSignal" : { "Count" : { "Ref" : "ResourceSignalsOnCreate"}, "Timeout" : "PT10M" }, "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" : { "Ref" : "MinSuccessfulPercentParameter" } } }

YAML

UpdatePolicy: AutoScalingReplacingUpdate: WillReplace: true CreationPolicy: ResourceSignal: Count: !Ref 'ResourceSignalsOnCreate' Timeout: PT10M AutoScalingCreationPolicy: MinSuccessfulInstancesPercent: !Ref 'MinSuccessfulPercentParameter'

Pertahankan ketersediaan saat memperbarui metadata untuk skrip pembantu cfn-init

Saat Anda menginstal aplikasi perangkat lunak pada instance Anda, Anda dapat menggunakan kunci AWS::CloudFormation::Init metadata dan skrip cfn-init helper untuk mem-bootstrap instance di grup Amazon Auto EC2 Scaling Anda. CloudFormation menginstal paket, menjalankan perintah, dan melakukan tindakan bootstrap lainnya yang dijelaskan dalam metadata.

Ketika Anda hanya memperbarui metadata (misalnya, ketika memperbarui paket ke versi lain), Anda dapat menggunakan cfn-hup daemon pembantu untuk mendeteksi dan menerapkan pembaruan. Namun, cfn-hup daemon berjalan secara independen pada setiap instans. Jika daemon ada untuk berjalan pada waktu yang sama pada semua instans, aplikasi atau layanan Anda mungkin tidak tersedia selama pembaruan. Untuk menjamin ketersediaan, Anda dapat memaksa CloudFormation pembaruan bergulir sehingga memperbarui instans Anda satu batch pada satu waktu.

penting

Memaksa pembaruan bergulir membutuhkan CloudFormation untuk membuat instance baru dan kemudian menghapus yang lama. Setiap informasi yang disimpan pada instans lama hilang.

Untuk memaksa pembaruan bergulir, ubah ID logis sumber daya konfigurasi peluncuran, lalu perbarui tumpukan dan referensi apa pun yang menunjuk ke ID logika asli (seperti grup Amazon EC2 Auto Scaling terkait). CloudFormation memicu pembaruan bergulir pada grup Amazon EC2 Auto Scaling, menggantikan semua instance.

Templat asli

"LaunchConfig": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "Comment" : "Install a simple PHP application", "AWS::CloudFormation::Init" : { ... } } }

ID logis yang diperbarui

"LaunchConfigUpdateRubygemsPkg": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "Comment" : "Install a simple PHP application", "AWS::CloudFormation::Init" : { ... } } }

Kebijakan pembaruan alias Lambda

Contoh berikut menentukan UpdatePolicy atribut untuk AWS::Lambda::Alias sumber daya. Semua detail deployment didefinisikan oleh aplikasi dan grup deployment yang diteruskan ke kebijakan.

JSON

"Alias": { "Type": "AWS::Lambda::Alias", "Properties": { "FunctionName": { "Ref": "LambdaFunction" }, "FunctionVersion": { "Fn::GetAtt": [ "FunctionVersionTwo", "Version" ] }, "Name": "MyAlias" }, "UpdatePolicy": { "CodeDeployLambdaAliasUpdate": { "ApplicationName": { "Ref": "CodeDeployApplication" }, "DeploymentGroupName": { "Ref": "CodeDeployDeploymentGroup" }, "BeforeAllowTrafficHook": { "Ref": "PreHookLambdaFunction" }, "AfterAllowTrafficHook": { "Ref": "PreHookLambdaFunction" } } } }

YAML

Alias: Type: 'AWS::Lambda::Alias' Properties: FunctionName: !Ref LambdaFunction FunctionVersion: !GetAtt FunctionVersionTwo.Version Name: MyAlias UpdatePolicy: CodeDeployLambdaAliasUpdate: ApplicationName: !Ref CodeDeployApplication DeploymentGroupName: !Ref CodeDeployDeploymentGroup BeforeAllowTrafficHook: !Ref PreHookLambdaFunction AfterAllowTrafficHook: !Ref PreHookLambdaFunction