View a markdown version of this page

Titik akhir perlindungan penskalaan tugas 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.

Titik akhir perlindungan penskalaan tugas Amazon ECS

Agen kontainer Amazon ECS secara otomatis menyuntik ECS_AGENT_URI kan variabel lingkungan ke dalam wadah tugas Amazon ECS untuk menyediakan metode untuk berinteraksi dengan titik akhir API agen kontainer.

Sebaiknya gunakan titik akhir agen kontainer Amazon ECS untuk tugas yang dapat menentukan sendiri kebutuhan untuk dilindungi.

Saat wadah mulai memproses pekerjaan, Anda dapat mengatur protectionEnabled atribut menggunakan jalur titik akhir perlindungan skala tugas $ECS_AGENT_URI/task-protection/v1/state dari dalam wadah.

Gunakan permintaan PUT ke URI ini dari dalam wadah untuk mengatur perlindungan skala tugas. Permintaan GET ke URI ini mengembalikan status perlindungan tugas saat ini.

Parameter permintaan perlindungan skala masuk tugas

Anda dapat mengatur perlindungan skala tugas menggunakan ${ECS_AGENT_URI}/task-protection/v1/state titik akhir dengan parameter permintaan berikut.

ProtectionEnabled

Tentukan true untuk menandai tugas untuk perlindungan. Tentukan false untuk menghapus perlindungan dan membuat tugas memenuhi syarat untuk penghentian.

Jenis: Boolean

Wajib: Ya

ExpiresInMinutes

Jumlah menit tugas dilindungi. Anda dapat menentukan minimal 1 menit hingga 2.880 menit (48 jam). Selama periode waktu ini, tugas Anda tidak akan dihentikan oleh peristiwa scale-in dari layanan Auto Scaling atau penerapan. Setelah periode waktu ini berakhir, protectionEnabled parameter diatur kefalse.

Jika Anda tidak menentukan waktu, maka tugas secara otomatis dilindungi selama 120 menit (2 jam).

Tipe: Integer

Wajib: Tidak

Contoh berikut menunjukkan cara mengatur perlindungan tugas dengan durasi yang berbeda.

Contoh cara melindungi tugas dengan periode waktu default

Contoh ini menunjukkan cara melindungi tugas dengan periode waktu default 2 jam.

curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true}'

Contoh cara melindungi tugas selama 60 menit

Contoh ini menunjukkan cara melindungi tugas selama 60 menit menggunakan expiresInMinutes parameter.

curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true,"ExpiresInMinutes":60}'

Contoh cara melindungi tugas selama 24 jam

Contoh ini menunjukkan cara melindungi tugas selama 24 jam menggunakan expiresInMinutes parameter.

curl --request PUT --header 'Content-Type: application/json' ${ECS_AGENT_URI}/task-protection/v1/state --data '{"ProtectionEnabled":true,"ExpiresInMinutes":1440}'

Contoh untuk wadah Windows

Untuk wadah Windows, Anda dapat menggunakan PowerShell Invoke-RestMethod cmdlet alih-alih curl. Contoh berikut menunjukkan PowerShell padanan perintah curl sebelumnya.

Contoh cara melindungi tugas kontainer Windows dengan periode waktu default

Contoh ini menunjukkan cara melindungi tugas dengan periode waktu default 2 jam menggunakan PowerShell.

Invoke-RestMethod -Uri $env:ECS_AGENT_URI/task-protection/v1/state -Method Put -Body '{"ProtectionEnabled":true}' -ContentType 'application/json'

Contoh cara melindungi tugas wadah Windows selama 60 menit

Contoh ini menunjukkan cara melindungi tugas selama 60 menit menggunakan expiresInMinutes parameter dengan PowerShell.

Invoke-RestMethod -Uri $env:ECS_AGENT_URI/task-protection/v1/state -Method Put -Body '{"ProtectionEnabled":true,"ExpiresInMinutes":60}' -ContentType 'application/json'

Contoh cara melindungi tugas kontainer Windows selama 24 jam

Contoh ini menunjukkan cara melindungi tugas selama 24 jam menggunakan expiresInMinutes parameter dengan PowerShell.

Invoke-RestMethod -Uri $env:ECS_AGENT_URI/task-protection/v1/state -Method Put -Body '{"ProtectionEnabled":true,"ExpiresInMinutes":1440}' -ContentType 'application/json'

Permintaan PUT mengembalikan respons berikut.

{ "protection": { "ExpirationDate": "2023-12-20T21:57:44.837Z", "ProtectionEnabled": true, "TaskArn": "arn:aws:ecs:us-west-2:111122223333:task/1234567890abcdef0" } }

Parameter respons perlindungan skala masuk tugas

Informasi berikut dikembalikan dari titik akhir perlindungan skala tugas ${ECS_AGENT_URI}/task-protection/v1/state dalam respons JSON.

ExpirationDate

Waktu zaman ketika perlindungan untuk tugas akan kedaluwarsa. Jika tugas tidak dilindungi, nilai ini adalah null.

ProtectionEnabled

Status perlindungan tugas. Jika perlindungan scale-in diaktifkan untuk tugas, nilainya adalah. true Kalau tidak, memang begitufalse.

TaskArn

Nama lengkap Amazon Resource Name (ARN) dari tugas milik kontainer.

Contoh berikut menunjukkan detail yang dikembalikan untuk tugas yang dilindungi.

curl --request GET ${ECS_AGENT_URI}/task-protection/v1/state

Untuk wadah Windows, gunakan PowerShell perintah berikut untuk mendapatkan status perlindungan:

Invoke-RestMethod -Uri $env:ECS_AGENT_URI/task-protection/v1/state -Method Get
{ "protection":{ "ExpirationDate":"2023-12-20T21:57:44Z", "ProtectionEnabled":true, "TaskArn":"arn:aws:ecs:us-west-2:111122223333:task/1234567890abcdef0" } }

Informasi berikut dikembalikan ketika kegagalan terjadi.

Arn

Nama Sumber Daya Amazon (ARN) lengkap dari tugas.

Detail

Rincian terkait dengan kegagalan.

Reason

Sebab kegagalan.

Contoh berikut menunjukkan detail yang dikembalikan untuk tugas yang tidak dilindungi.

{ "failure":{ "Arn":"arn:aws:ecs:us-west-2:111122223333:task/1234567890abcdef0", "Detail":null, "Reason":"TASK_NOT_VALID" } }

Informasi berikut dikembalikan ketika pengecualian terjadi.

requestID

ID AWS permintaan untuk panggilan API Amazon ECS yang menghasilkan pengecualian.

Arn

Nama Sumber Daya Amazon (ARN) lengkap dari tugas atau layanan.

Code

Kode kesalahan.

Message

Pesan kesalahan.

catatan

Jika RequestTimeout kesalahan RequestError atau muncul, kemungkinan itu adalah masalah jaringan. Coba gunakan titik akhir VPC untuk Amazon ECS.

Contoh berikut menunjukkan detail yang dikembalikan ketika kesalahan terjadi.

{ "requestID":"12345-abc-6789-0123-abc", "error":{ "Arn":"arn:aws:ecs:us-west-2:555555555555:task/my-cluster-name/1234567890abcdef0", "Code":"AccessDeniedException", "Message":"User: arn:aws:sts::444455556666:assumed-role/my-ecs-task-role/1234567890abcdef0 is not authorized to perform: ecs:GetTaskProtection on resource: arn:aws:ecs:us-west-2:555555555555:task/test/1234567890abcdef0 because no identity-based policy allows the ecs:GetTaskProtection action" } }

Kesalahan berikut muncul jika agen Amazon ECS tidak dapat memperoleh respons dari titik akhir Amazon ECS karena alasan seperti masalah jaringan atau bidang kontrol Amazon ECS tidak aktif.

{ "error": { "Arn": "arn:aws:ecs:us-west-2:555555555555:task/my-cluster-name/1234567890abcdef0", "Code": "RequestCanceled", "Message": "Timed out calling Amazon ECS Task Protection API" } }

Kesalahan berikut muncul saat agen Amazon ECS mendapatkan pengecualian pelambatan dari Amazon ECS.

{ "requestID": "12345-abc-6789-0123-abc", "error": { "Arn": "arn:aws:ecs:us-west-2:555555555555:task/my-cluster-name/1234567890abcdef0", "Code": "ThrottlingException", "Message": "Rate exceeded" } }