新しい API プロキシを作成してデプロイする

Google Cloud とハイブリッド UI を構成し、ランタイムのインストールと構成が完了しました。それでは、問題なく機能するかどうか確認してみましょう。

このセクションでは、次の手順について説明します。

  1. API プロキシ ウィザードを使用して、Apigee UI で新しい API プロキシを作成する
  2. UI を使用して、クラスタに新しいプロキシをデプロイする

1. ハイブリッド UI を使用して新しい API プロキシを作成する

このセクションでは、API プロキシ ウィザードを使用して UI で新しい API プロキシを作成する方法について説明します。

API プロキシ ウィザードを使用してシンプルな API プロキシを作成するには、次のようにします。

  1. ブラウザで Apigee UI を開きます。
  2. メインビューで [Develop] > [API Proxies] を選択します。
  3. [Environment] プルダウン リストから、新しい API プロキシを作成する環境を選択します。このセクションでは、環境名が「test」であることを前提としています。ステップ 5: 環境を追加するで、少なくとも 1 つの環境を作成しました。

    ハイブリッド UI に、その環境の API プロキシのリストが表示されます。プロキシをまだ作成していない場合、リストは空です。

  4. 右上の [+Proxy] をクリックします。API プロキシ ウィザードが起動します。
  5. [Reverse proxy (most common)] を選択し、[Next] をクリックします。

    プロキシの詳細ビューが表示されます。

  6. 以下の設定でプロキシを構成します。
    • Proxy Name: 「myproxy」と入力します。このセクションの残りの手順では、これがプロキシ ID であることを前提としています。
    • Proxy Base Path: 自動的に「/ myproxy」に設定されます。Proxy Base Path は、API に対するリクエストを行うために使用される URL の一部です。Edge では、URL を使用して受信リクエストを照合し、適切な API プロキシにルーティングします。
    • (省略可)Description: 新しい API プロキシの説明を入力します(「単純なプロキシによる Apigee ハイブリッドのテスト」など)。
    • Target (Existing API): 「https://mocktarget.apigee.net」と入力します。API プロキシへのリクエストに応じて Apigee が呼び出すターゲット URL を定義します。mocktarget サービスは Apigee でホストされ、単純なデータを返します。API キーやアクセス トークンは必要ありません。

    API プロキシの詳細は、次のようになります。

  7. [Next] をクリックします。
  8. [Policies] 画面で、セキュリティ オプションとして [Pass through(no authorization)] を選択します。
  9. [Next] をクリックします。
  10. [Summary] 画面で、[Create] をクリックします。

    ハイブリッドでプロキシが生成されます(プロキシ バンドルと呼ばれることもあります)。

  11. [Go to proxy list] をクリックします。

    [Proxies] ビューが表示されます。このビューには、API プロキシの一覧が表示されます。新しいプロキシは一覧の先頭に表示されます。ステータス インジケーターは灰色で、まだデプロイされていないことを示します。

2. ハイブリッド UI を使用してプロキシをクラスタにデプロイする

新しいプロキシを作成したら、それをデプロイし、テストで使用できるようにする必要があります。このセクションでは、ハイブリッド UI を使用して新しいプロキシをデプロイする方法について説明します。

API プロキシをハイブリッド UI でデプロイするには:

  1. ハイブリッド UI で [Develop] > [API Proxies] の順に選択します。

    「test」環境が選択されていることを確認します。

    UI のプロキシリストに新しいプロキシが表示されます。

  2. myproxy プロキシをクリックします。

    UI に、そのプロキシの [API Proxy Overview] タブが表示されます。

    [Deployments] の下の [Revision] 列に [Not deployed] と表示されます。

  3. [Revision] 列でプルダウン セレクタを展開し、デプロイするリビジョンを選択します。

    プルダウン リストには「1」と「Undeploy」のみが表示されます。

  4. プルダウン リストで、デプロイするリビジョンである「1」を選択します。

    デプロイの確認を求めるメッセージが UI に表示されます。

  5. [Deploy] をクリックします。

    UI で、新しいプロキシのリビジョン 1 をクラスタにデプロイするプロセスが開始します。

    デプロイは短時間のプロセスではありません。ハイブリッドの結果整合性デプロイモデルでは、新しいデプロイはすぐにではなく、少し間をおいてからクラスタにロールアウトされます。

UI でプロキシのデプロイ ステータスを確認するにはいくつかの方法がありますが、次の 2 つのステップでは、デプロイした API プロキシの呼び出し方法と、Apigee API の呼び出しによるデプロイ ステータスの確認方法について説明します。

3. API プロキシを呼び出す

環境グループの作成に使用したホスト名の DNS レコードを更新できるかどうかに応じて、次の手順で操作します。

ホスト名の DNS を更新できない場合

環境グループのホスト名が登録されていない場合、または DNS レコードを更新できない場合は、次の手順で操作します。次の手順では、Ingress IP を取得し、--resolve フラグを指定して cURL 呼び出しで直接使用します。

  1. Ingress IP をエクスポートします。
    export INGRESS_IP=$(kubectl -n istio-system get service \
      istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  2. 安全な Ingress ポート番号をエクスポートします。
    export SECURE_INGRESS_PORT=$(kubectl -n istio-system get \
      service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}')
  3. 環境グループのホスト エイリアスを変数にエクスポートします。
    export HOSTALIAS=your_host_alias
  4. API プロキシを呼び出します。cURL では、--resolve フラグを使用して Ingress IP を直接指定できます。
    curl  -H Host:$HOSTALIAS --resolve \
      $HOSTALIAS:$SECURE_INGRESS_PORT:$INGRESS_IP  \
      https://$HOSTALIAS:$SECURE_INGRESS_PORT/myproxy -k

ホスト名の DNS を更新できる場合

環境グループの作成時に使用したホスト名が登録されていて、Ingress の外部 IP アドレスを指すように DNS レコードを更新できる場合は、次の手順で操作します。

  1. Ingress の外部 IP アドレスを変数にエクスポートします。
    export INGRESS_IP=$(kubectl -n istio-system get service \
      istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  2. 変数が IP アドレスを保持していることを確認します。次に例を示します。
    echo $INGRESS_IP
    34.118.196.202
  3. この IP アドレスを使用して、登録事業者または DNS プロバイダの DNS レコード(通常は A または CNAME レコード)を更新します。DNS レコードの変更が反映されるまでに最大 1 時間かかることがあります。
  4. 環境グループのホスト エイリアスを変数にエクスポートします。
    export HOSTALIAS=your_host_alias
  5. API プロキシを呼び出します。
    curl -k https://$HOSTALIAS/myproxy

    次に例を示します。

    curl -v -k https://apitest.acme.com/myproxy

    呼び出しに成功すると、次の出力が表示されます。

    Hello, Guest!