Lambda 関数を呼び出すように CloudWatch サブスクリプションフィルターを構成する方法を教えてください。

所要時間1分
0

AWS Lambda 関数を呼び出すように Amazon CloudWatch サブスクリプションフィルターを構成したいと考えています。

簡単な説明

Amazon CloudWatch Logs では、Lambda 関数にログデータを送信するサブスクリプションフィルターを使用できます。CloudWatch Logs のサブスクリプションフィルターは base64 でエンコードされ、GZIP 形式で圧縮されています。

Lambda 関数を作成する前に、生成されるログデータの容量を計算します。必ず、ボリューム容量を管理できる関数を作成してください。関数に十分なボリュームがない場合、ログストリームはスロットリングされます。詳細については、「Lambda のクォータ」をご参照ください。

注: CloudWatch Logs データを大量にストリーミングすると、使用料金が高くなる可能性があります。AWS Budgets を使用して支出と使用量を追跡するのがベストプラクティスです。手順については、「AWS Budgets を使用して支出と使用量を追跡するにはどうすればよいですか?」を参照してください。

解決方法

AWS Lambda 関数にログデータを送信する CloudWatch Logs サブスクリプションフィルターを作成します

注: AWS コマンドラインインターフェイス (AWS CLI) のコマンド実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

1.    Lambda 関数を呼び出すためのアクセス許可を CloudWatch Logs に付与するには、次のような AWS CLI コマンドの add-permission を実行します。

aws lambda add-permission \
    --function-name "helloworld" \
    --statement-id "helloworld" \
    --principal "logs.amazonaws.com" \
    --action "lambda:InvokeFunction" \
    --source-arn "arn:aws:logs:region:123456789123:log-group:YourLogGroup:*" \
    --source-account "123456789012"

重要:「helloworld」は Lambda 関数名に、「YourLogGroup」はロググループに、サンプルアカウント番号は自分のアカウントに置き換えます。

2.    AWS CLI コマンドの put-subscription-filter を使用してサブスクリプションフィルターを作成し、キーワードを含むログイベントを送信します。次の例では、「ERROR」というキーワードが Lambda 関数に使用されています。

重要:「YourLogGroup」はロググループに、サンプルアカウント番号は自分のアカウントに置き換えます。

aws logs put-subscription-filter \
    --log-group-name YourLogGroup \
    --filter-name demo \
    --filter-pattern "ERROR" \
    --destination-arn arn:aws:lambda:region:123456789123:function:helloworld

CloudWatch ロググループ「YourLogGroup」は、次のようなキーワード「ERROR」を含むログイベントを受信すると、Lambda 関数を呼び出します。

{
  "awslogs": {
    "data": "H4sIAAAAAAAAAHWPwQqCQBCGX0Xm7EFtK+smZBEUgXoLCdMhFtKV3akI8d0bLYmibvPPN3wz00CJxmQnTO41whwWQRIctmEcB6sQbFC3CjW3XW8kxpOpP+OC22d1Wml1qZkQGtoMsScxaczKN3plG8zlaHIta5KqWsozoTYw3/djzwhpLwivWFGHGpAFe7DL68JlBUk+l7KSN7tCOEJ4M3/qOI49vMHj+zCKdlFqLaU2ZHV2a4Ct/an0/ivdX8oYc1UVX860fQDQiMdxRQEAAA=="
  }
}

関連情報

フィルターとパターンの構文

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ