You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Django中通过Fixie代理连接Snowflake失败求助

解决Heroku Django应用通过Fixie代理连接Snowflake的IP白名单问题

问题根源

Snowflake Python连接器不支持直接传入完整的代理URL字符串,你之前的代码使用proxy参数传递完整URL的方式不符合连接器的参数要求,导致代理设置被忽略。

修正后的代码

1. SQLAlchemy 连接方式

拆分Fixie代理的地址、端口、用户名和密码,作为单独参数传入connect_args:

from sqlalchemy import create_engine

# 拆分Fixie代理信息
proxy_host = 'velodroll.usefixie.com'
proxy_port = 80
proxy_user = 'fixie'
proxy_password = 'kT8kuyNpPbrbdx'

engine = create_engine(
    'snowflake://{user}:{password}@{account}/{database}/{schema}'.format(
        user=connection_details["user"],
        password=connection_details["pw"],
        account=connection_details["account"],
        database=connection_details["database"],
        schema=connection_details["schema"],
    ),
    connect_args={
        'proxy_host': proxy_host,
        'proxy_port': proxy_port,
        'proxy_user': proxy_user,
        'proxy_password': proxy_password
    }
)

2. 直接使用snowflake.connector连接

直接传递代理相关的顶层参数,无需嵌套在connect_args中:

import snowflake.connector

# 拆分Fixie代理信息
proxy_host = 'velodsad.usefixie.com'
proxy_port = 80
proxy_user = 'fixie'
proxy_password = 'kT8djczxc14'

conn = snowflake.connector.connect(
    user=connection_details["user"],
    password=connection_details["pw"],
    account=connection_details["account"],
    database=connection_details["database"],
    schema=connection_details["schema"],
    proxy_host=proxy_host,
    proxy_port=proxy_port,
    proxy_user=proxy_user,
    proxy_password=proxy_password
)

额外注意事项

  • 确认Fixie提供的固定出口IP已经添加到Snowflake账户的IP白名单中,这是代理生效的前提。
  • 避免硬编码代理密码等敏感信息,建议通过Heroku环境变量管理这些参数,比如os.environ.get('FIXIE_PROXY_PASSWORD')。
  • 测试连接前可以先通过Fixie的工具验证代理是否正常工作,确保请求确实通过Fixie的IP发出。

内容的提问来源于stack exchange,提问作者Ahmed Sanai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 16:20:35