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 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:

  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 dijed hookId a sampai Anda memanggil ContinueServiceDeployment dengan tindakan CONTINUE atauROLLBACK, 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 hookTargetArn atauroleArn. Bidang ini hanya untuk kait Lambda.

  • Pengait jeda tidak dapat dikonfigurasi pada ta PRODUCTION_TRAFFIC_SHIFT hapan TEST_TRAFFIC_SHIFT atau.

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" } }