このトピックでは、仮想ホストの構成について説明します。仮想ホストを使用すると、Apigee Hybrid で複数のドメイン名への API リクエストを処理し、プロキシのベースパスを特定の環境にルーティングすることができます。
ルーティングする環境固有の API プロキシのベースパスを指定するには、virtualhosts.routingRules[]
構成プロパティを使用します。個々のプロパティの詳細については、構成プロパティ リファレンスの virtualhosts をご覧ください。例:
... virtualhosts: - name: vhost1 hostAliases: ["api.example.com"] sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem routingRules: - paths: - /orders - /items env: test1 - paths: - /customers env: test2 envs: - name: test1 serviceAccountPaths: synchronizer: ./sa/synchronizer.json udca: ./sa/udca.json - name: test2 serviceAccountPaths: synchronizer: ./sa/synchronizer.json udca: ./sa/udca.json
https://api.example.com/orders
などの API 呼び出しが到着すると、リクエストは test1
環境の Message Processor に送信されます。同様に、https://api.example.com/customers
へのリクエストが到達すると、test2
環境にルーティングされます。
新しい環境の追加
新しい環境を追加するには、その構成を envs[]
プロパティに追加します。次に、新しい virtualhosts.routingRules.path
エントリを追加して、新しい環境にマッピングするベースパスを指定します。次の例では、test3
という名前の新しい環境が追加され、2 つのパスを新しい環境にルーティングするように routingRules
が更新されています。
virtualhosts: - name: vhost1 hostAliases: ["api.example.com"] sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem routingRules: - paths: - /orders - /items env: test1 - paths: - /v0/hello - /httpbin env: test2 - paths: - /v0/inventory - /v0/customers env: test3 envs: - name: test1 serviceAccountPaths: synchronizer: ./sa/synchronizer.json udca: ./sa/udca.json - name: test2 serviceAccountPaths: synchronizer: ./sa/synchronizer.json udca: ./sa/udca.json - name: test3 serviceAccountPaths: synchronizer: ./sa/synchronizer.json udca: ./sa/udca.json
更新を適用するには、次のように runtime
コンポーネントを適用するだけです。
apigeectl apply -f overrides-file.yaml -c runtime
複数の仮想ホストの追加
virtualhosts[]
プロパティは配列なので、複数作成できます。各仮想ホストには一意のホスト エイリアスのセットが必要です。2 つの仮想ホストが同じホスト エイリアスを共有することはできません。たとえば、次の例では、新しい仮想ホスト dev
が api.internal.com
ドメインに送信されたトラフィックを処理します。
virtualhosts: - name: vhost1 hostAliases: ["api.example.com"] sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem routingRules: - paths: - /orders - /items env: test1 - paths: - /v0/hello - /httpbin env: test2 - paths: - /v0/inventory - /v0/customers env: test3 - name: vhost2 hostAliases: ["api.internal.com"] sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem routingRules: - paths: - /orders - /items env: test1 - paths: - /v0/hello - /httpbin env: test2 - paths: - /v0/inventory - /v0/customers env: test3 envs: - name: test1 serviceAccountPaths: synchronizer: ./sa/synchronizer.json udca: ./sa/udca.json - name: test2 serviceAccountPaths: synchronizer: ./sa/synchronizer.json udca: ./sa/udca.json - name: test3 serviceAccountPaths: synchronizer: ./sa/synchronizer.json udca: ./sa/udca.json
更新を適用するには、次のように runtime
コンポーネントを適用するだけです。
apigeectl apply -f overrides-file.yaml -c runtime
TLS 鍵と証明書
新しい仮想ホストを作成するとき、TLS 鍵と証明書を提供する必要があります。この鍵 / 証明書は、Ingress ゲートウェイとの安全な通信を確立するために使用されます。
Hybrid 構成に適切な TLS 証明書と鍵のペアを生成する方法はユーザーが選択します。以下のトピックは、主に、TLS 認証情報を他の方法では取得できない場合に、新しい Hybrid インストールを試用またはテストするためのサンプルとして提供されています。
- 承認された TLS 証明書と鍵のペアを作成するための一連のサンプル ステップについては、TLS 認証情報を取得するをご覧ください。
- 自己署名証明書と鍵のペアは、テスト目的でのみ使用できます。自己署名 TLS 認証情報を生成するをご覧ください。