ノート:

Oracle API GatewayからOracle Cloud Infrastructure API GatewayへのAPIの移行

イントロダクション

Oracle API Gatewayは、広く普及しているオンプレミス・プラットフォームであり、Webアプリケーションやモバイル・アプリケーション、さらにはクライアント/サーバー・アプリケーションと統合するためのAPIを通じてレガシー・システムを公開したかったことが過去にあった企業で使用されていました。

このチュートリアルでは、Oracle API Gatewayに実装されたAPIを、クラウド・ネイティブ標準内で、ハイブリッド環境(クラウドまたはオンプレミス)で使用できる、より最新のスケーラブルなテクノロジに移行する方法を説明します。この提案は、Oracle Cloud Infrastructure API Gateway (OCI API Gateway)への移行を加速することです。

OCI APIゲートウェイ・サービスでは、インターネット・トラフィックを受け入れる場合に、パブリックIPアドレスで公開できる、ネットワーク上のアクセス可能なプライベート・エンドポイントを含むAPIを公開できます。エンドポイントは、API検証、リクエストとレスポンスの変換、CORS、認証と認可およびリクエスト制限をサポートします。

OCI APIゲートウェイ・サービスを使用して、APIクライアント・トラフィックを処理し、バックエンド・サービスにルーティングするために、リージョン・サブネットに1つ以上のAPIゲートウェイを作成します。単一のAPIゲートウェイを使用して、複数のバックエンド・サービス(OCIロード・バランサ、OCIコンピュート・インスタンス、OCI Functionsなど)を単一の統合APIエンドポイントにリンクできます。OCIコンソールおよびREST APIを使用して、OCI APIゲートウェイ・サービスにアクセスして、APIゲートウェイおよびAPIデプロイメントを定義できます。

OCI APIゲートウェイ・サービスは、ネイティブなOCIアイデンティティ機能で簡単な認証を提供するOracle Cloud Infrastructure Identity and Access Management (OCI IAM)と統合されています。

このチュートリアルでは、OCI API Gatewayに移行するためのアーティファクトを準備でき、OCI API GatewayにOpenAPI仕様をデプロイするための自動化の実装という他のチュートリアルとともに使用する必要があります。

ノート:

Oracle API GatewayからOCI API Gatewayに移行するための戦略

この戦略では、わずかに異なるテクノロジであるため、OCI API Gatewayに直接移行することはできません。Oracle API Gatewayには、パスとそのポリシー間のマッピングを作成するメカニズムがありますが、認可/認証、HEADER、ビジネス・ルールなどのAPIの複雑さを伴うコール・オーケストレーションの複雑な処理ルールを生成します。OCI API GatewayはAPIゲートウェイとしてのみ機能するため、一部のHEADERの処理、タイムアウトおよび制限の原則の確立は可能ですが、大きな複雑さはありません。このツールは、他の機能を補完する様々なサービスの一部であるため、よりシンプルになり、その機能を正確に区切ることを目的としています。

目的

タスク1: Oracle API Gateway APIのエクスポート

Oracle API Gatewayは、XMLファイル内のすべての定義をエクスポートできます。このアーティファクトを使用して、移行のプロセスを加速します。Oracle API GatewayでAPI定義をエクスポートする方法の詳細は、APIゲートウェイ構成のエクスポートを参照してください。

すべてのAPI定義を含むXMLファイルが表示されます。

img_1.png

img.png

img_2.png

タスク2: Oracle API Gateway XMLのSwagger仕様への変換

Oracle API Gateway XMLファイルを使用して、YAML Swaggerファイルに変換します。

  1. エクスポートしたOracle API Gateway XMLファイルに変数ファイル名を変更し、次のPythonファイルを実行します: generate_swagger.py

    img_3.png

    img_4.png

    img_5.png

    YAML拡張子を持つファイルを受信します。各ファイルは、Oracle API Gatewayで定義されたAPIのSwagger定義です。

    一部の行は、Swagger定義でコメント化されています。これらの行は、各APIでのOracle API Gatewayオーケストレーションを表します。これは、Oracle Integrationでオーケストレーションを計画および構築するのに役立ちます。

  2. map_details.py Pythonファイルを変更して、Oracle API GatewayのXML定義ファイルと出力マッピング定義のファイル名を含めます。

    img_6.png

    このPythonコードを実行すると、Swaggerで説明されている各オーケストレーション・ステップの詳細な定義が表示されます。

    img_7.png

タスク3: SwaggerのOCI API Gatewayへのデプロイ

Swaggerファイルを使用すると、自動化プロセスを通じてOCI API Gatewayにインポートできます。Pythonコードによって生成されたすべてのYAMLファイルは、このプロジェクトを使用してOCI API Gatewayにデプロイできます。詳細は、OCI API GatewayにOpenAPI仕様をデプロイするための自動化の実装を参照してください。

このプロジェクトでは、ここで生成されたSwagger仕様をインポートし、使用するAPIをデプロイします。このドキュメントの一部として、バックエンドを手動で調整する必要があります。

タスク4: Oracle Integrationでのオーケストレーションの実装

このタスクでは、ケースをケース別に分析し、オーケストレーション、ビジネス・ルールおよび検証を実装する必要があります。

まず、Oracle API GatewayのAPIの各ステップを分析する必要があります。一部のステップはビジネス・ルールおよびオーケストレーションであり、これらはOracle Integrationの実装の一部である必要があります。この実装は、OCI API Gatewayで公開できるため、Oracle API Gatewayで実行される同じプロセスに従います。

ただし、Oracle Integration内に実装する必要のないステップがいくつかあります。その一部は次のとおりです。

認証および認可プロセスは、OCI API Gatewayレイヤーに実装できます。また、実装する必要があります。これを実装するには、JWT、OAuth2など、いくつかの方法があります。カスタマイズの許可に加えて、認証および認可をAPIデプロイメントに追加するための認可プロバイダ・ファンクションへのトークンの受渡しを参照してください。

HEADER(およびQUERYパラメータとBODY)処理は、OCI API Gateway自体で実行できます。処理は、REQUESTとRESPONSEの両方で実行できます。

ログはOCI API Gatewayでも処理できますが、回路全体をログに記録しておくことは常に有効です。つまり、Oracle Integrationに実装がある場合は、そこにログも実装してみてください。

承認

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。