Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi relativi agli aggiornamenti della strategia di implementazione di Amazon ECS
Questa sezione fornisce soluzioni ai problemi più comuni che potrebbero verificarsi durante la migrazione delle strategie di implementazione.
Più revisioni del servizio o set di attività
I seguenti problemi riguardano la disponibilità di più revisioni dei servizi per un'implementazione.
- Set di più attività durante l'aggiornamento del controller di implementazione ECS
-
Messaggio di errore:
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.Soluzione: questo errore si verifica quando si tenta di modificare il tipo di controller di implementazione di un servizio con più set di attività attivi. Per risolvere questo problema per il controller di implementazione
CODE_DEPLOYoEXTERNAL:-
Controllare i set di attività attuali:
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].taskSets" -
Attendere il completamento delle implementazioni in corso.
-
Forzare una nuova implementazione per eliminare i set di attività:
aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--force-new-deployment -
Se necessario, eliminare manualmente i set di attività aggiuntivi:
aws ecs delete-task-set --clusteryour-cluster-name--serviceyour-service-name--task-settask-set-id -
Quando rimane un solo set di attività, riprovare ad aggiornare il controller di implementazione.
Per ulteriori informazioni, consultare Controller e strategie di implementazione dei servizi Amazon ECS.
-
- Set di attività primarie mancante durante l'aggiornamento del controller di implementazione
ECS -
Messaggio di errore:
Updating the deployment controller requires a primary taskset in the service. Please ensure your service has a primary taskset and try again.Soluzione: questo errore si verifica quando si tenta di modificare il tipo di controller di implementazione di un servizio che non dispone di un set di attività primarie. Per risolvere il problema:
-
Verificare lo stato del servizio e i set di attività. Se nel servizio esiste un set di attività, deve essere contrassegnato come
ACTIVE.aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].taskSets[*].[status,id]Se non ci sono set di attività nello stato
ACTIVE, effettuare la migrazione dell'implementazione. Per ulteriori informazioni, consultare Migration approaches. -
Se il servizio non dispone di attività in esecuzione, implementare almeno un'attività aggiornando il servizio:
aws ecs update-service-primary-task-set --clusteryour-cluster-name--serviceyour-service-name--primary-task-set your-taskset-idCiò contrassegnerà l'attività (precedentemente
ACTIVE) impostata nel servizio comePRIMARY. -
Attendere che l'attività raggiunga uno stato di esecuzione stabile. È possibile controllare lo stato con:
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].deployments" -
Dopo che il servizio dispone di un set di attività primario con attività in esecuzione, riprovare ad aggiornare il controller di implementazione.
Per ulteriori informazioni, consultare Controller e strategie di implementazione dei servizi Amazon ECS.
-
Mancata corrispondenza tra il tipo di rilevamento degli errori di implementazione e il controller di implementazione
I seguenti problemi si riferiscono a una mancata corrispondenza tra il tipo di rilevamento degli errori di implementazione e il controller di implementazione.
- Interruttore automatico di implementazione con controller non ECS
-
Messaggio di errore:
Deployment circuit breaker feature is only supported with ECS deployment controller. Update to ECS deployment controller and try again.Soluzione: questo errore si verifica quando si tenta di abilitare la funzionalità di interruttore automatico di implementazione su un servizio che non utilizza il controller di implementazione
ECS. L'interruttore automatico di implementazione è compatibile solo con il controller di implementazioneECS.-
Verificare il controller di implementazione attuale del servizio:
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].deploymentController" -
Aggiornare il servizio per utilizzare il controller di implementazione
ECS:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-controller type=ECS -
Dopo che il servizio sta utilizzando il controller di implementazione
ECS, abilitare l'interruttore automatico di implementazione:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=true}"
Per ulteriori informazioni, consultare In che modo l’interruttore di implementazione Amazon ECS rileva i guasti.
-
- Rollback basato sugli allarmi con controller non ECS
-
Messaggio di errore:
Alarm based rollback feature is only supported with ECS deployment controller. Update to ECS deployment controller and try again.Soluzione: questo errore si verifica quando si tenta di configurare il rollback basato sugli allarmi su un servizio che non utilizza il controller di implementazione
ECS. La funzionalità di rollback basata sugli allarmi è compatibile solo con il controller di implementazioneECS.-
Verificare il controller di implementazione attuale del servizio:
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].deploymentController" -
Aggiornare il servizio per utilizzare il controller di implementazione
ECS:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-controller type=ECS -
Dopo che il servizio sta utilizzando il controller di implementazione
ECS, configurare il rollback basato sugli allarmi:aws ecs update-service --clusteryour-cluster-name--servicesyour-service-name--deployment-configuration "alarms={alarmNames=[your-alarm-name],enable=true,rollback=true}"
Per ulteriori informazioni, consultare In che modo CloudWatch gli allarmi rilevano gli errori di distribuzione di Amazon ECS.
-
Mancata corrispondenza tra Service Connect e il controller di implementazione
I seguenti problemi riguardano una mancata corrispondenza tra Service Connect e il controller di implementazione.
- Controller
EXTERNALcon Service Connect -
Messaggio di errore:
The EXTERNAL deployment controller type is not supported for services using Service Connect.Soluzione: questo errore si verifica quando si tenta di utilizzare il controller di implementazione
EXTERNALcon un servizio che ha Service Connect abilitato. Il controllerEXTERNALnon è compatibile con Service Connect.-
Verificare se il servizio dispone di Service Connect abilitato:
aws ecs describe-services --clusteryour-cluster-name--services your-service-name --query "services[0].serviceConnectConfiguration" -
Se è necessario il controller di implementazione
EXTERNAL, disabilitare Service Connect aggiornando il servizio:aws ecs update-service --cluster your-cluster-name --service your-service-name --service-connect-configuration "{}" -
In alternativa, se è necessario utilizzare Service Connect, utilizzare invece il controller di implementazione
ECS:aws ecs update-service --cluster your-cluster-name --service your-service-name --deployment-controller type=ECS
Per ulteriori informazioni, consultare Controller e strategie di implementazione dei servizi Amazon ECS.
-
- Service Connect con controller non ECS
-
Messaggio di errore:
Service Connect feature is only supported with ECS (rolling update) deployment controller. Update to ECS deployment controller and try again.Soluzione: questo errore si verifica quando si tenta di abilitare Service Connect su un servizio che non utilizza il controller di implementazione
ECS. La funzionalità di Service Connect è compatibile solo con il controller di implementazioneECS.-
Verificare il controller di implementazione attuale del servizio:
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].deploymentController" -
Aggiornare il servizio per utilizzare il controller di implementazione ECS:
aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-controller type=ECS -
Una volta che il servizio utilizza il controller di implementazione ECS, abilitare Service Connect:
aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--service-connect-configuration "enabled=true,namespace=your-namespace"
Per ulteriori informazioni, consultare Controller e strategie di implementazione dei servizi Amazon ECS.
-
Mancata corrispondenza tra il tipo di controller e la strategia di pianificazione
I seguenti problemi riguardano una mancata corrispondenza tra il tipo di controller e la strategia di pianificazione.
- Controller
CODE_DEPLOYcon strategia di pianificazioneDAEMON -
Messaggio di errore:
The CODE_DEPLOY deployment controller type is not supported for services using the DAEMON scheduling strategy.Soluzione: questo errore si verifica quando si tenta di utilizzare il controller di implementazione CODE_DEPLOY con un servizio che utilizza la strategia di pianificazione
DAEMON. Il controllerCODE_DEPLOYè compatibile solo con la strategia di pianificazioneREPLICA.-
Verificare l'attuale strategia di pianificazione del servizio:
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].schedulingStrategy" -
Se hai bisogno di blue/green implementazioni, modifica il servizio per utilizzare la strategia di pianificazione:
REPLICAaws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--scheduling-strategy REPLICA -
In alternativa, se è necessario utilizzare la strategia di pianificazione
DAEMON, utilizzare invece il controller di implementazioneECS:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-controller type=ECS
Per ulteriori informazioni, consultare Controller e strategie di implementazione dei servizi Amazon ECS.
-
- Controller EXTERNAL con strategia di pianificazione DAEMON
-
Messaggio di errore:
The EXTERNAL deployment controller type is not supported for services using the DAEMON scheduling strategy.Soluzione: questo errore si verifica quando si tenta di utilizzare il controller di implementazione ESTERNO con un servizio ECS che utilizza la strategia di pianificazione DAEMON. Il controller EXTERNAL è compatibile solo con la strategia di pianificazione REPLICA.
-
Verificare l'attuale strategia di pianificazione del servizio:
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].schedulingStrategy" -
Se è necessario utilizzare il controller di implementazione
EXTERNAL, cambiare il servizio per utilizzare la strategia di pianificazioneREPLICA:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--scheduling-strategy REPLICA -
In alternativa, se è necessario utilizzare la strategia di pianificazione
DAEMON, utilizzare invece il controller di implementazioneECS:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--deployment-controller type=ECS
Per ulteriori informazioni, consultare Controller e strategie di implementazione dei servizi Amazon ECS.
-
- Registri di servizio con tipo di avvio esterno
-
Messaggio di errore:
Service registries are not supported for external launch type.Soluzione: questo errore avviene quando si tenta di configurare il rilevamento servizi (registri dei servizi) per un servizio che utilizza il tipo di avvio
EXTERNAL. Il rilevamento servizi non è compatibile con il tipo di avvioEXTERNAL.-
Controllare il tipo di avvio attuale del servizio:
aws ecs describe-services --clusteryour-cluster-name--servicesyour-service-name--query "services[0].launchType" -
Se è necessario il rilevamento servizi, modificare il servizio in modo da utilizzare il tipo di avvio
EC2oFARGATE:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--launch-type FARGATE -
In alternativa, se è necessario utilizzare il tipo di avvio
EXTERNAL, rimuovere la configurazione del registro del servizio:aws ecs update-service --clusteryour-cluster-name--serviceyour-service-name--service-registries "[]"
Per ulteriori informazioni, consultare Controller e strategie di implementazione dei servizi Amazon ECS.
-
Ripristinare un aggiornamento del controller di implementazione
Se si decide di tornare al controller di implementazione precedente, è possibile eseguire una delle seguenti operazioni:
-
Se lo hai utilizzato CloudFormation, puoi utilizzare il modello precedente per creare un nuovo stack. Per ulteriori informazioni, consultare Create a stack from nella Guida per l'utente di CloudFormation .
-
Se hai utilizzato la console Amazon ECS o la AWS CLI, puoi aggiornare il servizio. Per ulteriori informazioni, consulta Aggiornamento di un servizio Amazon ECS.
Se si utilizza il comando update-service, usare l'opzione
--deployment-controllere impostarla sul controller di implementazione precedente.