LoginSignup
1
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-07-31

やりたいこと

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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0