StackdriverからAWS SQSにキューを追加してみた
やりたいこと
Stackdriverで検知したアラートをSQSにつっこんで、その後ごにょごにょしたい。
つかったもの
- Stackdriver
- アラート内容をWebhookで投げる。
- AWS API Gateway
- JSONを受け取ってSQSにつっこむ。
- AWS SQS
- つっこまれる。
やりかた
AWS IAM
- アラート内容をWebhookで投げる。
- JSONを受け取ってSQSにつっこむ。
- つっこまれる。
AWS IAM
AWS SQS
今回はFIFOタイプを選択しました。
コンテンツに基づく重複排除はチェックONにします。
そのほかはデフォルトで作りました。
AWS API Gateway
パス上書き(省略可能)はSQSのURL後半(012345678901/sqs_queue_name)を設定。
実行ロールは先ほど作成したIAMロールのarnを設定。
メソッドリクエストは、こんな感じで設定しました。
実際はAPIキーを設定した方がよいかと思います。
下部にスクロールして、HTTPヘッダーとマッピングテンプレートを設定します。
HTTPヘッダー
名前 | マッピング元 | キャッシュ |
---|---|---|
Content-Type | 'application/x-www-form-urlencoded' | OFF |
マッピングテンプレート
リクエスト本文のパススルー | Content-Type | テンプレート |
---|---|---|
なし | application/json | Action=SendMessage&MessageGroupId=hoge&MessageBody=$input.body |
Stackdriver
Webhookの設定
Webhookの設定を作ります。
ENDPOINT URLは、先ほど控えたURLにメソッド(/messages)を追加して記載します。
アラートの作成
今回はGCEインスタンスのUptime監視データが欠損したらアラートを飛ばすように設定しました。
Notificationsに先ほど作成したWebhookを設定します。
うごかしてみる
ログをみてみる
初めてAPIGateway使ったので、色々ハマりましてログが役立ちました。
ちなみにcurlでテストする際は下記コマンドでテストできました。
curl -H "Content-Type: application/json" -D - -X POST -d '{"hogehoge": "fugafuga"}' https://hogehoge.execute-api.ap-northeast-1.amazonaws.com/stackdrivertest/messages
参考
下記記事を参考にさせて頂きました。
ありがとうございます。
API Gateway 経由で SQS へメッセージを送る
https://qiita.com/itooww/items/df5efc6df64fae386e4c
Author And Source
この問題について(StackdriverからAWS SQSにキューを追加してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/horit/items/417c8ab2b4667fe310b9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .