此解决方案使用 Azure 逻辑应用将云数据集成到本地数据存储中。
体系结构说明了如何使用 Azure API 管理、在 Azure Key Vault 中存储密钥和 API 密钥、通过本地数据网关连接到 SQL Server 以及使用 Azure Monitor 进行性能监视。 所有这些组件都通过 Azure 逻辑应用业务流程集成。
体系结构
该图包含两个框,一个适用于 Azure 组件,另一个适用于本地组件。 Azure 框外是标记为 JSON 的数据文件。 一个箭头从 JSON 文件指向 Azure 框中的 API 管理图标。 第二个箭头从 API 管理图标指向同样位于 Azure 框内的逻辑应用图标。 三个箭头指向远离逻辑应用图标。 一个箭头指向 Azure 框中的密钥保管库图标。 一个箭头指向两个框之间的本地数据网关图标。 第三个指向 Azure 框内的 Azure Monitor 图标。 另一个箭头从网关指向本地框中的 SQL Server 图标。 最后一个箭头从 SQL Server 图标指向本地框外的人员。
下载此体系结构的 Visio 文件。
工作流
API 管理以 HTTP 请求的形式接受 API 调用。
API 管理将 HTTP 请求安全地路由到逻辑应用。
每个 HTTP 请求都会触发逻辑应用中的运行:
- 逻辑应用使用安全模板参数从 Azure 密钥保管库中检索数据库凭据。
- Logic应用使用传输层安全性(TLS) 将数据库凭据和数据库语句发送到本地数据网关。
本地数据网关连接到 SQL Server 数据库以运行语句。
SQL Server 存储数据并使其可供用户访问的应用使用。
Azure Monitor 收集有关逻辑应用事件和性能的信息。
组件
此体系结构使用以下组件:
Azure API Management 为后端服务创建一致的新式 API 网关。 除了接受 API 调用并将其路由到后端外,此平台还会验证密钥、令牌、证书和其他凭据。 API Management 还会并强制实施使用配额和速率限制,并记录调用元数据。
Azure 逻辑应用跨云连接应用和数据来自动执行工作流。 该服务提供了一种实时安全访问和处理数据的方法。 其无服务器解决方案负责构建、托管、扩展、管理、维护和监控应用。
本地数据网关充当连接本地数据与云服务(如逻辑应用)的桥梁。 通常,你将网关安装在专用的本地虚拟机上。 然后,云服务可以安全地使用本地数据。
Azure Key Vault 存储和控制对机密(如令牌、密码和 API 密钥)的访问。 Key Vault 还会创建和控制加密密钥并管理安全证书。
SQL Server 提供存储和查询结构化和非结构化数据的解决方案。 该数据库引擎具有行业领先的性能和安全性。
Azure Monitor 收集有关环境和 Azure 资源的数据。 此信息有助于维护可用性和性能。 其他 Azure 服务(例如 Azure 存储和 Azure 事件中心)也可以使用此诊断数据。 Monitor 包含两个数据平台:
- Azure Monitor 日志记录并存储日志和性能数据。 对于逻辑应用,此数据包括有关触发事件、运行事件和操作事件的信息。
- Azure Monitor 指标按固定间隔收集数值。 对于逻辑应用,此数据包括运行延迟、速率和成功百分比。
备选方法
此解决方案存在一些替代方案:
考虑迁移到最新的、完全托管的 Azure 数据库服务,而不是使用 SQL Server 的本地实例。 逻辑应用使用的 SQL Server 连接器也适用于 Azure SQL 数据库和 Azure SQL 托管实例。 有关详细信息,请参阅使用 Azure 逻辑应用自动完成 SQL 数据库的工作流。 若要开始迁移,请参阅 Azure 数据库迁移服务。
对于复杂的自动化任务,请考虑使用 Azure Functions,而不是使用逻辑应用。 使用这两项服务均可创建无服务器工作流。 Azure Functions 是一种计算服务,旨在运行自定义代码或复杂处理,或与其他服务集成。 逻辑应用是一项云服务,旨在自动执行和编排任务和业务工作流。 它提供一个可视化设计器和许多预构建的连接器。 有关详细信息,请参阅比较 Azure Functions 和 Azure 逻辑应用。
对于更简单的集成,请考虑使用 Power Automate 而不是逻辑应用。 有关详细信息,请参阅比较 Microsoft Power Automate 和 Azure 逻辑应用。
Power Apps 还提供了用于自动执行涉及连接到本地数据源的工作流的解决方案。
方案详细信息
逻辑应用可以将 HTTP 请求数据存储在 SQL Server 数据库中。 由于逻辑应用用作安全的 Azure API 管理终结点,因此对 API 的调用可以触发各种与数据相关的任务。 除了更新本地数据库外,你还可以发送 Teams 或电子邮件。
可能的用例
使用此解决方案可自动执行你为响应 API 调用而执行的数据集成任务。
注意事项
这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改进工作负载质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架。
可靠性
可靠性可确保应用程序符合你对客户的承诺。 有关详细信息,请参阅可靠性支柱概述。
为了获得高可用性,请将本地网关添加到群集,而不是安装独立网关。
安全性
安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述。
本地数据网关使用凭据加密和用户身份验证在本地和 Azure 系统之间传输期间保护数据。
API 管理有助于确保只有授权客户端调用你的逻辑应用。 还可以执行以下步骤:
由于 API 管理是唯一应该调用你的逻辑应用的客户端,因此请考虑限制你的应用的入站 IP 地址。 可以将你的逻辑应用配置为仅接受来自 API 管理服务实例的 IP 地址的请求。
你还可以使用以下授权方案之一来限制对你的逻辑的访问应用:
请考虑使用 Azure 基于角色的访问控制 (Azure RBAC),以仅允许特定用户或组管理、编辑和查看你的逻辑应用。
每个逻辑应用运行的信息都可用,例如每个操作的状态、持续时间、输入和输出。 使用以下方法之一来控制谁可以访问运行历史记录中的输入和输出:
成本优化
成本优化就是减少不必要的费用和提高运营效率。 有关详细信息,请参阅成本优化支柱概述。
下表提供了使用不同预期吞吐量水平的成本概况:
API 管理 | 逻辑应用操作执行 | 逻辑应用连接器执行 | 配置文件 |
---|---|---|---|
基本 | 1,000/天 | 1,000/天 | 基本配置文件 |
标准 | 10,000/天 | 10,000/天 | 标准配置文件 |
高级 | 100,000/天 | 100,000/天 | 高级配置文件 |
配置文件不包括 SQL Server 数据库的成本。 若要调整参数并了解在你的环境中运行此解决方案的成本,请使用 Azure 定价计算器。
探索这些最大程度降低逻辑应用成本的策略:
- 批量运行 SQL 语句。
- 创建存储过程以有效地组织数据库结果。
- 为工作流指定精确触发器条件。
- 关闭不必持续运行的逻辑应用。
性能效率
性能效率是指工作负载能够以高效的方式扩展以满足用户对它的需求。 有关详细信息,请参阅性能效率要素概述。
借助逻辑应用使用的无服务器模型,服务会自动扩展以满足需求。 但请注意本地数据网关对读写操作的限制。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Beatriz Matsui | 顾问
- 山辛格|软件工程师
若要查看非公开领英个人资料,请登录领英。
后续步骤
相关资源
Azure 无服务器产品/服务:概述如何使用 Azure 逻辑应用和 Azure Functions 构建基于云的应用和解决方案
类似的体系结构:
- Azure 逻辑应用的本地数据网关:由连接到本地 SQL Server 实例的 Azure Spring Apps 触发的逻辑应用。
- 使用队列和事件的企业集成:通过集成后端系统响应 API 调用的逻辑应用。
- 无服务器 Web 应用程序:使用 Azure Functions 读取数据库数据的无服务器 Web 应用。