在单租户 Azure 逻辑应用中为标准逻辑应用设置 SQL 数据库存储(预览)

适用于:Azure 逻辑应用(标准)

重要

此功能为预览版,受 Azure 预览版补充使用条款约束。

选择“逻辑应用(标准)”资源类型来创建在单租户 Azure 逻辑应用、应用服务环境 v3 或 Azure 外部运行的工作流时,还需要创建 Azure 存储帐户来保存与工作流相关的项目、状态和运行时数据。 但是,如果希望对逻辑应用工作流的运行时环境、吞吐量、缩放、性能和管理拥有更多的灵活性和控制,可以使用 SQL 存储提供程序而不是 Azure 存储来处理与工作流相关的存储事务。

本文概述了为何需要将 SQL 存储作为 fsAzure 存储的替代方案来用作 Azure 逻辑应用的主要存储提供程序,并演示如何在通过 Azure 门户创建逻辑应用期间或通过 Visual Studio Code 部署逻辑应用期间设置 SQL 以用于存储。

如果你刚接触逻辑应用,请查看以下文档:

为何使用 SQL

作为可用于单租户 Azure 逻辑应用的备用存储选项,SQL 提供以下优势:

好处 描述
可移植性 SQL 有众多外形规格,包括虚拟机、平台即服务 (PaaS) 和容器。 几乎可在想要运行逻辑应用工作流的任何位置来运行 SQL 数据库。
控制 SQL 可在特定时段或针对特定工作负荷提供针对数据库吞吐量、性能和缩放的精细控制。 SQL 定价基于 CPU 使用率和吞吐量,其定价相较于 Azure 存储更具可预测性,而后者的成本基于每个操作。
使用现有资产 如果熟悉 Microsoft 工具,可以使用其资产与 SQL 进行新式集成。 可以跨传统的本地部署和新式的云实现来重复使用资产与 Azure 混合权益。 SQL 还提供成熟且提供良好支持的工具,例如 SQL Server Management Studio (SSMS)、命令行接口和 SDK。
遵从性 SQL 提供比 Azure 存储更多的选项来备份、还原、故障转移以及在冗余中进行构建。 可以将与其他企业应用程序相同的企业级机制应用于逻辑应用的存储。

何时使用 SQL

下表描述了可能想要使用 SQL 的一些理由:

方案 推荐存储提供程序
你想要在 Azure 中运行逻辑应用工作流,同时对存储吞吐量和性能拥有更多的控制。 将 SQL 用作存储提供程序,因为 Azure 存储不提供用于微调吞吐量和性能的工具。
你希望可以预测存储成本。 想对缩放成本拥有更多控制时,使用 SQL 作为存储提供程序。 SQL 成本基于每个计算和每秒的输入输出操作数 (IOP)。 Azure 存储成本基于操作数,这可能更适用于缩放为零的小型工作负荷。
相较于 Azure 存储更想使用 SQL。 SQL 是知名且可靠的生态系统,可用于在逻辑应用后台操作中应用相同的管理和把控。
你想要重复使用现有 SQL 环境。 如果已经拥有想要重复使用或者想要在云中进行现代化改造的你自己的 SQL 许可证,使用 SQL 作为存储提供程序。 可能还希望将 Azure 混合权益用于逻辑应用集成。
其他 使用 Azure 存储作为默认存储提供程序。

先决条件

  • Azure 帐户和有效的订阅。 如果没有 Azure 订阅,请注册一个试用版订阅

  • 用于逻辑应用的 SQL 环境。 但在设置环境之前,请完成以下步骤:

    1. 创建 SQL Server 实例。

      受支持的类型包括 SQL ServerAzure SQL 数据库Azure SQL 托管实例等。

      • 如果 SQL Server 托管在使用任一受支持类型的 Azure 上,请确保设置以下权限:

        1. Azure 门户中转到 SQL Server 资源。

        2. 在资源导航菜单的“安全”下选择“防火墙和虚拟网络” 。

        3. 窗格打开后在“允许 Azure 服务和资源访问此服务器”下选择“是” 。

        4. 保存所做更改。

      • 如果 SQL Server 未托管在 Azure 上,请确保服务器上任意防火墙或网络设置都允许 Azure 服务和资源访问服务器和数据库。

      • 如果使用 SQL Express 进行本地开发,请连接到默认的命名实例� localhost\SQLExpress

    2. 创建或使用现有数据库。

      需要拥有可用的数据库才能设置 SQL 存储提供程序。

    3. 现在可以按照本文中的步骤来设置 SQL 环境

  • 对于本地开发,Visual Studio Code 安装在本地计算机上。

    注意

    请确保使用 Microsoft Installer (MSI) 版本 func-cli-X.X.XXXX-x*.msi 来安装最新版本的 Azure Functions Core Tools 以实现 SQL 支持。 有关 Visual Studio Code 安装要求的详细信息,请参阅在 Visual Studio Code 中创建用于单租户 Azure 逻辑应用(标准)的集成工作流

设置 SQL 环境

  1. 设置 SQL 存储提供程序前,请先完成先决条件中的必需步骤。

  2. 为 SQL Server 设置权限。

    目前,SQL 存储提供程序支持连接字符串形式的 SQL 身份验证。 你还可使用 Windows 身份验证进行本地开发和测试。 目前,不支持 Microsoft Entra ID 和托管标识。

    使用的标识需得拥有在目标 SQL 数据库中创建和管理工作流相关项目的权限。 例如,管理员拥有创建和管理这些项目所需的全部权限。 以下列表描述了单租户 Azure 逻辑应用运行时使用你提供的 SQL 连接字符串来尝试创建的项目。 请确保 SQL 连接字符串中使用的标识拥有创建以下项目所需的权限:

    • 创建并删除以下架构:dtdcdq
    • 在这些架构中添加、更改和删除表。
    • 在这些架构中添加、更改和删除用户定义的表类型。

    有关目标权限的详细信息,请参阅数据库引擎中的 SQL Server 权限

    重要

    当你有敏感信息(例如包含用户名和密码的连接字符串)时,请确保使用可用的最安全身份验证流。 Microsoft 建议尽量使用托管标识对 Azure 资源访问进行身份验证,并分配具有最低所需特权的角色。

    如果此功能不可用,请务必通过其他措施(例如可与应用设置一起使用的 Azure 密钥保管库)保护连接字符串。 然后,可以直接引用安全字符串,例如连接字符串和密钥。 与 ARM 模板类似,在部署时可以定义环境变量,可以在逻辑应用工作流定义中定义应用设置。 然后,可以捕获动态生成的基础结构值,例如连接终结点、存储字符串等。 有关详细信息,请参阅Microsoft 标识平台的应用程序类型

  3. 连接到 SQL。

在 Azure 门户中进行创建时设置 SQL

在 Azure 中使用“逻辑应用(标准)”资源类型创建逻辑应用时,可以将 SQL 设置为存储提供程序。

  1. Azure 门户中,使用 Azure 帐户登录。

  2. 在 Azure 门户搜索框中,输入 logic apps,然后选择“逻辑应用”。

    屏幕截图显示了 Azure 门户搜索框,其中包含“逻辑应用”搜索词,并且选中了“逻辑应用”类别。

  3. 在“逻辑应用”页上,选择“添加” 。

  4. 在“创建逻辑应用”页面中的“基本信息”选项卡上,提供有关你的逻辑应用资源的以下信息:

    属性 需要 说明
    订阅 <Azure-subscription-name> 要用于你的逻辑应用的 Azure 订阅。
    资源组 <Azure-resource-group-name> 你在其中创建逻辑应用和相关资源的 Azure 资源组。 此资源名称在各个区域中必须独一无二,并且只能包含字母、数字、连字符 (-)、下划线 (_)、括号 (()) 和句点 (.)。

    此示例创建一个名为 Fabrikam-Workflows-RG 的资源组。

    类型 标准 此逻辑应用资源类型在单租户 Azure 逻辑应用环境中运行,并使用标准使用、计费和定价模型
    逻辑应用名称 <logic-app-name> 用于逻辑应用的名称。 此资源名称在各个区域中必须独一无二,并且只能包含字母、数字、连字符 (-)、下划线 (_)、括号 (()) 和句点 (.)。

    此示例创建一个名为 Fabrikam-Workflows 的逻辑应用。

    注意:逻辑应用的名称会自动获取后缀 .chinacloudsites.cn,因为“逻辑应用(标准)”资源由单租户 Azure 逻辑应用运行时提供支持,该运行时使用 Azure Functions 扩展性模型,并作为扩展托管在 Azure Functions 运行时上。 Azure Functions 使用相同的应用命名约定。

    发布 <deployment-environment> 逻辑应用的部署目标。 默认选择“工作流”,目的是部署到单租户 Azure 逻辑应用。 Azure 创建一个空的逻辑应用资源,你必须在其中添加第一个工作流。
    区域 <Azure-region> 用于创建资源组和资源的位置。 此示例将示例逻辑应用部署到 Azure 并使用“中国东部 2”。

    以下示例显示了带有“基本信息”选项卡的“创建逻辑应用”页 :

    屏幕截图显示了 Azure 门户以及带有“基本信息”选项卡的“创建逻辑应用”页。

  5. 准备就绪后,选择“下一步: 托管”。 在“托管”选项卡上,提供有关要用于逻辑应用的存储解决方案和托管计划的以下信息。

    属性 需要 说明
    存储类型 SQL 和 Azure 存储 要用于工作流相关的项目和数据的存储类型。

    - 如果以前选择的是自定义位置作为区域,则选择“SQL”。

    - 如果以前选择的是 Azure 区域或 ASEv3 位置,则选择“SQL 和 Azure 存储”。

    注意:如果要部署到 Azure 区域,则仍然需要 Azure 存储帐户,该帐户用于在 Azure 逻辑应用平台上完成对逻辑应用配置的一次托管。 工作流的定义、状态、运行历史记录和其他运行时项目均存储在 SQL 数据库中。

    若要部署到托管在 Azure Arc 群集上的自定义位置,将 SQL 用作存储提供程序即可。

    存储帐户 <Azure-storage-account-name> 要用于存储事务的 Azure 存储帐户

    此资源名称在各个区域中必须唯一,长度为 3-24 个字符,并且仅包含数字和小写字母。 选择一个现有的帐户,或者创建一个新帐户。

    此示例创建一个名为 fabrikamstorageacct 的存储帐户。

    SQL 连接字符串 <sql-connection-string> SQL 连接字符串,当前仅支持 SQL 身份验证,不支持 OAuth 或托管标识身份验证。

    注意:请确保输入正确的连接字符串,因为 Azure 门户不会验证此字符串。

    计划类型 <托管计划> 要用于部署逻辑应用的托管计划。

    有关详细信息,请查看托管计划和定价层

    Windows 计划 <plan-name> 要使用的计划名称。 选择一个现有计划名称或为新计划提供一个名称。

    此示例使用名称 Fabrikam-Service-Plan

    SKU 和大小 <pricing-tier> 用于逻辑应用的定价层。 你的选择会影响逻辑应用和工作流使用的定价、计算、内存和存储。

    若要更改默认定价层,请选择“更改大小”。 然后,你可以根据所需的工作负载选择其他定价层。

    有关详细信息,请查看托管计划和定价层

    以下示例显示了带有“托管”选项卡的“创建逻辑应用”页 :

    屏幕截图显示了 Azure 门户以及带有“托管”选项卡的“创建逻辑应用”页。

  6. 完成在 Azure 门户中创建用于单租户 Azure 逻辑应用(标准)的集成工作流中剩余的创建步骤。

完成后,新的逻辑应用资源和工作流将出现在 Azure 中,并使用 SQL 数据库作为存储提供程序。

在 Visual Studio Code 中设置 SQL 进行本地开发

以下步骤显示如何将 SQL 设置为存储提供程序以在 Visual Studio Code 中进行本地开发和测试:

  1. 设置开发环境以使用单租户 Azure 逻辑应用。

    1. 完成先决条件以在拥有 Azure 逻辑应用(标准)扩展的 Visual Studio Code 中进行操作。

    2. 设置 Visual Studio Code 来使用 Azure 逻辑应用(标准)扩展。

    3. 在 Visual Studio Code 中连接到 Azure 帐户创建空的逻辑应用项目

  2. 在 Visual Studio Code 中打开“资源管理器”窗格(如果尚未打开)。

  3. 在“资源管理器”窗格中逻辑应用项目的根目录下,将鼠标指针移动到所有项目文件和文件夹下方的任何空白区域,打开快捷菜单,然后选择“为逻辑应用项目使用 SQL 存储”。

    屏幕截图显示了 Visual Studio Code、“资源管理器”窗格和空白区域的项目根目录中的鼠标指针、打开的快捷菜单,并且“为逻辑应用项目使用 SQL 存储”处于选中状态。

  4. 出现提示时,输入 SQL 连接字符串。 可以选择使用本地 SQL Express 实例或拥有的任何其他 SQL 数据库。

    屏幕截图显示了 Visual Studio Code 和 SQL 连接字符串提示。

    确认后,Visual Studio Code 在项目的“local.settings.json”文件中创建以下设置。 可以随时更新此设置。

    屏幕截图显示了 Visual Studio Code、逻辑应用项目,以及打开的“local.settings.json”文件与 SQL 连接字符串设置。

通过 Visual Studio Code 在部署期间设置 SQL

可以直接将逻辑应用项目从 Visual Studio Code 发布到 Azure。 此操作使用�**逻辑应用(标准)**�资源类型部署逻辑应用项目。

  • 如果要在 Azure 中将项目发布为新的“逻辑应用(标准)”资源,并且想要将 SQL 用作存储提供程序,请在发布应用时输入 SQL 连接字符串。 有关完整步骤,请参阅设置 SQL 进行新逻辑应用部署

  • 如果已设置 SQL 设置,可以在 Azure 中将逻辑应用项目发布到已部署的“逻辑应用(标准)”资源。 此操作将覆盖现有的逻辑应用。

    注意

    本地 SQL Express 无法用于 Azure 中部署和托管的逻辑应用。

设置 SQL 进行新逻辑应用(标准)资源部署

  1. 在 Visual Studio Code 活动栏上,选择 Azure 图标。

  2. 在“Azure: 逻辑应用(标准版)”窗格工具栏上,选择“部署到逻辑应用” 。

    屏幕截图显示了“Azure: 逻辑应用(标准)”窗格,其中“部署到逻辑应用”图标处于选中状态。

  3. 在出现提示时,选择要用于逻辑应用部署的 Azure 订阅。

  4. 在 Visual Studio Code 打开的列表中,确保选择“在 Azure 高级中创建新的逻辑应用(标准)”的高级选项。 否则系统不会提示设置 SQL。

    屏幕截图显示了“在 Azure 高级中创建新的逻辑应用(标准)”部署选项处于选中状态。

  5. 出现提示时,为新的逻辑应用提供一个全局唯一的名称,这是用于“逻辑应用(标准)”资源的名称。 本示例使用 Fabrikam-Workflows-App

    屏幕截图显示了为逻辑应用使用全局唯一名称的提示。

  6. 选择逻辑应用的位置。 还可以开始键入以筛选列表。

    • 若要部署到 Azure,请选择要部署到的 Azure 区域。

    下面的示例显示了筛选为“中国东部 2”的位置列表。

    屏幕截图显示了选择部署位置的提示,其中包含可用的 Azure 区域,以及用于 Azure Arc 部署的自定义位置。

  7. 选择新逻辑应用的托管计划类型。

    1. 如果选择了 ASEv3 作为应用的位置,请选择“应用服务计划”,然后选择 ASEv3 资源。 否则选择“工作流标准”。

      屏幕截图显示了选择“工作流标准”或“应用服务计划”的提示。

    2. 为计划创建名称,或选择现有计划。

      此示例选择“创建新的应用服务计划”,因为现有计划不可用。

      屏幕截图显示了为托管计划创建名称的提示,其中“创建新的应用服务计划”处于选中状态。

  8. 为托管计划提供一个名称,然后为所选计划选择一个定价层。

    有关详细信息,请查看托管计划和定价层

  9. 当系统提示选择 Azure 资源组时,为获得最佳性能,请选择与部署项目相同的 Azure 资源组。

    注意

    尽管可以创建或使用其他资源组,但这样做可能会影响性能。 如果你创建或选择其他资源组,但在出现确认提示后取消,则还会取消你的部署。

  10. 当系统提示为逻辑应用选择存储帐户时,请选择以下选项之一:

    • 如果以前选择的是自定义位置,则选择“SQL”选项。

    • 如果要部署到 Azure,请选择“SQL 和 Azure 存储”选项。

      注意

      此选项仅对 Azure 部署是必需的。 在 Azure 中,需要使用 Azure 存储在 Azure 逻辑应用平台上完成对逻辑应用配置的一次托管。 进行中的工作流状态、运行历史记录和其他运行时项目均存储在 SQL 数据库中。

  11. 出现提示时,请选择“创建新的存储帐户”或选择一个现有存储帐户(如果有的话)。

    屏幕截图显示了“Azure: 逻辑应用(标准版)”窗格,其中提示创建或选择一个存储帐户。

  12. 在出现 SQL 存储确认提示时选择“是”。 在连接字符串提示中输入 SQL 字符串。

    注意

    请确保输入正确的连接字符串,因为 Visual Studio Code 不会验证此字符串。

    屏幕截图显示了 Visual Studio Code 和 SQL 连接字符串提示。

  13. 完成发布到新逻辑应用(标准)资源中的其余部署步骤。

完成后,新的逻辑应用资源和工作流将出现在 Azure 中,并使用 SQL 数据库作为存储提供程序。

验证部署

将“逻辑应用(标准)”资源部署到 Azure 后,可以检查设置是否正确:

  1. Azure 门户中,打开你的逻辑应用资源。

  2. 在资源导航菜单的“设置”下选择“配置” 。

  3. 在“配置”窗格的“应用程序设置”下查找“Workflows.Sql.ConnectionString”应用设置,并确认 SQL 连接字符串出现了且为正确 。

  4. 在 SQL 环境中,确认使用了正确的架构名称(以“dt”和“dq”开头)创建 SQL 表。

例如,以下屏幕截图显示了单租户 Azure 逻辑应用运行时为具有单个工作流的逻辑应用资源创建的表:

屏幕截图显示了单租户 Azure 逻辑应用运行时创建的 SQL 表。

单租户 Azure 逻辑应用服务还创建用户定义的表类型。 例如,以下屏幕截图显示了单租户 Azure 逻辑应用运行时为具有单个工作流的逻辑应用资源创建的用户定义的表类型:

屏幕截图显示了单租户 Azure 逻辑应用运行时创建的 SQL 用户定义的表类型。

后续步骤