Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jeda kait untuk penerapan layanan Amazon ECS
Jeda kait menjeda penerapan layanan Amazon ECS pada tahap siklus hidup tertentu dan tunggu Anda menelepon ContinueServiceDeployment sebelum penerapan berlanjut. Gunakan kait jeda saat Anda memerlukan persetujuan manual atau validasi eksternal sebelum penerapan berlanjut.
Cara kerja kait jeda
Saat penerapan mencapai tahap siklus hidup yang memiliki kait jeda yang dikonfigurasi, hal berikut terjadi:
-
Amazon ECS menghasilkan yang unik
hookIduntuk kait jeda. -
Amazon ECS memancarkan EventBridge acara dengan tipe detail
ECS Hook State Changedan nama acara.HOOK_AWAITING_ACTION -
Penerapan tetap dijed
hookIda sampai Anda memanggilContinueServiceDeploymentdengan tindakanCONTINUEatauROLLBACK, atau sampai batas waktu yang dikonfigurasi tercapai.
Anda dapat mengambilnya hookId dengan meneleponDescribeServiceDeployments. Responsnya mencakup lifecycleHookDetails array dengan status hook:
{ "serviceDeployments": [ { "lifecycleHookDetails": [ { "hookId": "ecs-pause-e7tK9G_WRJqNF_EOMjztDXfKenlJuEUVjsNStf4WLKw", "targetType": "PAUSE", "status": "AWAITING_ACTION", "expiresAt": "2024-01-15T12:00:00Z", "timeoutAction": "ROLLBACK" } ] } ] }
Mengkonfigurasi kait jeda
Contoh berikut menunjukkan konfigurasi kait jeda dalam definisi layanan yang menjeda penerapan setelah pergeseran lalu lintas pengujian selesai:
{ "deploymentConfiguration": { "strategy": "BLUE_GREEN", "lifecycleHooks": [ { "targetType": "PAUSE", "lifecycleStages": [ "POST_TEST_TRAFFIC_SHIFT" ], "timeoutConfiguration": { "timeoutInMinutes": 10, "action": "ROLLBACK" } } ] } }
Bidang konfigurasi
| Bidang | Deskripsi | Nilai valid | Diperlukan |
|---|---|---|---|
targetType |
Jenis kait. Harus PAUSE untuk kait jeda. |
PAUSE |
Ya |
lifecycleStages |
Tahap siklus hidup di mana penerapan berhenti. | RECONCILE_SERVICE, PRE_SCALE_UP,
POST_SCALE_UP,
POST_TEST_TRAFFIC_SHIFT,
PRE_PRODUCTION_TRAFFIC_SHIFT,
POST_PRODUCTION_TRAFFIC_SHIFT |
Ya |
timeoutConfiguration.timeoutInMinutes |
Berapa lama menunggu sebelum mengambil tindakan batas waktu. Default: 1.440 menit (24 jam). | 1 - 20,160 (14 hari) | Tidak |
timeoutConfiguration.action |
Tindakan yang harus diambil jika batas waktu berakhir. | ROLLBACK (default), CONTINUE |
Tidak |
Batasan
-
Anda dapat mengonfigurasi maksimal 10 kait jeda dan 10 kait Lambda per layanan.
-
Pengait jeda jangan gunakan
hookTargetArnatauroleArn. Bidang ini hanya untuk kait Lambda. -
Pengait jeda tidak dapat dikonfigurasi pada ta
PRODUCTION_TRAFFIC_SHIFThapanTEST_TRAFFIC_SHIFTatau.
Melanjutkan penerapan yang dijeda
Saat penerapan dijeda (status kait jeda adalahAWAITING_ACTION), panggil ContinueServiceDeployment dengan tindakan hookId dan tindakan yang ingin Anda ambil.
Untuk melanjutkan penerapan:
aws ecs continue-service-deployment \ --hook-id ecs-pause-e7tK9G_WRJqNF_EOMjztDXfKenlJuEUVjsNStf4WLKw \ --action CONTINUE
Untuk mengembalikan penerapan:
aws ecs continue-service-deployment \ --hook-id ecs-pause-e7tK9G_WRJqNF_EOMjztDXfKenlJuEUVjsNStf4WLKw \ --action ROLLBACK
Untuk informasi selengkapnya, lihat Penerapan layanan berkelanjutan.
Beberapa kait pada tahap yang sama
Ketika beberapa kait dikonfigurasi pada tahap siklus hidup yang sama, penerapan tetap dijeda sampai semua kait pada tahap itu dilanjutkan. Jika ada hook yang memicu rollback, seluruh penerapan akan diputar kembali terlepas dari status kait lain pada tahap itu.
Perilaku ini berlaku ketika kait Lambda dan kait jeda dikonfigurasi pada tahap siklus hidup yang sama. Penerapan hanya berlangsung ketika semua kait pada tahap itu telah berhasil diselesaikan atau dilanjutkan.
Semua kait yang dikonfigurasi pada tahap siklus hidup yang sama berjalan secara paralel.
Perilaku waktu habis
Jika Anda tidak menelepon ContinueServiceDeployment sebelum batas waktu berakhir, Amazon ECS mengambil tindakan batas waktu yang dikonfigurasi:
-
ROLLBACK(default) - Amazon ECS mengembalikan penerapan ke revisi layanan sebelumnya. -
CONTINUE- Amazon ECS melanjutkan penerapan ke tahap siklus hidup berikutnya.
Periksa expiresAt bidang dalam lifecycleHookDetails array DescribeServiceDeployments respons untuk melihat kapan batas waktu berakhir.
Jeda kait dengan penerapan linier dan kenari
Untuk penerapan linier dan canary, kait jeda yang dikonfigurasi pada PRE_PRODUCTION_TRAFFIC_SHIFT dipanggil pada setiap langkah pergeseran lalu lintas. Setiap pemanggilan menghasilkan yang unikhookId, dan Anda harus memang ContinueServiceDeployment gil masing-masing.
Misalnya, penyebaran linier dengan 5 langkah pergeseran lalu lintas dan kait jeda pada PRE_PRODUCTION_TRAFFIC_SHIFT jeda 5 kali - sekali sebelum setiap langkah. Setiap jeda memerlukan panggilan terpisah ContinueServiceDeployment dengan yang sesuaihookId.
EventBridge acara
Amazon ECS memancarkan EventBridge peristiwa dengan tipe detail saat kait jeda berlangsung ECS Hook State Change selama siklus hidupnya. Tabel berikut menjelaskan nama acara:
| Nama peristiwa | Deskripsi |
|---|---|
HOOK_AWAITING_ACTION |
Pengait sedang menunggu Anda untuk meneleponContinueServiceDeployment. |
HOOK_SUCCEEDED |
Pengait selesai dengan sukses (Anda menelep ContinueServiceDeployment on denganCONTINUE). |
HOOK_FAILED |
Pengait gagal (Anda menelep ContinueServiceDeployment on denganROLLBACK). |
HOOK_TIMED_OUT |
Hook habis waktunya sebelum ContinueServiceDeployment dipanggil. |
Contoh berikut menunjukkan EventBridge peristiwa yang dipancarkan saat hook pause sedang menunggu tindakan:
{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "detail-type": "ECS Hook State Change", "source": "aws.ecs", "account": "123456789012", "time": "2024-01-15T10:00:00Z", "region": "us-west-2", "detail": { "eventType": "INFO", "eventName": "HOOK_AWAITING_ACTION", "hookId": "ecs-pause-e7tK9G_WRJqNF_EOMjztDXfKenlJuEUVjsNStf4WLKw", "hookType": "PAUSE", "expiresAt": "2024-01-15T12:00:00Z", "lifecycleStage": "POST_TEST_TRAFFIC_SHIFT", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/my-cluster", "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/my-cluster/my-service", "serviceDeploymentArn": "arn:aws:ecs:us-west-2:123456789012:service-deployment/my-cluster/my-service/EZe5RNVLH6PPzHXINuP28", "updatedAt": "2024-01-15T10:00:00Z" } }