※ 本記事は、Shrinidhi Kulkarniによる”How to configure OCI API Gateway for OCI GoldenGate REST API“を翻訳したものです。

2023年7月5日


 strip

arch

 

Oracle GoldenGate REST APIは、Oracle GoldenGateのデプロイメントおよびレプリケーション・サービスの管理に使用できます。ここでは、すべてのRESTエンドポイントのリストを表示できます。

API Gatewayサービスを使用すると、ネットワーク内からアクセス可能なプライベート・エンドポイントを含むAPIを公開でき、インターネット・トラフィックを受け入れる場合にパブリックIPアドレスで公開できます。

APIゲートウェイは、インバウンド・トラフィックを、OCI GoldenGateなどのパブリック、プライベートおよびパートナのHTTP APIを含むバックエンド・サービスにルーティングします。各APIゲートウェイは、パブリックIPアドレスをパブリックAPIゲートウェイとしてオプションで公開できるプライベート・エンドポイントです。API Gatewayサービスを使用して、リージョナル・サブネットに1つ以上のAPIゲートウェイを作成し、APIクライアントからのトラフィックを処理してバックエンド・サービスにルーティングします。単一のAPIゲートウェイを使用して、OCI Goldengateおよび複数のバックエンド・サービス(ロード・バランサ、コンピュート・インスタンス、OCIファンクションなど)を単一の統合APIエンドポイントにリンクできます。

APIs

API Gatewayサービスでは、APIはバックエンド・リソースのセットであり、APIクライアントから送信されたリクエストに応じて各バックエンド・リソースに対して実行できるメソッド(GET、PUTなど)です。APIゲートウェイがOCI GoldenGate APIリクエストを処理できるようにするには、APIデプロイメントを作成してAPIゲートウェイにAPIをデプロイする必要があります。

OCIでのAPI Gatewayの作成

1つ以上のAPIゲートウェイを作成して、APIクライアントからのトラフィックを処理し、バックエンド・サービスにルーティングできます。API Gatewayは、コンソール、APIまたはCLIのいずれかを使用して作成できます。このブログでは、OCIコンソールを使用してOCI GoldenGateのAPI Gatewayを作成します。
ここで説明するステップに従って、OCIテナンシにAPI Gatewayを作成します。

APIゲートウェイが作成されると、APIデプロイメントを作成してAPIゲートウェイにAPIをデプロイできます。APIデプロイメントを作成する際、APIを定義するAPIデプロイメント仕様を含めます。API Gatewayサービスは、APIデプロイメント仕様を検証して、有効であることを確認します。次の方法により、複数のバックエンド・サービスのフロント・エンドとして単一のAPIゲートウェイを使用できます。:

  • 複数のバックエンド・サービスを定義するAPIデプロイメント仕様を使用して、APIゲートウェイに1つのAPIデプロイメントを作成します。
  • 同じAPIゲートウェイ上に複数のAPIデプロイメントを作成し、それぞれに1つ(または複数)のバックエンド・サービスを定義するAPIデプロイメント仕様を使用します。

 

コンソールを使用したOCI GoldenGateのAPIデプロイメントの新規作成

  1. OCIコンソールで、ナビゲーション・メニューを開き、「Developer Services」をクリックします。「API Management」で、「Gateways」をクリックします。
     
  2. デプロイメントを作成するコンパートメントを選択します。
     
  3. 「Gateways」ページで、APIをデプロイするAPIゲートウェイの名前をクリックして、「Gateway Details」ページを表示します。
     
  4. 「Gateway Details」ページで、「Resources」リストから「Deployments」を選択し、「Create Deployment」をクリックします。
     
  5. From Scratch」をクリックし、「Basic Information」セクションで次を指定します。:
                Name: 新しいAPIデプロイメントの名前。機密情報は入力しないでください。

パス接頭辞: APIデプロイメント仕様に含まれるすべてのルートをデプロイするパス。例: GoldenGateデプロイメント名

           ノート 指定したデプロイメント・パス接頭辞:
                  前にスラッシュ( / )を付ける必要があります
                  複数のスラッシュ(隣接していない場合)を含めることができますが、スラッシュで終わることはできません。
                  英数字の大文字と小文字を含めることができます。
                  次の特殊文字を含めることができます。 $ – _ . + ! * ‘ ( ) , % ; : @ & =
                  パラメータおよびワイルドカードを含めることはできません

create dep

 

 

      6. 「Optional」パラメータはデフォルト値のままにします。「Next」をクリックして「Authentication」ページを表示し、認証リクエスト・ポリシーの詳細を入力します。
          このブログの範囲では、「No Authentication: to give unauthenticated access to all routes in the API deployment」を選択します。

auth

      7. 「Next」をクリックして、APIデプロイメントのルートの詳細を入力します。

          「Route 1」セクションで、パスと1つ以上のメソッドをバックエンド・サービスにマッピングするAPIデプロイメントの最初のルートを指定します:

  • パス: リストされたメソッドを使用してバックエンド・サービスへのAPIコールのパス。たとえば、/extract
     
  • メソッド: バックエンド・サービスによって受け入れられる、カンマで区切られた1つ以上のメソッド。たとえば、GET、PUT
     
  • 単一のバックエンドの追加または複数のバックエンドの追加: すべてのリクエストを同じバックエンドにルーティングするか、入力したコンテキスト変数およびルールに従ってリクエストを異なるバックエンドにルーティングするか。これらの手順では、1つのバックエンドを使用することを想定しているため、「1つのバックエンドの追加」を選択します。
     
  • バックエンド・タイプ: バックエンド・サービスのタイプ。HTTPを選択し、次の詳細を入力します
  • URL: 抽出用のOCI GoldenGate URLを次の形式で入力します

    <console-url>/services/adminsrvr/v2/extracts  

 

  • オプション・パラメータの残りはデフォルト値のままにします。
     
  • (オプション)「Another Route」をクリックして、追加のルートの詳細を入力します。追加のルートは、replicatの場合と同様に構成できます。

ROUTE 1

 

route 2

     8. 「Next」をクリックして、新しいAPIデプロイメントに入力した詳細を確認します。

     9. 「Create」をクリックして、新しいAPIデプロイメントを作成します。

 

オプション2: コンソールを使用したJSONファイルからのAPIデプロイメントの作成

  1. 「Gateways」ページで、APIをデプロイするAPIゲートウェイの名前をクリックして、「Gateway Details」ページを表示します。
     
  2. 「Gateway Details」ページで、「Resources」リストから「Deployments」を選択し、「Create Deployment」をクリックします。
     
  3. 既存のAPIから「Upload」をクリックし、「Basic Information」セクションで次を指定します:
  • Name: 新しいAPIデプロイメントの名前。機密情報は入力しないでください。
  • パス接頭辞: APIデプロイメント仕様に含まれるすべてのルートをデプロイするパス。例: GoldenGateデプロイメント名
  • 仕様: ファイルをドラッグ・アンド・ドロップするか、「選択」をクリックして、APIデプロイメント仕様を含むJSONファイルをアップロードします。
  • JSONファイルにAPIデプロイメント仕様を作成するには:

任意のJSONエディタを使用して、JSONファイルに次の形式でAPIデプロイメント仕様を作成します。:

{  "routes": [

    {
      "path": "/GGORA",
      "methods": ["ANY"],
        "backend": {
        "type": "HTTP_BACKEND",
        "url": "https://h5yeq.deployment.goldengate.us-ashburn-1.oci.oraclecloud.com",
        "auth_type": "basic"
       }

       }

  ]

}

Next」をクリックして、新しいAPIデプロイメントに入力した詳細を確認します。
Create」をクリックして、新しいAPIデプロイメントを作成します。

オプション3: CLIを使用したデプロイメントの作成、コマンド・プロンプトのオープン、oci api-gateway deployment createを実行してデプロイメントを作成することもできます:

oci api-gateway deployment create –compartment-id <compartment-ocid> –display-name <api-name> –gateway-id <gateway-ocid> –path-prefix “/<deployment-path-prefix>” –specification file:///<filename>
 

 

複数のバックエンドAPI仕様を備えた単一のAPIデプロイメント

複数のバックエンド・サービスを定義するAPIデプロイメント仕様を使用して、APIゲートウェイに1つのAPIデプロイメントを作成できます。

たとえば、次のAPIデプロイメント仕様では、OCI GoldenGate – Oracleデプロイメントを1つのバックエンドとして、Big Dataを2番目のバックエンドとして定義しています。

{  "routes": [

  {

    "path": "/GGORA",

    "methods": ["GET"],

    "backend": {

      "type": "HTTP_BACKEND",

      "url": "https://hyeq.deployment.goldengate.us-ashburn-1.oci.oraclecloud.com/services/adminsrvr/v2/replicats"

 }

 },

{

    "path": "/GGBD",

    "methods": ["GET"],

    "backend": {

      "type": "HTTP_BACKEND",

      "url": "https://xfza.deployment.goldengate.us-ashburn-1.oci.oraclecloud.com/services/adminsrvr/v2/replicats"

}

}

]

}

 

API Gateway Deployment Endpointを使用したGoldenGate APIのテスト

正常に作成された場合、新しいAPIデプロイメントはアクティブの状態で表示されます。

次のように、GoldenGate REST APIコマンドを使用して、前述のAPIゲートウェイ構成をテストできます。

CuRLの使用:

すべてのReplicatプロセスのリスト

例:
curl -X GET ‘<API Gateway deployment endpoint>’ –user “<username>”:“<password>” -H ‘Content-Type: application/json’ -H ‘cache-control: no-cache’ | python -mjson.tool

curl

ブラウザの使用:

URLは、API Gatewayデプロイメント・ページで指定されたエンドポイント
** 同じデプロイメント内で複数のルートを構成した場合は、パス名を追加します。

browser