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 и его порт. Для разрешённого маршрута через публичный прокси без аутентификации прокси выбирайте хост и порт из списка HTTP-прокси, сохраняя настройки учётной записи Snowflake.

Snowflake JDBC также документирует proxyUser и proxyPassword для промежуточной учётной записи. Передавайте их через существующий источник учётных данных приложения, когда это требуется.

Свойство JDBC nonProxyHosts использует шаблоны, разделённые вертикальной чертой, с поддержкой подстановочных знаков. В значении карты разделителем является буквальный |; кодирование URL становится важным только при построении JDBC URL. Не заменяйте его синтаксисом NO_PROXY другого клиента, разделённым запятыми.

Держите эту конфигурацию специфичной для Snowpark Scala. Snowpark Python и коннектор Snowflake Spark предлагают другие интерфейсы соединения и имена параметров.

Snowflake требует, чтобы сертификат службы проходил через прокси без замены. Маршрут HTTP CONNECT и проверка TLS — разные решения; прокси, который перевыпускает сертификат Snowflake, не удовлетворяет этому требованию.

Похожие статьи