Configurar hosts virtuais

Neste tópico, discutimos a configuração de host virtual. Hosts virtuais permitem que a Apigee híbrida processe solicitações de API para vários nomes de domínio e roteie caminhos de base de proxy para ambientes específicos.

Para determinar a qual ambiente específico os caminhos de base de proxy de API precisam ser roteados, use a propriedade de configuração virtualhosts.routingRules[]. Para detalhes sobre as propriedades individuais, consulte virtualhosts na referência da propriedade de configuração. 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 uma chamada de API é recebida, como https://api.example.com/orders, a solicitação é enviada ao processador de mensagens do ambiente test1. Da mesma forma, se uma solicitação para https://api.example.com/customers é recebida, ela é roteada para o ambiente test2.

Como adicionar um novo ambiente

Para adicionar um novo ambiente, adicione a configuração à propriedade envs[] e adicione uma nova entrada virtualhosts.routingRules.path que especifique quais caminhos de base você quer mapear para o novo ambiente. No exemplo a seguir, um novo ambiente chamado test3 foi adicionado e routingRules foi atualizado para rotear dois caminhos ao 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, você só precisa aplicar o componente runtime da seguinte maneira:

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

Como adicionar vários hosts virtuais

A propriedade virtualhosts[] é uma matriz e, portanto, você pode criar mais de uma. Cada host virtual precisa conter um conjunto exclusivo de aliases de host: dois hosts virtuais não podem compartilhar o mesmo alias de host. Por exemplo, o novo host 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, você só precisa aplicar o componente runtime da seguinte maneira:

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

Certificados e chaves TLS

Ao criar um novo host virtual, você precisa fornecer uma chave e um certificado TLS. A chave/certificado é usada para fornecer comunicação segura com o gateway de entrada.

Você decide como gerar pares de certificado/chave TLS adequados para sua configuração híbrida. Os tópicos a seguir são fornecidos apenas como exemplos, destinados principalmente a avaliar ou testar uma nova instalação híbrida, se não for possível obter credenciais TLS de outra maneira: