你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 机密账本提供 用户定义的函数 (UDF),用于在账本中运行自定义逻辑。 借助此功能,可以通过编写可在机密环境中执行的自定义代码并与账本的数据进行交互来扩展账本的功能。
新的编程功能允许用户创建 简单的 UDF 和 高级 UDF ,以使用不同的自定义级别执行各种作。 定义后,可以从 Azure 机密账本客户端调用 UDF,直接在账本引擎内执行。
重要
用户定义函数目前以预览版提供。 可以通过 此注册表单请求对此预览版的访问权限。 有关适用于 Beta 版、预览版或尚未正式发布的 Azure 功能的法律条款,请参阅 适用于 Microsoft azure 预览版的补充使用条款 。
简单和高级 UDF
Azure 机密账本提供两种类型的 UDF 功能:
简单 UDF:简单 UDF 是可在账本中定义和执行的简单自定义函数。 它们允许你使用 JavaScript API 执行简单作,并且可以与现有账本写入 API 集成。 在此处了解有关简单 UDF 的详细信息。
高级 UDF:高级 UDF 是可以在账本应用程序上定义和公开的自定义端点。 这些终结点可用于使用可自定义的参数、数据格式和身份验证机制公开更复杂的 API。 在此处了解有关高级 UDF 的详细信息。
下面是简单和高级 UDF 的主要特性和功能的比较:
| 能力 | 简单 UDF | 高级 UDF |
|---|---|---|
| 运行自定义业务逻辑 | 是的 | 是的 |
| 自定义运行时参数 | 是的 | 是的 |
| 公开新的 API / 端点 | 否 | 是的 |
| 运行单个函数 | 是的 | 否 |
| 在总账条目写入操作之前/之后运行钩子 | 是的 | 否 |
| 创建和更新自定义代码 | 是(精细地更新/删除每个函数) | 是(单个应用程序捆绑包更新适用于所有端点) |
| 自定义 JavaScript 运行时选项 | 是(每执行一次) | 是(全球) |
| 在备份节点上执行 | 否 | 是的 |
| 支持用于输入和输出的多种数据格式 | 否 | 是的 |
| 自定义身份验证和授权 | 否 | 是的 |
| 目标方案 | 执行简单的自定义逻辑并与账本 API 集成 | 需要自定义 API 并控制高级 JavaScript 参数的高级用例 |
在简单和高级 UDF 之间切换
基础和高级 UDF 是相互排斥的功能。 如果定义了高级 UDF,则无法创建或运行简单的 UDF,反之亦然。 可以使用以下步骤在两个功能之间切换。
重要
在简单 UDF 和高级 UDF 之间进行切换是一项破坏性作。 切换到其他功能时,将删除所有现有简单或高级 UDF。 在继续作之前,请确保备份任何重要数据。
从简单到高级 UDF
若要从简单 UDF 切换到高级 UDF,需要删除所有现有的 UDF:
使用
GET /app/userDefinedFunctionsAPI 列出账本中存储的所有 UDF。使用
DELETE /app/userDefinedFunctions/{functionId}API 逐个删除每个 UDF。
从高级到简单的 UDF
若要从高级 UDF 切换到简单的 UDF,需要使用空模块和终结点定义来定义高级 UDF。
使用以下结构创建新的应用程序捆绑包:
{ "metadata": { "endpoints": {} }, "modules": [] }使用
PUT /app/userDefinedEndpointsAPI 部署具有步骤 1 中定义的请求主体的应用程序捆绑包。
后续步骤
请参阅以下文章以开始使用 Azure 机密账本中的 UDF 功能: