Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kait siklus hidup untuk penerapan layanan Amazon ECS
Ketika penerapan dimulai, ia melewati tahapan siklus hidup. Tahapan ini bisa dalam keadaan seperti IN_PROGRESS atau berhasil. Anda dapat menggunakan kait siklus hidup, yang merupakan fungsi Lambda yang dijalankan Amazon ECS atas nama Anda pada tahapan siklus hidup yang ditentukan. Fungsinya dapat berupa salah satu dari yang berikut:
-
API asinkron yang memvalidasi pemeriksaan kesehatan dalam waktu 15 menit.
-
API polling yang memulai proses asinkron lain yang mengevaluasi penyelesaian kait siklus hidup.
Setelah fungsi selesai berjalan, ia harus mengembalikan a hookStatus
agar penerapan dapat dilanjutkan. Jika a hookStatus
tidak dikembalikan, atau jika fungsi gagal, penerapan akan kembali. Berikut ini adalah hookStatus
nilainya:
-
SUCCEEDED
- penyebaran berlanjut ke tahap siklus hidup berikutnya -
FAILED
— penyebaran kembali ke penerapan terakhir yang berhasil. -
IN_PROGRESS
- Amazon ECS menjalankan fungsi lagi setelah periode waktu yang singkat. Secara default ini adalah interval 30 detik, namun nilai ini dapat disesuaikan dengan mengembalikan acallBackDelaySeconds
di samping.hookStatus
Contoh berikut menunjukkan cara mengembalikan hookStatus
dengan penundaan callback kustom. Dalam contoh ini, Amazon ECS akan mencoba lagi hook ini dalam 60 detik, bukan default 30 detik:
{ "hookStatus": "IN_PROGRESS", "callBackDelaySeconds": 60 }
Ketika roll back terjadi, Amazon ECS menjalankan kait siklus hidup untuk tahapan siklus hidup berikut:
-
PRODUCTION_TRAFFIC_SHIFT
-
TEST_TRAFFIC_SHIFT
Muatan siklus hidup
Saat Anda mengonfigurasi kait siklus hidup untuk penerapan layanan ECS, Amazon ECS akan memanggil kait ini pada tahapan tertentu dari proses penerapan. Setiap tahap siklus hidup menyediakan muatan JSON dengan informasi tentang status penerapan saat ini. Dokumen ini menjelaskan struktur payload untuk setiap tahap siklus hidup.
Struktur muatan umum
Semua muatan tahap siklus hidup mencakup bidang umum berikut:
-
serviceArn
- Nama Sumber Daya Amazon (ARN) dari layanan. -
targetServiceRevisionArn
- ARN dari revisi layanan target sedang dikerahkan. -
testTrafficWeights
- Peta revisi layanan ARNs untuk persentase berat lalu lintas uji yang sesuai. -
productionTrafficWeights
- Peta revisi layanan ARNs untuk persentase berat lalu lintas produksi yang sesuai.
Muatan tahap siklus hidup
RECONCILE_SERVICE
Tahap ini terjadi pada awal proses penyebaran ketika layanan sedang direkonsiliasi. Berikut ini menunjukkan contoh payload untuk tahap siklus hidup ini.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 }, "productionTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 } }
Harapan pada tahap ini:
-
Set tugas utama adalah pada skala 0%
PRE_SCALE_UP
Tahap ini terjadi sebelum tugas baru ditingkatkan. Berikut ini menunjukkan contoh payload untuk tahap siklus hidup ini.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Harapan pada tahap ini:
-
Tugas revisi layanan hijau berada pada skala 0%
POST_SCALE_UP
Tahap ini terjadi setelah tugas-tugas baru ditingkatkan dan sehat. Berikut ini menunjukkan contoh payload untuk tahap siklus hidup ini.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Harapan pada tahap ini:
-
Tugas revisi layanan hijau berada pada skala 100%
-
Tugas dalam revisi layanan hijau sehat
TEST_TRAFFIC_SHIFT
Tahap ini terjadi ketika lalu lintas uji sedang dialihkan ke tugas revisi layanan hijau.
Berikut ini menunjukkan contoh payload untuk tahap siklus hidup ini.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 }, "productionTrafficWeights": {} }
Harapan pada tahap ini:
-
Lalu lintas uji sedang dalam proses bergerak menuju tugas revisi layanan hijau.
POST_TEST_TRAFFIC_SHIFT
Tahap ini terjadi setelah lalu lintas uji telah sepenuhnya bergeser ke tugas-tugas baru.
Berikut ini menunjukkan contoh payload untuk tahap siklus hidup ini.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Harapan pada tahap ini:
-
100% lalu lintas uji bergerak menuju tugas revisi layanan hijau.
PRODUCTION_TRAFFIC_SHIFT
Tahap ini terjadi ketika lalu lintas produksi sedang dialihkan ke tugas revisi layanan hijau.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": { "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892": 100, "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/78652123": 0 } }
Harapan pada tahap ini:
-
Lalu lintas produksi sedang dalam proses pindah ke revisi layanan hijau.
POST_PRODUCTION_TRAFFIC_SHIFT
Tahap ini terjadi setelah lalu lintas produksi sepenuhnya dialihkan ke tugas revisi layanan hijau.
{ "serviceArn": "arn:aws:ecs:us-west-2:1234567890:service/myCluster/myService", "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:1234567890:service-revision/myCluster/myService/01275892", "testTrafficWeights": {}, "productionTrafficWeights": {} }
Harapan pada tahap ini:
-
100% lalu lintas produksi bergerak menuju tugas revisi layanan hijau.
Kategori tahap siklus hidup
Tahapan siklus hidup terbagi dalam dua kategori:
-
Tahap pemanggilan tunggal - Tahapan ini dipanggil hanya sekali selama penerapan layanan:
PRE_SCALE_UP
POST_SCALE_UP
POST_TEST_TRAFFIC_SHIFT
POST_PRODUCTION_TRAFFIC_SHIFT
-
Tahapan pemanggilan berulang - Tahapan ini mungkin dipanggil beberapa kali selama penerapan layanan, misalnya ketika operasi rollback terjadi:
TEST_TRAFFIC_SHIFT
PRODUCTION_TRAFFIC_SHIFT
Status penerapan selama kait siklus hidup
Saat kait siklus hidup berjalan, status penerapan akan berlaku IN_PROGRESS
untuk semua tahapan siklus hidup.
Tahap Siklus Hidup | Status Penerapan |
---|---|
RECONCILE_SERVICE | IN_PROGRESS |
PRE_SCALE_UP | IN_PROGRESS |
POST_SCALE_UP | IN_PROGRESS |
TEST_TRAFFIC_SHIFT | IN_PROGRESS |
POST_TEST_TRAFFIC_SHIFT | IN_PROGRESS |
PRODUCTION_TRAFFIC_SHIFT | IN_PROGRESS |
POST_PRODUCTION_TRAFFIC_SHIFT | IN_PROGRESS |