定期的に家族にLineを送るのでLine Notifyで自動化しました。これで人間リマインダーともおさらばです。
実行環境はAWSを利用し、構成としてはAmazon EventBridgeトリガーでLambdaを呼び出すことにしました。
Line NotifyとAWSリソースの構築手順 見出しへのリンク
- Line Notifyに登録しアクセストークンを取得
https://notify-bot.line.me/ja/ - Lambda作成
- lambda_handler関数にLineメッセージを送信するPython実装を追記
import requests
def lambda_handler(event, context):
api = 'https://notify-api.line.me/api/notify'
token = 'Line Notifyで取得したToken'
headers = {'Authorization': 'Bearer ' + token}
payload = {'message': event['message']}
r = requests.post(api, headers=headers, params=payload)
return ''
- import requests が使えるようにLayerファイルを作成し、Lambdaのレイヤーに追加する
参考: https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html
mkdir python/
cd python
pip install -t ./ requests
cd ..
zip -r Layer.zip python/
Layerの追加
作成済みLambdaにLayerを紐づける。
- LambdaトリガーとしてAmazon EventBridge (CloudWatchEvents)を追加
- Cronでスケジューリングする、例:月曜から金曜までの昼12:30に起動(JST)
30 3 ? * MON-FRI *
- JSON で定数を指定
{"message": "お昼のメッセージです"}