Help us understand the problem. What is going on with this article?

StackdriverからAWS SQSにキューを追加してみた

More than 1 year has passed since last update.

やりたいこと

Stackdriverで検知したアラートをSQSにつっこんで、その後ごにょごにょしたい。

つかったもの

  • Stackdriver
    • アラート内容をWebhookで投げる。
  • AWS API Gateway
    • JSONを受け取ってSQSにつっこむ。
  • AWS SQS
    • つっこまれる。

やりかた

AWS IAM

こんなロールを作りました。
権限もりもり。
スクリーンショット 2019-07-31 16.51.42.png

AWS SQS

今回はFIFOタイプを選択しました。
コンテンツに基づく重複排除はチェックONにします。
そのほかはデフォルトで作りました。
スクリーンショット 2019-07-31 16.50.53.png

AWS API Gateway

こんな感じで作りました。
スクリーンショット 2019-07-30 14.54.04.png

API名、リソース名は任意で。
スクリーンショット 2019-07-30 14.54.56.png

パス上書き(省略可能)はSQSのURL後半(012345678901/sqs_queue_name)を設定。
実行ロールは先ほど作成したIAMロールのarnを設定。
スクリーンショット 2019-07-30 14.57.57.png

メソッドリクエスト統合リクエストを設定します。
スクリーンショット 2019-07-31 17.31.44.png

メソッドリクエストは、こんな感じで設定しました。
実際はAPIキーを設定した方がよいかと思います。
スクリーンショット 2019-07-31 18.03.25.png

統合リクエストはこんな感じで設定。
スクリーンショット 2019-07-31 17.32.28.png

下部にスクロールして、HTTPヘッダーマッピングテンプレートを設定します。
スクリーンショット 2019-07-31 17.35.21.png
HTTPヘッダー

名前 マッピング元 キャッシュ
Content-Type 'application/x-www-form-urlencoded' OFF

マッピングテンプレート

リクエスト本文のパススルー Content-Type テンプレート
なし application/json Action=SendMessage&MessageGroupId=hoge&MessageBody=$input.body

APIをデプロイします。
スクリーンショット 2019-07-30 15.22.39.png

URLを控えておきます。
ついでにログ有効化してます。
スクリーンショット 2019-07-31 18.19.50.png

Stackdriver

Webhookの設定

公式ドキュメント

Webhookの設定を作ります。
ENDPOINT URLは、先ほど控えたURLにメソッド(/messages)を追加して記載します。
スクリーンショット 2019-07-30 15.23.21.png

アラートの作成

今回はGCEインスタンスのUptime監視データが欠損したらアラートを飛ばすように設定しました。
Notificationsに先ほど作成したWebhookを設定します。
スクリーンショット 2019-07-31 18.34.43.png

うごかしてみる

正常
スクリーンショット 2019-07-31 18.52.19.png
キューもない
スクリーンショット 2019-07-31 18.54.33.png

インスタンス停止後、アラート発報。
スクリーンショット 2019-07-31 19.02.09.png

キューができた!
スクリーンショット 2019-07-31 19.09.22.png

中身
スクリーンショット 2019-07-31 19.03.05.png

ログをみてみる

初めてAPIGateway使ったので、色々ハマりましてログが役立ちました。
スクリーンショット 2019-07-31 19.10.25.png

ちなみに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

horit
主に滝を登ってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away