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 menunggu Anda menelepon sebelum penerapan dilanjutkan. ContinueServiceDeployment 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 akan 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 dijeda hingga Anda memanggil
ContinueServiceDeploymentdenganhookIddan tindakanCONTINUEatauROLLBACK, atau hingga batas waktu yang dikonfigurasi tercapai.
Anda dapat mengambil 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 hook 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 jeda kait. |
PAUSE |
Ya |
lifecycleStages |
Tahapan 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 maksimum 10 kait jeda dan 10 kait Lambda per layanan.
-
Jeda kait tidak digunakan
hookTargetArnatau.roleArnBidang ini hanya untuk kait Lambda. -
Jeda kait tidak dapat dikonfigurasi pada tahap
TEST_TRAFFIC_SHIFTatauPRODUCTION_TRAFFIC_SHIFT.
Melanjutkan penyebaran yang dijeda
Saat penerapan dijeda (status kait jedaAWAITING_ACTION), panggil ContinueServiceDeployment dengan 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 memutar kembali 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 hingga semua kait pada tahap tersebut dilanjutkan. Jika ada kait yang memicu rollback, seluruh penyebaran berputar 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 berlangsung hanya ketika semua kait pada tahap itu telah selesai dengan sukses 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 akan 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 larik DescribeServiceDeployments respons untuk melihat kapan batas waktu berakhir.
Jeda kait dengan penerapan linier dan kenari
Untuk penerapan linier dan kenari, kait jeda yang dikonfigurasi di dipanggil pada setiap langkah PRE_PRODUCTION_TRAFFIC_SHIFT pergeseran lalu lintas. Setiap doa menghasilkan yang unikhookId, dan Anda harus memanggil ContinueServiceDeployment 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 membutuhkan panggilan terpisah ContinueServiceDeployment dengan yang sesuaihookId.
EventBridge acara
Amazon ECS memancarkan EventBridge peristiwa dengan tipe detail saat jeda menghubungkan kemajuan melalui ECS Hook State Change siklus hidupnya. Tabel berikut menjelaskan nama-nama acara:
| Nama peristiwa | Deskripsi |
|---|---|
HOOK_AWAITING_ACTION |
Kait sedang menunggu Anda untuk meneleponContinueServiceDeployment. |
HOOK_SUCCEEDED |
Kait selesai dengan sukses (Anda menelepon ContinueServiceDeployment denganCONTINUE). |
HOOK_FAILED |
Kait gagal (Anda menelepon ContinueServiceDeployment denganROLLBACK). |
HOOK_TIMED_OUT |
Hook yang habis waktunya sebelumnya ContinueServiceDeployment dipanggil. |
Contoh berikut menunjukkan EventBridge peristiwa yang dipancarkan saat hook jeda 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" } }