View a markdown version of this page

Risoluzione dei problemi - AWS Lambda

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

Questa sezione descrive come eseguire il debug e risolvere i problemi più comuni quando si lavora con MicroVMS. AWS Lambda

Accesso alla shell

Usa l'accesso alla shell per connetterti direttamente a una MicroVM in esecuzione per il debug e la risoluzione dei problemi.

È possibile connettersi a una shell MicroVM in due modi:

  • Console: seleziona la tua MicroVM nella console Lambda e scegli Connetti.

  • CLI: genera un token di shell concreate-microvm-shell-auth-token, quindi utilizza il token per stabilire una connessione.

Genera un token di shell, quindi connettiti:

aws lambda-microvms create-microvm-shell-auth-token \ --microvm-identifier <id> --expiration-in-minutes 30 # In Console: select MicroVM -> Connect # In shell: ctr task ls, then ctr task exec -t --exec-id shell <id> /bin/sh

La MicroVM deve essere stata eseguita con il connettore di SHELL_INGRESS rete ()arn:aws:lambda:us-east-1:aws:network-connector:aws-network-connector:SHELL_INGRESS. Se la MicroVM non è stata avviata con questo connettore, restituisce un. create-microvm-shell-auth-token ValidationException

Per altri problemi:

  • Controlla il terminationMessage campo nella get-microvm risposta per MicroVMS terminato.

  • Controlla i log di CloudWatch compilazione per eventuali problemi di creazione delle immagini.

  • Controlla lo FAILED stato dei connettori di rete nel StateReason campo.

Risoluzione dei problemi

Questa sezione fornisce soluzioni ai problemi più comuni quando si lavora con Lambda MicroVMS.

Caratteristiche Possibili cause e risoluzione
La creazione dell'immagine non riesce (CREATION_FAILED) Controlla i log di compilazione in/aws/lambda/microvms/<image-name>. Verifica la Dockerfile sintassi, le autorizzazioni Amazon S3 e la disponibilità delle immagini di base. Esegui docker build localmente per la riproduzione.
MicroVM bloccato PENDING Attendi e riprova. Se persistente, controlla lo stato del servizio. Verifica che la tua quota di concorrenza non sia esaurita.
La domanda non risponde dopo il curriculum Implementa il /resume lifecycle hook per ristabilire le connessioni e convalidare lo stato. Verifica che l'app si colleghi alla porta 8080 (o alla porta configurata) dopo la ripresa.
502 Bad Gateway dall'endpoint L'applicazione si è bloccata o non è in ascolto. Controlla i log di runtime. Verifica EXPOSE e CMD accediDockerfile. In caso di ripristino automatico, la MicroVM potrebbe non essere stata ripristinata (controlla lo stato utilizzando). get-microvm
429 Troppe richieste Percentuale di richieste superata. Riprova con backoff e jitter esponenziali.
Caduta delle connessioni È stato attivato il timeout di inattività. Implementa i keepalive. ping/pong Oppure estendi la maxIdleDurationSeconds politica di inattività.
Latenza elevata sull'endpoint Saturazione della larghezza di banda. Verifica se il traffico supera la capacità di larghezza di banda per le dimensioni della tua MicroVM. Scalabilità fino a dimensioni maggiori.
Token di autenticazione scaduto (403) I token hanno una scadenza configurabile. Genera un nuovo token prima della scadenza di quello vecchio. Implementa la logica di aggiornamento dei token nel tuo client.
L'uscita VPC non funziona Verifica che il connettore di rete sia in ACTIVE stato. Verifica che le regole del gruppo di sicurezza consentano il traffico in uscita. Verifica che le sottoreti abbiano percorsi verso le risorse di destinazione.

Errori comuni (creazione di immagini)

Errore Causa Soluzione
S3_ACCESS_DENIED Il ruolo di compilazione non dispone delle autorizzazioni per recuperare gli artefatti di Amazon S3. Aggiungi l's3:GetObjectautorizzazione per il tuo bucket di artefatti.
S3_NO_SUCH_KEY La chiave dell'artefatto non esiste nel bucket. Verifica che il percorso di Amazon S3 sia corretto.
S3_NO_SUCH_BUCKET Il bucket Amazon S3 non esiste. Controlla il nome del bucket e conferma che è stato creato.
S3_INVALID_OBJECT Artefatto in una classe di archiviazione Glacier o non accessibile direttamente. Sposta l'artefatto nella classe di archiviazione Standard.
S3_CROSS_REGION_ACCESS_DENIED L'artefatto si trova in una regione diversa dall'immagine MicroVM. Assicurati che l'artefatto si trovi nella stessa regione dell'immagine MicroVM.
ARCHIVE_DOCKERFILE_NOT_FOUND All'archivio zip manca un Dockerfile nella directory principale. Aggiungi a Dockerfile alla radice del tuo archivio zip.
ARCHIVE_INVALID Il file di archivio non è un file ZIP valido o è danneggiato. Re-create l'archivio zip e caricalo nuovamente.
CONTAINER_BUILD_FAILED DockerfileIstruzioni non valide, file mancanti o errori di sintassi. Esegui il debug locale utilizzando. Dockerfile docker build
DISK_STORAGE_FULL MicroVM ha esaurito lo storage durante la compilazione. Riduci le dimensioni degli artefatti o contatta l'assistenza.
INTERNAL_PLATFORM_ERROR Si è verificato un errore interno. Riprova l’operazione. Se persistente, contatta l'assistenza.

Risoluzione dei problemi relativi ai connettori di rete

Codice di errore Causa Soluzione
DisallowedByVpcEncryptionControl Il VPC ha una politica di controllo della crittografia che impedisce il traffico o le interfacce di rete non crittografati. Lambda non può creare ENI che soddisfino i requisiti di crittografia. Aggiungi Lambda all'elenco di esclusione del controllo di crittografia VPC. Se l'esclusione non è possibile, utilizza un VPC o una sottorete a cui non siano applicati controlli di crittografia restrittivi.
Ec2RequestLimitExceeded Lambda effettua chiamate API EC2 (ad esempioCreateNetworkInterface,DescribeSubnets) per configurare la connettività. Troppe chiamate API EC2 simultanee causano limitazioni. Riprova l'operazione dopo un breve ritardo. Se persistente, riduci le operazioni simultanee dei connettori di rete o richiedi un aumento del limite di limitazione delle API EC2 tramite l'assistenza. AWS
InsufficientRolePermissions Il ruolo dell'operatore non dispone delle autorizzazioni EC2 richieste. Assicurati che il ruolo IAM disponga delle autorizzazioni di rete EC2 necessarie.
InternalError Si è verificato un errore imprevisto all'interno del servizio Lambda durante l'elaborazione della richiesta del connettore di rete. Riprova l’operazione. Se il problema persiste dopo più tentativi, contatta l' AWS assistenza indicando l'ARN del connettore di rete e il timestamp approssimativo.
InvalidSecurityGroup L'ID del gruppo di sicurezza non esiste, è stato eliminato o non appartiene allo stesso VPC delle sottoreti specificate. Verifica che tutti gli ID dei gruppi di sicurezza esistano e appartengano allo stesso VPC delle sottoreti. Usa per convalidareaws ec2 describe-security-groups --group-ids <sg-id>.
InvalidSubnet L'ID della sottorete non esiste, è stato eliminato o appartiene a un VPC diverso da quello previsto. Verifica che tutti gli ID di sottorete esistano e appartengano al VPC corretto. Usa per aws ec2 describe-subnets --subnet-ids <subnet-id> convalidare.
SubnetOutOfIPAddresses Il blocco CIDR della sottorete è esaurito: tutti gli IP sono allocati a ENI, istanze e altre risorse, quindi Lambda non può creare un'interfaccia di rete. Libera gli indirizzi IP rimuovendo quelli non utilizzati o utilizza una sottorete diversa con ENIs/instances capacità disponibile. Prendi in considerazione sottoreti più grandi (ad esempio, /24 o più grandi) per i connettori di rete.