

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memecahkan masalah penerapan Amazon ECS
<a name="troubleshooting-ecs"></a>

**Topics**
+ [Batas waktu terjadi saat menunggu set tugas pengganti](#troubleshooting-ecs-timeout)
+ [Batas waktu terjadi saat menunggu pemberitahuan berlanjut](#troubleshooting-ecs-timeout-notif)
+ [Peran IAM tidak memiliki izin yang cukup](#troubleshooting-ecs-iam)
+ [Waktu penerapan habis saat menunggu panggilan balik status](#troubleshooting-ecs-timeout-callback)
+ [Penerapan gagal karena satu atau beberapa fungsi validasi peristiwa siklus hidup gagal](#troubleshooting-ecs-lifecycle)
+ [ELB tidak dapat diperbarui karena kesalahan berikut: Grup target taskset utama harus berada di belakang pendengar](#troubleshooting-ecs-elb)
+ [Penerapan saya terkadang gagal saat menggunakan Auto Scaling](#troubleshooting-ecs-auto-scaling)
+ [Hanya ALB yang mendukung perutean lalu lintas bertahap, gunakan perutean AllAtOnce Lalu lintas sebagai gantinya saat Anda grup Deployment create/update](#troubleshooting-ecs-lb)
+ [Meskipun penerapan saya berhasil, set tugas pengganti gagal dalam pemeriksaan kesehatan Elastic Load Balancing, dan aplikasi saya sedang down](#troubleshooting-ecs-task-set-stability)
+ [Bisakah saya melampirkan beberapa penyeimbang beban ke grup penerapan?](#troubleshooting-ecs-lb-multi)
+ [Bisakah saya melakukan penerapan CodeDeploy biru/hijau tanpa penyeimbang beban?](#troubleshooting-ecs-lb-bg)
+ [Bagaimana cara memperbarui layanan Amazon ECS saya dengan informasi baru selama penerapan?](#troubleshooting-ecs-exec)

## Batas waktu terjadi saat menunggu set tugas pengganti
<a name="troubleshooting-ecs-timeout"></a>

**Masalah**: Anda melihat pesan kesalahan berikut saat menerapkan aplikasi Amazon ECS Anda menggunakan: CodeDeploy

`The deployment timed out while waiting for the replacement task set to become healthy. This time out period is 60 minutes.`

**Kemungkinan penyebabnya**: Kesalahan ini mungkin terjadi jika ada kesalahan dalam file definisi tugas Anda atau file terkait penerapan lainnya. Misalnya, jika ada kesalahan ketik di `image` bidang dalam file definisi tugas Anda, Amazon ECS akan mencoba menarik gambar wadah yang salah dan terus gagal, menyebabkan kesalahan ini.

**Kemungkinan perbaikan dan langkah selanjutnya**:
+ Perbaiki kesalahan ketik dan masalah konfigurasi dalam file definisi tugas Anda dan file lainnya.
+ Periksa acara layanan Amazon ECS terkait dan cari tahu mengapa tugas penggantian tidak menjadi sehat. Untuk informasi selengkapnya tentang peristiwa Amazon ECS, lihat peristiwa [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html) di Panduan *Pengembang Layanan Kontainer Elastis Amazon*.
+ Periksa bagian [pemecahan masalah Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/troubleshooting.html) di *Panduan Pengembang Layanan Amazon Elastic Container* untuk mengetahui kesalahan yang terkait dengan pesan dalam acara tersebut.

## Batas waktu terjadi saat menunggu pemberitahuan berlanjut
<a name="troubleshooting-ecs-timeout-notif"></a>

**Masalah**: Anda melihat pesan kesalahan berikut saat menerapkan aplikasi Amazon ECS Anda menggunakan: CodeDeploy

 `The deployment timed out while waiting for a notification to continue. This time out period is n minutes.` 

**Kemungkinan penyebabnya**: Kesalahan ini mungkin terjadi jika Anda menetapkan waktu tunggu di bidang **Tentukan kapan akan mengalihkan lalu lintas** saat Anda membuat grup penerapan, tetapi penerapan tidak dapat diselesaikan sebelum waktu tunggu berakhir.

**Kemungkinan perbaikan dan langkah selanjutnya**:
+ Di grup penyebaran Anda, setel **Tentukan kapan akan mengalihkan lalu lintas ke** jumlah waktu yang lebih besar dan menerapkan ulang. Untuk informasi selengkapnya, lihat [Membuat grup penerapan untuk penyebaran Amazon ECS (konsol)](deployment-groups-create-ecs.md).
+ Di grup penyebaran Anda, ubah **Tentukan kapan mengalihkan lalu lintas ke Rute lalu lintas** dengan segera dan gunakan **kembali**. Untuk informasi selengkapnya, lihat [Membuat grup penerapan untuk penyebaran Amazon ECS (konsol)](deployment-groups-create-ecs.md).
+ Redeploy dan kemudian jalankan [https://docs.aws.amazon.com/cli/latest/reference/deploy/continue-deployment.html](https://docs.aws.amazon.com/cli/latest/reference/deploy/continue-deployment.html) AWS CLI perintah dengan `--deployment-wait-type` opsi yang disetel ke. `READY_WAIT` Pastikan untuk menjalankan perintah ini *sebelum* waktu yang ditentukan dalam **Tentukan kapan mengalihkan lalu lintas** kedaluwarsa.

## Peran IAM tidak memiliki izin yang cukup
<a name="troubleshooting-ecs-iam"></a>

**Masalah**: Anda melihat pesan kesalahan berikut saat menerapkan aplikasi Amazon ECS Anda menggunakan: CodeDeploy

 `The IAM role role-arn does not give you permission to perform operations in the following AWS service: AWSLambda.` 

**Kemungkinan penyebabnya**: Kesalahan ini mungkin terjadi jika Anda menentukan fungsi Lambda di [`Hooks`bagian AppSpec file](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), tetapi Anda tidak memberikan CodeDeploy izin ke layanan Lambda.

**Kemungkinan perbaikan**: Tambahkan `lambda:InvokeFunction` izin ke peran CodeDeploy layanan. Untuk menambahkan izin ini, tambahkan salah satu kebijakan AWS-managed berikut ke peran: **AWSCodeDeployRoleForECS** atau**AWSCodeDeployRoleForECSLimited**. Untuk informasi tentang kebijakan ini dan cara menambahkannya ke peran CodeDeploy layanan, lihat[Langkah 2: Buat peran layanan untuk CodeDeploy](getting-started-create-service-role.md).

## Waktu penerapan habis saat menunggu panggilan balik status
<a name="troubleshooting-ecs-timeout-callback"></a>

**Masalah**: Anda melihat pesan kesalahan berikut saat menerapkan aplikasi Amazon ECS Anda menggunakan: CodeDeploy

 `The deployment timed out while waiting for a status callback. CodeDeploy expects a status callback within one hour after a deployment hook is invoked.` 

**Kemungkinan penyebabnya**: Kesalahan ini mungkin terjadi jika Anda menetapkan fungsi Lambda di [`Hooks`bagian AppSpec file](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), tetapi fungsi Lambda tidak dapat memanggil `PutLifecycleEventHookExecutionStatus` API yang diperlukan untuk mengembalikan status atau `Succeeded` ke. `Failed` CodeDeploy

**Kemungkinan perbaikan dan langkah selanjutnya**:
+ Tambahkan `codedeploy:putlifecycleEventHookExecutionStatus` izin ke peran eksekusi Lambda yang digunakan oleh fungsi Lambda yang Anda tentukan dalam file. AppSpec Izin ini memberikan fungsi Lambda kemampuan untuk mengembalikan status atau ke`Succeeded`. `Failed` CodeDeploy *Untuk informasi selengkapnya tentang peran eksekusi Lambda, lihat Peran [eksekusi Lambda di Panduan Pengguna](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).AWS Lambda * 
+ Periksa kode fungsi Lambda dan log eksekusi untuk memastikan fungsi Lambda Anda memanggil CodeDeploy `PutLifecycleEventHookExecutionStatus` API untuk CodeDeploy menginformasikan apakah uji validasi siklus hidup atau. `Succeeded` `Failed` Untuk informasi tentang `putlifecycleEventHookExecutionStatus` API, lihat [PutLifecycleEventHookExecutionStatus](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_PutLifecycleEventHookExecutionStatus.html)di *Referensi AWS CodeDeploy API*. Untuk informasi tentang log eksekusi Lambda, lihat [Mengakses log CloudWatch Amazon untuk](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html). AWS Lambda

## Penerapan gagal karena satu atau beberapa fungsi validasi peristiwa siklus hidup gagal
<a name="troubleshooting-ecs-lifecycle"></a>

**Masalah**: Anda melihat pesan kesalahan berikut saat menerapkan aplikasi Amazon ECS Anda menggunakan: CodeDeploy

`The deployment failed because one or more of the lifecycle event validation functions failed.`

**Kemungkinan penyebabnya**: Kesalahan ini mungkin terjadi jika Anda menentukan fungsi Lambda di [`Hooks`bagian AppSpec file](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), tetapi fungsi Lambda kembali `Failed` ke CodeDeploy saat dipanggil. `PutLifecycleEventHookExecutionStatus` Kegagalan ini menunjukkan CodeDeploy bahwa uji validasi siklus hidup gagal.

**Kemungkinan langkah selanjutnya**: Periksa log eksekusi Lambda Anda untuk melihat mengapa kode uji validasi gagal. Untuk informasi tentang log eksekusi Lambda, lihat [Mengakses log CloudWatch Amazon untuk](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html). AWS Lambda

## ELB tidak dapat diperbarui karena kesalahan berikut: Grup target taskset utama harus berada di belakang pendengar
<a name="troubleshooting-ecs-elb"></a>

**Masalah**: Anda melihat pesan kesalahan berikut saat menerapkan aplikasi Amazon ECS Anda menggunakan: CodeDeploy

`The ELB could not be updated due to the following error: Primary taskset target group must be behind listener`

**Kemungkinan penyebabnya**: Kesalahan ini mungkin terjadi jika Anda telah mengonfigurasi pendengar pengujian opsional, dan dikonfigurasi dengan grup target yang salah. Untuk informasi selengkapnya tentang pendengar tes di CodeDeploy, lihat [Sebelum Anda memulai penyebaran Amazon ECS](deployment-steps-ecs.md#deployment-steps-prerequisites-ecs) dan[Apa yang terjadi selama penyebaran Amazon ECS](deployment-steps-ecs.md#deployment-steps-what-happens). Untuk informasi selengkapnya tentang set tugas, lihat [TaskSet](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskSet.html)di *Referensi API Amazon Elastic Container Service* dan [describe-task-set](https://docs.aws.amazon.com/cli/latest/reference/ecs/describe-task-set.html)di bagian Amazon ECS pada *Referensi AWS CLI Perintah*.

**Kemungkinan perbaikan**: Pastikan pendengar produksi dan pendengar pengujian Elastic Load Balancing menunjuk ke grup target yang saat ini melayani beban kerja Anda. Ada tiga tempat untuk memeriksa:
+ Di Amazon EC2, di setelan **Pendengar** dan aturan penyeimbang beban Anda. *Untuk informasi selengkapnya, lihat [Pendengar untuk Penyeimbang Beban Aplikasi Anda di Panduan Pengguna untuk Penyeimbang](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html) *Beban Aplikasi, atau Pendengar untuk Penyeimbang Beban* [Jaringan Anda di Panduan Pengguna untuk Penyeimbang Beban Jaringan](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html).*
+ Di Amazon ECS, di cluster Anda, di bawah konfigurasi **Jaringan** layanan Anda. Untuk informasi selengkapnya, lihat pertimbangan [Application Load Balancer dan Network Load Balancer](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#alb-considerations) di Panduan Pengembang Layanan *Kontainer Elastis Amazon*.
+ Di CodeDeploy, di pengaturan grup penyebaran Anda. Untuk informasi selengkapnya, lihat [Membuat grup penerapan untuk penyebaran Amazon ECS (konsol)](deployment-groups-create-ecs.md).

## Penerapan saya terkadang gagal saat menggunakan Auto Scaling
<a name="troubleshooting-ecs-auto-scaling"></a>

**Masalah**: Anda menggunakan Auto Scaling dengan CodeDeploy dan Anda melihat bahwa penerapan Anda kadang-kadang gagal. Untuk informasi selengkapnya tentang gejala masalah ini, lihat topik yang bertuliskan [Untuk layanan yang dikonfigurasi untuk menggunakan penskalaan otomatis layanan dan jenis blue/green penerapan, penskalaan otomatis tidak diblokir selama penerapan tetapi penerapan mungkin gagal dalam beberapa keadaan dalam](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html#deployment-type-bluegreen-considerations) Panduan Pengembang Layanan Penampung *Elastis Amazon*.

**Kemungkinan penyebabnya**: Masalah ini mungkin terjadi jika CodeDeploy dan proses Auto Scaling bertentangan.

**Kemungkinan perbaikan**: Menangguhkan dan melanjutkan proses Auto Scaling selama CodeDeploy penerapan menggunakan API (atau `RegisterScalableTarget` perintah yang sesuai). `register-scalable-target` AWS CLI Untuk informasi selengkapnya, lihat [Menangguhkan dan melanjutkan penskalaan untuk Application Auto](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) Scaling di Panduan Pengguna *Application Auto Scaling*.

**catatan**  
CodeDeploy tidak bisa menelepon `RegisterScaleableTarget` langsung. Untuk menggunakan API ini, Anda harus mengonfigurasi CodeDeploy untuk mengirim pemberitahuan atau acara ke Amazon Simple Notification Service (atau Amazon CloudWatch). Anda kemudian harus mengonfigurasi Amazon SNS (atau CloudWatch) untuk memanggil fungsi Lambda, dan mengonfigurasi fungsi Lambda untuk memanggil API. `RegisterScalableTarget` `RegisterScalableTarget`API harus dipanggil dengan `SuspendedState` parameter yang disetel `true` untuk menangguhkan operasi Auto Scaling, `false` dan untuk melanjutkannya.  
Pemberitahuan atau peristiwa yang CodeDeploy dikirim harus terjadi saat penerapan dimulai (untuk memicu operasi penangguhan Auto Scaling), atau saat penerapan berhasil, gagal, atau berhenti (untuk memicu operasi resume Auto Scaling).   
Untuk informasi tentang cara mengonfigurasi CodeDeploy untuk menghasilkan notifikasi atau CloudWatch peristiwa Amazon SNS, lihat[Memantau penerapan dengan Amazon Events CloudWatch](monitoring-cloudwatch-events.md). dan. [Memantau penerapan dengan notifikasi acara Amazon SNS](monitoring-sns-event-notifications.md)

## Hanya ALB yang mendukung perutean lalu lintas bertahap, gunakan perutean AllAtOnce Lalu lintas sebagai gantinya saat Anda grup Deployment create/update
<a name="troubleshooting-ecs-lb"></a>

**Masalah**: Anda melihat pesan galat berikut saat membuat atau memperbarui grup penyebaran di CodeDeploy:

 `Only ALB supports gradual traffic routing, use AllAtOnce Traffic routing instead when you create/update Deployment group.` 

**Kemungkinan penyebabnya**: Kesalahan ini mungkin terjadi jika Anda menggunakan Network Load Balancer dan mencoba menggunakan konfigurasi penerapan yang telah ditentukan sebelumnya selain. `CodeDeployDefault.ECSAllAtOnce`

**Kemungkinan perbaikan**:
+ Ubah konfigurasi penerapan yang telah ditentukan sebelumnya menjadi. `CodeDeployDefault.ECSAllAtOnce` Ini adalah satu-satunya konfigurasi penerapan standar yang didukung oleh Network Load Balancers.

  Untuk informasi selengkapnya tentang konfigurasi penerapan yang telah ditentukan sebelumnya, lihat. [Konfigurasi penerapan yang telah ditentukan sebelumnya untuk platform komputasi Amazon ECS](deployment-configurations.md#deployment-configurations-predefined-ecs)
+ Ubah penyeimbang beban Anda menjadi Application Load Balancer. Application Load Balancer mendukung semua konfigurasi penerapan yang telah ditentukan sebelumnya. Untuk informasi selengkapnya tentang membuat Application Load Balancer, lihat. [Siapkan penyeimbang beban, grup target, dan pendengar untuk penerapan Amazon CodeDeploy ECS](deployment-groups-create-load-balancer-for-ecs.md)

## Meskipun penerapan saya berhasil, set tugas pengganti gagal dalam pemeriksaan kesehatan Elastic Load Balancing, dan aplikasi saya sedang down
<a name="troubleshooting-ecs-task-set-stability"></a>

**Masalah**: Meskipun CodeDeploy menunjukkan bahwa penerapan saya berhasil, set tugas pengganti gagal dalam pemeriksaan kesehatan dari Elastic Load Balancing, dan aplikasi saya mati.

**Kemungkinan penyebabnya**: Masalah ini mungkin terjadi jika Anda melakukan CodeDeploy all-at-once penerapan, dan set tugas pengganti (hijau) berisi kode buruk yang menyebabkan pemeriksaan kesehatan Elastic Load Balancing gagal. Dengan konfigurasi all-at-once penerapan, pemeriksaan kesehatan penyeimbang beban mulai berjalan pada tugas pengganti yang ditetapkan *setelah* lalu lintas dialihkan ke sana (yaitu, peristiwa `AllowTraffic` siklus hidup *setelah* CodeDeploy terjadi). Itu sebabnya Anda akan melihat pemeriksaan kesehatan gagal pada tugas penggantian yang ditetapkan setelah lalu lintas bergeser, tetapi tidak sebelumnya. Untuk informasi tentang peristiwa siklus hidup yang CodeDeploy dihasilkan, lihat. [Apa yang terjadi selama penyebaran Amazon ECS](deployment-steps-ecs.md#deployment-steps-what-happens)

**Kemungkinan perbaikan**:
+ Ubah konfigurasi penerapan Anda dari all-at-once ke canary atau linier. *Dalam konfigurasi kenari atau linier, pemeriksaan kesehatan penyeimbang beban mulai berjalan pada set tugas pengganti saat CodeDeploy menginstal aplikasi Anda di lingkungan penggantian, dan *sebelum* lalu lintas digeser (yaitu, selama peristiwa `Install` siklus hidup, dan sebelum acara).* `AllowTraffic` Dengan mengizinkan pemeriksaan berjalan selama instalasi aplikasi tetapi sebelum lalu lintas digeser, kode aplikasi yang buruk akan terdeteksi dan menyebabkan kegagalan penerapan sebelum aplikasi menjadi tersedia untuk umum.

  Untuk informasi tentang cara mengonfigurasi penerapan canary atau linier, lihat. [Ubah pengaturan grup penerapan dengan CodeDeploy](deployment-groups-edit.md) 

  Untuk informasi tentang peristiwa CodeDeploy siklus hidup yang berjalan selama penerapan Amazon ECS, lihat. [Apa yang terjadi selama penyebaran Amazon ECS](deployment-steps-ecs.md#deployment-steps-what-happens)
**catatan**  
Konfigurasi penerapan Canary dan linier hanya didukung dengan Application Load Balancers.
+ Jika Anda ingin mempertahankan konfigurasi all-at-once penerapan, siapkan listener pengujian dan periksa status kesehatan tugas pengganti yang ditetapkan dengan kait siklus `BeforeAllowTraffic` hidup. Untuk informasi selengkapnya, lihat [Daftar kait peristiwa siklus hidup untuk penerapan Amazon ECS](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-list-ecs).

## Bisakah saya melampirkan beberapa penyeimbang beban ke grup penerapan?
<a name="troubleshooting-ecs-lb-multi"></a>

Tidak. Jika Anda ingin menggunakan beberapa Application Load Balancers atau Network Load Balancers, gunakan pembaruan bergulir Amazon ECS alih-alih penerapan biru/hijau. CodeDeploy Untuk informasi selengkapnya tentang pembaruan bergulir, lihat [Pembaruan bergulir](https://docs.aws.amazon.com/AmazonECS/latest/userguide/deployment-type-ecs.html) di *Panduan Pengembang Layanan Kontainer Elastis Amazon*. Untuk informasi selengkapnya tentang penggunaan beberapa penyeimbang beban dengan Amazon ECS, lihat [Mendaftarkan beberapa grup target dengan layanan di Panduan Pengembang Layanan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) *Kontainer Elastis Amazon*.

## Bisakah saya melakukan penerapan CodeDeploy biru/hijau tanpa penyeimbang beban?
<a name="troubleshooting-ecs-lb-bg"></a>

Tidak, Anda tidak dapat melakukan penerapan CodeDeploy biru/hijau tanpa penyeimbang beban. Jika Anda tidak dapat menggunakan penyeimbang beban, gunakan fitur pembaruan bergulir Amazon ECS sebagai gantinya. Untuk informasi selengkapnya tentang pembaruan bergulir Amazon ECS, lihat [Pembaruan bergulir](https://docs.aws.amazon.com/AmazonECS/latest/userguide/deployment-type-ecs.html) di *Panduan Pengembang Layanan Kontainer Elastis Amazon*.

## Bagaimana cara memperbarui layanan Amazon ECS saya dengan informasi baru selama penerapan?
<a name="troubleshooting-ecs-exec"></a>

Untuk CodeDeploy memperbarui layanan Amazon ECS Anda dengan parameter baru saat melakukan penerapan, tentukan parameter di `resources` bagian file. AppSpec Hanya beberapa parameter Amazon ECS yang didukung oleh CodeDeploy, seperti file definisi tugas dan parameter nama kontainer. Untuk daftar lengkap parameter Amazon ECS yang CodeDeploy dapat diperbarui, lihat[AppSpec Bagian 'sumber daya' untuk penerapan Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs).

**catatan**  
Jika Anda perlu memperbarui layanan Amazon ECS Anda dengan parameter yang tidak didukung oleh CodeDeploy, selesaikan tugas-tugas ini:  
Panggil `UpdateService` API Amazon ECS dengan parameter yang ingin Anda perbarui. Untuk daftar lengkap parameter yang dapat diperbarui, lihat [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html)di *Referensi API Amazon Elastic Container Service*. 
Untuk menerapkan perubahan pada tugas, buat blue/green penyebaran Amazon ECS baru. Lihat informasi yang lebih lengkap di [Membuat penerapan Platform Komputasi Amazon ECS (konsol)](deployments-create-console-ecs.md).