Cet article traite de la configuration d'hôtes virtuels. Les hôtes virtuels permettent à Apigee hybrid de gérer les requêtes API adressées à plusieurs noms de domaine et d'acheminer les chemins de base du proxy vers des environnements spécifiques.
Pour spécifier vers quel environnement les chemins de base du proxy d'API doivent être acheminés, utilisez la propriété de configuration virtualhosts.routingRules[]. Pour en savoir plus sur les propriétés individuelles, consultez la section virtualhosts dans la documentation de référence sur les propriétés de configuration. Exemple :
...
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
Lorsqu'un appel d'API tel que https://api.example.com/orders arrive, la requête est envoyée au processeur de messages de l'environnement test1. De même, si une requête adressée à https://api.example.com/customers arrive, elle est acheminée vers l'environnement test2.
Ajouter un nouvel environnement
Pour ajouter un nouvel environnement, ajoutez sa configuration à la propriété envs[] et ajoutez une nouvelle entrée virtualhosts.routingRules.path, qui spécifie les chemins de base que vous souhaitez mapper au nouvel environnement. Dans l'exemple suivant, un nouvel environnement nommé test3 est ajouté, et les règles de routage (routingRules) ont été mises à jour pour acheminer deux chemins d'accès vers le nouvel environnement :
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.jsonPour appliquer la mise à jour, il vous suffit d'appliquer le composant runtime, comme suit :
apigeectl apply -f overrides-file.yaml -c runtime
Ajouter plusieurs hôtes virtuels
La propriété virtualhosts[] est un tableau. Vous pouvez donc créer plusieurs hôtes virtuels. Chaque hôte virtuel doit contenir un ensemble unique d'alias d'hôte : deux hôtes virtuels ne peuvent pas partager le même alias d'hôte. Par exemple, le nouvel hôte virtuel dev gère le trafic envoyé au domaine 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.jsonPour appliquer la mise à jour, il vous suffit d'appliquer le composant runtime, comme suit :
apigeectl apply -f overrides-file.yaml -c runtime
Clés et certificats TLS
Lorsque vous créez un hôte virtuel, vous devez fournir une clé et un certificat TLS. La clé/le certificat permettent de communiquer de manière sécurisée avec la passerelle d'entrée.
Il vous revient de générer les paires certificat/clé TLS appropriées pour votre configuration hybride. Les articles suivants ne sont fournis qu'à titre d'exemple. Ils sont destinés principalement à l'essai ou au test d'une nouvelle installation hybride s'il est impossible d'obtenir des identifiants TLS d'une autre manière :
- Consultez la page Récupérer des identifiants TLS pour obtenir un exemple d'étapes permettant de créer une paire clé/certificat TLS autorisée.
- Vous pouvez utiliser une ou plusieurs paires certificat/clé autosignées à des fins de test uniquement. Consultez la page Générer des identifiants TLS autosignés.