Come posso risolvere l’errore “Eccezione di convalida della configurazione” in Elastic Beanstalk?
Ricevo l’errore “Eccezione di convalida della configurazione” quando aggiorno o eseguo la distribuzione nel mio ambiente AWS Elastic Beanstalk.
Breve descrizione
Questo errore si verifica quando Elastic Beanstalk rileva un riferimento a una risorsa eliminata o non disponibile, un valore di configurazione non supportato o una combinazione di configurazione incompatibile. Identifica il Namespace e l’OptionName nel messaggio di errore, quindi risolvi il problema in base al messaggio di errore che ricevi.
Risoluzione
Nota: Se ricevi errori quando esegui i comandi dell’Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Rimuovi un riferimento AMI eliminato
Tutte le Amazon Machine Images (AMI) a cui fa riferimento la configurazione dell’ambiente devono esistere ed essere disponibili nella regione AWS. Se l’AMI personalizzata non esiste o non è disponibile, viene visualizzato il seguente messaggio di errore:
“Eccezione di convalida della configurazione: Impossibile cercare il nome del dispositivo root per l’immagine 'ami-########'”
Per rimuovere il riferimento AMI non valido e utilizzare l’AMI predefinita della piattaforma, esegui il seguente comando AWS CLI update-environment:
aws elasticbeanstalk update-environment \ --environment-name my-env \ --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=ImageId \ --region us-east-1
Nota: Sostituisci my-env con il nome dell’ambiente e us-east-1 con la regione.
Oppure, per aggiornare l’ambiente con un’altra AMI valida, esegui il seguente comando update-environment:
aws elasticbeanstalk update-environment \ --environment-name my-env \ --option-settings Namespace=aws:autoscaling:launchconfiguration,OptionName=ImageId,Value=ami-0123456789abcdef0 \ --region us-east-1
Nota: Sostituisci my-env con il nome dell’ambiente, ami-0123456789abcdef0 con un ID AMI valido per la versione della piattaforma e us-east-1 con la regione.
Sostituisci un gruppo di sicurezza eliminato
I gruppi di sicurezza devono trovarsi nello stesso cloud privato virtuale (VPC) dell’ambiente. Se il gruppo di sicurezza a cui si fa riferimento nella configurazione dell’ambiente non esiste più nel VPC, viene visualizzato il seguente messaggio di errore:
“Eccezione di convalida della configurazione: Valore dell’opzione non valido: 'sg-########' (Namespace: 'aws:autoscaling:launchconfiguration', OptionName: 'SecurityGroups'): Il gruppo di sicurezza 'sg-########' non esiste”
Per rimuovere il riferimento al gruppo di sicurezza non valido, esegui il seguente comando update-environment:
aws elasticbeanstalk update-environment \ --environment-name my-env \ --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=SecurityGroups \ --region us-east-1
Nota: Sostituisci my-env con il nome dell’ambiente e us-east-1 con la regione.
Oppure, per sostituire il nuovo gruppo di sicurezza con un gruppo di sicurezza specifico nello stesso VPC dell’ambiente, esegui il seguente comando update-environment:
aws elasticbeanstalk update-environment \ --environment-name my-env \ --option-settings Namespace=aws:autoscaling:launchconfiguration,OptionName=SecurityGroups,Value=sg-0123456789abcdef0 \ --region us-east-1
Nota: Sostituisci my-env con il nome dell’ambiente, sg-0123456789abcdef0 con l’ID del gruppo di sicurezza e us-east-1 con la regione.
Aggiorna una versione non supportata del motore di database
Se la versione del motore di database specificata non è più disponibile o non è valida per il tipo di motore selezionato, viene visualizzato il seguente messaggio di errore:
“Eccezione di convalida della configurazione: Valore dell’opzione non valido: '16.1' (Namespace: 'aws:rds:dbinstance', OptionName: 'DBEngineVersion'): La versione 16.1 del motore non è supportata per postgres db”
Per verificare le versioni del motore disponibili in Amazon Relational Database Service (Amazon RDS), esegui il seguente comando describe-db-engine-versions:
aws rds describe-db-engine-versions \ --engine postgres \ --query "DBEngineVersions[].EngineVersion" \ --region us-east-1
Nota: Sostituisci postgres con il motore di database e us-east-1 con la regione.
Quindi, esegui il seguente comando update-environment per eseguire l’aggiornamento a una versione supportata:
aws elasticbeanstalk update-environment \ --environment-name my-env \ --option-settings Namespace=aws:rds:dbinstance,OptionName=DBEngineVersion,Value=16.4 \ --region us-east-1
Nota: Sostituisci my-env con il nome dell’ambiente, 16.4 con una versione del motore supportata e us-east-1 con la regione.
Risolvi la mancata corrispondenza della disponibilità del tipo di istanza Amazon EC2 o dell’architettura
Devi utilizzare un tipo di istanza Amazon Elastic Compute Cloud (Amazon EC2) supportato dalla configurazione. Se utilizzi un tipo di istanza non disponibile, viene visualizzato uno dei seguenti messaggi di errore:
“Eccezione di convalida della configurazione: Specificazione dell’opzione non valida (Namespace: 'aws:ec2:instances', OptionName: 'InstanceTypes'): I tipi di istanza selezionati non sono disponibili nelle sottoreti VPC selezionate.”
“Eccezione di convalida della configurazione: Specificazione dell’opzione non valida (Namespace: 'aws:ec2:instances', OptionName: 'InstanceTypes'): I tipi di istanza scelti non sono validi per i tipi di architettura designati: [arm64].”
Per risolvere questo problema, passa a un tipo di istanza supportato. Oppure, aggiorna le sottoreti dell’ambiente alle zone di disponibilità che supportano il tipo di istanza.
Per risolvere le discrepanze dell’architettura, esegui il seguente comando update-environment per aggiornare sia il tipo di istanza sia le impostazioni dell’architettura:
aws elasticbeanstalk update-environment \ --environment-name my-env \ --option-settings \ Namespace=aws:ec2:instances,OptionName=SupportedArchitectures,Value=x86_64 \ Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t3.medium \ --region us-east-1
Nota: Sostituisci my-env con il nome dell’ambiente, x86_64 con l’architettura di destinazione, t3.medium con il tipo di istanza di destinazione e us-east-1 con la regione.
Risolvi gli errori di configurazione del bilanciatore del carico condiviso
Se sono presenti problemi di configurazione del bilanciatore del carico, viene visualizzato uno dei seguenti messaggi di errore:
“Eccezione di convalida della configurazione: Il bilanciatore del carico specificato è stato creato da Elastic Beanstalk per un ambiente diverso. Specifica un bilanciatore del carico creato nella console Amazon EC2.”
“Eccezione di convalida della configurazione: L’opzione di tipo LoadBalancer non può essere modificata.”
Se l’errore fa riferimento a un bilanciatore del carico creato da Elastic Beanstalk, crea manualmente un nuovo Application Load Balancer. Quindi, aggiorna la configurazione dell'ambiente in modo che faccia riferimento al nome della risorsa Amazon (ARN) del nuovo bilanciatore del carico.
Nota: Non utilizzare un bilanciatore del carico con il prefisso awseb-. Elastic Beanstalk gestisce gli Application Load Balancer con il prefisso awseb-.
Se l’errore indica che il tipo di bilanciatore del carico non può essere modificato, crea un nuovo ambiente. Usa la configurazione dell’ambiente esistente con un nuovo bilanciatore del carico.
Rimuovi le opzioni di configurazione sconosciute o obsolete
Se un’opzione di configurazione non esiste nella versione della piattaforma esistente, viene visualizzato il seguente messaggio di errore:
“Eccezione di convalida della configurazione: Specificazione dell’opzione non valida (Namespace: 'aws:autoscaling:launchconfiguration', OptionName: 'PlacementTenancy'): Impostazione di configurazione sconosciuta.”
Questo problema si verifica quando una configurazione salvata o un file .ebextensions fa riferimento a opzioni di una versione precedente della piattaforma.
Per rimuovere l’opzione non valida, esegui il seguente comando update-environment:
aws elasticbeanstalk update-environment \ --environment-name my-env \ --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=PlacementTenancy \ --region us-east-1
Nota: Sostituisci my-env con il nome dell’ambiente, aws:autoscaling:launchconfiguration con il namespace nel messaggio di errore, PlacementTenancy con l’opzione nel messaggio di errore e us-east-1 con la regione.
Per le opzioni di piattaforma ritirate come WSGIPath o NodeCommand, esegui la migrazione all’approccio equivalente per la piattaforma attuale. Per Python, usa un Procfile invece di WSGIPath. Per Node.js, usa un Procfile invece di NodeCommand.
Risolvi gli errori del VPC o della sottorete
Se la configurazione dell’ambiente fa riferimento a una sottorete eliminata o non disponibile, viene visualizzato uno dei seguenti messaggi di errore:
“Eccezione di convalida della configurazione: Valore dell’opzione non valido: 'subnet-########' (Namespace: 'aws:ec2:vpc', OptionName: 'ELBSubnets'): La sottorete 'subnet-########' non esiste.”
“Eccezione di convalida della configurazione: L’ID VPC 'vpc-########' non può essere aggiornato.”
Le sottoreti devono trovarsi nello stesso VPC dell’ambiente. Per aggiornare la sottorete dell’ambiente, esegui il seguente comando update-environment:
aws elasticbeanstalk update-environment \ --environment-name my-env \ --option-settings \ Namespace=aws:ec2:vpc,OptionName=Subnets,Value=subnet-aaaa1111,subnet-bbbb2222 \ Namespace=aws:ec2:vpc,OptionName=ELBSubnets,Value=subnet-cccc3333,subnet-dddd4444 \ --region us-east-1
Nota: Sostituisci my-env con il nome dell’ambiente, subnet-aaaa1111 e subnet-bbbb2222 con gli ID delle sottoreti e us-east-1 con la regione.
Se l’errore indica che il VPC non può essere aggiornato, crea un nuovo ambiente nel VPC di destinazione. Se necessario, aggiorna i CNAME dell’ambiente.
Risolvi altri errori di convalida della configurazione
Se hai ricevuto un tipo diverso di messaggio di errore “Convalida della configurazione”, completa i seguenti passaggi per risolvere il problema:
- Identifica il Namespace e l’OptionName dal messaggio di errore.
- Verifica se la risorsa a cui si fa riferimento esiste. Ad esempio, controlla l’AMI, il gruppo di sicurezza, la sottorete o il bilanciatore del carico.
- Esegui il comando update-environment con il parametro --options-to-remove per rimuovere le opzioni non valide.
- Se l’ambiente è in uno stato non valido e non consente aggiornamenti, controlla lo stato dello stack AWS CloudFormation sottostante.
Informazioni correlate
Opzioni generali per tutti gli ambienti
Migrazione dell’ambiente Elastic Beanstalk ai modelli di avvio
- Argomenti
- Compute
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata 2 anni fa