30 lines
961 B
Python
30 lines
961 B
Python
"""EventBridge-triggered Lambda: sends a Telegram reminder then deletes the rule."""
|
|
import json
|
|
import os
|
|
import boto3
|
|
import urllib.request
|
|
|
|
|
|
def handler(event, context):
|
|
chat_id = event['chat_id']
|
|
message = event['message']
|
|
rule_name = event['rule_name']
|
|
|
|
# Fetch bot token
|
|
ssm = boto3.client('ssm', region_name='us-east-1')
|
|
token = ssm.get_parameter(Name=os.environ['TELEGRAM_BOT_TOKEN_SSM_PARAM'], WithDecryption=True)['Parameter']['Value']
|
|
|
|
# Send Telegram message
|
|
payload = json.dumps({'chat_id': chat_id, 'text': message}).encode()
|
|
req = urllib.request.Request(
|
|
f'https://api.telegram.org/bot{token}/sendMessage',
|
|
data=payload,
|
|
headers={'Content-Type': 'application/json'},
|
|
)
|
|
urllib.request.urlopen(req)
|
|
|
|
# Delete the one-time rule
|
|
eb = boto3.client('events', region_name='us-east-1')
|
|
eb.remove_targets(Rule=rule_name, Ids=['scheduler'])
|
|
eb.delete_rule(Name=rule_name)
|