在AWS中,您可以使用CloudWatch事件和Lambda函数来限制特定时间范围内调用Lambda函数。以下是一个使用Python编写的示例代码:
import boto3
import datetime
def lambda_handler(event, context):
current_time = datetime.datetime.now().time()
start_time = datetime.time(10, 0, 0) # 设置开始时间为10:00:00
end_time = datetime.time(18, 0, 0) # 设置结束时间为18:00:00
if start_time <= current_time <= end_time:
# 在指定时间范围内执行您的代码逻辑
# ...
return "Lambda函数在指定时间范围内执行成功!"
else:
return "Lambda函数仅在特定时间范围内可调用!"
# 创建CloudWatch事件规则,配置触发Lambda函数的时间范围
def create_cloudwatch_event():
client = boto3.client('events')
response = client.put_rule(
Name='InvokeLambdaAtSpecificTime', # 规则名称
ScheduleExpression='cron(0 10-18 * * ? *)', # cron表达式,表示每天10:00-18:00执行一次
State='ENABLED' # 启用规则
)
# 将规则与Lambda函数绑定,当规则触发时调用Lambda函数
response = client.put_targets(
Rule='InvokeLambdaAtSpecificTime', # 规则名称
Targets=[
{
'Arn': 'arn:aws:lambda:us-west-2:123456789012:function:your-lambda-function', # Lambda函数的ARN
'Id': '1'
},
]
)
return response
# 主函数,用于启动CloudWatch事件规则
def main(event, context):
response = create_cloudwatch_event()
return response
请注意,示例中使用的时间范围是从早上10点到下午6点,您可以根据自己的需求进行调整。确保将your-lambda-function替换为您自己的Lambda函数的ARN。
您可以将上述代码作为一个AWS Lambda函数部署,然后在CloudWatch事件中配置触发规则,使Lambda函数仅在特定时间范围内调用。
下一篇:AWS:密码不可用。