メニュー
AWS Lambda
開発者ガイド

ログ記録 (Go)

Lambda 関数にログ作成のステートメントを含めることができます。AWS Lambda はこれらのログを CloudWatch に書き込みます。Lambda コンソールを使用して Lambda 関数を呼び出すと、コンソールに同じログが表示されます。

たとえば、次の例を考慮します。

package main import ( "log" "github.com/aws/aws-lambda-go/lambda" ) func HandleRequest() { log.Print("Hello from Lambda") } func main() { lambda.Start(HandleRequest) }

log モジュールをインポートすることで、Lambda はタイムスタンプなどの追加ログ記録の情報を書き込みます。

CloudWatch でログを分析することもできます。詳細については、「AWS Lambda の Amazon CloudWatch ログへのアクセス」を参照してください。

log モジュールを使用する代わりに、次に示すように print ステートメントをコードで使用できます。

package main import ( "fmt" "github.com/aws/aws-lambda-go/lambda" ) func HandleRequest() { fmt.Print("Hello from Lambda") } func main() { lambda.Start(HandleRequest) }

この場合、印刷メソッドに渡されるテキストのみが CloudWatch に送信されます。ログエントリには、log.Print 関数が返す追加情報はありません。さらに、stdout あるいは stderror に書き込むすべてのロガーは、Go 関数と CloudWatch ログに自動的に送信されるログに継続的に統合されます。

コンソールは、RequestResponse 呼び出しタイプ (同期呼び出し) を使用して関数を呼び出します。したがって、戻り値 (「Hello from Lambda!」) が AWS Lambda から返されます。

ログの検索

Lambda 関数が書き込んだログは、次のように確認できます。

  • AWS Lambda コンソール – AWS Lambda コンソールの [ログ出力] セクションにログが表示されます。

  • レスポンスのヘッダー、Lambda 関数をプログラムで呼び出した場合 – Lambda 関数をプログラムで呼び出した場合、LogType パラメーターを追加して、CloudWatch ログに書き込まれたログデータの最後の 4 KB を取得できます。AWS Lambda は、レスポンスの x-amz-log-results ヘッダーでこのログ情報を返します。詳細については、「Invoke」を参照してください。

    AWS CLI を使用して関数を呼び出した場合は、 --log-type parameter を値 Tail とともに指定して同じ情報を取得できます。

  • CloudWatch ログ – CloudWatch でログを確認するには、ロググループ名とログストリーム名を把握しておく必要があります。context.logGroupName および context.logStreamName グローバル変数を コンテキストオブジェクト (Go) ライブラリで使用して、この情報を取得できます。Lambda 関数を実行すると、コンソールまたは CLI の結果ログが、ロググループ名およびログストリーム名を表示します。

次のステップ

関数エラー (Go)

このページの内容: