Add EventBridge scheduling: schedule_reminder, list_reminders, cancel_reminder

This commit is contained in:
daniel
2026-05-07 23:24:48 -05:00
parent 825294d433
commit 58ed60f7b7
46 changed files with 3605 additions and 24 deletions

View File

@@ -387,7 +387,7 @@
"Properties": {
"Code": {
"S3Bucket": "cdk-hnb659fds-assets-495395224548-us-east-1",
"S3Key": "c0db2a060be885d61722dfe6fbd3967e1c956826682078f6338123bf0c797e5b.zip"
"S3Key": "49f9e3ee598c0259165125872304200dbdffee263d76fca541a8630534d8f5c5.zip"
},
"Environment": {
"Variables": {
@@ -423,7 +423,7 @@
],
"Metadata": {
"aws:cdk:path": "AgentClawStack/AgentRunner/Resource",
"aws:asset:path": "asset.c0db2a060be885d61722dfe6fbd3967e1c956826682078f6338123bf0c797e5b",
"aws:asset:path": "asset.49f9e3ee598c0259165125872304200dbdffee263d76fca541a8630534d8f5c5",
"aws:asset:is-bundled": false,
"aws:asset:property": "Code"
}
@@ -872,6 +872,33 @@
"Effect": "Allow",
"Resource": "arn:aws:secretsmanager:us-east-1:495395224548:secret:agent-claw/google-credentials/*",
"Sid": "PerUserGoogleCredentialsReadRuntime"
},
{
"Action": [
"events:PutRule",
"events:PutTargets",
"events:ListRules",
"events:ListTargetsByRule",
"events:RemoveTargets",
"events:DeleteRule"
],
"Effect": "Allow",
"Resource": "arn:aws:events:us-east-1:*:rule/agent-claw-reminder-*",
"Sid": "EventBridgeScheduler"
},
{
"Action": [
"lambda:AddPermission",
"lambda:RemovePermission"
],
"Effect": "Allow",
"Resource": {
"Fn::GetAtt": [
"SchedulerCFE73206",
"Arn"
]
},
"Sid": "SchedulerLambdaPermission"
}
],
"Version": "2012-10-17"
@@ -1114,6 +1141,127 @@
"aws:asset:property": "Code"
}
},
"SchedulerServiceRole62CDA70C": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
}
}
],
"Version": "2012-10-17"
},
"ManagedPolicyArns": [
{
"Fn::Join": [
"",
[
"arn:",
{
"Ref": "AWS::Partition"
},
":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
]
]
}
]
},
"Metadata": {
"aws:cdk:path": "AgentClawStack/Scheduler/ServiceRole/Resource"
}
},
"SchedulerServiceRoleDefaultPolicyFA0D8235": {
"Type": "AWS::IAM::Policy",
"Properties": {
"PolicyDocument": {
"Statement": [
{
"Action": [
"secretsmanager:GetSecretValue",
"secretsmanager:DescribeSecret"
],
"Effect": "Allow",
"Resource": "arn:aws:secretsmanager:us-east-1:495395224548:secret:agent-claw/telegram-bot-token-Oq3in3"
},
{
"Action": [
"events:RemoveTargets",
"events:DeleteRule"
],
"Effect": "Allow",
"Resource": "arn:aws:events:us-east-1:495395224548:rule/agent-claw-reminder-*"
}
],
"Version": "2012-10-17"
},
"PolicyName": "SchedulerServiceRoleDefaultPolicyFA0D8235",
"Roles": [
{
"Ref": "SchedulerServiceRole62CDA70C"
}
]
},
"Metadata": {
"aws:cdk:path": "AgentClawStack/Scheduler/ServiceRole/DefaultPolicy/Resource"
}
},
"SchedulerCFE73206": {
"Type": "AWS::Lambda::Function",
"Properties": {
"Code": {
"S3Bucket": "cdk-hnb659fds-assets-495395224548-us-east-1",
"S3Key": "8e7324457a5952eb51f04a34fbc5ba853252e7157d8d8958ac5fda92e72edb1f.zip"
},
"Environment": {
"Variables": {
"TELEGRAM_BOT_TOKEN_SECRET_ARN": "arn:aws:secretsmanager:us-east-1:495395224548:secret:agent-claw/telegram-bot-token-Oq3in3"
}
},
"FunctionName": "agent-claw-scheduler",
"Handler": "handler.handler",
"MemorySize": 128,
"Role": {
"Fn::GetAtt": [
"SchedulerServiceRole62CDA70C",
"Arn"
]
},
"Runtime": "python3.12",
"Timeout": 30
},
"DependsOn": [
"SchedulerServiceRoleDefaultPolicyFA0D8235",
"SchedulerServiceRole62CDA70C"
],
"Metadata": {
"aws:cdk:path": "AgentClawStack/Scheduler/Resource",
"aws:asset:path": "asset.8e7324457a5952eb51f04a34fbc5ba853252e7157d8d8958ac5fda92e72edb1f",
"aws:asset:is-bundled": false,
"aws:asset:property": "Code"
}
},
"SchedulerEventBridgeInvoke72A0529A": {
"Type": "AWS::Lambda::Permission",
"Properties": {
"Action": "lambda:InvokeFunction",
"FunctionName": {
"Fn::GetAtt": [
"SchedulerCFE73206",
"Arn"
]
},
"Principal": "events.amazonaws.com",
"SourceArn": "arn:aws:events:us-east-1:495395224548:rule/agent-claw-reminder-*"
},
"Metadata": {
"aws:cdk:path": "AgentClawStack/Scheduler/EventBridgeInvoke"
}
},
"CDKMetadata": {
"Type": "AWS::CDK::Metadata",
"Properties": {
@@ -1216,6 +1364,15 @@
"Arn"
]
}
},
"SchedulerLambdaArn": {
"Description": "Scheduler Lambda ARN — set as SCHEDULER_LAMBDA_ARN in agentcore.json",
"Value": {
"Fn::GetAtt": [
"SchedulerCFE73206",
"Arn"
]
}
}
},
"Parameters": {