为用户数据函数生成调用代码

发布用户数据函数后,可以从 Fabric 项或外部应用程序调用它们。 使用 “生成调用代码 ”功能自动创建现成的代码模板,而不是从头开始编写调用代码。

根据集成方案选择代码生成选项:

  • Fabric Notebooks 代码 (Python) - 用于从 Fabric Notebooks 中调用函数,这是与 Fabric 项集成的一种方法。 有关管道和激活器等其他 Fabric 项,请参阅 集成文档
  • 客户端应用程序代码 (Python, C#, Node.js) - 用于通过每个函数公开的唯一 REST 终结点从外部应用程序调用函数。 这样就可以与 Fabric 外部的 Web 应用、服务或任何系统集成。
  • OpenAPI 规范 (JSON, YAML) - 对于 API 管理平台、AI 代理或生成客户端 SDK。 使用此函数将函数与 Azure API 管理集成、配置 AI 系统或为外部应用程序生成库。

先决条件

在生成调用代码之前,需要:

  • 具有至少一个函数的已发布用户数据函数项
  • 访问 Fabric 门户中的用户数据函数项
  • 至少需要对用户数据函数项具有执行权限,以生成和使用调用代码。

生成Fabric Notebooks的代码

与 Fabric 产品集成时,使用此选项从 Fabric Notebook 调用您的函数。 生成的代码使用内置 mssparkutils.userDataFunction 实用工具,它提供了一种简单的方法来调用函数,而无需管理身份验证或终结点。 这非常适合在 Fabric 环境中处理数据工作流、探索性分析和机器学习管道。

  1. 在 Fabric 门户中打开用户数据函数项。

  2. 在“开始”选项卡上,选择“生成调用代码>”。

  3. 在“ 调用位置”下,从下拉列表中选择 “笔记本 ”。

  4. 选择要调用的函数名称。

  5. 代码在 Python 中自动生成。 (Python 是唯一可用于笔记本调用代码的语言。

    显示生成的 Notebook 调用代码的屏幕截图。

  6. 复制生成的代码片段。

  7. 将其粘贴到 Fabric Notebook 中的新单元格中。

  8. 使用实际值更新函数参数。 生成的代码包含显示更新位置的注释:

    # UPDATE BELOW: Update the request body based on the inputs to your function
    myFunctions.hello_fabric(name = "string")
    
  9. 运行单元格以调用你的函数。

有关详细信息,请参阅 Fabric Notebook 用户数据函数实用工具

为客户端应用程序生成代码

与外部应用程序集成时,使用此选项通过每个函数公开的唯一 REST 终结点调用函数。 生成的代码包括使用 Microsoft Entra ID 的身份验证设置,并处理 HTTP 请求/响应流。 这样,便可以从 Web 应用、移动应用、微服务或任何结构环境外部的系统调用 Fabric 函数。

  1. 在 Fabric 门户中打开用户数据函数项。

  2. 在“开始”选项卡上,选择“生成调用代码>”。

  3. 在“ 调用方”下,从下拉列表中选择 “客户端应用程序 ”。

  4. 选择要调用的函数名称。

  5. 选择编程语言:

    • Python
    • C#
    • Node.js

    显示客户端代码输出的屏幕截图。

  6. 复制生成的代码并将其添加到应用程序。

  7. 查看代码结构:

    • 身份验证 - 用于 InteractiveBrowserCredential 获取令牌(仅用于开发/测试)
    • 终结点 URL - 特定函数的唯一 REST 终结点
    • 请求正文 - 包含函数期望的输入参数
  8. 使用您的实际参数值更新 request_body 部分。 生成的代码包含显示更新位置的注释:

    # UPDATE HERE: Update the request body based on the inputs to your function 
    request_body = {
        "name": "string"
    }
    
  9. 对于生产应用程序,请将身份验证代码替换为正确的Microsoft Entra ID 应用程序注册。 生成的代码包含警告和指向生产身份验证指南的链接。

有关包括生产身份验证设置的完整演练,请参阅 从 Python 应用程序调用用户数据函数

生成 OpenAPI 规范

如果需要将函数与 API 管理平台、AI 代理或为外部应用程序生成客户端 SDK 集成,请使用此选项创建 OpenAPI 规范。 OpenAPI 规范提供函数 REST 终结点的计算机可读说明,使工具和系统可以轻松地以编程方式发现和集成函数。

  1. 在 Fabric 门户中打开用户数据函数项。

  2. 在“ 开始 ”选项卡上,选择“ 生成调用代码>OpenAPI 规范”。

  3. “生成 OpenAPI 规范 ”对话框中,选择输出格式:

    • JSON
    • YAML

    显示 OpenAPI 规范的屏幕截图。

  4. 复制生成的规范。 规范包括:

    • 用户数据函数项中的所有已发布函数
    • 每个函数的请求和响应架构
    • 身份验证要求(持有者令牌)
    • 标准 HTTP 错误响应(400、401、403、408、413、500)
    • 函数摘要和说明(来自 docstrings)

使用 docstring 改进 OpenAPI 输出

OpenAPI 规范的质量取决于函数代码中的文档。 当 Azure API 管理、AI 代理或 API 文档工具等系统使用 OpenAPI 规范时,它们依赖于明确的说明来了解函数的作用。

OpenAPI 生成器会自动从函数 docstring 中提取信息。 将这些属性添加到函数以创建全面的 API 文档:

  • 摘要 - API 目录和高级视图中显示的单行说明
  • 说明 - 详细说明函数的作用、它期望的输入以及它返回的内容

具有适当文档的示例函数:

@udf.function()
def hello_fabric(name: str) -> str:
    """
    Summary: A Python function that prints your name and the time.
    Description: This function takes a string input and concatenates it with the current time 
    to give you a warm welcome to User Data Functions. Returns a string and provides a log entry.
    """
    logging.info('Python UDF trigger function processed a request.')
    return f"Welcome to Fabric Functions, {name}, at {datetime.datetime.now()}!"

生成 OpenAPI 规范时,这些文档字符串值将填充 OpenAPI 架构中的 summarydescription 字段,使开发人员和系统更容易理解如何使用您的函数。

生成的代码的常见用途

生成调用代码后,可以使用它将函数集成到不同的方案中:

结构项集成:

  • 从笔记本调用函数进行数据处理、机器学习和探索分析
  • 在管道中编排用于数据转换工作流的函数
  • 从激活器规则触发函数以响应实时事件

外部应用程序集成:

  • 使用客户端应用程序代码从 Web 应用、移动应用或微服务调用函数
  • 将 OpenAPI 规范导入 Azure API 管理或其他 API 网关进行集中管理
  • 使用 OpenAPI 生成器生成客户端 SDK,以便跨多个系统进行一致的集成
  • 配置 AI 代理,使用 OpenAPI 规范来发现和调用您的函数
  • 使用 Postman 或 Swagger UI 等工具测试和验证函数