Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Registrar em log e monitorar funções do Lambda em C#

Modo de foco
Registrar em log e monitorar funções do Lambda em C# - AWS Lambda

O AWS Lambda monitora automaticamente as funções do Lambda e envia entradas de logs para o Amazon CloudWatch. Sua função do Lambda vem com um grupo de logs do CloudWatch Logs e uma transmissão de logs para cada instância de sua função. O ambiente de runtime do Lambda envia detalhes sobre cada invocação e outras saídas do código da função para o fluxo de logs. Para obter mais informações sobre o CloudWatch Logs, consulte Uso do CloudWatch Logs com o Lambda.

Criar uma função que retorna logs

Para gerar os logs do código de função, você pode usar o ILambdaLogger no objeto de contexto, os métodos na classe Console ou qualquer biblioteca de logs que grave no stdout ou no stderr.

O runtime do .NET registra em log as linhas START, END e REPORT para cada invocação. A linha do relatório fornece os detalhes a seguir.

RELATAR campos de dados de linha
  • RequestId: o ID de solicitação exclusivo para a invocação.

  • Duração: a quantidade de tempo que o método de manipulador da função gastou processando o evento.

  • Duração faturada: a quantia de tempo faturada para a invocação.

  • Tamanho da memória: a quantidade de memória alocada para a função.

  • Memória máxima utilizada: a quantidade de memória utilizada pela função. Quando as invocações compartilham um ambiente de execução, o Lambda relata a memória máxima usada em todas as invocações. Esse comportamento pode resultar em um valor relatado maior do que o esperado.

  • Duração inicial: para a primeira solicitação atendida, a quantidade de tempo que o runtime levou para carregar a função e executar o código fora do método do handler.

  • XRAY TraceId: para solicitações rastreadas, o ID de rastreamento do AWS X-Ray.

  • SegmentId: para solicitações rastreadas, o ID do segmento do X-Ray.

  • Amostragem: para solicitações rastreadas, o resultado da amostragem.

Uso de controles avançados de registro em log do Lambda com .NET

Para dar mais controle sobre como os logs das funções são capturados, processados e consumidos, você pode configurar as seguintes opções de log para runtimes compatíveis do .NET:

  • Formato do log: selecione entre texto simples e formato JSON estruturado para os logs da sua função.

  • Nível de log: para logs no formato JSON, escolha o nível de detalhe dos logs enviados pelo Lambda para o CloudWatch, como ERROR, DEBUG ou INFO.

  • Grupo de logs: escolha o grupo de logs do CloudWatch para o qual sua função envia logs.

Para obter mais informações sobre essas opções de registro em log e instruções sobre como configurar a função para usá-las, consulte Configurar controles avançados de registro em log para funções do Lambda.

Para usar as opções de formato de log e nível de log com as funções do Lambda para .NET, consulte as orientações nas seções a seguir.

Uso de logs em formato JSON estruturado com .NET

Se você selecionar JSON para o formato de log da função, o Lambda enviará a saída de logs usando ILambdaLogger como JSON estruturado. Cada objeto de log JSON contém pelo menos cinco pares de valores-chave com as seguintes chaves:

  • "timestamp": o horário em que a mensagem de log foi gerada.

  • "level": o nível de log atribuído à mensagem.

  • "requestId": o ID de solicitação exclusivo para invocar a função.

  • "traceId": a variável de ambiente _X_AMZN_TRACE_ID

  • "message": o conteúdo da mensagem de log.

A instância ILambdaLogger pode adicionar mais pares de valores-chave, por exemplo, ao gerar logs de exceções. Você também pode fornecer seus próprios parâmetros adicionais, conforme descrito na seção Parâmetros de log fornecidos pelo cliente.

nota

Se o código já usa outra biblioteca de logs para produzir logs em formato JSON, certifique-se de que o formato de log da função esteja definido como texto sem formatação. Definir o formato de log como JSON resultará na codificação dupla das saídas de log.

O exemplo de comando de geração de log a seguir mostra como escrever uma mensagem de log com o nível INFO.

exemplo Código de log do .NET
context.Logger.LogInformation("Fetching cart from database");

Você também pode usar um método de log genérico que usa o nível de log como argumento, conforme mostrado no exemplo a seguir.

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

A saída de log desse exemplo de trechos de código seria capturada no CloudWatch Logs da seguinte forma:

exemplo Registro em 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 você configurar o formato de log da sua função para usar texto sem formatação, em vez de JSON, o nível de log capturado na mensagem seguirá a convenção da Microsoft de usar um rótulo de quatro caracteres. Por exemplo, um nível de log de Debug é representado na mensagem como dbug.

Quando você configura sua função para usar logs no formato JSON, o nível de log capturado no log usa o rótulo completo, conforme mostrado no exemplo de registro de log JSON.

Se você não atribuir um nível à saída de log, o Lambda atribuirá automaticamente o nível INFO a ele.

Exceções de log em JSON

Ao usar a geração estruturada de logs JSON com ILambdaLogger, você pode registrar exceções em seu código, conforme mostrado no exemplo a seguir.

exemplo uso de logs de exceções
try { connection.ExecuteQuery(query); } catch(Exception e) { context.Logger.LogWarning(e, "Error executing query"); }

A saída do formato de log por esse código é mostrada no JSON de exemplo a seguir. Observe que a propriedade message no JSON é preenchida usando o argumento de mensagem fornecido na chamada LogWarning, enquanto a propriedade errorMessage vem da propriedade Message da própria exceção.

exemplo Registro em 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 o formato de log da sua função estiver definido como JSON, o Lambda também mostrará mensagens de log formatadas em JSON quando seu código gerar uma exceção não detectada. O exemplo de trecho de código e mensagem de log a seguir mostra como as exceções não detectadas são registradas em log.

exemplo código de exceção
throw new ApplicationException("Invalid data");
exemplo Registro em 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>"] }

Parâmetros de log fornecidos pelo cliente

Com mensagens de log formatadas em JSON, você pode fornecer parâmetros adicionais de log e incluí-los no log message. O exemplo de trecho de código a seguir mostra um comando para adicionar dois parâmetros fornecidos pelo usuário com os rótulos retryAttempt e uri. No exemplo, o valor desses parâmetros vem dos argumentos retryAttempt e uriDestination passados para o comando de geração e log.

exemplo Comando de geração de log JSON com parâmetros adicionais
context.Logger.LogInformation("Starting retry {retryAttempt} to make GET request to {uri}", retryAttempt, uriDestination);

A saída da mensagem de log desse comando é mostrada no JSON de exemplo a seguir.

exemplo Registro em 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/" }
dica

Você também pode usar propriedades posicionais, em vez de nomes, ao especificar parâmetros adicionais. O comando de geração de log do exemplo anterior também poderia ser escrito da seguinte forma:

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

Observe que, quando você fornece parâmetros adicionais de log, o Lambda os captura como propriedades de nível superior no registro de log JSON. Essa abordagem difere de algumas bibliotecas populares de logs .NET, como Serilog, que captura parâmetros adicionais em um objeto filho separado.

Se o argumento que você fornece para um parâmetro adicional for um objeto complexo, por padrão, o Lambda usa o método ToString() para fornecer o valor. Para indicar que um argumento deve ser um objeto serializado JSON, use o prefixo @ conforme mostrado no trecho de código a seguir. Neste exemplo, User é um objeto com as propriedades FirstName e LastName.

exemplo Comando de geração de log JSON com objeto serializado JSON
context.Logger.LogInformation("User {@user} logged in", User);

A saída da mensagem de log desse comando é mostrada no JSON de exemplo a seguir.

exemplo Registro em 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 o argumento para um parâmetro adicional for uma matriz ou implementar IList ou IDictionary, o Lambda acrescentará o argumento à mensagem de log JSON como uma matriz, conforme mostrado no exemplo de registro de log JSON a seguir. Neste exemplo, {users} usa um argumento IList que contém instâncias da propriedade User com o mesmo formato do exemplo anterior. O Lambda converte IList em uma matriz, com cada valor sendo criado usando o método ToString.

exemplo Registro de log JSON com um argumento 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" ] }

Você também pode serializar a lista com JSON usando o prefixo @ em seu comando de geração de log. No exemplo de registro de log JSON a seguir, a propriedade users é serializada em JSON.

exemplo Registro de log JSON com um argumento IList serializado 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" } ] }

Uso de filtragem em nível de log com .NET

Ao configurar a filtragem em nível de log, você pode optar por enviar somente logs de um determinado nível de detalhe, ou inferior, para o CloudWatch Logs. Para saber como configurar a filtragem em nível de log para a função, consulte Filtragem em nível de log.

Para o AWS Lambda filtrar suas mensagens de log por nível de log, você pode usar logs formatados em JSON ou usar os métodos .NET Console para gerar mensagens de log. Para criar logs no formato JSON, configure o tipo de log da sua função como JSON e use a instância ILambdaLogger.

Com logs formatados em JSON, o Lambda filtrará as saídas de log usando o par de valores-chave “nível” no objeto JSON descrito em Uso de logs em formato JSON estruturado com .NET.

Se você usa os métodos .NET Console para gravar mensagens no CloudWatch Logs, o Lambda aplica níveis de log às suas mensagens da seguinte forma:

  • Método Console.WriteLine: o Lambda aplica um nível de log INFO

  • Método Console.Error: o Lambda aplica um nível de log ERROR

Ao configurar sua função para usar a filtragem em nível de log, você precisa selecionar entre as seguintes opções para o nível de logs enviados pelo Lambda para o CloudWatch Logs. Observe o mapeamento dos níveis de log usados pelo Lambda com os níveis padrão da Microsoft usados pelo ILambdaLogger .NET.

Nível de log do Lambda Nível equivalente da Microsoft Uso padrão
TRACE (mais detalhes) Rastreamento As informações mais detalhadas usadas para rastrear o caminho da execução do código
DEBUG Depure Informações detalhadas para depuração do sistema
INFO Informações Mensagens que registram a operação normal da função
WARN Aviso Mensagens sobre possíveis erros que podem levar a um comportamento inesperado se não forem corrigidos
ERRO Erro Mensagens sobre problemas que impedem que o código funcione conforme o esperado
FATAL (menos detalhes) Crítico Mensagens sobre erros graves que fazem a aplicação parar de funcionar

O Lambda envia logs do nível de detalhe selecionado, e dos níveis inferiores, para o CloudWatch. Por exemplo, se você configurar um nível de log de WARN, o Lambda enviará logs correspondentes aos níveis WARN, ERROR e FATAL.

Outras ferramentas de geração de log e bibliotecas

Powertools para AWS Lambda (.NET) é um kit de ferramentas para desenvolvedores para implementar práticas recomendadas de tecnologia sem servidor e aumentar a velocidade do desenvolvedor. O utilitário de logs fornece um registrador de logs otimizado para Lambda que inclui informações adicionais sobre o contexto da função em todas as suas funções, com saída estruturada como JSON. Use esse utilitário para fazer o seguinte:

  • Capturar campos-chave do contexto do Lambda, inicialização a frio e estruturas registrando em log a saída como JSON

  • Registrar em log eventos de invocação do Lambda quando instruído (desativado por padrão)

  • Imprimir todos os logs somente para uma porcentagem das invocações por meio da amostragem de logs (desativado por padrão)

  • Anexar chaves adicionais ao log estruturado a qualquer momento

  • Use um formatador de log personalizado (Bring Your Own Formatter) para gerar logs em uma estrutura compatível com o RFC de logs da sua organização

Uso do Powertools para AWS Lambda (.NET) e do AWS SAM para registro em log estruturado

Siga as etapas abaixo para baixar, criar e implantar um exemplo de aplicação C# Hello World com os módulos integrados do Powertools para AWS Lambda (.NET) usando o AWS SAM. Esta aplicação implementa um backend de API básico e usa o Powertools para emitir logs, métricas e rastreamentos. Consiste em um endpoint do Amazon API Gateway e uma função do Lambda. Quando você envia uma solicitação GET ao endpoint do API Gateway, a função do Lambda invoca, envia logs e métricas usando o formato de métricas incorporadas ao CloudWatch e envia rastreamentos ao AWS X-Ray. A função retorna uma mensagem hello world.

Pré-requisitos

Para executar as etapas desta seção, você deve ter o seguinte:

Implantar uma aplicação de exemplo do AWS SAM
  1. Inicialize a aplicação usando o modelo Hello World TypeScript.

    sam init --app-template hello-world-powertools-dotnet --name sam-app --package-type Zip --runtime dotnet6 --no-tracing
  2. Crie a aplicação.

    cd sam-app && sam build
  3. Implante o aplicativo.

    sam deploy --guided
  4. Siga as instruções na tela. Para aceitar as opções padrão fornecidas na experiência interativa, pressione Enter.

    nota

    Em HelloWorldFunction pode não ter autorização definida, tudo bem?, certifique-se de inserir y.

  5. Obtenha o URL da aplicação implantada:

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

    curl -X GET <URL_FROM_PREVIOUS_STEP>

    Se tiver êxito, você verá esta resposta:

    {"message":"hello world"}
  7. Para obter os logs da função, execute sam logs. Para obter mais informações, consulte Trabalhar com logs no Guia do desenvolvedor do AWS Serverless Application Model.

    sam logs --stack-name sam-app

    O resultado de saída do log se parece com:

    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. Este é um endpoint de API pública que é acessado pela Internet. Recomendamos excluir o endpoint após o teste.

    sam delete

Gerenciar a retenção de logs

Os grupos de logs não são excluídos automaticamente excluídos quando você exclui uma função. Para evitar armazenar logs por tempo indeterminado, exclua o grupo de logs ou configure um período de retenção após o qual o CloudWatch excluirá os logs automaticamente. Para configurar a retenção de logs, adicione o seguinte ao seu modelo do 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

Visualizar logs no console do Lambda

Você pode usar o console do Lambda para exibir a saída do log depois de invocar uma função do Lambda.

Se seu código puder ser testado no editor de Código incorporado, você encontrará logs nos resultados de execução. Ao usar o recurso de teste do console para invocar uma função, você encontrará Saída de log na seção Detalhes.

Visualização de logs no console do CloudWatch

Você pode usar o console do Amazon CloudWatch para exibir registros de todas as invocações da função do Lambda.

Para visualizar logs no console do CloudWatch
  1. No console do Amazon CloudWatch, abra a página Log groups (Grupos de log).

  2. Escolha o grupo de logs de sua função (/aws/lambda/nome-de-sua-função).

  3. Escolha um stream de logs.

Cada fluxo de log corresponde a uma instância da sua função. Uma transmissão de logs é exibida quando você atualiza sua função do Lambda e quando mais instâncias são criadas para lidar com várias invocações simultâneas. Para localizar logs de uma invocação específica, recomendamos intrumentar sua função com AWS X-Ray. O X-Ray registra detalhes sobre a solicitação e o stream de logs no rastreamento.

Visualizar logs usando a AWS Command Line Interface (AWS CLI)

O AWS CLI é uma ferramenta de código aberto que permite interagir com os serviços do AWS usando comandos no shell da linha de comando. Para concluir as etapas desta seção, você deve ter a versão 2 da AWS CLI.

Você pode usar a AWS CLI para recuperar logs de uma invocação usando a opção de comando --log-type. A resposta contém um campo LogResult com até 4 KB de logs codificados em base64 obtidos da invocação.

exemplo recuperar um ID de log

O exemplo a seguir mostra como recuperar um ID de log do campo LogResult para uma função chamada my-function.

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

A seguinte saída deverá ser mostrada:

{
    "StatusCode": 200,
    "LogResult": "U1RBUlQgUmVxdWVzdElkOiA4N2QwNDRiOC1mMTU0LTExZTgtOGNkYS0yOTc0YzVlNGZiMjEgVmVyc2lvb...",
    "ExecutedVersion": "$LATEST"
}
exemplo decodificar os logs

No mesmo prompt de comando, use o utilitário base64 para decodificar os logs. O exemplo a seguir mostra como recuperar logs codificados em base64 de 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

A opção cli-binary-format será necessária se você estiver usando a AWS CLI versão 2. Para que essa seja a configuração padrão, execute aws configure set cli-binary-format raw-in-base64-out. Para obter mais informações, consulte A AWS CLI comporta opções de linha de comando globais no Guia do usuário da AWS Command Line Interface versão 2.

A seguinte saída deverá ser mostrada:

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

O utilitário base64 está disponível no Linux, macOS e Ubuntu no Windows. Os usuários do macOS precisam usar base64 -D.

exemplo get-logs.sh script

No mesmo prompt de comando, use o script a seguir para fazer download dos últimos cinco eventos de log. O script usa sed para remover as aspas do arquivo de saída e fica inativo por 15 segundos para que os logs tenham tempo de ficar disponíveis. A saída inclui a resposta do Lambda, e a saída do comando get-log-events.

Copie o conteúdo do exemplo de código a seguir e salve no diretório de seu projeto do Lambda como get-logs.sh.

A opção cli-binary-format será necessária se você estiver usando a AWS CLI versão 2. Para que essa seja a configuração padrão, execute aws configure set cli-binary-format raw-in-base64-out. Para obter mais informações, consulte A AWS CLI comporta opções de linha de comando globais no Guia do usuário da AWS Command Line Interface versão 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
exemplo macOS e Linux (somente)

No mesmo prompt de comando, os usuários do macOS e do Linux podem precisar executar o comando a seguir para garantir que o script seja executável.

chmod -R 755 get-logs.sh
exemplo recuperar os últimos cinco eventos de log

No mesmo prompt de comando, execute o script a seguir para obter os últimos cinco eventos de log.

./get-logs.sh

A seguinte saída deverá ser mostrada:

{ "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" }

Excluir logs

Os grupos de logs não são excluídos automaticamente excluídos quando você exclui uma função. Para evitar armazenar logs indefinidamente, exclua o grupo de logs ouConfigurar um período de retençãoapós o qual os logs são excluídos automaticamente.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.