Amazon APIゲートウェイでAPIを作成したので、APIのCloudWatchログを有効にしたい。どのようにすれば実現できますか?

Amazon APIゲートウェイでは、API Gatewayコンソール、AWS CLI、APIゲートウェイ コントロール サービスREST API、そしてプラットフォーム固有または言語固有のSDKを使って、APIを作成できます。この記事の例は、 「Build and Test an API Gateway API from an Example」に記載されているように、Amazon API Gatewayコンソールで作成されました。この記事では、AWS CloudWatchコンソールを使用してCloudWatchログを有効にする方法についても記載しています。

1.    AWSアカウントをお持ちでない場合は、 「Get Ready to Use Amazon API Gateway」 および「Sign Up for AWS」 に移動します。

2.    「Create an IAM User, Group or Role in Your AWS Account」 の手順を完了します。

3.    必要に応じて、「Grant IAM Users Permissions to Access API Gateway Control and Execution Services」の手順を完了します。

4.    [AWS IAM console] を開き、 [Roles] を選択します。

5.    既に存在するロールの名前を選択するか、新しくロールを作成し、 [Role Summary] ページに表示するロールの名前を選択します。[Role Summary] ページで [Permissions] タブが選択されていることを確認し、ロールに AmazonAPIGatewayPushToCloudWatchLogs ポリシーを添付してください。新しくロールを作成した場合は、ロール ウィザードで、ロールの種類として [Amazon API Gateway] を選択してください。そうすることで、ロールにポリシーを添付するときに適切なポリシーが表示されるようになります。このポリシーは、CloudWatchログの作成のためのすべての権限をロールに与えます。これはAPIのCloudWatchログを有効にするために必要です。ページの一番上にロールのARNが表示されていることを覚えておいてください。ARNをCloudWatch log role ARNとして指定する必要がありますが、API Gatewayコンソールの [Settings] ページで行います。このIAMロールは、以下の信頼ポリシーを持ちます。

{

    "Version":"2012-10-17",

    "Statement": [

        {

            "Sid": "",

            "Effect": "Allow",

            "Principal": {

                "Service": "apigateway.amazonaws.com"

            },

            "Action": "sts:AssumeRole"

        }

    ]

}

6.    IAMユーザーにAPI Gatewayへの適切な権限を与えた後、まだAPI Gateway APIを作成していない場合は、Amazon API Gateway コンソールにそのIAMユーザーとしてサイン インしてから、 「例から API Gateway API を構築する」 の手順に従います。すでに作成済みの場合は、ステージにデプロイしたことを確認してください。

API Gatewayコンソールを開き、以下の手順に従ってAPI Gateway APIのCloudWatchログを有効にします。

1.    左のナビゲーションペインから [Settings] を選択し、AmazonAPIGatewayPushToCloudWatchLogs ポリシーが添付されたロールのARNを入力します。

2.    [Save (保存)] を選択します。

3.    左に表示された一覧からお客様のAPIを選択し、APIの[Stages] カテゴリを選択します。

4.    中央のペインで、ご希望のステージを選択します。API Gatewayコンソールの右のペインの [CloudWatch Settings] で、 [Enable CloudWatch Logs] チェックボックスをオンにします。それからご希望の [Log Level] を [INFO] または [ERROR] に設定し、 [Save Changes] を選択します。

ログの記録をメソッドごとに制御することもできます。これはステージの全体設定とは独立しています。

1.    API Gatewayコンソールの中央のペインから、お客様のAPIの最上位ステージの隣にある三角マークを選択し、APIのメソッドとオプションの階層を展開します。サンプルのAPI階層を作成、展開している場合は、階層構造の一番下の /pets/{petId} ステージの下にある [GET] メソッドを選択してください。

2.    右のペインで、 [Settings] の下から [Override for this method] を選択してください。[Enable CloudWatch Logs] という新しいオプションが表示されます。チェックボックスをオンにして、以前と同様に、ご希望の [Log Level] を設定します。

ログの記録がステージのレベルで無効化されていても、ここで有効化すればこのメソッドのみ呼び出します。

ページ一番上の[Invoke URL:] を覚えておいてください。サンプルのAPI Gateway APIを作成した場合、このURLは以下のURLと同じになるはずです。

https://uid.execute-api.regionidentifier.amazonaws.com/test/pets/{petId}

このURLを使ってサンプルAPIの /pets/{petId} メソッドを呼び出し、ブラウザーを開いて {petId} に正の整数値を代入できます。例えば、/pets/555となります。

[CloudWatch console] を開き、左のナビゲーションペインから [Logs] を選択します。API GatewayのCloudWatchログを有効にすると、/aws/apigateway/welcome エントリーが右ペインの [Log Groups] セクションに一覧で表示されます。

ひとこと:API Gateway consoleでCloudWatchログを有効にした後、 [CloudWatch console] にログが表示される前に、お客様のAPIをデプロイしなおす必要がある場合があります。

お客様のAPIには、 [Log Group] でAPI-Gateway-Execution-Logs_api-id/ とタイトルが付き、多数のログを含みます。

Amazon API Gateway、API、ログ、CloudWatch、計量、IAM、AmazonAPIGatewayPushToCloudWatchLogs、ロール、ポリシー、設定、監視


このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2016 年 08 月 25 日