外部网络访问限制¶
本主题介绍了从用户定义函数和过程访问外部网络位置的限制。
限制¶
目前,仅用 Java 或 Python 编写的处理程序可以访问 Snowflake 外部的网络位置。
不在公共互联网上的外部网络位置不支持外部访问。例如,虚拟专用网络 (VPN) 或虚拟网络 (VNet) 后面的位置无法通过 UDF 或过程访问。
在 网络规则 的 VALUE_LIST 值中使用通配符时,下列通配符用途无效:
snowflake.*.google.com
不能用于匹配
snowflake.sub1.sub2.google.com
,因为星号只能用于匹配字母数字字符和连字符。*.*.google.com
无效,因为通配符中有多个星号。
*.com
无效,因为星号不能用于匹配二级域。
在使用 PASSWORD 类型的 密钥 时,USERNAME 或 PASSWORD 参数中不支持冒号字符 (
:
)。在处理程序代码内,必须从过程或 UDF 的主线程访问 密钥 API。如果您的处理程序代码分叉了一个新线程,并试图使用其中的密钥 API,您将看到如下错误:
Secrets can only be accessed from the main thread.
例如,以下 Python 代码会产生错误:
with ThreadPoolExecutor(max_workers=1) as executor: futures = [executor.submit(function, get_generic_secret)]
默认情况下,Snowflake 不会为 试用账户 启用外部访问。请联系您的客户代表,为试用账户启用外部访问。
Snowflake 不支持在网络规则中指定
0.0.0.0
作为允许从存储过程或 UDF 出口到任何目标的方法。