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 dell'ambiente Elastic Beanstalk
Questo capitolo fornisce indicazioni per la risoluzione dei problemi con l'ambiente Elastic Beanstalk. Il file fornisce le informazioni seguenti.
-
Un'introduzione allo strumento AWS Systems Manager, oltre a una procedura per eseguire un runbook Elastic Beanstalk predefinito che fornisce passaggi e consigli per la risoluzione dei problemi.
-
Indicazioni generali sulle operazioni da intraprendere e sulle risorse da visualizzare in caso di peggioramento dello stato dell'ambiente.
-
Suggerimenti più specifici per la risoluzione dei problemi per categoria tematica.
Nota
Se lo stato dell'ambiente diventa rosso, ti consigliamo di utilizzare prima lo strumento AWS Systems Manager che include i runbook predefiniti per risolvere i problemi di Elastic Beanstalk. Per ulteriori informazioni, consulta la Utilizzo dello strumento Systems Manager.
Argomenti
Utilizzo dei AWS Systems Manager runbook Elastic Beanstalk
Puoi utilizzare Systems Manager per risolvere i problemi degli ambienti Elastic Beanstalk. Per aiutarti a iniziare rapidamente, Systems Manager fornisce runbook di automazione predefiniti per Elastic Beanstalk. Un runbook di automazione è un tipo di documento di Systems Manager che definisce le operazioni da eseguire sulle istanze dell'ambiente e su altre risorse AWS .
Il documento AWSSupport-TroubleshootElasticBeanstalk
è un runbook di automazione progettato per contribuire a identificare una serie di problemi comuni che possono degradare l'ambiente Elastic Beanstalk. A tal fine, controlla i componenti dell'ambiente, tra cui: EC2 istanze, VPC, stack, load balancer AWS CloudFormation , gruppi di Auto Scaling e configurazione di rete associata alle regole dei gruppi di sicurezza, tabelle di routing e. ACLs
Fornisce inoltre un'opzione per caricare file di log in bundle dal tuo ambiente al Supporto AWS .
Per ulteriori informazioni, consulta AWSSupport-TroubleshootElasticBeanstalk
in Documentazione di riferimento del runbook di AWS Systems Manager
Automation.
Utilizzo di Systems Manager per eseguire il runbook AWSSupport-TroubleshootElasticBeanstalk
Nota
Esegui questa procedura nello stesso Regione AWS luogo in cui si trova l'ambiente Elastic Beanstalk.
-
Aprire la console AWS Systems Manager
. -
Nel riquadro di navigazione a sinistra, nella sezione Gestione delle modifiche, scegli Automazione.
-
Scegliere Esegui automazione.
-
Nella scheda Proprietà di Amazon, nella casella di ricerca Documenti di automazione inserisci
AWSSupport-TroubleshootElasticBeanstalk
. -
Seleziona la AWSSupport-TroubleshootElasticBeanstalkscheda, quindi scegli Avanti.
-
Seleziona Esegui.
-
Nella sezione Parametri di input:
-
Dal menu a AutomationAssumeRolediscesa, seleziona l'ARN del ruolo che consente a Systems Manager di eseguire azioni per tuo conto.
-
Per ApplicationName, inserisci il nome dell'applicazione Elastic Beanstalk.
-
In Nome dell'ambiente, inserisci l'ambiente Elastic Beanstalk.
-
(Facoltativo) Per S3 UploaderLink, inserisci un link se un AWS Support Engineer ti ha fornito un link S3 per la raccolta dei log.
-
-
Scegli Execute (Esegui).
Se uno dei passaggi non riesce, seleziona il link sotto la colonna ID fase per il passaggio non riuscito. Viene visualizzata una pagina con i Dettagli dell'esecuzione per il passaggio. La VerificationErrorMessagesezione mostrerà un riepilogo dei passaggi che richiedono attenzione. Ad esempio,
IAMPermissionCheck
potrebbe visualizzare un messaggio di avviso. In questo caso, puoi verificare che il ruolo selezionato nel menu a AutomationAssumeRolediscesa disponga delle autorizzazioni necessarie.
Dopo avere completato con successo tutti i passaggi, l'output fornisce i passaggi per la risoluzione dei problemi e i consigli per ripristinare lo stato di integrità dell'ambiente.
Guida generale per la risoluzione dei problemi dell'ambiente Elastic Beanstalk
I messaggi di errore possono essere visualizzati nella pagina Eventi della console, nei log o nella pagina dello stato. È inoltre possibile intraprendere azioni per ripristinare un ambiente danneggiato in seguito a una modifica recente. Se lo stato dell'ambiente passa al rosso, prova a fare quanto segue:
-
Se un'operazione sul tuo ambiente restituisce un errore contenente il testo
The stack
, consulta Ripristino dell'ambiente Elastic Beanstalk da uno stato non valido la sezione per una guida alla risoluzione dei problemi.
associated with environmentstack_id
is inenvironment-ID
statestack-status
-
Se un'operazione sull'ambiente restituisce un errore che contiene il testo
Environment
, chiudi l'ambiente e creane un altro.environment-name
associated CloudFormation stackstack_arn
does not exist -
Esamina gli eventi più recenti dell'ambiente. Spesso qui vengono visualizzati i messaggi di Elastic Beanstalk relativi alla distribuzione, al caricamento e ai problemi di configurazione.
-
Rivedi la cronologia delle modifiche recenti dell'ambiente. La cronologia delle modifiche elenca tutte le modifiche di configurazione apportate ai tuoi ambienti e include altre informazioni, ad esempio quale utente IAM ha apportato modifiche e quali parametri di configurazione sono stati impostati.
-
Esegui il pull dei log per visualizzare le voci recenti del file di log. I log del server Web contengono informazioni sugli errori e sulle richieste in entrata.
-
Connettiti a un'istanza e controlla le risorse di sistema.
-
Esegui il roll back a una versione precedente e funzionante dell'applicazione.
-
Annulla le modifiche di configurazione recenti o ripristina una configurazione salvata.
-
Distribuisci un nuovo ambiente. Se l'ambiente sembra integro, esegui uno scambio di CNAME per instradare il traffico verso il nuovo ambiente e continuare a eseguire il debug di quello precedente.
Ambienti che accedono a segreti e parametri con variabili di ambiente
Evento: la distribuzione dell'istanza non è riuscita a ottenere uno o più segreti
Questo messaggio indica che Elastic Beanstalk non è stato in grado di recuperare uno o più segreti specificati durante la distribuzione dell'applicazione.
-
Verifica che le risorse specificate dai valori ARN nella configurazione della variabile di ambiente esistano.
-
Verifica che il ruolo del profilo dell'istanza EC2 Elastic Beanstalk disponga delle autorizzazioni IAM necessarie per accedere alle risorse.
-
Se questo evento è stato attivato dall'
RestartAppServer
operazione, una volta risolto il problema, riprova a effettuare laRestartAppServer
chiamata per risolverlo. -
Se l'evento è stato attivato tramite una
UpdateEnvironment
chiamata, riprova l'operazione.UpdateEnvironment
Per esempi di questi comandi, vedi AWS CLI esempi per Elastic Beanstalk. Per ulteriori informazioni sulle azioni API per queste operazioni, consulta l'AWS Elastic Beanstalk API Reference.
Evento: la distribuzione dell'istanza ha rilevato uno o più valori di ambiente multilinea, che non sono supportati per questa piattaforma
Le variabili multilinea non sono supportate per le piattaforme Amazon Linux 2, escluse le piattaforme Docker e Docker gestite da ECS. Per le opzioni disponibili per procedere, consulta. Valori multilinea
Evento: CreateEnvironment fallisce quando viene specificato un segreto
In caso di CreateEnvironment
errore e si dispone di segreti come variabili di ambiente, è necessario risolvere il problema sottostante e quindi UpdateEnvironment
utilizzarlo per completare la configurazione dell'ambiente. Non utilizzarloRestartAppServer
, poiché non sarà sufficiente a far apparire l'ambiente in questa situazione. Per esempi di questi comandi, vedi AWS CLI esempi per Elastic Beanstalk. Per ulteriori informazioni sulle azioni API per queste operazioni, consulta l'AWS Elastic Beanstalk API Reference.
Creazione dell'ambiente e avvii di istanze
Evento: Impossibile avviare l'ambiente
Questo evento si verifica quando Elastic Beanstalk tenta di avviare un ambiente e incontra delle operazioni non riuscite durante il percorso. Gli eventi precedenti nella pagina Events (Eventi) contribuiranno a definire la causa alla base di questo problema.
Evento: l'operazione di creazione dell'ambiente è completa, ma con timeout del comando. Prova ad aumentare la durata del timeout.
L'applicazione potrebbe richiedere molto tempo per la distribuzione se utilizzi i file di configurazione che eseguono i comandi sull'istanza, scarichi file di grandi dimensioni o installi pacchetti. Aumenta il timeout del comando per dare più tempo alla tua applicazione di avviare l'esecuzione durante le distribuzioni.
Evento: Impossibile creare le seguenti risorse: [AWSEBInstanceLaunchWaitCondition]
Questo messaggio indica che le EC2 istanze Amazon del tuo ambiente non hanno comunicato a Elastic Beanstalk di essere state avviate correttamente. Questa situazione può verificarsi se le istanze non dispongono di una connessione a Internet. Se hai configurato l'ambiente per avviare istanze in una sottorete privata del VPC, verifica che la sottorete abbia un NAT per consentire alle istanze di connettersi a Elastic Beanstalk.
Evento: in questa regione è obbligatorio un ruolo di servizio. Aggiungi un'opzione di ruolo di servizio all'ambiente.
Elastic Beanstalk utilizza un ruolo di servizio per monitorare le risorse nell'ambiente e supportare aggiornamenti gestiti della piattaforma. Per ulteriori informazioni, consulta Gestione dei ruoli del servizio Elastic Beanstalk.
Distribuzioni
Problema: l'applicazione non è più disponibile durante le distribuzioni
Poiché Elastic Beanstalk utilizza un processo di aggiornamento drop-in, potrebbero verificarsi alcuni secondi di inattività. Utilizza le distribuzioni in sequenza per minimizzare l'effetto delle distribuzioni nei tuoi ambienti di produzione.
Evento: creazione della versione dell'applicazione AWS Elastic Beanstalk non riuscita
Il bundle di origine dell'applicazione può essere troppo grande o potrebbe aver raggiunto la quota della versione dell'applicazione.
Evento: l'operazione di aggiornamento dell'ambiente è completa, ma con timeout del comando. Prova ad aumentare la durata del timeout.
L'applicazione potrebbe richiedere molto tempo per la distribuzione se utilizzi i file di configurazione che eseguono i comandi sull'istanza, scarichi file di grandi dimensioni o installi pacchetti. Aumenta il timeout del comando per dare più tempo alla tua applicazione di avviare l'esecuzione durante le distribuzioni.
Integrità
Evento: l'utilizzo della CPU supera il 95,00%
Prova a eseguire più istanze oppure scegli un altro tipo di istanza.
Evento: Elastic Load Balancer awseb- myapp
Non ha istanze integre
Se la tua applicazione sembra sia attiva, verifica che l'URL del controllo dello stato dell'applicazione sia configurato correttamente. In caso contrario, controlla la schermata di controllo dello stato e i log dell'ambiente per ulteriori informazioni.
Evento: Elastic Load Balancer awseb- Impossibile trovare myapp
Il sistema di bilanciamento del carico dell'ambiente potrebbe essere stato rimosso. out-of-band Apporta modifiche alle risorse dell'ambiente solo con le opzioni di configurazione e l'estensibilità fornite da Elastic Beanstalk. Ricrea l'ambiente o avviane uno nuovo.
Evento: errore di avvio dell'EC2 istanza. In attesa del lancio di una nuova EC2 istanza...
La disponibilità di tipi di istanze per il tuo ambiente potrebbe essere ridotta oppure potresti aver raggiunto la quota di istanze per il tuo account. Controlla la dashboard dello stato del servizio
Configurazione
Evento: lo stack
associato all'ambiente stack_id
è in stato environment-ID
stack-status
Lo AWS CloudFormation stack sottostante dell'ambiente potrebbe trovarsi nello stato *_FAILED. È necessario correggere questo stato per continuare le operazioni di Elastic Beanstalk nell'ambiente. Per ulteriori informazioni, consulta Ripristino dell'ambiente Elastic Beanstalk da uno stato non valido.
Evento: non puoi configurare un ambiente Elastic Beanstalk con valori sia per l'opzione Target (Destinazione) che per l'opzione Application Healthcheck URL (URL controllo dello stato applicazione) di Elastic Load Balancing.
L'opzione Target
nello spazio dei nomi aws:elb:healthcheck
è obsoleta. Rimuovi lo spazio dei nomi dell'opzione Target
dal tuo ambiente e riprova l'aggiornamento.
Evento: ELB non può essere collegato a più sottoreti nella stessa AZ
Questo messaggio può essere restituito se tenti di spostare un sistema di bilanciamento del carico tra sottoreti nella stessa zona di disponibilità. La modifica di sottoreti nel sistema di bilanciamento del carico ne richiede lo spostamento al di fuori delle zone di disponibilità d'origine e quindi la reintegrazione nella zona di disponibilità d'origine con le sottoreti desiderate. Durante il processo, tutte le istanze verranno migrate da una all'altra AZs, causando tempi di inattività significativi. Valuta quindi la possibilità di creare un nuovo ambiente ed esegui uno scambio di CNAME.
Risoluzione dei problemi dei container Docker
Evento: estrazione dell'immagine Docker non riuscita :latest: nome del repository non valido (), sono consentiti soltanto i caratteri [a-z0-9-_.]. Consulta i log per ulteriori dettagli.
Controlla la sintassi del file dockerrun.aws.json
utilizzando un convalidatore JSON. Inoltre verifica il contenuto del dockerfile rispetto ai requisiti descritti in Preparazione dell'immagine Docker per la distribuzione su Elastic Beanstalk
Evento: No EXPOSE directive found in Dockerfile, abort deployment
Il Dockerfile
o il file dockerrun.aws.json
non dichiara la porta del container. Utilizza l'istruzione EXPOSE
(Dockerfile
) o il blocco Ports
(file dockerrun.aws.json
) per esporre una porta per il traffico in entrata.
Evento: Impossibile scaricare le credenziali di autenticazione da repository
bucket name
dockerrun.aws.json
Fornisce un bucket and/or S3 di EC2 key pair non valido per il file. .dockercfg
Oppure, il profilo dell'istanza non dispone GetObject dell'autorizzazione per il bucket S3. Verifica che il .dockercfg
file contenga un bucket S3 e una EC2 key pair validi. Concedi le autorizzazioni per l'operazione s3:GetObject
al ruolo IAM nel profilo dell'istanza. Per i dettagli, vedi Gestione dei profili dell'istanza Elastic Beanstalk
Evento: Activity execution failed, because: WARNING: Invalid auth configuration file
Il file di autenticazione (config.json
) non è formattato correttamente. Per informazioni, consultare Utilizzo di immagini da un archivio privato in Elastic Beanstalk.
Domande frequenti
Domanda: Come posso modificare l'URL della mia applicazione da myapp.us-west-2.elasticbeanstalk.com a www.myapp.com?
In un server DNS, registra un record CNAME, ad esempio www.mydomain.com CNAME
mydomain.elasticbeanstalk.com
.
Domanda: Come si specifica la zona di disponibilità per l'applicazione Elastic Beanstalk?
Puoi scegliere una zona di disponibilità specifica utilizzando il plug-in CLI APIs, Eclipse o Visual Studio. Per istruzioni su come usare la console Elastic Beanstalk per specificare una zona di disponibilità, consulta Auto Scaling delle istanze dell'ambiente Elastic Beanstalk.
Domanda: Come posso modificare il tipo di istanza del mio ambiente?
Per modificare il tipo di istanza dell'ambiente, vai alla pagina di configurazione dell'ambiente e scegli Edit (Modifica) nella categoria di configurazione Instances (Istanze). Quindi, seleziona un nuovo tipo di istanza e scegli Apply (Applica) per aggiornare l'ambiente. Successivamente, Elastic Beanstalk terminerà tutte le istanze in esecuzione e le sostituirà con quelle nuove.
Domanda: Come posso verificare se qualcuno ha apportato modifiche alla configurazione di un ambiente?
Per visualizzare queste informazioni, nel riquadro di navigazione della console Elastic Beanstalk scegli Change history (Cronologia delle modifiche) per visualizzare un elenco delle modifiche alla configurazione per tutti gli ambienti. Questo elenco include la data e l'ora della modifica, il parametro di configurazione modificato e il nuovo valore, nonché l'utente IAM che ha apportato la modifica. Per ulteriori informazioni, consulta Change history (Cronologia delle modifiche).
Domanda: È possibile evitare che i volumi Amazon EBS vengano eliminati quando le istanze vengono terminate?
Le istanze nell'ambiente usano Amazon EBS per lo storage, ma il volume root viene eliminato quando un'istanza viene terminata da Auto Scaling. Non è consigliabile archiviare lo stato o altri dati sulle istanze. Se necessario, puoi impedire l'eliminazione dei volumi con AWS CLI: $ aws ec2
modify-instance-attribute -b '/dev/sdc=<vol-id>:false
come descritto nella Guida di riferimento.AWS CLI
Domanda: Come si eliminano i dati personali dall'applicazione Elastic Beanstalk?
AWS le risorse utilizzate dall'applicazione Elastic Beanstalk potrebbero archiviare informazioni personali. Quando termini un ambiente, Elastic Beanstalk termina le risorse che ha creato. Vengono terminate anche le risorse che hai aggiunto tramite i file di configurazione. Tuttavia, se hai creato AWS risorse al di fuori dell'ambiente Elastic Beanstalk e le hai associate all'applicazione, potresti dover controllare manualmente che le informazioni personali che l'applicazione potrebbe aver archiviato non vengano conservate. In questa guida per gli sviluppatori, ogni volta che parliamo della creazione di risorse aggiuntive, specifichiamo anche quando dovresti considerare la possibilità di eliminarle.
Errori comuni
In questo argomento sono elencati i messaggi di errore più comuni riscontrati quando si usa l'interfaccia a riga di comando EB con l'indicazione delle soluzioni possibili. Se si verifica un messaggio di errore non mostrato qui, utilizza i link Feedback per comunicarcelo.
ERRORE: si è verificato un errore durante la gestione del comando git. Codice di errore: 128 Errore: fatale: nome di oggetto HEAD non valido
Causa: questo messaggio di errore viene visualizzato se hai inizializzato un archivio Git ma non hai ancora eseguito il commit. L'interfaccia a riga di comando EB cerca la revisione HEAD quando la cartella di progetto contiene un archivio Git.
Soluzione: aggiungi i file nella tua cartella di progetto con l'area di gestione temporanea ed esegui il commit:
~/my-app$ git add .
~/my-app$ git commit -m "First commit"
ERRORE: questo ramo non ha un ambiente predefinito. È necessario specificare un ambiente digitando «eb status my-env-name" o impostare un ambiente predefinito digitando «eb use my-env-name».
Causa: quando si crea un nuovo ramo git, questo non è collegato a un ambiente di Elastic Beanstalk per impostazione predefinita.
Soluzione: esegui eb list per visualizzare un elenco di ambienti disponibili. Quindi esegui eb use env-name
per utilizzare uno degli ambienti disponibili.
ERRORE: le piattaforme 2.0+ richiedono un ruolo di servizio. Puoi fornirne uno con l'opzione --service-role
Causa: se specifichi un nome di ambiente con eb create (ad esempio, eb create my-env), l'interfaccia a riga di comando EB non tenterà di creare automaticamente un ruolo di servizio. Se non hai il ruolo di servizio predefinito, viene visualizzato l'errore riportato sopra.
Soluzione: esegui eb create senza un nome di ambiente e segui le istruzioni per creare il ruolo di servizio predefinito.
Errori di distribuzione
La distribuzione di Elastic Beanstalk potrebbe rispondere con una risposta 404 (se l'applicazione non è riuscita ad avviarsi) o 500 (se l'applicazione fallisce durante il runtime). Per risolvere molti problemi comuni, puoi utilizzare l'EB CLI per controllare lo stato della distribuzione, visualizzarne i log, accedere all' EC2 istanza con SSH o aprire la pagina della Console di AWS gestione per l'ambiente applicativo.
Per utilizzare l'interfaccia a riga di comando EB per aiutare a risolvere i problemi di distribuzione
-
Esegui eb status per vedere lo stato della distribuzione attuale e lo stato dei tuoi host. EC2 Per esempio:
$
eb status --verbose
Environment details for: python_eb_app Application name: python_eb_app Region: us-west-2 Deployed Version: app-150206_035343 Environment ID: e-wa8u6rrmqy Platform: 64bit Amazon Linux 2014.09 v1.1.0 running Python 2.7 Tier: WebServer-Standard- CNAME: python_eb_app.elasticbeanstalk.com Updated: 2015-02-06 12:00:08.557000+00:00 Status: Ready Health: Green Running instances: 1 i-8000528c: InServiceNota
Utilizzando l'opzione
--verbose
, si ottengono informazioni sullo stato delle istanze in esecuzione. Senza di esso, eb status stamperà solo le informazioni generali sull'ambiente. -
Esegui eb health per visualizzare le informazioni sullo stato del tuo ambiente:
$
eb health --refresh
elasticBeanstalkExa-env Degraded 2016-03-28 23:13:20 WebServer Ruby 2.1 (Puma) total ok warning degraded severe info pending unknown 5 2 0 2 1 0 0 0 instance-id status cause Overall Degraded Incorrect application version found on 3 out of 5 instances. Expected version "Sample Application" (deployment 1). i-d581497d Degraded Incorrect application version "v2" (deployment 2). Expected version "Sample Application" (deployment 1). i-d481497c Degraded Incorrect application version "v2" (deployment 2). Expected version "Sample Application" (deployment 1). i-136e00c0 Severe Instance ELB health has not been available for 5 minutes. i-126e00c1 Ok i-8b2cf575 Ok instance-id r/sec %2xx %3xx %4xx %5xx p99 p90 p75 p50 p10 Overall 646.7 100.0 0.0 0.0 0.0 0.003 0.002 0.001 0.001 0.000 i-dac3f859 167.5 1675 0 0 0 0.003 0.002 0.001 0.001 0.000 i-05013a81 161.2 1612 0 0 0 0.003 0.002 0.001 0.001 0.000 i-04013a80 0.0 - - - - - - - - - i-3ab524a1 155.9 1559 0 0 0 0.003 0.002 0.001 0.001 0.000 i-bf300d3c 162.1 1621 0 0 0 0.003 0.002 0.001 0.001 0.000 instance-id type az running load 1 load 5 user% nice% system% idle% iowait% i-d581497d t2.micro 1a 25 mins 0.16 0.1 7.0 0.0 1.7 91.0 0.1 i-d481497c t2.micro 1a 25 mins 0.14 0.1 7.2 0.0 1.6 91.1 0.0 i-136e00c0 t2.micro 1b 25 mins 0.0 0.01 0.0 0.0 0.0 99.9 0.1 i-126e00c1 t2.micro 1b 25 mins 0.03 0.08 6.9 0.0 2.1 90.7 0.1 i-8b2cf575 t2.micro 1c 1 hour 0.05 0.41 6.9 0.0 2.0 90.9 0.0 instance-id status id version ago deployments i-d581497d Deployed 2 v2 9 mins i-d481497c Deployed 2 v2 7 mins i-136e00c0 Failed 2 v2 5 mins i-126e00c1 Deployed 1 Sample Application 25 mins i-8b2cf575 Deployed 1 Sample Application 1 hourL'esempio precedente mostra un ambiente con cinque istanze in cui la distribuzione della versione "v2" non è riuscita alla terza istanza. Dopo un'installazione non riuscita, viene ripristinata l'ultima versione riuscita che, in questo caso, è la "Sample Application" della prima della distribuzione. Per ulteriori informazioni, consulta Utilizzo dell'interfaccia a riga di comando EB per monitorare lo stato dell'ambiente.
-
Esegui eb logs per scaricare e visualizzare i log associati alla distribuzione dell'applicazione.
$
eb logs
-
Esegui eb ssh per connetterti all' EC2 istanza che esegue l'applicazione ed esaminala direttamente. Nell'istanza l'applicazione distribuita si trova nella directory
/opt/python/current/app
e l'ambiente Python si trova in/opt/python/run/venv/
. -
Esegui eb console per visualizzare l'ambiente applicativo nella console di gestione AWS
. È possibile utilizzare l'interfaccia Web per esaminare diversi aspetti della distribuzione, tra cui la configurazione dell'applicazione, lo stato, gli eventi, i log. Puoi anche scaricare la versione corrente o quelle precedenti delle applicazioni che hai distribuito al server.