本日の人気ページ
- WBS作成ツール(5)
- タイムチャート作成(5)
- 3.OS基本設定(5)
- 個人タスク管理(4)
- 1.システム情報取得(4)
- 1.基本構成(3)
- 10.カーネルパラメータ(2)
- 1.インストール(2)
昨日の人気ページ
6
本日の人気ページ
昨日の人気ページ
6
CloudWatchLogs連携で、ElasticSearchサブスクリプションフィルターを作成します。
今回は、以下の流れでElasticSearchにログを記録しています。
①Lambda関数を指定したAPIGatewayにWebリクエストをする。
②Lambda関数が呼び出された際にeventをCloudWatchLogsに記録する。
③CloudWatchLogsのログ記録をトリガーに、サブスクリプションフィルターが動いてElasticSearchに記録する。
・下記を参考に、CloudWatchLogsのRecordが分割されないようにloggingを使用します。
Aws/Lambda/サンプルイベントが欲しい時#Loggerで出力する
Webリクエストのレスポンスも欲しいので、下記のコードとなります。
import json import logging logger = logging.getLogger() logger.setLevel('INFO') def lambda_handler(event, context): jsn_str = event logger.info(json.dumps(jsn_str, ensure_ascii=False, indent=2)) return { 'isBase64Encoded': False, 'statusCode': 200, 'headers': {}, 'body': json.dumps(jsn_str, ensure_ascii=False, indent=2) }
・下記を参考に、「Lambdaプロキシ統合の使用」を選択して作成します。
Aws/APIGateway/Lambdaプロキシ統合の使用
APIGateway/Lambda関数の呼び出し
以下の形式のカスタムポリシーをアタッチしたロールを作成します。
別途作成されるLambda関数に割り当てるので、信頼関係はLambdaを指定します。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "es:*" ], "Effect": "Allow", "Resource": "arn:aws:es:region:account-id:domain/target-domain-name/*" } ] }
事前準備したAPIGatewayにWebリクエストをすると、CloudWatchLogsにLambda関数のログが作成されます。
ElasticSearchに格納するLambda関数のロググループを開き、[アクション]-[サブスクリプションフィルター]-[ElasticSearchサブスクリプションフィルターを作成]を選択します。
[ElasticSearchサブスクリプションフィルターを作成]の画面が開くので、以下の情報を入力し、[ストリーミングを開始]をクリックします。
■送信先を選択
・アカウントを選択:This account
・Amazon ES cluster:ElasticSearchのクラスターを選択
・Lambda IAM Execution Role:ElasticSearchサブスクリプションフィルター用のロールを選択
■ログ形式とフィルターを設定
・ログの形式:JSON ※記録されるログ形式によります。
・サブスクリプションフィルターのパターン:{ $.httpMethod = “*” } ※フィルタする文字列によります。(今回は、Lambda関数からloggerで記録したRecordだけフィルタしたかったので)
・サブスクリプションフィルター名:Elasticsearch ※任意文字列
今回はコマンドプロンプトから呼び出しました。うおおおぉお!!
curl -XGET https://{API-ID}.execute-api.ap-northeast-1.amazonaws.com/{ステージ名} curl -XPUT https://{API-ID}.execute-api.ap-northeast-1.amazonaws.com/{ステージ名} curl -XPUT https://{API-ID}.execute-api.ap-northeast-1.amazonaws.com/{ステージ名} curl -XGET https://{API-ID}.execute-api.ap-northeast-1.amazonaws.com/{ステージ名}
告知 2022/05/27 日本語URLが不評なので全ページ修正しました、リンク切れはツリーを辿ってください。