サーバーレス・テクノロジを使用した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機能には、使用量に基づくスケーリング価格があります。支払いが発生するのは消費したストレージおよびコンピュート・リソースに対してのみです。Functionsが現在使用されていない場合、コストは発生しません。現在ストレージが空の場合、コストは発生しません。

システム間でデータを移動および変換するためのOracleの主要な製品は、Oracle Integrationです。Oracle Integrationにより、インテグレータは宣言的な構成を使用して統合を作成し、クラウドで変換を実行し、クラウドで実際のデータ・ロードを実行し、例外と再試行を自動的に管理して、コードを記述せずに作成することができます。重量またはローコード/ノーコード・ソリューションでは、Oracle Integrationが最適なオプションになる場合があります。ただし、サーバーレスが役立つ可能性があるユースケースの1つは、データをSaaSに頻繁にロードする顧客や、統合フローが単純である顧客の場合です。

このソリューション・プレイブックでは、サーバーレス・テクノロジを使用してデータ・ロード・パターンを実装する方法を示し、基本的なパターンを拡張して通知やその他の拡張機能を含める方法について説明します。

アーキテクチャ

このアーキテクチャでは、Oracle Cloud ERPにデータをロードするためのサーバーレス・アーキテクチャを作成する方法を示します。

サーバーレス・テクノロジを使用してOracle Fusion Cloudにデータをロードする方法を示すために、OCIサーバーレス・サービスと3GLコードベースのアプローチのみを使用してサンプルを構築しました。



load-data-serverless-architecture:oracle.zip

このアーキテクチャでは、次のコンポーネントがサポートされます。

  • 関数

    Oracle Functionsは、完全に管理されたマルチテナントでスケーラビリティが高くオンデマンドのFunctions-as-a-Service (FaaS)プラットフォームです。これは、Fn Projectのオープン・ソース・エンジンによって機能します。ファンクションを使用すると、コードをデプロイし、それを直接コールするか、イベントに応答してトリガーできます。Oracle Functionsでは、Oracle Cloud Infrastructure RegistryでホストされているDockerコンテナが使用されます。

  • イベント

    Oracle Cloud Infrastructureサービスでは、イベント(リソースの変更を記述する構造化メッセージ)が生成されます。イベントは、作成、読取り、更新または削除(CRUD)操作、リソース・ライフサイクル状態の変更、およびクラウド・リソースに影響するシステム・イベントに対して発行されます。

  • 通知

    Oracle Cloud Infrastructure Notificationsサービスは、Oracle Cloud Infrastructureでホストされているアプリケーションに対して、セキュア、高信頼性、低レイテンシおよび永続的なメッセージを配信するパブリッシュ/サブスクライブ・パターンを介して、分散コンポーネントにメッセージをブロードキャストします。

  • ボールト

    Oracle Cloud Infrastructure Vaultでは、データを保護する暗号化キーと、クラウド内のリソースへのアクセスを保護するために使用するシークレット資格証明を集中管理できます。Vaultサービスを使用して、ボールト、キーおよびシークレットを作成および管理できます。

  • APIゲートウェイ

    Oracle API Gatewayでは、ネットワーク内からアクセス可能なプライベート・エンドポイントとともに、必要に応じてパブリック・インターネットに公開できるAPIを公開できます。エンドポイントは、API検証、リクエストとレスポンスの変換、CORS、認証と認可およびリクエスト制限をサポートします。

  • オブジェクト・ストレージ

    オブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納し、取得できます。パフォーマンスやサービスの信頼性を損なうことなく、シームレスにストレージを拡張できます。迅速、即時、頻繁にアクセスする必要があるホット・ストレージには、標準ストレージを使用します。長期間保持し、ほとんどまたはほとんどアクセスしないコールド・ストレージには、アーカイブ・ストレージを使用します。

  • Fusion Applications

    Oracle Fusion Cloud Applications Suiteは、ERP、SCM、HCM、Sales、Service、Industryなどのあらゆるビジネス・カテゴリにわたって数十のクラウド・アプリケーションを提供します。

この例のアーキテクチャでは、Oracle Cloud ERPにデータをロードするためのサーバーレス・アーキテクチャを作成する方法を示します。OCIバケット(オブジェクト・ストレージの機能)、イベント、ファンクション、Vault、通知およびAPIゲートウェイを使用して統合パイプラインを実装するパターンを示します。このパターンでは、フローを拡張して通知を含め、統合をさらに充実させる方法が強調表示されます。このパターンはコードベースおよびサーバーレスであり、システムがアイドル状態の場合、コンシューマにとって唯一のコストはOCI Object Storageのファイルのストレージです。

実装する統合が多数あり、これらの統合が頻繁に変更される場合は、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形式に変換し、ファイルを1つのZIPファイルに圧縮することです。このプレイブックの例では、この変換ステップは簡略化されたJSONデータ構造を受け入れることで示され、その後、Oracle Cloud ERPで必要なCSV形式に変換されます。その後、ファイルが1つのZIPファイルに結合され、アップロードの準備が整います。

ロード

データが変換されると、Fusion REST APIを使用してOracle Cloud ERPにロードできます。Oracle Cloud ERPからのレスポンスには、データのロードに使用されるメタデータとJobIDが含まれています。JobIDは、どのデータ・ファイルがどのジョブによってインポートされるかを決定するために後で必要です。

コールバックの処理

Oracle Cloud ERPは、ジョブが正しく処理されたか、またはエラーが発生したかを示すコールバックをクライアントに発行します。成功コードは、データがすべてロードされたことを意味するわけではありません。たとえば、レコードが重複している可能性があります。

始める前に

このソリューション・プレイブックでは、OCI、Oracle Cloud ERPおよびPythonに精通していることを前提としています。

ストレージ・バケット、ファンクション、Oracle Cloud Infrastructure Vaultなど、OCIインスタンスに様々なオブジェクトを作成する必要があります。次の参照が役立つ場合があります。

必須サービスおよびロールについて

このソリューションには、次のサービスが必要です。

  • 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サービスを取得する方法の学習を参照してください。