Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Registrare e monitorare le funzioni Lambda con C#

Modalità Focus
Registrare e monitorare le funzioni Lambda con C# - 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à.

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à.

AWS Lambda monitora automaticamente le funzioni Lambda e invia le voci di registro ad Amazon. CloudWatch La funzione Lambda include un gruppo di log CloudWatch Logs e un flusso di log per ogni istanza della funzione. L'ambiente di runtime di Lambda invia al flusso di log i dettagli su ogni invocazione e altri output dal codice della funzione. Per ulteriori informazioni sui CloudWatch registri, consulta. Utilizzo dei CloudWatch log con Lambda

Creazione di una funzione che restituisce i registri

Per generare i log dal codice della funzione, potete utilizzare il ILambdaLogger sull'oggetto context, i metodi sulla classe Console o qualsiasi libreria di registrazione che scrive su o. stdout stderr

Il runtime di .NET registra START, END e REPORT per ogni chiamata. La riga del report fornisce i seguenti dettagli.

Campi dati della riga REPORT
  • RequestId— L'ID univoco della richiesta per la chiamata.

  • Durata – La quantità di tempo che il metodo del gestore della funzione impiega durante l'elaborazione dell'evento.

  • Durata fatturata – La quantità di tempo fatturata per la chiamata.

  • Dimensioni memoria – La quantità di memoria allocata per la funzione.

  • Quantità max utilizzata – La quantità di memoria utilizzata dalla funzione. Quando le invocazioni condividono un ambiente di esecuzione, Lambda riporta la memoria massima utilizzata in tutte le invocazioni. Questo comportamento potrebbe comportare un valore riportato superiore al previsto.

  • Durata Init – Per la prima richiesta servita, la quantità di tempo impiegato dal runtime per caricare la funzione ed eseguire il codice al di fuori del metodo del gestore.

  • XRAY TraceId — Per le richieste tracciate, l'ID di traccia.AWS X-Ray

  • SegmentId— Per le richieste tracciate, l'ID del segmento X-Ray.

  • Campionato – Per le richieste tracciate, il risultato del campionamento.

Utilizzo dei controlli di registrazione avanzati di Lambda con .NET

Per avere un maggiore controllo sul modo in cui i log delle tue funzioni vengono acquisiti, elaborati e utilizzati, puoi configurare le seguenti opzioni di registrazione per i runtime .NET supportati:

  • Formato di log: scegli tra i formati di testo normale e JSON strutturato per i log della funzione

  • Livello di registro: per i log in formato JSON, scegli il livello di dettaglio dei log a cui Lambda invia, CloudWatch ad esempio ERROR, DEBUG o INFO

  • Gruppo di log: scegli il gruppo di log a cui la CloudWatch funzione invia i log

Per ulteriori informazioni su queste opzioni di registrazione e istruzioni su come configurare la funzione per utilizzarle, consulta la pagina Configurazione dei controlli di registrazione avanzati per le funzioni Lambda.

Per utilizzare le opzioni del formato di log e del livello di log con le funzioni Lambda in .NET, consulta le istruzioni nelle sezioni seguenti.

Utilizzo del formato di log JSON strutturato con .NET

Se si seleziona JSON per il formato di registro della funzione, Lambda invierà l'output dei log ILambdautilizzando Logger come JSON strutturato. Ogni oggetto di log JSON contiene almeno cinque coppie chiave-valore con le seguenti chiavi:

  • "timestamp": l'ora in cui è stato generato il messaggio di log

  • "level": il livello di log assegnato al messaggio

  • "requestId": l'ID di richiesta univoco dell'invocazione alla funzione

  • "traceId": la variabile di ambiente _X_AMZN_TRACE_ID

  • "message": il contenuto del messaggio di log

L'istanza ILambdaLogger può aggiungere ulteriori coppie chiave-valore, ad esempio durante la registrazione delle eccezioni. È inoltre possibile fornire parametri aggiuntivi personalizzati come descritto nella sezione Parametri di log forniti dal cliente.

Nota

Se il codice utilizza già un'altra libreria di registrazione per generare log in formato JSON, assicurati che il formato di log della funzione sia impostato su testo semplice. L'impostazione del formato di log su JSON comporterà la doppia codifica degli output dei log.

Il seguente comando di registrazione di esempio mostra come scrivere un messaggio di log con il livello INFO.

Esempio codice di registrazione .NET
context.Logger.LogInformation("Fetching cart from database");

Inoltre, puoi usare un metodo di log generico che utilizza il livello di log come argomento come mostrato nell'esempio seguente.

context.Logger.Log(LogLevel.Information, "Fetching cart from database");

L'output di registro di questi frammenti di codice di esempio verrebbe acquisito in Logs come segue: CloudWatch

Esempio Record di log JSON
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Information", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "Fetching cart from database" }
Nota

Se configuri il formato di log della funzione per utilizzare testo semplice anziché JSON, il livello di log acquisito nel messaggio segue la convenzione di Microsoft di utilizzare un'etichetta di quattro caratteri. Ad esempio, un livello di log di Debug è rappresentato nel messaggio come dbug.

Quando si configura la funzione per l'utilizzo di log in formato JSON, il livello di log acquisito nel log utilizza l'etichetta completa, come mostrato nel record di log JSON di esempio.

Se non assegni un livello all'output log, Lambda gli assegnerà automaticamente il livello INFO.

Registrazione delle eccezioni in JSON

Quando si utilizza la registrazione JSON strutturata con ILambdaLogger, è possibile registrare le eccezioni dei log nel codice come illustrato nell'esempio seguente.

Esempio utilizzo della registrazione delle eccezioni
try { connection.ExecuteQuery(query); } catch(Exception e) { context.Logger.LogWarning(e, "Error executing query"); }

Il formato di log generato da questo codice è mostrato nell'esempio JSON seguente. Si noti che la proprietà message in JSON viene compilata utilizzando l'argomento del messaggio fornito nella chiamata LogWarning, mentre la proprietà errorMessage proviene dalla proprietà Message dell'eccezione stessa.

Esempio Record di log JSON
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Warning", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "Error executing query", "errorType": "System.Data.SqlClient.SqlException", "errorMessage": "Connection closed", "stackTrace": ["<call exception.StackTrace>"] }

Se il formato di registrazione della funzione è impostato su JSON, Lambda emette anche messaggi di log in formato JSON quando il codice genera un'eccezione non rilevata. Il frammento di codice e il messaggio di log di esempio seguenti mostrano come vengono registrate le eccezioni non rilevate.

Esempio codice di eccezione
throw new ApplicationException("Invalid data");
Esempio Record di log JSON
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Error", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "Invalid data", "errorType": "System.ApplicationException", "errorMessage": "Invalid data", "stackTrace": ["<call exception.StackTrace>"] }

Parametri di log forniti dal cliente

Con i messaggi di log in formato JSON, è possibile fornire parametri di log aggiuntivi e includerli nel log message. Il seguente esempio di frammento di codice mostra un comando per aggiungere due parametri forniti dall'utente etichettati retryAttempt e uri. Nell'esempio, il valore di questi parametri deriva dagli argomenti retryAttempt e uriDestination passati al comando di registrazione.

Esempio Comando di registrazione JSON con parametri aggiuntivi
context.Logger.LogInformation("Starting retry {retryAttempt} to make GET request to {uri}", retryAttempt, uriDestination);

L'output del messaggio di log di questo comando è mostrato nell'esempio JSON seguente.

Esempio Record di log JSON
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Information", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "Starting retry 1 to make GET request to http://example.com/", "retryAttempt": 1, "uri": "http://example.com/" }
Suggerimento

Quando si specificano parametri aggiuntivi, è inoltre possibile utilizzare proprietà posizionali anziché nomi. A titolo illustrativo, il comando di registrazione nell'esempio precedente potrebbe essere scritto anche come segue:

context.Logger.LogInformation("Starting retry {0} to make GET request to {1}", retryAttempt, uriDestination);

Tieni presente che quando fornisci parametri di registrazione aggiuntivi, Lambda li acquisisce come proprietà di primo livello nel record di log JSON. Questo approccio è diverso da alcune popolari librerie di registrazione .NET come Serilog, che acquisiscono parametri aggiuntivi in un oggetto secondario separato.

Se l'argomento fornito per un parametro aggiuntivo è un oggetto complesso, per impostazione predefinita Lambda utilizza il metodo ToString() per fornire il valore. Per indicare che un argomento deve essere serializzato in JSON, utilizza il prefisso @ come mostrato nel seguente frammento di codice. In questo esempio, User è un oggetto con proprietà FirstName e LastName.

Esempio Comando di registrazione JSON con oggetto serializzato JSON
context.Logger.LogInformation("User {@user} logged in", User);

L'output del messaggio di log di questo comando è mostrato nell'esempio JSON seguente.

Esempio Record di log JSON
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Information", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "User {@user} logged in", "user": { "FirstName": "John", "LastName": "Doe" } }

Se l'argomento per un parametro aggiuntivo è un array o implementa IList oIDictionary, Lambda aggiunge l'argomento al messaggio di log JSON come matrice, come mostrato nell'esempio seguente di record di log JSON. In questo esempio, {users} accetta un argomento IList contenente istanze della proprietà User con lo stesso formato dell'esempio precedente. Lambda converte IList in un array, con ogni valore creato utilizzando il metodo ToString.

Esempio Record di log JSON con un argomento IList
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Information", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "{users} have joined the group", "users": [ "Rosalez, Alejandro", "Stiles, John" ] }

Puoi serializzare l'elenco in JSON anche utilizzando il prefisso @ nel comando di registrazione. Nel seguente esempio di record di log JSON, la proprietà users è serializzata in JSON.

Esempio Record di log JSON con un argomento IList serializzato in JSON
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Information", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "{@users} have joined the group", "users": [ { "FirstName": "Alejandro", "LastName": "Rosalez" }, { "FirstName": "John", "LastName": "Stiles" } ] }

Utilizzo del filtraggio a livello di log con .NET

Configurando il filtraggio a livello di registro, è possibile scegliere di inviare a Logs solo i log con un determinato livello di dettaglio o inferiore. CloudWatch Per informazioni su come configurare il filtraggio a livello di log della funzione, consulta la pagina Filtraggio a livello di log.

Per AWS Lambda filtrare i messaggi di registro in base al livello di registro, è possibile utilizzare registri in formato JSON o utilizzare i metodi.NET per generare messaggi di registro. Console Per creare log in formato JSON, configura il tipo di log della funzione su JSON e usa l'istanza ILambdaLogger.

Con i log in formato JSON, Lambda filtra gli output dei log utilizzando la coppia chiave-valore "livello" nell'oggetto JSON descritto in Utilizzo del formato di log JSON strutturato con .NET.

Se utilizzi i Console metodi.NET per scrivere messaggi CloudWatch nei registri, Lambda applica i livelli di registro ai tuoi messaggi come segue:

  • Console. WriteLine metodo - Lambda applica un livello di registro di INFO

  • Metodo Console.Error: Lambda applica il livello di log ERROR

Quando configuri la funzione per utilizzare il filtraggio a livello di log, devi selezionare una delle seguenti opzioni per il livello di log che Lambda invii a Logs. CloudWatch Nota la mappatura dei livelli di log utilizzati da Lambda con i livelli Microsoft standard utilizzati da .NET ILambdaLogger.

Livello di log Lambda Livello Microsoft equivalente Utilizzo standard
TRACE (dettaglio massimo) Traccia Le informazioni più dettagliate utilizzate per tracciare il percorso di esecuzione del codice
DEBUG Esegui il debug Informazioni dettagliate per il debug del sistema
INFO Informazioni Messaggi che registrano il normale funzionamento della funzione
WARN Attenzione Messaggi relativi a potenziali errori che possono portare a comportamenti imprevisti se non risolti
ERRORE Errore Messaggi relativi a problemi che impediscono al codice di funzionare come previsto
FATAL (dettaglio minimo) Critico Messaggi relativi a errori gravi che causano l'interruzione del funzionamento dell'applicazione

Lambda invia i log del livello di dettaglio selezionato e inferiore a. CloudWatch Ad esempio, se configuri un livello di log WARN, Lambda invierà i log corrispondenti ai livelli WARN, ERROR e FATAL.

Strumenti e librerie di registrazione aggiuntivi

Powertools for AWS Lambda (.NET) è un toolkit per sviluppatori che implementa le migliori pratiche Serverless e aumenta la velocità degli sviluppatori. L'utilità di registrazione fornisce un logger ottimizzato per Lambda che include informazioni aggiuntive sul contesto delle funzioni in tutte le funzioni con output strutturato come JSON. Utilizza l'utility per eseguire le seguenti operazioni:

  • Acquisizione di campi essenziali dal contesto Lambda, avvii a freddo e output di registrazione della struttura come JSON

  • Registrazione degli eventi di chiamata Lambda quando richiesto (disabilitata per impostazione predefinita)

  • Stampa di tutti i log solo per una percentuale di chiamate tramite campionamento dei log (disabilitata per impostazione predefinita)

  • Aggiunta di chiavi supplementari al log strutturato in qualsiasi momento

  • Utilizzo di un formattatore di log personalizzato (Bring Your Own Formatter) per generare i log in una struttura compatibile con Logging RFC dell'organizzazione

Utilizzo di Powertools per AWS Lambda (.NET) e per la registrazione strutturata AWS SAM

Segui i passaggi seguenti per scaricare, creare e distribuire un'applicazione Hello World C# di esempio con moduli Powertools for AWS Lambda (.NET) integrati utilizzando il. AWS SAM Questa applicazione implementa un back-end dell'API di base e utilizza Powertools per l'emissione di log, parametri e tracce. Consiste in un endpoint Gateway Amazon API e in una funzione Lambda. Quando invii una richiesta GET all'endpoint API Gateway, la funzione Lambda richiama, invia log e metriche utilizzando Embedded Metric Format a e invia tracce a. CloudWatch AWS X-Ray La funzione restituisce un messaggio hello world.

Prerequisiti

Per completare le fasi riportate in questa sezione, è necessario:

Implementa un'applicazione di esempio AWS SAM
  1. Inizializza l'applicazione utilizzando il modello Hello World. TypeScript

    sam init --app-template hello-world-powertools-dotnet --name sam-app --package-type Zip --runtime dotnet6 --no-tracing
  2. Costruisci l'app.

    cd sam-app && sam build
  3. Distribuire l'app.

    sam deploy --guided
  4. Seguire le istruzioni visualizzate sullo schermo. Per accettare le opzioni predefinite fornite nell'esperienza interattiva, premi Enter.

    Nota

    Perché HelloWorldFunction potrebbe non avere un'autorizzazione definita. Va bene? , assicurati di entrarey.

  5. Ottieni l'URL dell'applicazione implementata:

    aws cloudformation describe-stacks --stack-name sam-app --query 'Stacks[0].Outputs[?OutputKey==`HelloWorldApi`].OutputValue' --output text
  6. Richiama l'endpoint dell'API:

    curl -X GET <URL_FROM_PREVIOUS_STEP>

    In caso di esito positivo, vedrai questa risposta:

    {"message":"hello world"}
  7. Per ottenere i log per la funzione, esegui sam logs. Per ulteriori informazioni, consulta l'argomento relativo all'utilizzo dei log nella Guida per sviluppatori AWS Serverless Application Model .

    sam logs --stack-name sam-app

    L'output del log ha la struttura seguente:

    2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:27.988000 INIT_START Runtime Version: dotnet:6.v13 Runtime Version ARN: arn:aws:lambda:ap-southeast-2::runtime:699f346a05dae24c58c45790bc4089f252bf17dae3997e79b17d939a288aa1ec 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:28.229000 START RequestId: bed25b38-d012-42e7-ba28-f272535fb80e Version: $LATEST 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:29.259000 2023-02-20T14:15:29.201Z bed25b38-d012-42e7-ba28-f272535fb80e info {"_aws":{"Timestamp":1676902528962,"CloudWatchMetrics":[{"Namespace":"sam-app-logging","Metrics":[{"Name":"ColdStart","Unit":"Count"}],"Dimensions":[["FunctionName"],["Service"]]}]},"FunctionName":"sam-app-HelloWorldFunction-haKIoVeose2p","Service":"PowertoolsHelloWorld","ColdStart":1} 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:30.479000 2023-02-20T14:15:30.479Z bed25b38-d012-42e7-ba28-f272535fb80e info {"ColdStart":true,"XrayTraceId":"1-63f3807f-5dbcb9910c96f50742707542","CorrelationId":"d3d4de7f-4ccc-411a-a549-4d67b2fdc015","FunctionName":"sam-app-HelloWorldFunction-haKIoVeose2p","FunctionVersion":"$LATEST","FunctionMemorySize":256,"FunctionArn":"arn:aws:lambda:ap-southeast-2:123456789012:function:sam-app-HelloWorldFunction-haKIoVeose2p","FunctionRequestId":"bed25b38-d012-42e7-ba28-f272535fb80e","Timestamp":"2023-02-20T14:15:30.4602970Z","Level":"Information","Service":"PowertoolsHelloWorld","Name":"AWS.Lambda.Powertools.Logging.Logger","Message":"Hello world API - HTTP 200"} 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:30.599000 2023-02-20T14:15:30.599Z bed25b38-d012-42e7-ba28-f272535fb80e info {"_aws":{"Timestamp":1676902528922,"CloudWatchMetrics":[{"Namespace":"sam-app-logging","Metrics":[{"Name":"ApiRequestCount","Unit":"Count"}],"Dimensions":[["Service"]]}]},"Service":"PowertoolsHelloWorld","ApiRequestCount":1} 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:30.680000 END RequestId: bed25b38-d012-42e7-ba28-f272535fb80e 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:30.680000 REPORT RequestId: bed25b38-d012-42e7-ba28-f272535fb80e Duration: 2450.99 ms Billed Duration: 2451 ms Memory Size: 256 MB Max Memory Used: 74 MB Init Duration: 240.05 ms XRAY TraceId: 1-63f3807f-5dbcb9910c96f50742707542 SegmentId: 16b362cd5f52cba0
  8. Questo è un endpoint API pubblico accessibile su Internet. È consigliabile eliminare l'endpoint dopo il test.

    sam delete

Gestione della conservazione dei log

I gruppi di log non vengono eliminati automaticamente quando si elimina una funzione. Per evitare di archiviare i log a tempo indeterminato, elimina il gruppo di log o configura un periodo di conservazione dopo il quale i log CloudWatch vengono eliminati automaticamente. Per configurare la conservazione dei log, aggiungi quanto segue al tuo modello: AWS SAM

Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: # Omitting other properties LogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Sub "/aws/lambda/${HelloWorldFunction}" RetentionInDays: 7

Visualizzazione dei log nella console Lambda

È possibile utilizzare la console Lambda per visualizzare l'output del log dopo aver richiamato una funzione Lambda.

Se il codice può essere testato dall'editor del codice incorporato, troverai i log nei risultati dell’esecuzione. Quando utilizzi la funzionalità di test della console per richiamare una funzione, troverai l’output del log nella sezione Dettagli.

Visualizzazione dei log nella console CloudWatch

Puoi utilizzare la CloudWatch console Amazon per visualizzare i log di tutte le chiamate di funzioni Lambda.

Per visualizzare i log sulla console CloudWatch
  1. Apri la pagina Registra gruppi sulla CloudWatch console.

  2. Scegli il gruppo di log per la tua funzione (your-function-name/aws/lambda/).

  3. Creare un flusso di log.

Ogni flusso di log corrisponde a un'istanza della funzione. Nuovi flussi di log vengono visualizzati quando aggiorni la funzione Lambda e quando vengono create istanze aggiuntive per gestire più chiamate simultanee. Per trovare i log per una chiamata specifica, ti consigliamo di strumentare la tua funzione con. AWS X-Ray X-Ray registra i dettagli sulla richiesta e il flusso di log nella traccia.

Visualizzazione dei log utilizzando () AWS Command Line InterfaceAWS CLI

AWS CLI È uno strumento open source che consente di interagire con i AWS servizi utilizzando i comandi nella shell della riga di comando. Per completare le fasi riportate in questa sezione, è necessario disporre della AWS CLI versione 2.

È possibile utilizzare AWS CLI per recuperare i log per una chiamata utilizzando l'opzione di comando --log-type. La risposta include un campo LogResult che contiene fino a 4 KB di log con codifica base64 del richiamo.

Esempio recuperare un ID di log

Nell'esempio seguente viene illustrato come recuperare un ID di log dal LogResult campo per una funzione denominata my-function.

aws lambda invoke --function-name my-function out --log-type Tail

Verrà visualizzato l'output seguente:

{
    "StatusCode": 200,
    "LogResult": "U1RBUlQgUmVxdWVzdElkOiA4N2QwNDRiOC1mMTU0LTExZTgtOGNkYS0yOTc0YzVlNGZiMjEgVmVyc2lvb...",
    "ExecutedVersion": "$LATEST"
}
Esempio decodificare i log

Nello stesso prompt dei comandi, utilizzare l'base64 utilità per decodificare i log. Nell'esempio seguente viene illustrato come recuperare i log codificati in base64 per my-function.

aws lambda invoke --function-name my-function out --log-type Tail \ --query 'LogResult' --output text --cli-binary-format raw-in-base64-out | base64 --decode

L'cli-binary-formatopzione è obbligatoria se si utilizza la AWS CLI versione 2. Per rendere questa impostazione come predefinita, esegui aws configure set cli-binary-format raw-in-base64-out. Per ulteriori informazioni, consulta la pagina AWS CLI supported global command line options nella Guida per l'utente di AWS Command Line Interface versione 2.

Verrà visualizzato l'output seguente:

START RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8 Version: $LATEST
"AWS_SESSION_TOKEN": "AgoJb3JpZ2luX2VjELj...", "_X_AMZN_TRACE_ID": "Root=1-5d02e5ca-f5792818b6fe8368e5b51d50;Parent=191db58857df8395;Sampled=0"",ask/lib:/opt/lib",
END RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8
REPORT RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8  Duration: 79.67 ms      Billed Duration: 80 ms         Memory Size: 128 MB     Max Memory Used: 73 MB

L'utilità base64 è disponibile su Linux, macOS e Ubuntu su Windows. Gli utenti macOS potrebbero dover utilizzare base64 -D.

Esempio Script get-logs.sh

Nello stesso prompt dei comandi, utilizzare lo script seguente per scaricare gli ultimi cinque eventi di log. Lo script utilizza sed per rimuovere le virgolette dal file di output e rimane in sospensione per 15 secondi in attesa che i log diventino disponibili. L'output include la risposta di Lambda e l'output del comando get-log-events.

Copiare il contenuto del seguente esempio di codice e salvare nella directory del progetto Lambda come get-logs.sh.

L'cli-binary-formatopzione è obbligatoria se utilizzi la AWS CLI versione 2. Per rendere questa impostazione come predefinita, esegui aws configure set cli-binary-format raw-in-base64-out. Per ulteriori informazioni, consulta la pagina AWS CLI supported global command line options nella Guida per l'utente di AWS Command Line Interface versione 2.

#!/bin/bash aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{"key": "value"}' out sed -i'' -e 's/"//g' out sleep 15 aws logs get-log-events --log-group-name /aws/lambda/my-function --log-stream-name stream1 --limit 5
Esempio (solo) macOS e Linux

Nello stesso prompt dei comandi, gli utenti macOS e Linux potrebbero dover eseguire il seguente comando per assicurarsi che lo script sia eseguibile.

chmod -R 755 get-logs.sh
Esempio recuperare gli ultimi cinque eventi di log

Nello stesso prompt dei comandi, eseguire lo script seguente per ottenere gli ultimi cinque eventi di log.

./get-logs.sh

Verrà visualizzato l'output seguente:

{ "StatusCode": 200, "ExecutedVersion": "$LATEST" } { "events": [ { "timestamp": 1559763003171, "message": "START RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf Version: $LATEST\n", "ingestionTime": 1559763003309 }, { "timestamp": 1559763003173, "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tENVIRONMENT VARIABLES\r{\r \"AWS_LAMBDA_FUNCTION_VERSION\": \"$LATEST\",\r ...", "ingestionTime": 1559763018353 }, { "timestamp": 1559763003173, "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tEVENT\r{\r \"key\": \"value\"\r}\n", "ingestionTime": 1559763018353 }, { "timestamp": 1559763003218, "message": "END RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\n", "ingestionTime": 1559763018353 }, { "timestamp": 1559763003218, "message": "REPORT RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\tDuration: 26.73 ms\tBilled Duration: 27 ms \tMemory Size: 128 MB\tMax Memory Used: 75 MB\t\n", "ingestionTime": 1559763018353 } ], "nextForwardToken": "f/34783877304859518393868359594929986069206639495374241795", "nextBackwardToken": "b/34783877303811383369537420289090800615709599058929582080" }

Eliminazione dei log

I gruppi di log non vengono eliminati automaticamente quando si elimina una funzione. Per evitare di archiviare i log a tempo indeterminato, eliminare il gruppo di log o configurare un periodo di conservazione trascorso il quale i log vengono eliminati automaticamente.

Argomento successivo:

Tracciamento

Argomento precedente:

Context
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.