Snowpark Scala がプロキシオプションを JDBC 接続に渡す
Snowflake JDBC の useProxy、proxyHost、proxyPort プロパティを Snowpark Scala セッションの設定マップに追加します。
Snowpark Scala は Snowflake JDBC ドライバーで接続します。セッションビルダーは JDBC 設定プロパティを受け取るため、プロキシ設定は既存の接続マップと一緒に渡せます。
val proxyOptions = Map(
"useProxy" -> "true",
"proxyHost" -> "proxy.example",
"proxyPort" -> "8080"
)
val session = com.snowflake.snowpark.Session.builder
.configs(connectionOptions ++ proxyOptions)
.create
connectionOptions には、アプリケーションがすでに使っているアカウント、認証、その他の設定が入ります。これらは Scala の文字列マップのエントリであり、プロキシのホスト名には URL スキームもポートも含めません。プロキシ認証なしで許可された公開プロキシ経由の経路には、Snowflake のアカウント設定を保ったまま HTTP プロキシ一覧 からホストとポートを選びます。
Snowflake JDBC は中継アカウント用に proxyUser と proxyPassword も文書化しています。必要な場合は、アプリケーションの既存の認証情報ソースから渡してください。
JDBC の nonProxyHosts はワイルドカードをサポートする縦棒区切りのパターンを使います。マップ値では区切り文字は文字どおりの | です。URL エンコードが問題になるのは JDBC URL を組み立てる場合です。別クライアントのカンマ区切り NO_PROXY 構文で置き換えないでください。
この設定は Snowpark Scala 専用にしてください。Snowpark Python と Snowflake Spark コネクターは異なる接続インターフェースとオプション名を提供します。
Snowflake はサービスの証明書が置き換えられずにプロキシを通ることを求めます。HTTP CONNECT 経路と TLS 検査は別の仕組みです。Snowflake の証明書を再発行するプロキシはこの要件を満たしません。