Streamlit in Snowflake 中的外部网络访问¶
本主题介绍如何创建对 Snowflake 外部网络位置的安全访问。
Streamlit in Snowflake 中的外部网络访问¶
您可以创建对 Snowflake 外部特定网络位置的安全访问,并且可以从 Streamlit 应用程序代码中使用该访问。可以通过外部访问集成启用访问权限。
要使 Streamlit 应用能够使用外部访问集成 (EAI),您可以运行 CREATE STREAMLIT 或 ALTER STREAMLIT 命令,并将 EXTERNAL_ACCESS_INTEGRATIONS 参数设置为包含该 EAI。
借助 EAI,您可以使用访问外部位置的 Python 库(例如 requests 或者 urllib),并使用需要访问网络位置的第三方库。
有关更多信息,请参阅 外部网络访问概述。
示例:访问 OpenAI API¶
以下示例演示了如何为发往 OpenAI API 的出站请求创建 EAI:
要创建表示外部网络位置和访问限制的网络规则,可以使用 CREATE NETWORK RULE 命令:
有关更多信息,请参阅 创建网络规则以表示外部网络位置。
要创建表示对外部网络位置进行身份验证所需凭据的密钥,可以使用 CREATE SECRET 命令:
有关更多信息,请参阅 创建表示凭据的密钥。
要创建 EAI,请运行 CREATE EXTERNAL ACCESS INTEGRATION 命令,将 ALLOWED_NETWORK_RULES 设置为您创建的网络规则,并将 ALLOWED_AUTHENTICATION_SECRETS 设置为您创建的密钥:
要授予所需权限以便使用 SECRET 和 INTEGRATION 对象对 Streamlit 应用程序创建器进行外部访问,可以使用 GRANT <privileges> ... TO ROLE 命令:
要使 Streamlit 应用程序能够使用集成,可以运行 ALTER STREAMLIT 命令,并将 EXTERNAL_ACCESS_INTEGRATIONS 属性设置为该集成:
备注
还可以在运行 CREATE STREAMLIT 命令时指定 EXTERNAL_ACCESS_INTEGRATIONS 参数,从而设置新的 Streamlit 对象来使用外部访问集成:
在 Streamlit 应用程序代码中,调用外部 API: