第 3 步:在 Snowflake 中为 AWS 创建 API 集成¶
本主题说明如何在 Snowflake 中创建 API 集成对象,以便与代理服务(即 Amazon API Gateway)一起使用。无论您使用的是管理控制台还是 CloudFormation 模板,说明都是相同的。
本主题内容:
上一步¶
- AWS 管理控制台:
- AWS CloudFormation 模板:
先决条件¶
需要以下信息才能在 Snowflake 中为 AWS 创建 API 集成:
New IAM Role ARN
(来自跟踪工作表)。
Resource Invocation URL
(来自跟踪工作表)。
创建 API 集成对象¶
打开 Snowflake 会话,通常是 Snowflake Web 界面会话。
使用具有 ACCOUNTADMIN 权限或 CREATE INTEGRATION 权限的 Snowflake 角色,例如:
use role <has_accountadmin_privileges>;
键入 CREATE API INTEGRATION 命令以创建 API 集成。该命令应类似于以下内容:
CREATE OR REPLACE API INTEGRATION my_api_integration_01 api_provider = aws_api_gateway api_aws_role_arn = '<new_IAM_role_ARN>' api_allowed_prefixes = ('https://') enabled = true;
自定义命令:
应根据端点类型设置
api_provider
子句:如果您使用的是专用端点,则应将 api_provider 子句设置为
aws_private_api_gateway
。如果您使用的是美国政府 GovCloud 端点,则应将 api_provider 子句设置为
aws_gov_api_gateway
或aws_gov_private_api_gateway
。对于大多数其他用户,应将 api_provider 子句设置为
aws_api_gateway
。
<new_IAM_role_ARN>
应该是跟踪工作表中New IAM Role ARN
字段中的值。api_allowed_prefixes 字段应包含您之前记录的资源调用 URL。
以下是完整的 CREATE API INTEGRATION 语句的示例:
create or replace api integration demonstration_external_api_integration_01 api_provider=aws_api_gateway api_aws_role_arn='arn:aws:iam::123456789012:role/my_cloud_account_role' api_allowed_prefixes=('https://xyz.execute-api.us-west-2.amazonaws.com/production/') enabled=true;
在标题为
API Integration Name
的跟踪工作表字段中,记录您创建的 API 集成的名称。稍后执行 CREATE EXTERNAL FUNCTION 命令时需要该 API 集成名称。执行您在上面输入的 CREATE API INTEGRATION 命令。
记录 API_AWS_IAM_USER_ARN 和 API_AWS_EXTERNAL_ID¶
执行 DESCRIBE INTEGRATION 命令。
DESCRIBE INTEGRATION <my_integration_name>;
例如:
DESCRIBE INTEGRATION my_api_integration_01;
查找名为 API_AWS_IAM_USER_ARN 的属性,然后在跟踪工作表中记录该属性的 property_value。
找到名为 API_AWS_EXTERNAL_ID 的属性并在跟踪工作表中记录该属性的 property_value。
请注意,API_AWS_EXTERNAL_ID 的 property_value 通常以等号(“=”)结尾。等号是值的一部分;请确保将等号与 property_value 的其余部分一起剪切并粘贴。
在接下来的几个步骤中,您将返回到 AWS 管理窗口。不要立即关闭 Snowflake 管理窗口;您必须稍后再返回该窗口。