第 3 步:在 Snowflake 中为 GCP 创建 API 集成¶
本主题提供在 Snowflake 中创建 API 集成对象以与您的代理服务(即 Google Cloud API Gateway)结合使用的说明。
本主题内容:
上一步¶
创建 API 集成对象¶
使用 CREATE API INTEGRATION 命令创建 API 集成对象:
打开 Snowflake 会话,通常是 Snowflake Web 界面会话。
执行 USE ROLE 命令以使用 ACCOUNTADMIN 角色或具有 CREATE INTEGRATION 权限的角色。例如:
use role has_accountadmin_privileges;
输入 CREATE API INTEGRATION 语句。该语句应类似于以下内容:
create or replace api integration <integration_name> api_provider = google_api_gateway google_audience = '<google_audience_claim>' api_allowed_prefixes = ('<url>') enabled = true;
在该语句中:
将
<integration_name> 替换为 `` with a unique integration name (e.g. ``my_api_integration_name
。名称必须遵循 对象标识符 的规则。此外,在跟踪工作表的
API Integration Name
字段中记录集成名称。稍后在创建过程中执行 CREATE EXTERNAL FUNCTION 命令时,将需要该名称。对于
google_audience
,将<google_audience_claim>
替换为跟踪工作表中Managed Service Identifier
字段的值。在身份验证期间,Snowflake 向 Google 传递一个 JWT (JSON Web 令牌)。JWT 包含一个“aud”(“audience”)声明,Snowflake 将其设置为
google_audience
的值。有关 Google 身份验证的更多信息,请参阅 Google 服务账户 身份验证文档 (https://cloud.google.com/api-gateway/docs/authenticate-service-account#configure_auth)。
对于
api_allowed_prefixes
,将<url>
替换为跟踪工作表中Gateway Base URL
字段的值。此字段允许您限制可以应用此 API 集成的 URLs。您可以使用比 Gateway Base URL 更严格的值。
如果尚未执行,请执行您输入的 CREATE API INTEGRATION 语句。
记录 API 集成的 API_GCP_SERVICE_ACCOUNT 信息¶
执行 DESCRIBE INTEGRATION 命令。例如:
describe integration my_api_integration_name;
在跟踪工作表的
API_GCP_SERVICE_ACCOUNT
字段中记录API_GCP_SERVICE_ACCOUNT
的值。