第 5 步:在 Snowflake 中为 Azure 创建外部函数

本主题提供有关在 Snowflake 中创建外部函数对象的说明。此对象存储有关远程服务的信息,例如远程服务接受的参数。无论您使用的是 Azure 门户还是 ARM 模板,说明都是相同的。

备注

Snowflake 中的外部函数是数据库对象,这意味着它们必须在数据库的架构中创建。若要创建外部函数,必须对创建函数的数据库和架构具有适当的权限。

有关更多详细信息,请参阅 访问控制权限

本主题内容:

上一步

第 4 步:将 Azure 的 API 集成链接到门户中的代理服务

创建外部函数

此任务假定您位于 Classic Console 的 Worksheets Worksheet 选项卡 页面中:

  1. 输入 CREATE EXTERNAL FUNCTION 语句。该语句应类似于以下内容:

    create or replace external function <external_function_name>(<parameters>)
        returns variant
        api_integration = <api_integration_name>
        as '<invocation_url>';
    
    Copy
  2. 替换 <external_function_name> with a unique function name (e.g. echo)。 此名称必须遵循 对象标识符 的规则。

    此外,在跟踪工作表的 External Function Name 字段中记录函数名称。

  3. <parameters> 替换为函数的参数的名称和 SQL 数据类型(如果有)。

    参数必须与远程服务所需的参数相对应。参数名称不需要一致,但数据类型需要兼容。

    如果 Azure 函数使用了第 1 步中提供的示例 JavaScript 代码,则参数为 INTEGER 和 VARCHAR。例如:

    a integer, b varchar
    
    Copy

    此外,在跟踪工作表的 External Function Name 字段中记录参数名称和数据类型。

  4. <api_integration_name> 替换为跟踪工作表中 API Integration Name 字段的值。

  5. <invocation_url> 替换为适当的 URL。Snowflake 将向该 URL 发送 HTTP POST 命令以调用远程服务,该 URL 的格式如下:

    https://<api_management_service_name>.azure-api.net/<api_url_suffix>/<http_triggered_function_name>
    
    Copy

    使用的 URL 取决于您是使用 Azure 门户还是使用 ARM 模板来创建外部函数:

    Azure 门户:

    使用跟踪工作表中 API Management service nameAPI Management API URL suffixHTTP-Triggered Function name 字段的值。例如,URL 应该类似于:

    https://my-api-management-svc.azure-api.net/my-api-url-suffix/my_http_function
    
    Copy
    ARM 模板:

    使用跟踪工作表中 Azure Function HTTP Trigger URL 字段的值。

  6. 如果尚未执行,请执行您输入的 CREATE EXTERNAL FUNCTION 命令。

测试外部函数

现在,您应该能够调用外部函数来验证它是否正常工作。

有关详细信息,请参阅 为 Azure 调用外部函数

下一步

Azure 门户:

第 6 步:在门户中创建代理服务的 Azure 安全策略

ARM 模板:

第 6 步:在门户中更新代理服务的 Azure 安全策略

语言: 中文