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. 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 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.jsonPara 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.jsonPara 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:
- Consulte Receber credenciais TLS para um conjunto de etapas de exemplo para criar um par de certificado/chave TLS autorizado.
- É possível usar pares de certificado/chave autoassinados apenas para fins de teste. Consulte Gerar credenciais TLS autoassinadas.