View a markdown version of this page

Jeda kait untuk penerapan layanan Amazon ECS - Amazon Elastic Container Service

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:

  1. Amazon ECS menghasilkan yang unik hookId untuk kait jeda.

  2. Amazon ECS memancarkan EventBridge acara dengan tipe detail ECS Hook State Change dan nama acara. HOOK_AWAITING_ACTION

  3. Penerapan tetap dijeda hingga Anda memanggil ContinueServiceDeployment dengan hookId dan tindakan CONTINUE atauROLLBACK, 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 hookTargetArn atau. roleArn Bidang ini hanya untuk kait Lambda.

  • Jeda kait tidak dapat dikonfigurasi pada tahap TEST_TRAFFIC_SHIFT atauPRODUCTION_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" } }