Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bagaimana pemutus sirkuit ECS penyebaran Amazon mendeteksi kegagalan
Pemutus sirkuit penyebaran adalah mekanisme pembaruan bergulir yang menentukan apakah tugas mencapai kondisi mapan. Pemutus sirkuit penyebaran memiliki opsi yang secara otomatis akan memutar kembali penerapan yang gagal ke penerapan yang ada dalam status. COMPLETED
Saat penerapan layanan mengubah status, Amazon ECS mengirimkan peristiwa perubahan status penerapan layanan ke. EventBridge Hal ini menyediakan cara terprogram untuk memantau status deployment layanan Anda. Untuk informasi selengkapnya, lihat Acara perubahan status penerapan ECS layanan Amazon. Kami menyarankan Anda membuat dan memantau EventBridge aturan dengan angka eventName
SERVICE_DEPLOYMENT_FAILED
sehingga Anda dapat mengambil tindakan manual untuk memulai penerapan Anda. Untuk informasi selengkapnya, lihat Membuat EventBridge Aturan di Panduan EventBridge Pengguna Amazon.
Ketika pemutus sirkuit penyebaran menentukan bahwa penerapan gagal, ia mencari penerapan terbaru yang berada dalam keadaan. COMPLETED
Ini adalah penerapan yang digunakannya sebagai penerapan roll-back. Saat rollback dimulai, penerapan berubah dari a ke. COMPLETED
IN_PROGRESS
Ini berarti bahwa penerapan tidak memenuhi syarat untuk rollback lain hingga mencapai status. COMPLETED
Ketika pemutus sirkuit penyebaran tidak menemukan penyebaran yang dalam COMPLETED
keadaan, pemutus sirkuit tidak meluncurkan tugas baru dan penyebaran terhenti.
Saat Anda membuat layanan, penjadwal melacak tugas yang gagal diluncurkan dalam dua tahap.
-
Tahap 1 - Penjadwal memantau tugas untuk melihat apakah mereka bertransisi ke RUNNING negara bagian.
-
Sukses - Penyebaran memiliki peluang untuk beralih ke COMPLETED negara karena ada lebih dari satu tugas yang dialihkan ke negara. RUNNING Kriteria kegagalan dilewati dan pemutus sirkuit bergerak ke tahap 2.
-
Kegagalan - Ada tugas berturut-turut yang tidak bertransisi ke RUNNING negara bagian dan penyebaran mungkin beralih ke negara bagian. FAILED
-
-
Tahap 2 - Penyebaran memasuki tahap ini ketika setidaknya ada satu tugas di RUNNING negara bagian. Pemutus sirkuit memeriksa pemeriksaan kesehatan untuk tugas-tugas dalam penyebaran saat ini yang sedang dievaluasi. Pemeriksaan kesehatan yang divalidasi adalah Elastic Load Balancing AWS Cloud Map , pemeriksaan kesehatan pelayanan, dan pemeriksaan kesehatan kontainer.
-
Sukses - Setidaknya ada satu tugas dalam keadaan berjalan dengan pemeriksaan kesehatan yang telah berlalu.
-
Kegagalan - Tugas yang diganti karena kegagalan pemeriksaan kesehatan telah mencapai ambang kegagalan.
-
Pertimbangkan hal berikut ketika Anda menggunakan metode deployment circuit breaker pada suatu layanan. EventBridge menghasilkan aturan.
-
DescribeServices
Respons memberikan wawasan tentang keadaan penyebaran,rolloutState
danrolloutStateReason
. Saat deployment baru dimulai, status peluncuran dimulai dalam statusIN_PROGRESS
. Saat layanan mencapai kondisi stabil, status peluncuran bertransisi keCOMPLETED
. Jika layanan gagal mencapai kondisi tunak dan pemutus sirkuit dihidupkan, penyebaran akan beralih ke keadaan.FAILED
Penerapan dalamFAILED
status tidak meluncurkan tugas baru apa pun. -
Selain peristiwa perubahan status penerapan layanan yang ECS dikirim Amazon untuk penerapan yang telah dimulai dan telah selesai, Amazon ECS juga mengirimkan peristiwa ketika penerapan dengan pemutus sirkuit diaktifkan gagal. Kejadian ini menyediakan detail tentang mengapa deployment gagal atau jika deployment dimulai karena rollback. Untuk informasi selengkapnya, lihat Acara perubahan status penerapan ECS layanan Amazon.
-
Jika penerapan baru dimulai karena penerapan sebelumnya gagal dan terjadi rollback,
reason
bidang peristiwa perubahan status penerapan layanan menunjukkan penerapan dimulai karena rollback. -
Pemutus sirkuit penyebaran hanya didukung untuk ECS layanan Amazon yang menggunakan pengontrol penerapan rolling update (
ECS
). -
Anda harus menggunakan ECS konsol Amazon, atau AWS CLI ketika Anda menggunakan pemutus sirkuit penyebaran dengan opsi. CloudWatch Untuk informasi selengkapnya, lihat Buat layanan menggunakan parameter yang ditentukan dan buat layanan di Referensi.AWS Command Line Interface
create-service
AWS CLI Contoh berikut menunjukkan cara membuat layanan Linux ketika pemutus sirkuit deployment digunakan dengan opsi rollback.
aws ecs create-service \ --service-name
MyService
\ --deployment-controller type=ECS
\ --desired-count3
\ --deployment-configuration "deploymentCircuitBreaker={enable=true
,rollback=true
}" \ --task-definitionsample-fargate:1
\ --launch-typeFARGATE
\ --platform-familyLINUX
\ --platform-version1.4.0
\ --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321
],securityGroups=[sg-12344321
],assignPublicIp=ENABLED
}"
Contoh:
Deployment 1 dalam COMPLETED
keadaan.
Deployment 2 tidak dapat dimulai, sehingga pemutus sirkuit berputar kembali ke Deployment 1. Penerapan 1 transisi ke negara bagian. IN_PROGRESS
Deployment 3 dimulai dan tidak ada penerapan di COMPLETED
status, jadi Deployment 3 tidak dapat memutar kembali, atau meluncurkan tugas.
Ambang batas kegagalan
Pemutus sirkuit penyebaran menghitung nilai ambang batas, dan kemudian menggunakan nilai untuk menentukan kapan harus memindahkan penyebaran ke status. FAILED
Pemutus sirkuit penyebaran memiliki ambang minimum 3 dan ambang maksimum 200. dan menggunakan nilai-nilai dalam rumus berikut untuk menentukan kegagalan penerapan.
Minimum threshold <= 0.5 * desired task count
=> maximum threshold
Ketika hasil perhitungan lebih besar dari minimum 3, tetapi lebih kecil dari maksimum 200, ambang kegagalan diatur ke ambang batas yang dihitung (dibulatkan ke atas).
catatan
Anda tidak dapat mengubah salah satu nilai ambang batas.
Ada dua tahap untuk pemeriksaan status penerapan.
-
Pemutus sirkuit penyebaran memantau tugas-tugas yang merupakan bagian dari penyebaran dan memeriksa tugas-tugas yang ada di negara bagian.
RUNNING
Penjadwal mengabaikan kriteria kegagalan ketika tugas dalam penerapan saat ini dalamRUNNING
status dan melanjutkan ke tahap berikutnya. Ketika tugas gagal dicapai diRUNNING
negara bagian, pemutus sirkuit penyebaran meningkatkan jumlah kegagalan satu per satu. Ketika jumlah kegagalan sama dengan ambang batas, penerapan ditandai sebagai.FAILED
-
Tahap ini dimasukkan ketika ada satu atau lebih tugas di
RUNNING
negara bagian. Pemutus sirkuit penyebaran melakukan pemeriksaan kesehatan pada sumber daya berikut untuk tugas-tugas dalam penerapan saat ini:-
Penyeimbang beban Elastic Load Balancing
-
AWS Cloud Map layanan
-
Pemeriksaan kesehatan ECS wadah Amazon
Ketika pemeriksaan kesehatan gagal untuk tugas tersebut, pemutus sirkuit penyebaran meningkatkan jumlah kegagalan satu per satu. Ketika jumlah kegagalan sama dengan ambang batas, penerapan ditandai sebagai.
FAILED
-
Tabel berikut menunjukkan beberapa contoh.
Hitungan tugas yang diinginkan | Penghitungan | Ambang |
---|---|---|
1 |
|
3 (nilai yang dihitung kurang dari minimum) |
25 |
|
13 (nilainya dibulatkan ke atas) |
400 |
|
200 |
800 |
|
200 (nilai yang dihitung lebih besar dari maksimum) |
Misalnya, ketika ambang batas adalah 3, pemutus sirkuit dimulai dengan jumlah kegagalan yang ditetapkan pada 0. Ketika tugas gagal mencapai RUNNING
status, pemutus sirkuit penyebaran meningkatkan jumlah kegagalan satu per satu. Ketika jumlah kegagalan sama dengan 3, penerapan ditandai sebagai. FAILED
Untuk contoh tambahan tentang cara menggunakan opsi rollback, lihat Mengumumkan pemutus sirkuit penyebaran ECS Amazon