您可以使用AWS CloudWatch事件规则和Lambda函数来实现此功能。下面是一个示例代码:
import boto3
import datetime
def lambda_handler(event, context):
start_time = datetime.datetime(2022, 1, 1, 0, 0, 0) # 设置开始时间
end_time = datetime.datetime(2022, 1, 2, 0, 0, 0) # 设置结束时间
# 创建CloudWatch事件规则
cloudwatch = boto3.client('events')
response = cloudwatch.put_rule(
Name='RepeatTrigger',
ScheduleExpression='rate(5 minutes)', # 设置触发器频率
StartTime=start_time,
EndTime=end_time
)
# 创建Lambda函数
lambda_client = boto3.client('lambda')
response = lambda_client.create_function(
FunctionName='MyFunction',
Runtime='python3.7',
Role='arn:aws:iam::123456789012:role/lambda-role', # 替换为您的Lambda角色ARN
Handler='lambda_function.lambda_handler',
Code={
'S3Bucket': 'my-bucket',
'S3Key': 'my-function.zip'
},
Description='My Lambda Function',
Timeout=300
)
# 添加Lambda函数作为CloudWatch事件目标
response = cloudwatch.put_targets(
Rule='RepeatTrigger',
Targets=[
{
'Id': '1',
'Arn': 'arn:aws:lambda:us-east-1:123456789012:function:MyFunction' # 替换为您的Lambda函数ARN
}
]
)
上述代码中,我们首先设置了开始时间和结束时间,并在CloudWatch事件规则中使用了rate(5 minutes)
表达式来指定触发器的频率为每5分钟一次。然后我们创建了一个Lambda函数,并将其添加为CloudWatch事件规则的目标。您需要根据自己的需求修改和替换代码中的参数和数值。
请注意,您需要具有适当的IAM角色和权限来执行上述操作。