我在 Snowflake SQL 中创建了一个 Python UDF(遵循此链接),它调用我公司编写的应用程序的 python 代码。 python 代码需要公共互联网访问才能与我公司托管的服务器进行通信,以执行一些数据提取/加载作业。
当前,当我调用 UDF 时,它失败并出现以下错误:
<urllib3.connection.HTTPSConnection object at 0xffff6c94c9d0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')) in function ETL_EXTENSION with handler etl_core
有人可以告诉我如何从 Snowflake 仓库启用互联网或公共网络访问吗? 在this链接中指出禁止从UDF“网络访问”。
这里是这种情况还是有什么方法可以实现这一点?预先感谢您的帮助。
目前Snowflake Python UDF运行在沙箱环境中,有一定的限制,其中包括公网访问。
您可以创建对 Snowflake 外部特定网络位置的安全访问,然后从处理程序代码中使用该访问权限用于用户定义函数 (UDF) 和存储过程。您可以通过外部访问集成启用此访问。
通过外部访问集成,您可以:
- 编写访问外部位置的 UDF 和过程处理程序。
- 允许或阻止访问 Snowflake 外部网络上的位置。
- 在处理程序代码中使用代表存储凭据的机密,而不是使用文字值来通过外部网络位置进行身份验证。
- 指定允许在外部网络位置使用哪些机密。