如何通过CDK或CLI更新S3EventSource创建的Lambda函数运行时?
升级由S3EventSource触发的Lambda函数运行时至Python 3.11
使用AWS CDK升级
- 找到定义Lambda函数的CDK代码块,把
runtime参数从Runtime.PYTHON_3_7改成Runtime.PYTHON_3_11即可,示例如下:from aws_cdk import aws_lambda as lambda_ # 修改后的Lambda定义 my_lambda = lambda_.Function(self, "MyLambda", runtime=lambda_.Runtime.PYTHON_3_11, # 替换为目标版本 handler="index.handler", code=lambda_.Code.from_asset("lambda_code") ) - 先确认Lambda代码兼容Python 3.11——检查是否使用了3.7之后废弃的语法,第三方依赖包是否支持3.11版本
- 执行
cdk deploy重新部署,完成后Lambda运行时会更新,S3事件触发的关联关系不受影响,无需额外调整配置
使用AWS CLI升级
- 直接调用
update-function-configuration命令修改运行时即可,S3事件触发配置与Lambda函数独立,升级不会改动触发规则:aws lambda update-function-configuration \ --function-name 你的Lambda函数名 \ --runtime python3.11 - 验证修改结果可执行:
aws lambda get-function-configuration --function-name 你的Lambda函数名 | grep Runtime - 同样需要提前确认代码兼容Python 3.11,避免上线后出现运行错误
额外提醒
- 优先在测试环境验证兼容性,Python 3.7到3.11存在不少语法、内置函数行为的变化,第三方库可能需要同步升级
- 如果Lambda使用了自定义层(Layer),需确认层代码兼容3.11,必要时重新打包构建层
内容的提问来源于stack exchange,提问作者undefine97
相关产品推荐
相关产品推荐

