Snowpark Scala przekazuje opcje proxy do swojego połączenia JDBC
Dodaj właściwości Snowflake JDBC useProxy, proxyHost i proxyPort do mapy konfiguracji sesji Snowpark Scala.
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.