
Eu tenho uma função lambda escrita em golang. Eu executo isso chamando o gateway da API HTTP. Funciona bem, mas gostaria de ver os logs escritos em stderr produzidos pelo meu programa golang.
tenteiesse
aws logs describe-log-groups
mas mostra array vazio:
{
"logGroups": []
}
Na verdade, só consigo ver os logs quando invoco a função lambda diretamente, sem o gateway da API, como este:
aws lambda invoke --function-name $FUNCTION_NAME $output --log-type Tail --query 'LogResult'
o log é impresso logo após a invocação, neste caso.
Mas seria ainda melhor ver os logs da função lambda quando eu a chamar pelo gateway da API HTTP.
Atualização 1
Eu adicionei um grupo de logs com nome /aws/lambda/$FUNCTION_NAME
:
aws logs create-log-group --log-group-name /aws/lambda/$FUNCTION_NAME
E adicionei fluxo de log a ele:
aws logs create-log-stream --log-group-name /aws/lambda/$FUNCTION_NAME --log-stream-name /aws/lambda/$FUNCTION_NAME
Então invoco minha função lambda via API para produzir alguns logs. Agora verificando os logs:
aws logs get-log-events --log-group-name /aws/lambda/$FUNCTION_NAME --log-stream-name /aws/lambda/$FUNCTION_NAME
E obtenha a resposta:
{
"nextForwardToken": "f/7872383232323",
"events": [],
"nextBackwardToken": "b/8080823092093"
}
Então não tenho nenhum evento... hmmm...
Eu verifiquei este grupo de logs no console. Está vazio lá também.
Atualização 2
Adicionei CloudWatchFullAccess
política à função anexada a esta função lambda:
aws iam attach-role-policy --role-name $roleName \
--policy-arn arn:aws:iam::aws:policy/CloudWatchFullAccess
API chamada, logs verificados novamente, ainda vazios. Interessante que quando listo as políticas de função, ela mostra uma matriz vazia. Embora eu tenha definido CloudWatchFullAccess acima.
aws iam list-role-policies --role-name $roleName
{
"PolicyNames": []
}
Responder1
Quando você cria uma função lambda, ela deve ter um grupo de logs associado a ela, mas parece que não há nenhum na sua conta. Você pode tentar criar um novo grupo de logs com o nome '/aws/lambda/<function_name>'
e ver se isso resolve o problema. Eu também tentaria fazer login no console da web para verificar se você vê o mesmo problema lá. Você também pode criar o grupo de logs por meio do console no Cloud Watch.