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:
- 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.