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à.
Visualizza le chiamate alla funzione Lambda utilizzando AWS X-Ray
Puoi utilizzarli AWS X-Ray per visualizzare i componenti dell'applicazione, identificare i punti deboli in termini di prestazioni e risolvere le richieste che hanno provocato un errore. Le funzioni Lambda inviano dati di traccia a X-Ray e X-Ray elabora i dati per generare una mappa di servizio e riepiloghi di traccia ricercabili.
Se è stata abilitata l'analisi X-Ray in un servizio che richiama la funzione, Lambda invia automaticamente le tracce a X-Ray. Il servizio upstream, come Amazon API Gateway, o un'applicazione ospitata su Amazon EC2 dotata di strumentazione X-RaySDK, campiona le richieste in arrivo e aggiunge un'intestazione di tracciamento che indica a Lambda di inviare o meno tracce. Le tracce dei produttori di messaggi upstream, come AmazonSQS, vengono automaticamente collegate alle tracce delle funzioni Lambda a valle, creando una end-to-end visualizzazione dell'intera applicazione. Per ulteriori informazioni, consulta Tracciamento delle applicazioni guidate dagli eventi nella Guida per gli sviluppatori di AWS X-Ray .
Nota
Il tracciamento X-Ray non è attualmente supportato per le funzioni Lambda con Amazon Managed Streaming for Apache Kafka (AmazonMSK), Apache Kafka autogestito, Amazon MQ con ActiveMQ e RabbitMQ o mappature delle sorgenti di eventi Amazon DocumentDB.
Per attivare il tracciamento attivo sulla funzione Lambda con la console, attenersi alla seguente procedura:
Per attivare il tracciamento attivo
Aprire la pagina Funzioni
della console Lambda. -
Scegliere una funzione.
Scegliere Configuration (Configurazione) e quindi Monitoring and operations tools (Strumenti di monitoraggio e operazioni).
Scegli Modifica.
-
In X-Ray, attivare Active tracing (Tracciamento attivo).
-
Seleziona Salva.
La funzione ha bisogno dell'autorizzazione per caricare i dati di traccia su X-Ray. Quando si attiva il tracciamento nella console Lambda, Lambda aggiunge le autorizzazioni necessarie al ruolo di esecuzione della funzione. Altrimenti, aggiungi la policy al ruolo di esecuzione. AWSXRayDaemonWriteAccess
X-Ray non traccia tutte le richieste nell'applicazione. X-Ray applica un algoritmo di campionamento per garantire che il tracciamento avvenga in modo efficiente, continuando allo stesso tempo a fornire un campione rappresentativo di tutte le richieste. La frequenza di campionamento è di una richiesta al secondo e del 5% delle altre richieste. Non puoi configurare la frequenza di campionamento dei raggi X per le tue funzioni.
Informazioni sui monitoraggi di X-Ray
In X-Ray, una traccia registra informazioni su una richiesta elaborata da uno o più servizi. Lambda registra 2 segmenti per traccia, il che crea due nodi sul grafico del servizio. L'immagine seguente evidenzia questi due nodi:
Il primo nodo a sinistra rappresenta il servizio Lambda che riceve la richiesta di chiamata. Il secondo nodo rappresenta la specifica funzione Lambda.
Il segmento registrato per il servizio LambdaAWS::Lambda
, copre tutti i passaggi necessari per preparare l'ambiente di esecuzione Lambda. Ciò include la pianificazione della microVM, la creazione o lo sblocco di un ambiente di esecuzione con le risorse configurate, nonché il download del codice della funzione e di tutti i livelli.
Il AWS::Lambda::Function
segmento è destinato al lavoro svolto dalla funzione.
Nota
AWS sta attualmente implementando modifiche al servizio Lambda. A causa di queste modifiche, potresti notare piccole differenze tra la struttura e il contenuto dei messaggi di registro di sistema e dei segmenti di traccia emessi da diverse funzioni Lambda nel tuo. Account AWS
Questa modifica influisce sui sottosegmenti del segmento di funzioni. I paragrafi seguenti descrivono sia il vecchio che il nuovo formato per questi sottosegmenti.
Queste modifiche verranno implementate nelle prossime settimane e tutte le funzioni, Regioni AWS ad eccezione della Cina e delle GovCloud regioni, passeranno all'utilizzo dei messaggi di registro e dei segmenti di traccia di nuovo formato.
Struttura a segmenti Lambda vecchio stile AWS X-Ray
La struttura a raggi X vecchio stile per il AWS::Lambda
segmento è simile alla seguente:
In questo formato, il segmento della funzione ha sottosegmenti per, e. Initialization
Invocation
Overhead
Lambda SnapStartSolo per questo, c'è anche un Restore
sottosegmento (non mostrato in questo diagramma).
Il sottosegmento Initialization
rappresenta la fase iniziale del ciclo di vita dell'ambiente di esecuzione Lambda. Durante questa fase, Lambda inizializza le estensioni, inizializza il runtime ed esegue il codice di inizializzazione della funzione.
Il sottosegmento Invocation
rappresenta la fase di invocazione in cui Lambda richiama il gestore di funzioni. Questo inizia con la registrazione del runtime e dell'estensione e termina quando il runtime è pronto per inviare la risposta.
( SnapStart Solo Lambda) Il Restore
sottosegmento mostra il tempo impiegato da Lambda per ripristinare un'istantanea, caricare il runtime (JVM) ed eseguire eventuali hook di runtime. afterRestore
Il processo di ripristino degli snapshot può includere il tempo dedicato ad attività esterne alla MicroVM. Questa volta è riportato nel segmento secondario Restore
. Non ti viene addebitato il tempo trascorso fuori dalla microVM per il ripristino di una snapshot.
Il sottosegmento Overhead
rappresenta la fase che si verifica tra il momento in cui il runtime invia la risposta e il segnale per la successiva invocazione. Durante questo periodo, il runtime termina tutte le attività correlate a un'invocazione e si prepara a congelare la sandbox.
Importante
È possibile utilizzare X-Ray SDK per estendere il Invocation
sottosegmento con sottosegmenti aggiuntivi per chiamate downstream, annotazioni e metadati. Non è possibile accedere direttamente al segmento di funzione o registrare la parola eseguita al di fuori dell'ambito di chiamata del gestore.
Per ulteriori informazioni sulle fasi dell'ambiente di esecuzione Lambda, vedere. Comprendi il ciclo di vita dell'ambiente di esecuzione Lambda
Nel diagramma seguente è illustrato un esempio di traccia che utilizza la struttura a raggi X vecchio stile.
Notate i due segmenti dell'esempio. Entrambi sono denominati my-function, ma uno ha un'origine di AWS::Lambda
e l'altro ha un'origine di. AWS::Lambda::Function
Se il AWS::Lambda
segmento mostra un errore, il servizio Lambda presentava un problema. Se il AWS::Lambda::Function
segmento mostra un errore, la funzione presentava un problema.
Nota
Occasionalmente, potresti notare un ampio divario tra le fasi di inizializzazione e invocazione della funzione nelle tracce X-Ray. Per le funzioni che utilizzano la simultaneità fornita, ciò è dovuto al fatto che Lambda inizializza le istanze della funzione con largo anticipo rispetto all'invocazione. Per le funzioni che utilizzano la concorrenza non riservata (su richiesta), Lambda può inizializzare in modo proattivo un'istanza di funzione, anche in assenza di chiamata. Visivamente, entrambi questi casi si presentano come un intervallo di tempo tra le fasi di inizializzazione e invocazione.
Struttura dei segmenti Lambda di nuova AWS X-Ray concezione
La nuova struttura a raggi X per il AWS::Lambda
segmento è simile alla seguente:
In questo nuovo formato, il Init
sottosegmento rappresenta la fase iniziale del ciclo di vita dell'ambiente di esecuzione Lambda come prima.
Nel nuovo formato non è presente alcun segmento di invocazione. Invece, i sottosegmenti di clienti vengono collegati direttamente al segmento. AWS::Lambda::Function
Questo segmento contiene le seguenti metriche come annotazioni:
-
aws.responseLatency
- il tempo impiegato per l'esecuzione della funzione -
aws.responseDuration
- il tempo impiegato per trasferire la risposta al cliente -
aws.runtimeOverhead
- la quantità di tempo supplementare necessaria al completamento del runtime -
aws.extensionOverhead
- la quantità di tempo supplementare necessaria per completare le estensioni
Nel diagramma seguente è illustrato un esempio di traccia che utilizza la nuova struttura X-Ray.
Notate i due segmenti dell'esempio. Entrambi sono denominati my-function, ma uno ha un'origine di AWS::Lambda
e l'altro ha un'origine di. AWS::Lambda::Function
Se il AWS::Lambda
segmento mostra un errore, il servizio Lambda presentava un problema. Se il AWS::Lambda::Function
segmento mostra un errore, la funzione presentava un problema.
Vedere i seguenti argomenti per un'introduzione specifica della lingua all'analisi in Lambda:
Per un elenco completo dei servizi che supportano la strumentazione attiva, consulta AWS Servizi supportati nella Guida per gli AWS X-Ray sviluppatori.
Autorizzazioni del ruolo di esecuzione
Lambda richiede le seguenti autorizzazioni per inviare i dati di traccia a X-Ray. Aggiungerle al ruolo di esecuzione della funzione.
Queste autorizzazioni sono incluse nella politica AWSXRayDaemonWriteAccess
Il demone AWS X-Ray
Invece di inviare i dati di traccia direttamente all'X-RayAPI, l'X-Ray SDK utilizza un processo daemon. Il AWS X-Ray daemon è un'applicazione che viene eseguita nell'ambiente Lambda e ascolta il UDP traffico che contiene segmenti e sottosegmenti. Memorizza i dati in entrata e li scrive su X-Ray in batch, riducendo l'elaborazione e il sovraccarico di memoria necessari per tracciare le chiamate.
Il runtime Lambda consente al daemon di raggiungere fino al 3% della memoria configurata della funzione o 16 MB, a seconda di quale sia maggiore. Se la tua funzione esaurisce la memoria durante l'invocazione, il runtime termina prima il processo daemon per liberare memoria.
Il processo daemon è completamente gestito da Lambda e non può essere configurato dall'utente. Tutti i segmenti generati dalle chiamate di funzione vengono registrati nello stesso account della funzione Lambda. Il daemon non può essere configurato per reindirizzarli a nessun altro account.
Per maggiori informazioni, consulta la sezione sul daemon X-Ray nella Guida per sviluppatori X-Ray.
Abilitare il tracciamento attivo con Lambda API
Per gestire la configurazione di tracciamento con AWS CLI o AWS SDK, utilizza le seguenti operazioni: API
Il AWS CLI comando di esempio seguente abilita il tracciamento attivo su una funzione denominata my-function.
aws lambda update-function-configuration --function-name my-function \ --tracing-config Mode=Active
La modalità di tracciamento fa parte della configurazione specifica della versione quando si pubblica una versione della funzione. Non è possibile modificare la modalità di tracciamento in una versione pubblicata.
Abilitazione del tracciamento attivo con AWS CloudFormation
Per attivare il tracciamento su una AWS::Lambda::Function
risorsa in un AWS CloudFormation modello, utilizzate la TracingConfig
proprietà.
Esempio function-inline.yml – Configurazione del tracciamento
Resources: function: Type: AWS::Lambda::Function Properties:
TracingConfig: Mode: Active
...
Per una AWS::Serverless::Function
risorsa AWS Serverless Application Model (AWS SAM), utilizzate la Tracing
proprietà.
Esempio template.yml – Configurazione del tracciamento
Resources: function: Type: AWS::Serverless::Function Properties:
Tracing: Active
...