Log de erro no Histórico do CloudWatch, porém funcionado o invoke da Lambda, envio de SNS, alerta de alarme no CloudWatch

0

Estou criando uma automação no n8n, tenho duas filas criadas do tipo standard, uma SQS e outra DLQ, criei um alarme no CloudWatch para avisar quando uma mensagem for pra DLQ gere um alarme e envia um SNS com um e-mail configurado. As integrações com as Lambdas, o SNS através do envio de e-mail cadastrado, o CloudWatch disparando alarme, está tudo funcionando, porém no painel de histórico aparece essa mensagem:

Logs_CloudWatch

Texto com mensagem de erro: Failed to execute action arn:aws:lambda:us-east-1:975050217683:function:n8n-redrive-dlq. Received error: "CloudWatch Alarms is not authorized to perform: lambda:InvokeFunction on the resource because no resource-based policy allows the lambda:InvokeFunction action"

Erro CloudWatch

1 Resposta
1
Resposta aceita

O erro que você está vendo no histórico do CloudWatch é uma mensagem comum quando há um problema de permissão entre o CloudWatch Alarms e a função Lambda que ele está tentando invocar. No entanto, como você mencionou que a invocação da Lambda, o envio de SNS e o alerta do alarme no CloudWatch estão funcionando corretamente, parece que este erro pode ser um falso positivo ou um problema de configuração residual.

Para resolver este problema e eliminar a mensagem de erro, você pode tentar as seguintes etapas:

  1. Verifique a política baseada em recursos da sua função Lambda. Certifique-se de que ela inclui uma declaração que permite explicitamente ao CloudWatch Alarms invocar a função.

  2. Adicione ou atualize a política de recursos da Lambda usando o AWS CLI. Use um comando semelhante a este:

    aws lambda add-permission
    --function-name n8n-redrive-dlq
    --statement-id AlarmAction
    --action 'lambda:InvokeFunction'
    --principal lambda.alarms.cloudwatch.amazonaws.com
    --source-account YOUR_ACCOUNT_ID
    --source-arn arn:aws:cloudwatch:us-east-1:YOUR_ACCOUNT_ID:alarm:YOUR_ALARM_NAME

    Substitua YOUR_ACCOUNT_ID pelo seu ID de conta AWS e YOUR_ALARM_NAME pelo nome do seu alarme CloudWatch.

  3. Verifique se o principal na política de recursos da Lambda está definido como "lambda.alarms.cloudwatch.amazonaws.com". Este é o serviço específico que o CloudWatch Alarms usa para invocar funções Lambda.

  4. Se o problema persistir, tente recriar o alarme do CloudWatch, garantindo que todas as permissões estejam corretamente configuradas durante o processo de criação.

  5. Verifique se não há políticas conflitantes ou negações explícitas que possam estar interferindo com a permissão de invocação.

Mesmo que tudo esteja funcionando corretamente, é uma boa prática resolver esses erros de log para manter sua configuração limpa e evitar confusões futuras. Se após implementar essas mudanças o erro persistir no log, mas todas as funcionalidades continuarem operando normalmente, pode ser necessário entrar em contato com o suporte da AWS para investigar se há algum problema de registro de logs no serviço.
Sources
CloudWatch Alarms is not authorized to perform: lambda:InvokeFunction on the resource because because no resource-based policy allows the lambda:InvokeFunction action | AWS re:Post
CloudWatch Alarm Not Triggering Lambda Function Despite Correctly Configured InvokeFunction Permissions | AWS re:Post

profile picture
respondido há 2 meses
  • Deu certo!

Você não está conectado. Fazer login para postar uma resposta.

Uma boa resposta responde claramente à pergunta, dá feedback construtivo e incentiva o crescimento profissional de quem perguntou.

Diretrizes para responder a perguntas