お知らせ
過去にQiitaに投稿した内容のアーカイブです。
我が子の小学校で、「ツイタもん」が導入されました。
児童見守り安心システム ツイタもん https://tsuitamon.jp/
学校の門を通ると、「ツイタもん」とメールが来ます。 今どきなサービスですが、毎日メールが来ると、そのうち気にしなくなりそうです。 そこで、万が一、門を通ってないときだけ「ツイテないもん」と連絡が来る仕組みを考えました。
仕組み
仕組みとしては、子供が学校に行くまでの時間に、 「ツイテないもん」通知を行うスケジュール を有効にし、「ツイタもん」メールが来たらこの 「ツイテないもん」通知を行うスケジュール を無効にします。 学校についたら、スケジュールはキャンセルされて通知は実行されず、学校についてなければ、通知スケジュールに従って通知されるわけです。
これをIFTTTとAWSのLambdaやCloudWatch Eventsを組み合わせて実現します。
構成
全体構成
学校についた場合
学校についてない場合
Lambdaの処理
CloudWatch Eventsを無効にするLambda
超適当
CloudWatch Eventsのイベント名は環境変数にセットしました。
無効ではなく有効にする場合はdisable_rule
がenable_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'