在 Azure 逻辑应用中为标准工作流设置 SQL 数据库存储(预览版)

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

重要

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

无论是创建托管在 Azure 逻辑应用、应用服务环境 v3 还是你自己的基础结构中的标准逻辑应用,都需要存储提供程序来保存工作流项目、状态和运行时数据。 将自己的 SQL 数据库设置为存储提供程序时,可以更灵活地控制工作流运行时环境、吞吐量、缩放、性能和管理。

本指南介绍为何以及如何将 SQL 数据库设置为存储提供程序。 可以在使用 Azure 门户创建逻辑应用期间完成此任务,也可以使用 Visual Studio Code 进行部署。

为何设置 SQL 数据库存储

SQL 数据库具有以下优势:

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

何时选择 SQL

下表描述了选择 SQL 时的方案:

Scenario 建议的存储
在 Azure 中运行标准逻辑应用工作流,从而更好地控制存储吞吐量和性能。 选择 SQL,因为 Azure 存储不提供微调吞吐量和性能的工具。
取决于可预测的存储成本。 如果希望更好地控制缩放成本,请选择 SQL。 SQL 成本基于每个计算和每秒的输入输出操作数 (IOP)。 Azure 存储成本基于操作数,这可能更适用于缩放为零的小型工作负荷。
首选 SQL 而不是 Azure 存储。 SQL 是一个众所周知且可靠的生态系统,可以在逻辑应用后台作中应用相同的治理和管理。
重复使用现有的 SQL 环境。 如果已拥有要重复使用或现代化到云的 SQL 许可证,请选择 SQL。 您可能会想要将 Azure Hybrid Benefits 应用到您的逻辑应用集成中。
其他 选择默认存储提供程序的 Azure 存储。

先决条件

  • Azure 帐户和有效的订阅。 获取试用版

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

    1. 创建 SQL Server 实例。

      支持的 SQL Server 版本:

    2. 如果 SQL Server 受支持并托管在 Azure 上,请确保设置以下权限:

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

      2. 在服务器端栏的 “安全性”下,选择 “防火墙和虚拟网络”。

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

      4. 保存更改。

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

    4. 如果有用于本地开发的 SQL Express,请连接到默认命名实例 localhost\SQLExpress

    5. 创建或重复使用现有数据库。

      必须先有一个活动的可行数据库,然后才能设置 SQL 存储提供程序。

    6. 按照本文中的 步骤设置 SQL 环境

    7. 对于本地开发,需要在计算机上本地安装 Visual Studio Code

      注释

      选择Microsoft安装程序(MSI),确保安装func-cli-X.X.XXXX-x*.msi,并提供 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 Key Vault)保护连接字符串,您可以将其添加到应用设置中。 然后,可以直接引用安全字符串,例如连接字符串和密钥。 与 ARM 模板类似,可以在部署时定义环境变量,可以在 逻辑应用工作流定义中定义应用设置。 然后,可以捕获动态生成的基础结构值,例如连接终结点、存储字符串等。 有关详细信息,请参阅Microsoft 标识平台的应用程序类型

  3. 连接到 SQL 服务器和数据库。

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

创建标准逻辑应用时,可以将 SQL 设置为存储提供程序。

  1. Azure 门户 搜索框中,输入 logic apps并选择 “逻辑应用”。

    屏幕截图显示了 Azure 门户搜索框,其中逻辑应用作为搜索词和所选类别名为逻辑应用。

  2. 在“逻辑应用”页工具栏上,选择“添加”

  3. 在“ 创建逻辑应用 ”页上的 “标准”下,选择所需的托管选项。

  4. 在“ 基本信息 ”选项卡上,提供以下信息,根据所选内容而异:

    资产 必选 价值 Description
    Subscription 是的 < Azure-subscription-name> 逻辑应用的 Azure 订阅。
    资源组 是的 < Azure-resource-group-name> 逻辑应用的 Azure 资源组和相关资源。 该名称必须跨区域唯一,并且只能包含字母、数字、连字符(-)、下划线(_)、括号(()和句点(.)。

    此示例创建一个名为 Fabrikam-Workflows-RG 的资源组。
    类型 是的 Standard 此逻辑应用类型遵循 标准使用情况、计费和定价模型
    逻辑应用名称 是的 < logic-app-name> 逻辑应用的名称。 此资源名称在各个区域中必须独一无二,并且只能包含字母、数字、连字符 (-)、下划线 (_)、括号 (()) 和句点 (.)

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

    注意:逻辑应用的名称会自动获取后缀, .chinacloudsites.cn因为标准逻辑应用资源由单租户 Azure 逻辑应用运行时提供支持,该运行时使用 Azure Functions 扩展性模型,并作为扩展托管在 Azure Functions 运行时上。 Azure Functions 使用相同的应用命名约定。
    Region 是的 < Azure-region> 您的资源组及其资源所在的位置。 此示例将示例逻辑应用部署到 Azure 并使用 中国北部 2

    - 若要部署到 ASEv3 资源(该资源必须首先存在),请从“区域”列表中选择该环境资源。
    Windows 计划 是的 < plan-name> 要使用的计划名称。 选择一个现有计划名称或为新计划提供一个名称。

    此示例使用的名称为“My-App-Service-Plan”。

    注意:不要选择基于 Linux 的应用服务计划。 仅支持基于 Windows 的应用服务计划。
    定价计划 是的 < 定价层> 您的逻辑应用程序和工作流的 定价等级。 选择会影响逻辑应用和工作流的定价、计算、内存和存储。

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

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

    屏幕截图显示了 Azure 门户和“创建逻辑应用”页的基本选项卡。

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

    资产 必选 价值 Description
    存储类型 是的 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 门户不会验证此字符串。

    以下示例显示了“创建逻辑应用”页的“存储”选项卡:

    屏幕截图显示了“存储”选项卡的 Azure 门户和“创建逻辑应用”页。

  6. 完成在 单租户 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 数据库。

    屏幕截图显示 SQL 连接字符串提示。

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

    屏幕截图显示逻辑应用项目,以及使用 SQL 连接字符串设置打开名为 local.settings.json 的文件。

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

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

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

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

    注释

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

为新的标准逻辑应用资源部署设置 SQL

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

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

  3. 如果系统提示,请选择用于逻辑应用部署的 Azure 订阅。

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

    屏幕截图显示了在 Azure 高级中创建新的标准逻辑应用的所选部署选项。

  5. 出现提示时,为新逻辑应用提供全局唯一名称,即标准逻辑应用资源的名称。 此示例使用 Fabrikam-Workflows-App

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

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

    • 若要部署到 Azure,请选择要部署到的 Azure 区域。 如果创建了应用服务环境 v3 (ASEv3) 资源,并且想要在其中部署,请选择 ASEv3。

    以下示例显示了筛选到 中国北部 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 用户定义的表类型。