LoginSignup
0
0

【AWS】API Gatewayのログ設定方法

Last updated at Posted at 2024-02-03

はじめに

API GatewayとLambdaを使ってLINE Botを作成中、デフォルトではAPI Gatewayのログが出力されておらず困ったのでやり方を調べてみました。
※間違いなどあればコメントで指摘をいただけると嬉しいです!

結論:専用のIAMロール作成が必要

設定は以下の3ステップ。これで、CloudWatchのロググループにログストリームが出力されるようになりました。

①IAMロールの作成:
「AmazonAPIGatewayPushToCloudWatchLogs」のポリシーを持つIAMロールを作成する

②IAMロールの適用:
上記①のIAMロールをAPI Gatewayの「設定」>「ログ記録」に設定する

②ログ出力の設定:
対象API Gatewayの「ステージ」でCloudWatchへのログ出力を設定する

設定手順

IAMロールの作成

IAMロールを作成します。ポリシーはAWSで用意しているものを使います。
IAM-menu.PNG

信頼されたエンティティは「AWSのサービス」、ユースケースは「API Gateway」を選びます。
IAM-usecase.PNG

許可ポリシーに「AmazonAPIGatewayPushToCloudWatchLogs」が入っていることを確認します。
IAM-addpolicy.PNG

ロールの名前やタグの設定をして、ロールを作成します。
IAM-name.PNG

作成できたら、ロールARNをコピーしておきます。
IAM-arn.PNG

IAMロールの適用

API Gatewayの「設定」を開きます。
APIG-setting.PNG

「ログ記録」を編集します。
APIG-log-arn_2.PNG

先ほど作成したIAMロールを設定します。
APIG-log-arn.PNG

ログ出力の設定

お使いのAPIの「ステージ」設定を開き、「ログとトレースの設定」を編集します。
APIG-log-trace_2.PNG

CloudWatchに出力したい情報(エラーのみ or 全てのログ)を選び、変更を反映します。
APIG-log-trace.PNG

結果確認

APIを叩く

ここまで設定できたらログが出力されるはずなので、APIを叩いてログ出力を確認します。

CloudWatchログストリームの確認

CloudWatchの「ロググループ」を開きます。
APIG-log-grp.PNG

ロググループが作成されているか確認します。
名前はAPI-Gateway-Execution-Logs_{rest-api-id}/{stage-name}です。
APIG-loggroup.PNG

対象のロググループをクリックすると、ログストリーム(一連のログイベント)が表示されます。
APIG-logstream.PNG

確認したいログストリームをクリックすると、ログイベントが一行ずつ表示されます。
これでログを確認できるようになりました!
APIG-logsevent_4.PNG

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0