Antipatrones de migración de Apigee Edge a Apigee X

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Como cliente actual de Apigee Edge, puedes migrar tu instalación a Apigee X para aprovechar las capacidades nuevas o la disponibilidad regional diferente.

En esta página, se describen los antipatrones de la configuración que deberás abordar antes de migrar a Apigee X, así como otros cambios de comportamiento que debes tener en cuenta antes de la migración.

En la lista más amplia de Antipatrones de Apigee Edge se describen las prácticas de uso que se deben evitar en todos los casos. En esta página, se describen las prácticas de uso no recomendadas específicas que bloquearán una migración. Resuélvelos ahora para evitar problemas durante la migración a Apigee X.

Apps sin productos de API

Resumen ¿Requiere cambios del cliente? Solución

Hay apps sin productos de API.

Diferencia entre Apigee Edge y Apigee X:

Apigee Edge Apigee X
Es posible configurar una app y una credencial que no estén asociadas con ningún producto de API. Esta app tiene acceso de manera efectiva a todos los productos de API. Cada app se debe configurar para acceder al menos a un producto de API. No hay forma de proporcionar acceso a todos los productos de API de forma implícita. Puedes configurar una app para que tenga acceso a todos los productos de API, pero debes hacerlo de forma explícita.
No.

Resolución: Apps sin productos de API

Asocia cada credencial de app con al menos un producto de API. Si deseas obtener más información para hacerlo, consulta Registra apps y administra claves de API.

Una ruta fácil es asignar a cada app acceso a todos los productos de API. Esto será equivalente a lo que se puede lograr en Apigee Edge. El desafío será que si deseas aplicar un enfoque de “privilegio mínimo”, deberás determinar la lista mínima de productos de API a los que debe tener acceso cada credencial de app. Puedes analizar esto con los informes de Analytics de Apigee Edge, basados en el ID de cliente.

Caché sin hora de vencimiento

Resumen ¿Requiere cambios del cliente? Solución

Las memorias caché no tienen fecha de vencimiento.

Diferencia entre Apigee Edge y Apigee X:

Apigee Edge Apigee X
Admite la creación, actualización y eliminación de descriptores de recursos de caché. No admite la creación, actualización ni eliminación de descriptores de recursos de caché.
No

Resolución: Caché sin hora de vencimiento

Establece una hora de vencimiento para todas las memorias caché.

Expresiones de filtro JSONPath en rutas no definidas

Resumen ¿Requiere cambios del cliente? Solución

En el caso de las rutas de acceso no definitivas, la consulta del resultado de una expresión de filtro no forma parte de la especificación de JSONPath. Consulta https://goessner.net/articles/JsonPath/.

Diferencia entre Apigee Edge y Apigee X:

Cuando navegues por esta estructura de ejemplo,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

Con la expresión $..books[?(@.name == 'A')][0],

Apigee Edge Apigee X
Resultados: ‘{"name": "A"}’ Resultados: []

Con la expresión $..books[?(@.name == 'A')][0].name,

Apigee Edge Apigee X
Resultados: "A" Resultados: []

Resolución: expresiones de filtro JSONPath en rutas no definidas

Buscar y reemplazar las búsquedas afectadas

Expresiones JSONPath para índices que no están presentes

Resumen ¿Requiere cambios del cliente? Solución

Las expresiones de JSONPath con un índice que no está presente tienen comportamientos diferentes en Apigee X y en Apigee Edge. Apigee X muestra un error PathNotFoundException cuando no se encuentra la ruta de acceso.

Diferencia entre Apigee Edge y Apigee X:

Cuando navegues por esta estructura de ejemplo,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

Con la expresión $.books[3],

Apigee Edge Apigee X
Resultados: null Genera PathNotFoundException error

Resolución: expresiones JSONPath para índices que no están presentes

Buscar y reemplazar las búsquedas afectadas

Expresiones JSONPath con un índice de array que no muestran un objeto de array

Resumen ¿Requiere cambios del cliente? Solución

Las expresiones de JSONPath con un índice o porciones de array muestran un objeto de array en Apigee X.

Diferencia entre Apigee Edge y Apigee X:

Cuando navegues por esta estructura de ejemplo,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

Con la expresión $.books,

Apigee Edge Apigee X
Resultados: {“name”:”A”, “name”: “B”} Resultados: [{“name”:”A”, “name”: “B”}]

Con la expresión $.books[-1],

Apigee Edge Apigee X
Resultados: {“name”: “B”} Resultados: [{“name”: “B”}]

Con la expresión $.books[-2:],

Apigee Edge Apigee X
Resultados: {“name”:”A”, “name”: “B”} Resultados: [{“name”:”A”, “name”: “B”}]

Resolución: expresiones JSONPath con un índice de array que no muestra un objeto de array

Busca y reemplaza expresiones que puedan mostrar resultados diferentes después de la actualización.

Restricciones de nombres de almacenes de claves

Resumen ¿Requiere cambios del cliente? Solución

Los nombres de los almacenes de claves de Apigee X solo pueden contener letras, números y guiones. Los nombres de los almacenes de claves perimetrales no imponen estas restricciones.

No

Resolución: restricciones de nombres de almacenes de claves

Verifica los nombres de los almacenes de claves y actualízalos para quitar los caracteres no compatibles si es necesario.

Varias rutas base implementadas para un proxy de API

Resumen ¿Requiere cambios del cliente? Solución

Se implementan varias revisiones de un proxy de API en un entorno y cada una tiene una ruta base diferente.

Diferencia entre Apigee Edge y Apigee X:

Apigee Edge Apigee X
Admite la implementación de varias revisiones de un proxy de API, en las que cada revisión puede tener una ruta base diferente. No admite la implementación de varias revisiones de un proxy de API, aunque el proxy tenga rutas base diferentes.
No

Resolución: Varias rutas base implementadas para un proxy de API

Actualiza todos los conjuntos para que solo se implemente una revisión de un paquete en un entorno, sin importar la ruta base.

Mensajes HTTP que no cumplen con las políticas

Resumen ¿Requiere cambios del cliente? Solución

Los clientes o el proxy de API envían mensajes (solicitudes o respuestas) que no cumplen con el estándar HTTP. Por ejemplo, nombres de encabezado no válidos, duplicaciones en algunos encabezados restringidos, etcétera.

No puedes migrar a Apigee X si la ejecución de tu API tiene uno o más de los siguientes errores:

  • INVALID_CHARACTERS_IN_HEADER
  • MISSING_COLON
  • MULTIPLE_CONTENT_LENGTH
  • CONTENT_LENGTH_NOT_INTEGER
  • INVALID_UPGRADE
  • URL_HEADER_SIZE_TOO_LONG
  • BODY_NOT_ALLOWED
  • UNSUPPORTED_HTTP_VERSION
  • ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT
  • UNSUPPORTED_RESPONSE_PREFIX
Sí, es posible.

Resolución: Mensajes HTTP que no cumplen con las políticas

Debes corregir cualquier error en los protocolos HTTP antes de migrar a Apigee X. Si se origina un error en una aplicación cliente, debes pedirle al desarrollador de la app cliente que corrija el problema.

La hora de vencimiento del token de OAuth 2.0 no es válida

Resumen ¿Requiere cambios del cliente? Solución

Los límites de vencimiento de los tokens de OAuth 2.0 están fuera del rango prescrito.

Diferencia entre Apigee Edge y Apigee X:

Apigee Edge Apigee X
Por el momento, no se aplica ninguna restricción sobre el tiempo de vencimiento del token de OAuth 2.0, pero se planea hacerlo. Consulta los lineamientos en la sección OAuth de la página Límites. Debes configurar un token de acceso y una hora de vencimiento para el token de actualización de OAuth 2.0. Los rangos admitidos son los siguientes:
  • 180 segundos <= tiempo de vencimiento del token de acceso de OAuth 2.0 <= 30 días
  • 1 día <= hora de vencimiento del token de actualización de OAuth 2.0 <= 2 años
No

Resolución: La hora de vencimiento del token de OAuth 2.0 no es válida

Usa la política OAuthV2 y especifica la hora de vencimiento en <ExpiresIn> y <RefreshTokenExpiresIn>.

Límites de productos excedidos

Resumen ¿Requiere cambios del cliente? Solución

La configuración de Apigee Edge no cumple con los límites del producto definidos. Algunos límites de productos documentados, pero que no se aplican en Apigee Edge, se aplican en Apigee X.

No

Resolución: Se excedieron los límites de productos

Corrige cualquier uso que exceda los límites del producto antes de migrar a Apigee X.

Políticas de ServiceFeatured con especificadores de conexión de extremo y de ruta de acceso

Resumen ¿Requiere cambios del cliente? Solución

En la política ServiceFeatured, el elemento <LocalTargetConnection> debe incluir los elementos <APIProxy> y <ProxyEndpoint>, o el elemento <Path>, pero no ambos. Para obtener más información, consulta el elemento <LocalTargetConnection>.

Apigee Edge documenta este requisito, pero no lo aplica. Apigee X detiene el procesamiento si encuentra un <LocalTargetConnection> con ambas configuraciones.

No

Resolución: Políticas de ServiceFeatured con especificadores de conexión de destino y extremo de ruta de acceso

Verifica la configuración de la política de ServiceReferencia y elimina los parámetros de configuración de <LocalTargetConnection> que no cumplan con los requisitos.

Restricciones de nombres de servidor de destino

Resumen ¿Requiere cambios del cliente? Solución

Los nombres de los servidores de destino de Apigee X solo pueden contener letras, números, guiones y puntos. Los nombres de los servidores de destino perimetral no imponen estas restricciones.

No

Resolución: restricciones de nombres de servidor de destino

Verifica los nombres de los servidores de destino y actualízalos para quitar los caracteres no compatibles si es necesario.

Certificado de prueba en un host virtual

Resumen ¿Requiere cambios del cliente? Solución

Uno o más hosts virtuales usan el certificado de “prueba gratuita” proporcionado por Apigee. Esto hace que el host virtual responda a las solicitudes en dominios como ORG-ENV.apigee.net.

Diferencia entre Apigee Edge y Apigee X:

Apigee Edge Apigee X
Configura automáticamente el vhost "predeterminado" para que admita un nombre de dominio con el formato ORG-ENV.apigee.net. Hay un certificado comodín, conocido como "certificado de prueba gratuita", que permite TLS en estos dominios. Los dominios heredados de Apigee con el formato ORG-ENV.apigee.net no están disponibles en Apigee X. Debes configurar tu propio nombre de dominio y aprovisionar los certificados de forma adecuada.

Resolución: Certificado de prueba en un host virtual

Debes configurar tu propio dominio y aprovisionar los certificados de forma adecuada.

Cualquier aplicación cliente que dependa del nombre de dominio heredado con el formato ORG-ENV.apigee.net se debe modificar para llamar al dominio nuevo.

DNS sin resolver

Resumen ¿Requiere cambios del cliente? Solución

Los extremos de destino tienen nombres de dominio sin resolver.

Diferencia entre Apigee Edge y Apigee X:

Apigee Edge Apigee X
Si la resolución de DNS falla, Apigee agrega .apigee.com al nombre de dominio y el DNS se resuelve de forma correcta con un código de respuesta 4xx. Si la resolución de DNS falla, Apigee no ejecutará la solicitud y mostrará un código de respuesta 5xx.
No

Resolución: DNS sin resolver

Actualiza el extremo de destino con un nombre de dominio válido.