

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
<a name="task-scale-in-protection-endpoint"></a>

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
<a name="task-scale-in-protection-request"></a>

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 ke`false`.  
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 kontainer 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
<a name="task-scale-in-protection-response"></a>

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 berakhir. 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 begitu`false`.

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