1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?