Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan masalah pembaruan strategi penerapan Amazon ECS
Bagian ini memberikan solusi untuk masalah umum yang mungkin Anda temui saat memigrasikan strategi penerapan.
Beberapa revisi layanan atau set tugas
Masalah berikut terkait dengan memiliki beberapa revisi layanan untuk penerapan.
- Beberapa set tugas saat memperbarui pengontrol penyebaran ECS
-
Pesan kesalahan:
Updating the deployment controller is not supported when there are multiple tasksets in the service. Please ensure your service has only one taskset and try again.
Solusi: Kesalahan ini terjadi ketika mencoba mengubah jenis pengontrol penerapan layanan dengan beberapa set tugas aktif. Untuk mengatasi masalah ini untuk pengontrol
CODE_DEPLOY
atauEXTERNAL
penerapan:-
Periksa set tugas saat ini:
aws ecs describe-services --cluster
your-cluster-name
--servicesyour-service-name
--query "services[0].taskSets" -
Tunggu hingga penerapan yang sedang berlangsung selesai.
-
Memaksa penerapan baru untuk membersihkan set tugas:
aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--force-new-deployment -
Jika perlu, hapus set tugas tambahan secara manual:
aws ecs delete-task-set --cluster
your-cluster-name
--serviceyour-service-name
--task-settask-set-id
-
Setelah hanya satu set tugas yang tersisa, coba lagi perbarui pengontrol penerapan.
Untuk informasi selengkapnya, lihat Pengontrol dan strategi penyebaran layanan Amazon ECS.
-
- Set tugas utama tidak ada saat memperbarui
ECS
pengontrol penerapan -
Pesan kesalahan:
Updating the deployment controller requires a primary taskset in the service. Please ensure your service has a primary taskset and try again.
Solusi: Kesalahan ini terjadi ketika mencoba mengubah jenis pengontrol penerapan layanan yang tidak memiliki set tugas utama. Untuk menyelesaikan masalah ini:
-
Verifikasi status layanan dan set tugas. ). Jika set tugas ada dalam layanan, itu harus ditandai sebagai
ACTIVE
.aws ecs describe-services --cluster
your-cluster-name
--servicesyour-service-name
--query "services[0].taskSets[*].[status,id]Jika tidak ada set tugas di
ACTIVE
negara bagian, migrasi penerapan. Untuk informasi selengkapnya, lihat Pendekatan migrasi. -
Jika layanan tidak memiliki tugas yang berjalan, gunakan setidaknya satu tugas dengan memperbarui layanan:
aws ecs update-service-primary-task-set --cluster
your-cluster-name
--serviceyour-service-name
--primary-task-set your-taskset-idIni akan menandai tugas (sebelumnya
ACTIVE
) yang ditetapkan dalam layanan sebagaiPRIMARY
status. -
Tunggu tugas mencapai status berjalan stabil. Anda dapat memeriksa statusnya dengan:
aws ecs describe-services --cluster
your-cluster-name
--servicesyour-service-name
--query "services[0].deployments" -
Setelah layanan memiliki tugas utama yang ditetapkan dengan tugas yang sedang berjalan, coba lagi memperbarui pengontrol penerapan.
Untuk informasi selengkapnya, lihat Pengontrol dan strategi penyebaran layanan Amazon ECS.
-
Ketidakcocokan antara jenis deteksi kegagalan penerapan dan pengontrol penerapan
Masalah berikut terkait dengan ketidakcocokan antara jenis deteksi kegagalan penerapan dan pengontrol penerapan.
- Pemutus sirkuit penyebaran dengan pengontrol non-ECS
-
Pesan kesalahan:
Deployment circuit breaker feature is only supported with ECS deployment controller. Update to ECS deployment controller and try again.
Solusi: Kesalahan ini terjadi ketika mencoba mengaktifkan fitur pemutus sirkuit penyebaran pada layanan yang tidak menggunakan pengontrol penyebaran.
ECS
Pemutus sirkuit penyebaran hanya kompatibel dengan pengontrolECS
penyebaran.-
Periksa pengontrol penerapan layanan Anda saat ini:
aws ecs describe-services --cluster
your-cluster-name
--servicesyour-service-name
--query "services[0].deploymentController" -
Perbarui layanan Anda untuk menggunakan pengontrol
ECS
penerapan:aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--deployment-controller type=ECS -
Setelah layanan menggunakan pengontrol
ECS
penyebaran, aktifkan pemutus sirkuit penyebaran:aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=true}"
Untuk informasi selengkapnya, lihat Bagaimana pemutus sirkuit penyebaran Amazon ECS mendeteksi kegagalan.
-
- Rollback berbasis alarm dengan pengontrol non-ECS
-
Pesan kesalahan:
Alarm based rollback feature is only supported with ECS deployment controller. Update to ECS deployment controller and try again.
Solusi: Kesalahan ini terjadi ketika mencoba mengkonfigurasi rollback berbasis alarm pada layanan yang tidak menggunakan pengontrol penerapan.
ECS
Fitur rollback berbasis alarm hanya kompatibel dengan pengontrol penerapan.ECS
-
Periksa pengontrol penerapan layanan Anda saat ini:
aws ecs describe-services --cluster
your-cluster-name
--servicesyour-service-name
--query "services[0].deploymentController" -
Perbarui layanan Anda untuk menggunakan pengontrol
ECS
penerapan:aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--deployment-controller type=ECS -
Setelah layanan menggunakan pengontrol
ECS
penyebaran, konfigurasikan rollback berbasis alarm:aws ecs update-service --cluster
your-cluster-name
--servicesyour-service-name
--deployment-configuration "alarms={alarmNames=[your-alarm-name],enable=true,rollback=true}"
Untuk informasi selengkapnya, lihat Bagaimana CloudWatch alarm mendeteksi kegagalan penerapan Amazon ECS.
-
Ketidakcocokan antara Service Connect dan pengontrol penerapan
Masalah berikut terkait dengan ketidakcocokan antara Service Connect dan pengontrol penerapan.
EXTERNAL
pengontrol dengan Service Connect-
Pesan kesalahan:
The EXTERNAL deployment controller type is not supported for services using Service Connect.
Solusi: Kesalahan ini terjadi saat mencoba menggunakan pengontrol
EXTERNAL
penerapan dengan layanan yang mengaktifkan Service Connect.EXTERNAL
Kontroler tidak kompatibel dengan Service Connect.-
Periksa apakah layanan Anda mengaktifkan Service Connect:
aws ecs describe-services --cluster
your-cluster-name
--services your-service-name --query "services[0].serviceConnectConfiguration" -
Jika Anda perlu menggunakan pengontrol
EXTERNAL
penyebaran, nonaktifkan Service Connect dengan memperbarui layanan Anda:aws ecs update-service --cluster your-cluster-name --service your-service-name --service-connect-configuration "{}"
-
Atau, jika Anda harus menggunakan Service Connect, gunakan pengontrol
ECS
penerapan sebagai gantinya:aws ecs update-service --cluster your-cluster-name --service your-service-name --deployment-controller type=ECS
Untuk informasi selengkapnya, lihat Pengontrol dan strategi penyebaran layanan Amazon ECS.
-
- Service Connect dengan pengontrol non-ECS
-
Pesan kesalahan:
Service Connect feature is only supported with ECS (rolling update) deployment controller. Update to ECS deployment controller and try again.
Solusi: Kesalahan ini terjadi ketika mencoba mengaktifkan Service Connect pada yang tidak menggunakan pengontrol
ECS
penerapan. Fitur Service Connect hanya kompatibel dengan pengontrolECS
penerapan.-
Periksa pengontrol penerapan layanan Anda saat ini:
aws ecs describe-services --cluster
your-cluster-name
--servicesyour-service-name
--query "services[0].deploymentController" -
Perbarui layanan Anda untuk menggunakan pengontrol penyebaran ECS:
aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--deployment-controller type=ECS -
Setelah layanan menggunakan pengontrol penyebaran ECS, aktifkan Service Connect:
aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--service-connect-configuration "enabled=true,namespace=your-namespace"
Untuk informasi selengkapnya, lihat Pengontrol dan strategi penyebaran layanan Amazon ECS.
-
Ketidakcocokan antara jenis pengontrol dan strategi penjadwalan
Masalah berikut terkait dengan ketidakcocokan antara jenis pengontrol dan strategi penjadwalan.
CODE_DEPLOY
controller dengan strategiDAEMON
penjadwalan-
Pesan kesalahan:
The CODE_DEPLOY deployment controller type is not supported for services using the DAEMON scheduling strategy.
Solusi: Kesalahan ini terjadi ketika mencoba menggunakan pengontrol penyebaran CODE_DEPLOY dengan layanan yang menggunakan strategi penjadwalan.
DAEMON
CODE_DEPLOY
Pengontrol hanya kompatibel dengan strategiREPLICA
penjadwalan.-
Periksa strategi penjadwalan layanan Anda saat ini:
aws ecs describe-services --cluster
your-cluster-name
--servicesyour-service-name
--query "services[0].schedulingStrategy" -
Jika Anda memerlukan blue/green penerapan, ubah layanan Anda untuk menggunakan strategi
REPLICA
penjadwalan:aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--scheduling-strategy REPLICA -
Atau, jika Anda harus menggunakan strategi
DAEMON
penjadwalan, gunakan pengontrolECS
penerapan sebagai gantinya:aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--deployment-controller type=ECS
Untuk informasi selengkapnya, lihat Pengontrol dan strategi penyebaran layanan Amazon ECS.
-
- Pengontrol EKSTERNAL dengan strategi penjadwalan DAEMON
-
Pesan kesalahan:
The EXTERNAL deployment controller type is not supported for services using the DAEMON scheduling strategy.
Solusi: Kesalahan ini terjadi ketika mencoba menggunakan pengontrol penyebaran EKSTERNAL dengan layanan ECS yang menggunakan strategi penjadwalan DAEMON. Pengontrol EKSTERNAL hanya kompatibel dengan strategi penjadwalan REPLICA.
-
Periksa strategi penjadwalan layanan Anda saat ini:
aws ecs describe-services --cluster
your-cluster-name
--servicesyour-service-name
--query "services[0].schedulingStrategy" -
Jika Anda perlu menggunakan pengontrol
EXTERNAL
penerapan, ubah layanan Anda untuk menggunakan strategiREPLICA
penjadwalan:aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--scheduling-strategy REPLICA -
Atau, jika Anda harus menggunakan strategi
DAEMON
penjadwalan, gunakan pengontrolECS
penerapan sebagai gantinya:aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--deployment-controller type=ECS
Untuk informasi selengkapnya, lihat Pengontrol dan strategi penyebaran layanan Amazon ECS.
-
- Registri layanan dengan tipe peluncuran eksternal
-
Pesan kesalahan:
Service registries are not supported for external launch type.
Solusi: Kesalahan ini terjadi ketika mencoba mengonfigurasi penemuan layanan (pendaftar layanan) untuk layanan yang menggunakan jenis peluncuran.
EXTERNAL
Penemuan layanan tidak kompatibel dengan jenisEXTERNAL
peluncuran.-
Periksa jenis peluncuran layanan Anda saat ini:
aws ecs describe-services --cluster
your-cluster-name
--servicesyour-service-name
--query "services[0].launchType" -
Jika Anda memerlukan penemuan layanan, ubah layanan Anda untuk menggunakan jenis
EC2
atauFARGATE
peluncuran:aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--launch-type FARGATE -
Atau, jika Anda harus menggunakan jenis
EXTERNAL
peluncuran, hapus konfigurasi registri layanan:aws ecs update-service --cluster
your-cluster-name
--serviceyour-service-name
--service-registries "[]"
Untuk informasi selengkapnya, lihat Pengontrol dan strategi penyebaran layanan Amazon ECS.
-
Kembalikan pembaruan pengontrol penerapan
Jika Anda memutuskan ingin kembali ke pengontrol penerapan sebelumnya, Anda dapat melakukan salah satu hal berikut:
-
Jika Anda menggunakan AWS CloudFormation, Anda dapat menggunakan template sebelumnya untuk membuat tumpukan baru. Untuk informasi selengkapnya, lihat Membuat tumpukan dari Panduan AWS CloudFormation Pengguna.
-
Jika Anda menggunakan konsol Amazon ECS, atau AWS CLI, Anda dapat memperbarui layanan. Untuk informasi selengkapnya, lihat Memperbarui layanan Amazon ECS.
Jika Anda menggunakan perintah update-service, gunakan
--deployment-controller
opsi dan atur ke controller deployment sebelumnya.