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 alle implementazioni di Amazon ECS blue/green
Di seguito vengono fornite soluzioni per problemi comuni che potresti riscontrare durante l'utilizzo di blue/green distribuzioni con Amazon ECS. Blue/green gli errori di distribuzione possono verificarsi durante le seguenti fasi:
-
Percorso sincrono: errori che appaiono immediatamente in risposta a chiamate API
CreateServiceoUpdateService. -
Percorso asincrono: errori che appaiono nel campo
statusReasondiDescribeServiceDeploymentse causano un rollback dell'implementazione
Suggerimento
Puoi utilizzarlo Server MCP Amazon ECS con gli assistenti AI per monitorare le implementazioni e risolvere i problemi di implementazione utilizzando il linguaggio naturale.
Problemi di configurazione del bilanciatore del carico
La configurazione del bilanciamento del carico è un componente fondamentale delle blue/green distribuzioni in Amazon ECS. La corretta configurazione delle regole dei listener, dei gruppi di destinazione e dei tipi di bilanciatore del carico è essenziale per implementazioni di successo. Questa sezione tratta i problemi comuni di configurazione del load balancer che possono causare il fallimento delle distribuzioni. blue/green
Quando si risolvono i problemi relativi al bilanciatore del carico, è importante comprendere la relazione tra le regole dei listener e i gruppi di destinazione. In una distribuzione: blue/green
-
La regola del listener di produzione indirizza il traffico verso la revisione del servizio attualmente attiva (blu)
-
La regola del listener di test può essere utilizzata per convalidare la nuova revisione del servizio (verde) prima di spostare il traffico di produzione
-
I gruppi di destinazione vengono utilizzati per registrare le istanze di container di ogni revisione del servizio
-
Durante l'implementazione, il traffico viene gradualmente spostato dalla revisione del servizio blu alla revisione del servizio verde modificando i pesi dei gruppi di destinazione nelle regole del listener
Errori di configurazione delle regole del listener
I seguenti problemi riguardano la configurazione errata delle regole del listener per le blue/green distribuzioni.
- Utilizzo di un ARN del listener di Application Load Balancer anziché di uno della regola del listener
-
Messaggio di errore:
productionListenerRule has an invalid ARN format. Must be RuleArn for ALB or ListenerArn for NLB. Got: arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-alb/abc123/def456Soluzione: quando si utilizza un Application Load Balancer, è necessario specificare un ARN della regola del listener per
productionListenerRuleetestListenerRule, non un ARN del listener. Per i Network Load Balancer, è necessario utilizzare l'ARN del listener.Per informazioni su come trova l'ARN del listener, consultare Listener per Application Load Balancer nella Guida per l'utente di Application Load Balancer. L'ARN per una regola ha il formato
.arn:aws:elasticloadbalancing:region:account-id:listener-rule/app/... - Utilizzo della stessa regola per i listener di test e di produzione
-
Messaggio di errore:
The following rules cannot be used as both production and test listener rules: arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-alb/abc123/def456/ghi789Soluzione: è necessario utilizzare regole di listener diverse per il traffico di produzione e quello di test. Creazione di una regola separata del listener per il traffico di test che instrada verso il gruppo di destinazione del test.
- Regola del listener di test mancante per un Network Load Balancer
-
Messaggio di errore:
TestListenerRule is required for NLB with arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/nlb-targetgroup/abc123Soluzione: quando si utilizza un Network Load Balancer, è necessario specificare sia
productionListenerRulechetestListenerRule. Aggiungere untestListenerRulecon un ARN del listener valido alla configurazione. Per ulteriori informazioni, consultare Create a listener for your Network Load Balancer nella Guida per l'utente di Network Load Balancer - Gruppo di destinazione non associato alle regole del listener
-
Messaggio di errore:
Service deployment rolled back because of invalid networking configuration: Target group arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/myAlternateTG/abc123 is not associated with either productionListenerRule or testListenerRule.Soluzione: sia il gruppo di destinazione principale che il gruppo di destinazione alternativo devono essere associati alla regola del listener di produzione o alla regola del listener di test. Aggiornare la configurazione del bilanciatore del carico per assicurarsi che entrambi i gruppi di destinazione siano associati correttamente alle regole del listener.
- Regola del listener di test mancante con un Application Load Balancer
-
Messaggio di errore:
For Application LoadBalancer, testListenerRule is required when productionListenerRule is not associated with both targetGroup and alternateTargetGroupSoluzione: quando si utilizza un Application Load Balancer, se entrambi i gruppi di destinazione non sono associati alla regola del listener di produzione, è necessario specificare una regola del listener di test. Aggiungere una
testListenerRulealla configurazione e assicurarsi che entrambi i gruppi di destinazione siano associati alla regola del listener di produzione o di test. Per ulteriori informazioni, consultare Listeners for your Application Load Balancers nella Guida per l'utente di Application Load Balancer.
Errori di configurazione dei gruppi di destinazione
I seguenti problemi si riferiscono alla configurazione errata del gruppo target per le distribuzioni. blue/green
- Gruppi di destinazione multipli con traffico nella regola del listener
-
Messaggio di errore:
Service deployment rolled back because of invalid networking configuration. productionListenerRule arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-alb/abc123/def456/ghi789 should have exactly one target group serving traffic but found 2 target groups which are serving trafficSoluzione: prima di iniziare una blue/green distribuzione, assicurati che solo un gruppo target riceva traffico (con un peso diverso da zero) secondo la regola del listener. Aggiornare la configurazione della regola del listener per impostare il peso su zero per qualsiasi gruppo di destinazione che non dovrebbe ricevere traffico.
- Duplicare i gruppi di destinazione tra le voci del bilanciatore del carico
-
Messaggio di errore:
Duplicate targetGroupArn found: arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/myecs-targetgroup/abc123Soluzione: ogni ARN del gruppo di destinazione deve essere univoco per tutte le voci del bilanciatore del carico nella definizione del servizio. Rivedere la configurazione e assicurarsi di utilizzare gruppi di destinazione diversi per ogni voce del bilanciatore del carico.
- Gruppo di destinazione imprevisto nella regola del listener di produzione
-
Messaggio di errore:
Service deployment rolled back because of invalid networking configuration. Production listener rule is forwarding traffic to unexpected target group arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/random-nlb-tg/abc123. Expected traffic to be forwarded to either targetGroupArn: arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/nlb-targetgroup/def456 or alternateTargetGroupArn: arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/nlb-tg-alternate/ghi789Soluzione: la regola del listener di produzione inoltra il traffico a un gruppo di destinazione non specificato nella definizione del servizio. Assicurarsi che la regola del listener sia configurata per inoltrare il traffico solo ai gruppi di destinazione specificati nella definizione del servizio.
Per ulteriori informazioni, consultare forward actions nella Guida per l'utente per Application Load Balancer.
Errori di configurazione del tipo di bilanciatore del carico
I seguenti problemi riguardano una configurazione errata del tipo di sistema di bilanciamento del carico per le distribuzioni. blue/green
- Combinare configurazioni di Classic Load Balancer, Application Load Balancer o Network Load Balancer.
-
Messaggio di errore:
All loadBalancers must be strictly either ELBv1 (defining loadBalancerName) or ELBv2 (defining targetGroupArn)Nota
I Classic Load Balancer sono la generazione precedente di bilanciatori del carico dal bilanciamento del carico elastico. Consigliamo di eseguire la migrazione a un bilanciatore del carico di generazione attuale. Per ulteriori informazioni, consultare Migrate your Classic Load Balancer.
Soluzione:. Utilizzare tutti Classic Load Balancer o tutti Application Load Balancer e Network Load Balancer.
Per Application Load Balancer e Network Load Balancer, specificare solo il campo
targetGroupArn. - Utilizzo della configurazione avanzata con un Classic Load Balancer
-
Messaggio di errore:
advancedConfiguration field is not allowed with ELBv1 loadBalancersSoluzione: la configurazione avanzata per le blue/green implementazioni è supportata solo con Application Load Balancer e Network Load Balancer. Se si utilizza un Classic Load Balancer (specificato con
loadBalancerName), non è possibile utilizzare il campoadvancedConfiguration. Passare a un Application Load Balancer o rimuovere il campoadvancedConfiguration. - Configurazione avanzata incoerente tra i bilanciatori del carico
-
Messaggio di errore:
Either all or none of the provided loadBalancers must have advancedConfiguration definedSoluzione: se si utilizzano più bilanciatori del carico, è necessario definire
advancedConfigurationper tutti o nessuno. Aggiornare la configurazione per garantire la coerenza tra tutte le voci del bilanciatore del carico. - Manca blue/green la configurazione avanzata con distribuzione
-
Messaggio di errore:
advancedConfiguration field is required for all loadBalancers when using a non-ROLLING deployment strategySoluzione: quando si utilizza una strategia di blue/green distribuzione con Application Load Balancers, è necessario specificare il
advancedConfigurationcampo per tutte le voci relative al load balancer. Aggiungere la necessariaadvancedConfigurationalla configurazione del bilanciatore del carico.
Problemi a livello di autorizzazioni
I seguenti problemi riguardano le autorizzazioni insufficienti per le distribuzioni. blue/green
- Policy di attendibilità mancante sul ruolo dell'infrastruttura
-
Messaggio di errore:
Service deployment rolled back because of invalid networking configuration. ECS was unable to manage the ELB resources due to missing permissions on ECS Infrastructure Role 'arn:aws:iam::123456789012:role/Admin'.Soluzione: il ruolo IAM specificato per la gestione delle risorse del bilanciatore del carico non dispone della policy di attendibilità corretta. Aggiornare la policy di attendibilità del ruolo per consentire al servizio di assumere tale ruolo. La policy di attendibilità deve includere:
- Autorizzazioni di lettura mancanti per il ruolo di bilanciatore del carico
-
Messaggio di errore:
service myService failed to describe target health on target-group myTargetGroup with (error User: arn:aws:sts::123456789012:assumed-role/myELBRole/ecs-service-scheduler is not authorized to perform: elasticloadbalancing:DescribeTargetHealth because no identity-based policy allows the elasticloadbalancing:DescribeTargetHealth action)Soluzione: il ruolo IAM utilizzato per la gestione delle risorse del bilanciatore del carico non è autorizzato a leggere le informazioni di integrità della destinazione. Aggiungere l'autorizzazione
elasticloadbalancing:DescribeTargetHealthalla policy del ruolo. Per informazioni sulle autorizzazioni di bilanciamento del carico elastico, consultare Ruolo IAM dell'infrastruttura Amazon ECS per i bilanciatori del carico. - Autorizzazioni di scrittura mancanti sul ruolo di bilanciatore del carico
-
Messaggio di errore:
service myService failed to register targets in target-group myTargetGroup with (error User: arn:aws:sts::123456789012:assumed-role/myELBRole/ecs-service-scheduler is not authorized to perform: elasticloadbalancing:RegisterTargets on resource: arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/myTargetGroup/abc123 because no identity-based policy allows the elasticloadbalancing:RegisterTargets action)Soluzione: il ruolo IAM utilizzato per la gestione delle risorse del bilanciatore del carico non dispone dell'autorizzazione per registrare le destinazioni. Aggiungere l'autorizzazione
elasticloadbalancing:RegisterTargetsalla policy del ruolo. Per informazioni sulle autorizzazioni di bilanciamento del carico elastico, consultare Ruolo IAM dell'infrastruttura Amazon ECS per i bilanciatori del carico. - Autorizzazione mancante per modificare le regole del listener
-
Messaggio di errore:
Service deployment rolled back because TEST_TRAFFIC_SHIFT lifecycle hook(s) failed. User: arn:aws:sts::123456789012:assumed-role/myELBRole/ECSNetworkingWithELB is not authorized to perform: elasticloadbalancing:ModifyListener on resource: arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-alb/abc123/def456 because no identity-based policy allows the elasticloadbalancing:ModifyListener actionSoluzione: il ruolo IAM utilizzato per la gestione delle risorse del bilanciatore del carico non dispone dell'autorizzazione per modificare i listener. Aggiungere l'autorizzazione
elasticloadbalancing:ModifyListeneralla policy del ruolo. Per informazioni sulle autorizzazioni di bilanciamento del carico elastico, consultare Ruolo IAM dell'infrastruttura Amazon ECS per i bilanciatori del carico.
Per le blue/green distribuzioni, si consiglia di allegare la policy AmazonECS-ServiceLinkedRolePolicy gestita al proprio ruolo di infrastruttura, che include tutte le autorizzazioni necessarie per la gestione delle risorse di bilanciamento del carico.
Problemi relativi agli hook del ciclo di vita
I seguenti problemi riguardano gli agganci del ciclo di vita nelle distribuzioni. blue/green
- Policy di attendibilità errata sul ruolo degli hook di Lambda
-
Messaggio di errore:
Service deployment rolled back because TEST_TRAFFIC_SHIFT lifecycle hook(s) failed. ECS was unable to assume role arn:aws:iam::123456789012:role/AdminSoluzione: il ruolo IAM specificato per l'hook del ciclo di vita di Lambda non dispone della policy di attendibilità corretta. Aggiornare la policy di attendibilità del ruolo per consentire al servizio di assumerlo. La policy di attendibilità deve includere:
- L'hook di Lambda restituisce lo stato FAILED
-
Messaggio di errore:
Service deployment rolled back because TEST_TRAFFIC_SHIFT lifecycle hook(s) failed. Lifecycle hook target arn:aws:lambda:us-west-2:123456789012:function:myHook returned FAILED status.Soluzione: la funzione Lambda specificata come hook del ciclo di vita ha restituito lo stato FAILED. Controlla i log delle funzioni Lambda nei log di Amazon CloudWatch per determinare il motivo dell'errore e aggiorna la funzione per gestire correttamente l'evento di distribuzione.
- Autorizzazione mancante per invocare la funzione Lambda
-
Messaggio di errore:
Service deployment rolled back because TEST_TRAFFIC_SHIFT lifecycle hook(s) failed. ECS was unable to invoke hook target arn:aws:lambda:us-west-2:123456789012:function:myHook due to User: arn:aws:sts::123456789012:assumed-role/myLambdaRole/ECS-Lambda-Execution is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:us-west-2:123456789012:function:myHook because no identity-based policy allows the lambda:InvokeFunction actionSoluzione: il ruolo IAM utilizzato per l'hook del ciclo di vita di Lambda non dispone dell'autorizzazione per invocare la funzione Lambda. Aggiungere l'autorizzazione
lambda:InvokeFunctionalla policy del ruolo per l'ARN della funzione Lambda specifica. Per informazioni sulle autorizzazioni Lambda, consultare Autorizzazioni richieste per le funzioni Lambda nelle distribuzioni Amazon ECS blue/green . - Timeout della funzione Lambda o risposta non valida
-
Messaggio di errore:
Service deployment rolled back because TEST_TRAFFIC_SHIFT lifecycle hook(s) failed. ECS was unable to parse the response from arn:aws:lambda:us-west-2:123456789012:function:myHook due to HookStatus must not be nullSoluzione: la funzione Lambda è scaduta o ha restituito una risposta non valida. Assicurarsi che la funzione Lambda restituisca una risposta valida con un campo
hookStatusimpostato suSUCCEEDEDoFAILED. Inoltre, verificare che il timeout della funzione Lambda sia impostato in modo appropriato per la logica di convalida. Per ulteriori informazioni, consultare Hook del ciclo di vita per le implementazioni di servizi Amazon ECS.Esempio di una risposta Lambda valida:
{ "hookStatus": "SUCCEEDED", "reason": "Validation passed" }