第 5 步:在 Snowflake 中为 Azure 创建外部函数¶
本主题提供有关在 Snowflake 中创建外部函数对象的说明。此对象存储有关远程服务的信息,例如远程服务接受的参数。无论您使用的是 Azure 门户还是 ARM 模板,说明都是相同的。
本主题内容:
上一步¶
创建外部函数¶
此任务假定您位于 Classic Console 的 Worksheets 页面中:
输入 CREATE EXTERNAL FUNCTION 语句。该语句应类似于以下内容:
create or replace external function <external_function_name>(<parameters>) returns variant api_integration = <api_integration_name> as '<invocation_url>';
替换
<external_function_name>
with a unique function name (e.g.echo
)。 此名称必须遵循 对象标识符 的规则。此外,在跟踪工作表的
External Function Name
字段中记录函数名称。将
<parameters>
替换为函数的参数的名称和 SQL 数据类型(如果有)。参数必须与远程服务所需的参数相对应。参数名称不需要一致,但数据类型需要兼容。
如果 Azure 函数使用了第 1 步中提供的示例 JavaScript 代码,则参数为 INTEGER 和 VARCHAR。例如:
a integer, b varchar
此外,在跟踪工作表的
External Function Name
字段中记录参数名称和数据类型。将
<api_integration_name>
替换为跟踪工作表中API Integration Name
字段的值。将
<invocation_url>
替换为适当的 URL。Snowflake 将向该 URL 发送 HTTP POST 命令以调用远程服务,该 URL 的格式如下:https://<api_management_service_name>.azure-api.net/<api_url_suffix>/<http_triggered_function_name>
使用的 URL 取决于您是使用 Azure 门户还是使用 ARM 模板来创建外部函数:
- Azure 门户:
使用跟踪工作表中
API Management service name
、API Management API URL suffix
和HTTP-Triggered Function name
字段的值。例如,URL 应该类似于:https://my-api-management-svc.azure-api.net/my-api-url-suffix/my_http_function
- ARM 模板:
使用跟踪工作表中
Azure Function HTTP Trigger URL
字段的值。
如果尚未执行,请执行您输入的 CREATE EXTERNAL FUNCTION 命令。
测试外部函数¶
现在,您应该能够调用外部函数来验证它是否正常工作。
有关详细信息,请参阅 为 Azure 调用外部函数。
下一步¶
- Azure 门户:
- ARM 模板: