AWS Lambda Python中datetime.now()返回旧时间,重新部署无效
AWS Lambda 时间不更新问题解决
问题原因
你的代码中now = datetime.now()定义在lambda_handler函数外部,而AWS Lambda存在执行环境复用机制(热启动):第一次冷启动时会执行函数外的代码初始化变量,后续请求会复用已初始化的环境,不会重新执行函数外的代码,导致返回的时间始终是第一次启动时的时间,即使重新部署也可能因为环境未被销毁而继续复用旧值。
修复代码
将datetime.now()的调用移到lambda_handler函数内部,确保每次请求都会重新获取当前时间:
import json from datetime import datetime def lambda_handler(event, context): now = datetime.now() return { 'statusCode': 200, 'body': json.dumps(str(now)) }
补充说明
如果部署后仍看到旧值,可以手动触发几次请求,或者等待Lambda自动销毁旧的执行环境(通常一段时间无请求后会销毁),新的请求会触发冷启动,此时时间就会正常更新。
内容的提问来源于stack exchange,提问作者Juan Jose Picon
相关产品推荐
相关产品推荐

