关于使用无服务器技术将数据加载到 Oracle Cloud ERP

如果您不经常将数据加载到 SaaS,或者具有直接的集成流,则可以避免出现繁重的数据集成解决方案。您可能更愿意创建一个以代码为中心的方法,完全控制代码的用途、代码的部署方式以及在系统空闲时不支付任何费用。如果您需要定期将数据加载到 Oracle Fusion Cloud Enterprise Resource Planning (Oracle Cloud ERP),Oracle 会在 Oracle Cloud Infrastructure 上提供无服务器技术。您可以部署简单的 Oracle Functions 来处理数据转换、加载和回调,使用 Oracle Cloud Infrastructure Object Storage 存储桶在处理数据时临时存储数据,并使用 API 网关和 Oracle Cloud Infrastructure Vault 来确保关键任务 ERP 数据的安全性。

作为 Oracle SaaS 客户,您可能更喜欢 SaaS 的许可模式和管理:按资源使用量或您创建的“实体”数量来支付费用,除了您自己的数据以外,您也不管理任何事务。构建 SaaS 扩展时,您可以享受相同的体验。通过使用 Oracle 的无服务器选项,您不必维护操作系统、补丁程序、防火墙或运行时库。“无服务器”技术并不意味着没有服务器,而是开发者不管理它们,因此它们基本上隐藏在开发人员身上。在无服务器环境中,您可以将代码和配置部署到云中,Oracle 会对其进行管理。

Oracle Functions 、Oracle Cloud 数据存储和其他 OCI 功能根据使用情况提供扩展定价。您只需为使用的存储和计算资源付费。如果当前未使用函数,则不会产生任何成本;如果当前存储为空,则不会产生任何成本,依此类推。

Oracle 在系统之间移动和转换数据的首要产品是 Oracle Integration 。借助 Oracle Integration ,集成商可以使用声明式构造创建集成,在云中执行转换,在云中运行实际数据加载,自动管理异常和重试,并且无需编写代码。对于重量级或低代码/无代码解决方案,Oracle Integration 是一个很好的选择。但是,对于不经常将数据加载到 SaaS 中的客户,或者集成流程非常简单,这种情况可能非常有用。

此解决方案手册介绍了如何使用无服务器技术实施数据加载模式,并重点介绍了如何扩展基本模式以包括通知和其他增强功能。

体系结构

此体系结构展示了如何创建无服务器体系结构以将数据加载到 Oracle Cloud ERP 中。

为了演示如何使用无服务器技术将数据加载到 Oracle Fusion Cloud 中,我们仅使用 OCI 无服务器服务和基于 3GL 代码的方法构建了一个示例。



load-data-serverless-architecture-oracle.zip

此体系结构支持以下组件:

  • 函数

    Oracle Functions 是一个完全托管的多租户、高度可扩展的按需函数即服务 (FaaS) 平台。它由 Fn Project 开源引擎提供支持。使用函数可以部署代码,直接调用代码或触发代码以响应事件。Oracle Functions 使用 Oracle Cloud Infrastructure Registry 中托管的 Docker 容器。

  • 事件

    Oracle Cloud Infrastructure 服务发出事件,这些事件是描述资源更改的结构化消息。发出事件以执行创建、读取、更新或删除 (CRUD) 操作、资源生命周期状态更改以及影响云资源的系统事件。

  • 通知

    Oracle Cloud Infrastructure Notifications 服务通过发布 - 订阅模式向分布式组件广播消息,为托管在 Oracle Cloud Infrastructure 上的应用程序提供安全、高度可靠、低延迟和持久的消息。

  • Vault

    通过 Oracle Cloud Infrastructure Vault ,您可以集中管理用于保护数据的加密密钥以及用于保护云中资源访问的密钥身份证明。您可以使用 Vault 服务创建和管理 Vault、密钥和密钥。

  • API 网关

    使用 Oracle API Gateway,您可以发布具有专用端点的 API,这些端点可通过网络访问,并且您可以根据需要向公共互联网公开。端点支持 API 验证、请求和响应转换、CORS、验证和授权以及请求限制。

  • 对象存储

    通过对象存储,可以快速访问任意内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及丰富的内容(例如图像和视频)。您可以安全可靠地存储数据,然后直接从互联网或云平台检索数据。您可以无缝扩展存储,而不会降低性能或服务可靠性。将标准存储用于“热”存储,您需要快速、立即和频繁地访问这些存储。将归档存储用于保留很长时间、很少或很少访问的“冷”存储。

  • Fusion Applications

    Oracle Fusion Cloud Applications Suite 在每个业务类别中提供数十个云应用,包括 ERP、SCM、HCM、销售、服务和行业垂直领域。

此示例体系结构演示了如何创建无服务器体系结构以将数据加载到 Oracle Cloud ERP 中。它演示了使用 OCI 存储桶(对象存储的功能)、事件、函数、Vault、通知和 API 网关实施集成管道的模式。该模式重点介绍了如何扩展流以包括通知和进一步扩充集成。此模式基于代码且无服务器,当系统闲置时,使用者的唯一成本是 OCI 对象存储中文件的存储。

如果您有许多要实施的集成,并且这些集成将频繁更改,则 Oracle Integration 是很好的替代方案。Oracle Integration 提供了丰富的声明式开发环境,您可以在其中快速构建、部署和扩展集成,以满足您的需求。此外,Oracle Integration 还为您提供许多额外的内置功能,例如错误处理、重试消息、仪表盘、报告、以前请求的状态跟踪等。

但是,如果您更喜欢无服务器方法、以代码为中心的集成样式以及此模式提供的灵活性和可扩展性,则使用此体系结构作为您自己的基于函数的无服务器 SaaS 扩展的起点。

关于将数据加载到 Oracle Cloud ERP

要开发此应用程序,必须了解将数据加载到 Oracle Cloud ERP 中的流程。

以下步骤是将数据加载到 Oracle Cloud ERP 中的典型要求:

  1. 使用一些外部数据扩充传入数据,并将数据转换为 Oracle Cloud ERP 数据加载格式 (FBDI)
  2. 使用 REST 或 SOAP Web 服务将文件加载到 Oracle Cloud ERP
  3. 监听来自 Oracle Cloud ERP 的回调,指示进程已完成并且已处理数据。

扩展和转换

将数据加载到 Oracle Cloud ERP 时,必须采取的一个步骤是将输入数据转换为所需的 CSV 格式,然后将文件压缩到单个 ZIP 文件中。在本手册的示例中,通过接受简化 JSON 数据结构来演示此转换步骤,然后将该结构转换为 Oracle Cloud ERP 所需的 CSV 格式。然后,这些文件合并为一个准备上载的 ZIP 文件。

加载

数据转换完成后,可以使用 Fusion REST API 将数据加载到 Oracle Cloud ERP 中。Oracle Cloud ERP 的响应包含一些元数据以及用于加载数据的 JobID。以后需要使用 JobID 来确定哪个数据文件由哪个作业导入。

处理回调

Oracle Cloud ERP 会向客户机发出回调,指示作业是否正确处理或者是否存在错误。请注意,成功代码不一定意味着所有数据都已加载:例如,可能存在重复记录。

准备工作

此解决方案手册假定您熟悉 OCI、Oracle Cloud ERP 和 Python。

您需要在 OCI 实例中创建各种对象,包括存储桶、功能区和 Oracle Cloud Infrastructure Vault 。以下参考资料可能很有用:

关于必需的服务和角色

此解决方案需要以下服务:

  • Oracle Fusion ERP
  • Oracle Cloud Infrastructure ,包括 Oracle API Gateway、Oracle Functions 和其他 OCI 组件

这些是每个服务所需的角色。

服务名称:角色 要求 ...
Oracle Fusion ERP:实施者 通过 API 加载 Fusion ERP 数据
Oracle Cloud Infrastructure :管理员 在 OCI IAM 中创建账户,部署 OCI 组件和函数

要获取所需的云服务,请参阅 了解如何获取 Oracle 解决方案的 Oracle Cloud 服务