Configure anfitriões virtuais

Este tópico aborda a configuração do anfitrião virtual. Os anfitriões virtuais permitem que o Apigee Hybrid processe pedidos de API para vários nomes de domínio e encaminhe os caminhos base do proxy para ambientes específicos.

Para especificar para que caminhos base do proxy de API específicos do ambiente devem ser encaminhados, use a propriedade de configuração virtualhosts.routingRules[]. Para ver detalhes sobre as propriedades individuais, consulte virtualhosts na referência da propriedade de configuração. Por exemplo:

...

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

Quando chega uma chamada de API, como: https://api.example.com/orders, o pedido é enviado para o processador de mensagens do ambiente test1. Da mesma forma, se receber um pedido para https://api.example.com/customers, este é encaminhado para o ambiente test2.

Adicionar um novo ambiente

Para adicionar um novo ambiente, adicione a respetiva configuração à propriedade envs[] e adicione uma nova entrada virtualhosts.routingRules.path que especifique os caminhos base que quer mapear para o novo ambiente. No exemplo seguinte, é adicionado um novo ambiente com o nome test3 e os routingRules foram atualizados para encaminhar dois caminhos para o novo ambiente:

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

Para aplicar a atualização, só tem de aplicar o componente runtime, da seguinte forma:

apigeectl apply -f overrides-file.yaml -c runtime

Adicionar vários anfitriões virtuais

A propriedade virtualhosts[] é uma matriz e, por isso, pode criar mais do que uma. Cada anfitrião virtual tem de conter um conjunto único de aliases de anfitriões: não podem existir dois anfitriões virtuais com o mesmo alias de anfitrião. Por exemplo, o novo anfitrião virtual dev processa o tráfego enviado para o domínio 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

Para aplicar a atualização, só tem de aplicar o componente runtime, da seguinte forma:

apigeectl apply -f overrides-file.yaml -c runtime

Chaves e certificados TLS

Quando cria um novo anfitrião virtual, tem de fornecer uma chave e um certificado TLS. A chave/certificado é usado para fornecer uma comunicação segura com o gateway de entrada.

A forma como gera os pares de chaves/certificados TLS adequados para a sua configuração híbrida é da sua responsabilidade. Os seguintes tópicos são fornecidos apenas como exemplos, destinados principalmente a experimentar ou testar uma nova instalação híbrida se não for possível obter credenciais TLS de outra forma: