メインコンテンツまでスキップ

「CloudWatchEvents」タグの記事が1件件あります

全てのタグを見る

· 約3分
moritalous
お知らせ

過去にQiitaに投稿した内容のアーカイブです。

我が子の小学校で、「ツイタもん」が導入されました。

児童見守り安心システム ツイタもん https://tsuitamon.jp/

学校の門を通ると、「ツイタもん」とメールが来ます。 今どきなサービスですが、毎日メールが来ると、そのうち気にしなくなりそうです。 そこで、万が一、門を通ってないときだけ「ツイテないもん」と連絡が来る仕組みを考えました。

仕組み

仕組みとしては、子供が学校に行くまでの時間に、 「ツイテないもん」通知を行うスケジュール を有効にし、「ツイタもん」メールが来たらこの 「ツイテないもん」通知を行うスケジュール を無効にします。 学校についたら、スケジュールはキャンセルされて通知は実行されず、学校についてなければ、通知スケジュールに従って通知されるわけです。

これをIFTTTとAWSのLambdaやCloudWatch Eventsを組み合わせて実現します。

構成

全体構成

ツイテないもん.png

学校についた場合

ツイテないもん-ついた場合.png

学校についてない場合

ツイテないもん-ついてない場合.png

Lambdaの処理

CloudWatch Eventsを無効にするLambda

超適当 CloudWatch Eventsのイベント名は環境変数にセットしました。 無効ではなく有効にする場合はdisable_ruleenable_ruleになります。

import os
import boto3

def lambda_handler(event, context):
# TODO implement
event_name = os.environ.get("EVENT_NAME")

client = boto3.client('events')

response = client.disable_rule(
Name=event_name
)

return response

ツイテないもん通知を行うLambda

超適当

import requests
import os

def lambda_handler(event, context):
requests.post(os.environ.get("REQUEST_URL"))
return 'Hello from Lambda'