30 lines
951 B
Python
30 lines
951 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
|
|
sm = boto3.client('secretsmanager', region_name='us-east-1')
|
|
token = sm.get_secret_value(SecretId=os.environ['TELEGRAM_BOT_TOKEN_SECRET_ARN'])['SecretString']
|
|
|
|
# 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)
|