¿Cómo puedo solucionar los errores 500 relacionados con la integración de enlaces de VPC en el caso de API Gateway?

7 minutos de lectura
0

He configurado Amazon API Gateway con integraciones de enlaces de nube virtual privada (VPC). Cuando llamo a mi API, se muestra un error interno o de configuración con el código de estado HTTP 500.

Breve descripción

La API Gateway de AWS con enlaces de VPC podría no enviar el tráfico a los recursos de backend y devolver un código de estado HTTP 500 por los siguientes motivos:

  • El enlace de VPC tiene el estado Error. También puede que el servicio del punto de conexión se haya eliminado o tenga el estado Rechazado.
  • El destino registrado para el grupo de destino no tiene un estado satisfactorio o no se utiliza.
    Nota: Si no se envía tráfico a través de un enlace de VPC durante 60 días, el enlace pasa a estar INACTIVO. Para obtener más información, consulte Uso de enlaces de la VPC para API HTTP.
  • Los grupos de seguridad no permiten el tráfico en puertos concretos.
  • La lista de control de acceso de la red (ACL de la red) bloquea el tráfico.
  • El destino no escucha en los puertos de destino.
  • El certificado del nombre de dominio no coincide con el equilibrador de carga de red o el equilibrador de carga de aplicación activado por TLS.

Si se ha activado Registros de Amazon CloudWatch para su API, en los registros de ejecución aparecerá un mensaje de error con la causa del error.

Ejemplo de mensajes de error HTTP 500 en los registros de CloudWatch

«Thu Aug 04 17:48:21 UTC 2022: Execution failed due to configuration error: There was an internal error while executing your request Thu Aug 04 17:48:21 UTC 2022: Method completed with status: 500»

o bien

«Thu Aug 04 19:50:21 UTC 2022: Execution failed due to configuration error: Host name 'domain.com.com' does not match the certificate subject provided by the peer (CN=myinstance.com)
Thu Aug 04 19:50:21 UTC 2022 : Method completed with status: 500»

Resolución

Confirmación de la causa del error

Active el registro de CloudWatch para la API. Asegúrese de configurar el registro de ejecución.

Nota: Al configurar los ajustes de registro, en Nivel de registro, elija INFORMACIÓN. A continuación, seleccione Registrar datos completos de solicitudes/respuestas.

Para averiguar la causa de los errores, revise los registros de ejecución de las API de REST en CloudWatch.

Comprobación del mensaje de error en los registros de ejecución

Error: Execution failed due to configuration error: There was an internal error while executing your request

Compruebe las siguientes configuraciones:

  • Compruebe si existe el equilibrador de carga de enlaces de VPC y no se ha eliminado.
  • Compruebe si el enlace de VPC tiene el estado DISPONIBLE. Si el enlace de VPC tiene el estado ERROR, deberá crear un nuevo enlace de VPC y asociarlo a su API.
    Nota: Implemente la API después de modificar la solicitud de integración.
  • Compruebe si la conexión del punto de conexión del enlace de VPC se encuentra en el estado DISPONIBLE.
  • Si se hace referencia al ID de VPC con una variable de etapa, compruebe si el ID del enlace de VPC es correcto.
  • Compruebe si el equilibrador de carga de enlace de VPC está escuchando en el puerto HTTP/HTTPS para el que se ha configurado la solicitud. Compruebe si los agentes de escucha están configurados para el puerto correcto. Asegúrese de que las ACL de la red no bloqueen la solicitud.
  • Compruebe si el grupo de destino acepta la solicitud. Las ACL de la red deben permitir el tráfico de entrada y salida, mientras que los grupos de seguridad deben permitir el tráfico de entrada en el caso de los puertos configurados.
  • Si la solicitud devuelve un error 500, la conexión podría recibir paquetes TCP RST. Compruebe si el servidor backend está en ejecución. Compruebe si hay un servicio en ejecución en el destino de backend del puerto de destino. Compruebe si el destino de backend está escuchando en el puerto de destino.
  • Compruebe si la opción Aplicar reglas entrantes en el tráfico PrivateLink está desactivada. La opción Aplicar reglas entrantes en el tráfico PrivateLink aplica todas las regias de seguridad de entrada y salida al tráfico procedente del enlace de VPC. Si no configura el grupo de seguridad de modo que permita el tráfico procedente del enlace de VPC, puede que el grupo de seguridad bloquee el tráfico de API Gateway. Para aplicar reglas de grupos de seguridad al tráfico que no procede del enlace de VPC, desactive Aplicar reglas entrantes en el tráfico PrivateLink.

Error: Execution failed due to configuration error: Host name 'domain.com.com' does not match the certificate subject provided by the peer (CN=myinstance.com)

Asegúrese de que el nombre de dominio del punto de conexión coincida con el certificado que devuelve el destino del equilibrador de carga activado por TLS.

Error: Execution failed due to configuration error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Este error se produce cuando API Gateway no puede encontrar la entidad raíz de certificación. API Gateway realizará una validación básica del certificado aunque se haya configurado insecureSkipVerification como true en la propiedad TlsConfig de las integraciones. La validación revisa la siguiente información:

  • La fecha de vencimiento del certificado
  • El nombre del host
  • La presencia de una entidad raíz de certificación

Los certificados que configure como instancia de destino deben ser de confianza según la lista de proveedores de entidades de certificación admitidas.

Error: Execution failed due to configuration error: Cannot verify ECDH ServerKeyExchange signature

Este error se produce cuando una clave y el certificado correspondiente no coinciden y se produce un error en el protocolo de enlace TLS. Para solucionar este problema, compruebe el contenido de los archivos que utilizó para las entidades de certificación, las claves y los certificados configurados.

Error: Execution failed due to an internal error

Este error se produce cuando Amazon API Gateway no se conecta al equilibrador de carga a través del enlace de VPC porque el destino se restablece en el equilibrador de carga. Para solucionar este problema, establezca en el destino un tiempo de espera superior al predeterminado en el equilibrador de carga (350 segundos).

Error: Execution failed due to configuration error: Not a valid protocol version: {Texto de la cadena}

Este error se produce si la integración respondió con una respuesta HTTP que no es válida e incumple la especificación HTTP. Esto podría significar que el backend integrado está devolviendo datos que no son válidos para Amazon API Gateway.

Para solucionar este error, tome estas medidas:

  • Reproduzca la solicitud que realizó desde Amazon API Gateway. Para probar el punto de conexión del servicio que utiliza Amazon API Gateway, cree un punto de conexión de VPC que esté vinculado al ID del punto de conexión del servicio. También puede ejecutar capturas de paquetes para revisar la respuesta devuelta por el backend integrado.
  • Para evitar el cifrado duplicado, cambie el protocolo del equilibrador de carga a TLS o TCP, según la respuesta del destino.
  • Asegúrese de que insecureSkipVerification se haya definido como true en la propiedad TlsConfig de las integraciones.

Información relacionada

Understanding VPC Links in Amazon API Gateway private Integrations

Monitoreo de la ejecución de la API de REST con métricas de Amazon CloudWatch

Configuración de un Network Load Balancer para integraciones privadas de API Gateway

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año