Configurar grupos de logs do CloudWatch
Por padrão, o CloudWatch cria automaticamente um grupo de logs denominado /aws/lambda/<function name>
para a função quando ela é invocada pela primeira vez. Para configurar a função para enviar logs a um grupo de logs existente ou para criar um novo grupo de logs para a função, você pode usar a AWS CLI ou o console do Lambda. Você também pode configurar grupos de logs personalizados usando os comandos CreateFunction e UpdateFunctionConfiguration da API do Lambda e o recurso do AWS Serverless Application Model (AWS SAM) AWS::Serverless::Function.
Você pode configurar várias funções do Lambda para enviar logs ao mesmo grupo de logs do CloudWatch. Por exemplo, é possível usar um único grupo de logs para armazenar os logs de todas as funções do Lambda que fizerem parte de uma aplicação específica. Quando você usa um grupo de logs personalizado para uma função do Lambda, os fluxos de log criados pelo Lambda incluem o nome e a versão da função. Isso garante que o mapeamento entre mensagens de log e funções seja preservado, mesmo se você usar o mesmo grupo de logs para várias funções.
O formato de nomenclatura de fluxos de logs para grupos de logs personalizados segue esta convenção:
YYYY/MM/DD/<function_name>[<function_version>][<execution_environment_GUID>]
Observe que, ao configurar um grupo de logs personalizado, o nome selecionado para o grupo de logs deve seguir as regras de nomenclatura do CloudWatch Logs. Além disso, nomes de grupos de logs personalizados não devem começar com a string aws/
. Se você criar um grupo de logs personalizado começando com aws/
, o Lambda não conseguirá criar o grupo de logs. Como resultado, os logs da função não serão enviados para o CloudWatch.
Alterar o grupo de logs de uma função (console)
-
Abra a página Funções
do console do Lambda. -
Escolha uma função.
-
Na página de configuração da função, escolha Ferramentas de monitoramento e operações.
-
No painel Configuração de registro em log, escolha Editar.
-
No painel Grupo de logs do grupo de logs do CloudWatch, escolha Personalizado.
-
Em Grupo de logs personalizado, insira o nome do grupo de logs do CloudWatch para o qual você deseja que sua função envie logs. Se você inserir o nome de um grupo de logs existente, sua função usará esse grupo. Se não existir nenhum grupo de logs com o nome inserido, o Lambda criará um novo grupo de logs para a função com esse nome.
Alterar o grupo de logs de uma função (AWS CLI)
-
Para alterar o grupo de logs de uma função existente, use o comando update-function-configuration
. aws lambda update-function-configuration \ --function-name myFunction \ --logging-config LogGroup=myLogGroup
Especificar um grupo de logs personalizado ao criar uma função (AWS CLI)
-
Para especificar um grupo de logs personalizado ao criar uma nova função do Lambda usando a AWS CLI, use a opção
--logging-config
. O comando de exemplo a seguir cria uma função do Lambda para Node.js que envia logs para um grupo de logs denominadomyLogGroup
.aws lambda create-function \ --function-name myFunction \ --runtime nodejs22.x \ --handler index.handler \ --zip-file fileb://function.zip \ --role arn:aws:iam::123456789012:role/LambdaRole \ --logging-config LogGroup=myLogGroup
Permissões da função de execução
Para que sua função envie logs para o CloudWatch Logs, ela precisa ter a permissão logs:PutLogEvents. Quando você configura o grupo de logs da sua função usando o console do Lambda, o Lambda adiciona essa permissão ao perfil de acordo com as seguintes condições:
-
O destino do serviço está definido como o CloudWatch Logs
-
O perfil de execução da função não tem permissões para carregar logs no CloudWatch Logs (o destino padrão)
nota
O Lambda não adiciona nenhuma permissão de Put para destinos de log do Amazon S3 ou Firehose.
Quando o Lambda adiciona essa permissão, ele dá à função permissão para enviar logs para qualquer grupo de logs do CloudWatch Logs.
Para evitar que o Lambda atualize automaticamente o perfil de execução da função e o edite manualmente, expanda Permissões e desmarque Adicionar permissões necessárias.
Quando você configura o grupo de logs da função usando a AWS CLI, o Lambda não adiciona automaticamente a permissão logs:PutLogEvents
. Adicione a permissão ao perfil de execução da função, caso isso ainda não tenha sido feito. Essa permissão está incluída na política gerenciada AWSLambdaBasicExecutionRole