サーバーレス・テクノロジを使用したOracle Cloud 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にデータをロードする際の要件の典型的なステップです。
- 一部の外部データで受信データをエンリッチし、データをOracle Cloud ERPデータ・ロード・フォーマット(FBDI)に変換します
- RESTまたはSOAP Webサービスを使用して、ファイルをOracle Cloud ERPにロードします
- プロセスが完了し、データが処理されたことを示す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は、ジョブが正しく処理されたか、またはエラーが発生したかを示すコールバックをクライアントに発行します。成功コードは、データがすべてロードされたことを意味するわけではありません。たとえば、レコードが重複している可能性があります。
始める前に
ストレージ・バケット、ファンクション、Oracle Cloud Infrastructure Vaultなど、OCIインスタンスに様々なオブジェクトを作成する必要があります。次の参照が役立つ場合があります。
- Oracle Fusion Cloud FinancialsのREST APIで、インバウンドまたはアウトバウンドのデータ・セットの作成の例1: ImportBulkData操作を確認します。
- OCIにバケットを作成するには、Oracle Cloud Infrastructureドキュメントのオブジェクト・ストレージへのデータの配置を確認してください。
- OCIでファンクションを作成するには、Oracle Cloud InfrastructureドキュメントのHelloworldファンクションの作成、デプロイおよび呼出しを確認してください。
- Oracle Cloud InfrastructureドキュメントのOracle 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サービスを取得する方法の学習を参照してください。