如何修改通过Snowflake CLI部署的存储过程的Python Runtime版本?
修改已部署Snowflake存储过程的Python Runtime版本
问题背景
使用Snowflake CLI编排部署存储过程到Snowflake数据仓库,本地已按官方《Snowflake CLI 项目定义》完成应用配置,通过snow snowpark deploy --replace可正常部署,存储过程运行正常。但Python 3.8 runtime即将停止支持:
- 2024年10月14日起,Snowflake不再为Python 3.8提供安全补丁及更新,使用该版本的对象将无技术支持
- 2025年3月31日起,无法创建使用Python 3.8的新对象
尝试通过snow snowpark deploy --env RUNTIME_VERSION='3.9' --replace修改runtime版本未生效,需可行修改方法。
可行修改方法
方法1:修改项目配置文件(推荐)
直接在Snowflake CLI项目的配置文件(如snowflake.yml)中指定目标runtime版本,重新部署即可生效:
- 打开本地项目的配置文件,找到对应存储过程的定义区块
- 添加或更新
runtime_version: 3.9配置项,示例配置片段:
snowpark: procedures: - name: YOUR_PROCEDURE_NAME handler: your_module.your_function runtime_version: 3.9 # 保留原有其他配置(如返回类型、参数定义等)
- 执行部署命令:
snow snowpark deploy --replace
方法2:直接执行ALTER PROCEDURE SQL语句
无需修改本地配置,可通过Snowflake控制台或SQL客户端直接修改已部署的存储过程:
ALTER PROCEDURE YOUR_PROCEDURE_NAME(参数类型1 参数名1, 参数类型2 参数名2) SET RUNTIME_VERSION = '3.9';
注意:必须严格匹配原存储过程的参数列表(包括参数类型和名称),否则会提示对象不存在。
方法3:使用CLI的--config-override参数临时覆盖
部署时通过--config-override参数直接覆盖配置中的runtime版本,适合临时调整:
snow snowpark deploy --replace --config-override snowpark.procedures[0].runtime_version=3.9
说明:
snowpark.procedures[0]对应配置中第一个存储过程,多存储场景需调整索引或通过名称指定(具体格式参考Snowflake CLI官方文档)。
内容的提问来源于stack exchange,提问作者Nicolas Sanchez
相关产品推荐
相关产品推荐

