- v1.15 (última)
- v1.14
- v1.13
- Lista de versiones admitidas
- v1.12
- v1.11
- v1.10
- v1.9
- v1.8
- v1.7
- Versión 1.6
- v1.5
- Versión 1.4
- Versión 1.3
- v1.2
- v1.1
Versiones compatibles:
Versiones no compatibles:
En este tema se explica el enrutamiento de la ruta base. El enrutamiento de la ruta base te permite configurar y gestionar cómo Apigee Hybrid enruta las llamadas de proxy de API al entorno correcto.
Usar el enrutamiento de la ruta base para gestionar las implementaciones de proxy
Como puedes asignar un solo host virtual a varios entornos en un entorno híbrido, necesitas una forma de especificar qué ruta base de proxy se asigna a qué entorno.
Por ejemplo, supongamos que quieres asignar dos entornos al mismo alias de host:
apitest.mydomain.net
. En el archivo de anulaciones, puedes crear la siguiente configuración, donde los entornos dev1 y dev2 se asignan a este host. Por ejemplo:
envs: - name: dev1 hostAlias: "apitest.mydomain.net" ... - name: dev2 hostAlias: "apitest.mydomain.net" ...
Supongamos que despliega proxies en estos entornos. Implementas:
- Proxy foo1 con ruta base /foo1 a dev1
- Proxy foo2 con ruta base /foo2 a dev2
Supongamos que un cliente llama a esta API: https://apitest.mydomain.net/foo1
. Ten en cuenta que no hay nada en esta ruta (ni en el encabezado de host que se genera para la solicitud) que indique a la aplicación híbrida a qué entorno debe dirigir la llamada. ¿El proxy foo1 se ha implementado
en dev1 o dev2?
No se puede saber solo con la URL de la solicitud. Debes asignar explícitamente cada una de estas rutas base a uno o varios entornos.
Para especificar a qué entorno se debe enrutar una llamada de proxy, añade la propiedad paths.uri.prefixes
a la propiedad envs
en tu archivo de anulaciones, como se muestra en el siguiente ejemplo:
gcpProjectID: example k8sClusterName: apigee-hybrid # Apigee org name. org: my-org envs: # Apigee environment name. - name: dev1 hostAlias: "apitest.mydomain.net" sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key serviceAccountPaths: synchronizer: ./service-accounts/example-apigee-synchronizer.json udca: ./service-accounts/example-apigee-udca.json paths: uri: prefixes: - /foo1 - name: dev2 hostAlias: "apitest.mydomain.net" sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key serviceAccountPaths: synchronizer: ./service-accounts/example-apigee-synchronizer.json udca: ./service-accounts/example-apigee-udca.json paths: uri: prefixes: - /foo2 ...
Ahora, cuando se recibe una llamada a la API, como https://apitest.mydomain.net/foo1
, el enrutador de entrada sabe a dónde enviarla. Sabe que el proxy /foo1
se ha desplegado en el entorno dev1
y la llamada se dirige al procesador de mensajes de dev1.
Si envías esta llamada, https://apitest.mydomain.net/foo2
, se dirigirá al MP del entorno dev2
, y así sucesivamente.
En resumen, la configuración paths.uri.prefixes
te permite gestionar las implementaciones de proxy en varios entornos que comparten el mismo alias de host.
Práctica recomendada: Usa el enrutamiento de ruta base cuando quieras que varios entornos compartan el mismo alias de host. El enrutamiento de ruta base te permite limitar el número de proxies desplegados en un solo entorno. Para obtener más información, consulta Limitar el número de implementaciones de proxy.
Añadir un nuevo entorno al mismo dominio
En esta sección se explica cómo añadir un nuevo entorno a un dominio.
En este caso, supongamos que ya has desplegado un entorno dev1
en el clúster. En esta configuración de ejemplo, solo se permiten los proxies con el prefijo de ruta base /foo1
:
gcpProjectID: example k8sClusterName: apigee-hybrid # Apigee org name. org: my-org envs: # Apigee environment name. - name: dev1 hostAlias: "apitest.mydomain.net" sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key serviceAccountPaths: synchronizer: ./service-accounts/example-apigee-synchronizer.json udca: ./service-accounts/example-apigee-udca.json paths: uri: prefixes: - /foo1 mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key metrics: serviceAccountPath: ./service-accounts/willwitman-istio-25240157d44a.json
Para añadir otro entorno que comparta el mismo dominio, sigue estos pasos:
- Crea un archivo de anulaciones con la nueva configuración del entorno. Por ejemplo, esta configuración crea un entorno llamado
dev2
. En este entorno, solo se permiten proxies con el sufijo de ruta/foo2
:gcpProjectID: example k8sClusterName: apigee-hybrid # Apigee org name. org: my-org envs: # Apigee environment name. - name: dev2 hostAlias: "apitest.mydomain.net" sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key serviceAccountPaths: synchronizer: ./service-accounts/example-apigee-synchronizer.json udca: ./service-accounts/example-apigee-udca.json paths: uri: prefixes: - /foo2 mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key metrics: serviceAccountPath: ./service-accounts/willwitman-istio-25240157d44a.json
- Ejecuta los siguientes comandos en cualquier orden:
apigeectl apply -f overrides/overrides-dev2.yaml -c udca
apigeectl apply -f overrides/overrides-dev2.yaml -c synchronizer
apigeectl apply -f overrides/overrides-dev2.yaml -c runtime
- Despliega el proxy foo2 en el entorno dev2.
- Llama al proxy para probar la configuración.
curl https://apitest.mydomain.net/foo2
Añadir una nueva ruta base de proxy a un entorno
Para añadir una nueva ruta base a un entorno, solo tienes que añadir una entrada prefixes
por cada ruta base. Por ejemplo, si creas un proxy con la ruta base /foo4 y quieres desplegarlo en el entorno llamado dev2, sigue estos pasos:
- Abre el archivo de anulaciones que tiene la definición del entorno dev2.
- Añada la ruta base
/foo4
al elementopaths.uri.prefixes
:gcpProjectID: example k8sClusterName: apigee-hybrid # Apigee org name. org: my-org envs: # Apigee environment name. - name: dev2 hostAlias: "apitest.mydomain.net" sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key serviceAccountPaths: synchronizer: ./service-accounts/example-apigee-synchronizer.json udca: ./service-accounts/example-apigee-udca.json paths: uri: prefixes: - /foo2 - /foo4 mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key metrics: serviceAccountPath: ./service-accounts/willwitman-istio-25240157d44a.json
- Aplica el componente
runtime
al clúster:apigeectl apply -f overrides/overrides-dev2.yaml -c runtime
- Llama al proxy para probar la configuración.
curl https://apitest.mydomain.net/foo4
Si se recibe una llamada a la API para
https://apitest.mydomain.net/foo4
, la solución híbrida sabe que debe enrutarla al entornodev2
.