업데이트 1

업데이트 1

golang으로 작성된 람다 함수가 있습니다. HTTP API 게이트웨이를 호출하여 실행합니다. 잘 작동하지만 내 golang 프로그램에서 생성된 stderr로 작성된 로그를 보고 싶습니다.

나는 노력했다이것

aws logs describe-log-groups

하지만 빈 배열이 표시됩니다.

{
    "logGroups": []
}

실제로 다음과 같이 API 게이트웨이 없이 직접 람다 함수를 호출할 때만 로그를 볼 수 있습니다.

aws lambda invoke --function-name $FUNCTION_NAME $output --log-type Tail --query 'LogResult' 

이 경우 로그는 호출 직후에 인쇄됩니다.

하지만 HTTP API 게이트웨이에서 람다 함수를 호출할 때 로그를 보는 것이 더 좋을 것입니다.

업데이트 1

이름이 다음과 같은 로그 그룹을 추가했습니다 /aws/lambda/$FUNCTION_NAME.

aws logs create-log-group --log-group-name /aws/lambda/$FUNCTION_NAME

그리고 여기에 로그 스트림을 추가했습니다.

aws logs create-log-stream --log-group-name /aws/lambda/$FUNCTION_NAME --log-stream-name /aws/lambda/$FUNCTION_NAME

그런 다음 API를 통해 람다 함수를 호출하여 일부 로그를 생성합니다. 이제 로그를 확인해보세요.

 aws logs get-log-events --log-group-name /aws/lambda/$FUNCTION_NAME --log-stream-name /aws/lambda/$FUNCTION_NAME

그리고 응답을 받습니다:

{
    "nextForwardToken": "f/7872383232323",
    "events": [],
    "nextBackwardToken": "b/8080823092093"
}

그럼 이벤트가 없군요... 흠...

콘솔에서 이 로그 그룹을 확인했습니다. 거기도 비어 있어요.

업데이트 2

CloudWatchFullAccess이 람다 함수에 연결된 역할에 정책을 추가했습니다 .

aws iam attach-role-policy --role-name $roleName \
    --policy-arn arn:aws:iam::aws:policy/CloudWatchFullAccess

API를 호출하고 로그를 다시 확인했지만 여전히 비어 있습니다. 흥미로운 점은 역할 정책을 나열할 때 빈 배열이 표시된다는 점입니다. 하지만 위에서는 CloudWatchFullAccess를 설정했습니다.

aws iam list-role-policies --role-name $roleName

{
    "PolicyNames": []
}

답변1

람다 함수를 생성할 때 연결된 로그 그룹이 있어야 하는데 계정에 아무 것도 없는 것 같습니다. 해당 이름으로 새 로그 그룹을 생성하여 '/aws/lambda/<function_name>'문제가 해결되는지 확인할 수 있습니다. 또한 웹 콘솔에 로그인하여 동일한 문제가 나타나는지 확인하겠습니다. Cloud Watch의 콘솔을 통해 로그 그룹을 생성할 수도 있습니다.

관련 정보