このトピックでは、仮想ホストの構成について説明します。仮想ホストを使用すると、Apigee ハイブリッドで複数のドメイン名への API リクエストを処理し、プロキシのベースパスを特定の環境にルーティングできます。
ルーティングする環境固有の API プロキシのベースパスを指定するには、virtualhosts.routingRules[]
構成プロパティを使用します。個々のプロパティの詳細については、構成プロパティ リファレンスの virtualhosts をご覧ください。次に例を示します。
... virtualhosts: - name: vhost-one 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: vhost-one 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: vhost-one 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: vhost-two 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 ゲートウェイと安全な通信を確立するために使用されます。
ハイブリッド構成に適切な TLS 証明書と鍵のペアを生成する方法はユーザーが選択します。以下のトピックは、TLS 認証情報を別の方法で取得できない場合に、新しいハイブリッド インストールを試用またはテストするためのサンプルとしてのみ提供されています。
- 承認済みの TLS 証明書と鍵のペアを作成する一連のサンプルの手順については、TLS 認証情報の取得をご覧ください。
- 自己署名証明書と鍵のペアは、テスト目的でのみ使用できます。自己署名 TLS 認証情報を生成するをご覧ください。