Snowpark Scala łączy się za pomocą sterownika Snowflake JDBC. Jego konstruktor sesji przyjmuje właściwości konfiguracji JDBC, więc ustawienia proxy mogą wędrować z istniejącą mapą połączenia:

val proxyOptions = Map(
  "useProxy" -> "true",
  "proxyHost" -> "proxy.example",
  "proxyPort" -> "8080"
)

val session = com.snowflake.snowpark.Session.builder
  .configs(connectionOptions ++ proxyOptions)
  .create

connectionOptions zawiera konto, uwierzytelnianie i inne ustawienia, których aplikacja już używa. To wpisy mapy ciągów Scala; nazwa hosta proxy nie zawiera schematu URL ani portu. Dla dozwolonej trasy przez publiczne proxy bez uwierzytelniania proxy wybierz host i port z listy proxy HTTP, zachowując ustawienia konta Snowflake.

Snowflake JDBC dokumentuje także proxyUser i proxyPassword dla konta pośredniczącego. Podaj je przez istniejące źródło poświadczeń aplikacji, gdy jest to wymagane.

Właściwość nonProxyHosts w JDBC używa wzorców rozdzielonych pionowymi kreskami z obsługą symboli wieloznacznych. W wartości mapy separatorem jest dosłowna |; kodowanie URL ma znaczenie dopiero przy budowaniu URL-a JDBC. Nie zastępuj go składnią NO_PROXY innego klienta rozdzieloną przecinkami.

Zachowaj tę konfigurację wyłącznie dla Snowpark Scala. Snowpark Python i konektor Snowflake Spark udostępniają inne interfejsy połączenia i nazwy opcji.

Snowflake wymaga, aby certyfikat usługi przechodził przez proxy bez zastępowania. Trasa HTTP CONNECT i inspekcja TLS to różne rozwiązania; proxy, które ponownie wystawia certyfikat Snowflake, nie spełnia tego wymagania.

Powiązane artykuły