アップデート1

アップデート1

Golang で書かれたラムダ関数があります。HTTP API ゲートウェイを呼び出して実行します。問題なく動作しますが、Golang プログラムによって生成された stderr に書き込まれたログを確認したいと思います。

私は試したこれ

aws logs describe-log-groups

しかし、空の配列が表示されます:

{
    "logGroups": []
}

実際には、次のように API ゲートウェイを使用せずに Lambda 関数を直接呼び出した場合にのみログが表示されます。

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

この場合、ログは呼び出し直後に出力されます。

しかし、HTTP API ゲートウェイで Lambda 関数を呼び出すときに、そのログを確認できればさらに良いでしょう。

アップデート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 経由で Lambda 関数を呼び出してログを生成します。ログを確認します。

 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この Lambda 関数にアタッチされたロールにポリシーを追加しました。

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

Lambda 関数を作成すると、それに関連付けられたログ グループが存在するはずですが、アカウントにはログ グループが存在しないようです。その名前で新しいログ グループを作成して'/aws/lambda/<function_name>'、問題が解決するかどうかを確認してください。また、Web コンソールにログインして、同じ問題が発生するかどうかを確認してください。Cloud Watch のコンソールからログ グループを作成することもできます。

関連情報