¿Cómo soluciono los errores de conexión de AWS Marketplace en mis trabajos de ETL de AWS Glue?

10 minutos de lectura
0

Cuando uso los conectores de AWS Marketplace en AWS Glue, recibo errores en los registros.

Solución

Los conectores no se muestran

Se suscribe a un conector de AWS Marketplace, pero no puede encontrar el conector en la página de conectores de AWS Glue Studio.

Para resolver este problema, siga estos pasos:

  1. Abra AWS Marketplace.
  2. Seleccione Descubrir productos y, a continuación, busque el conector que quiere usar.
  3. Elija Continuar para suscribirse y, a continuación, inicie sesión en su cuenta de AWS si se le solicita.
  4. Elija Continuar con la configuración. Si esta opción está atenuada y no puede elegirla, asegúrese de leer los Términos y condiciones. Seleccione Aceptar condiciones y espere hasta que el botón Continuar con la configuración esté disponible.
  5. En la lista desplegable, seleccione Método de entrega y Versión de software. Si no sabe con seguridad qué versión elegir, elija la versión más reciente.
  6. Seleccione Continuar para iniciar y, a continuación, seleccione Instrucción de uso.
  7. En la ventana emergente, elija Activar el conector Glue de AWS Glue Studio.
  8. (Opcional) Para instalar solo el conector, seleccione Activar solo el conector. Para obtener más información, consulte Using connectors and connections with AWS Glue Studio. Si en su lugar usa conectores personalizados, consulte Developing custom connectors.

Nota: Puede repetir estos pasos incluso si ya se ha suscrito al conector.

Problemas con su rol de IAM

Cuando intenta suscribirse a un conector en AWS Marketplace, aparece un mensaje de error de permisos de AWS Identity and Access Management (IAM) similar al siguiente:

«You do not have the right permissions to make this request. Some controls have been disabled because you are missing the correct permission(s). The missing permission(s) are: aws-marketplace:Subscribe».

Para resolver este problema, añada una política de IAM al usuario de IAM que recibió el error. Para AWS Marketplace, añada las siguientes políticas de IAM a su usuario de IAM:

  • Para conceder permisos para ver las suscripciones pero no cambiarlas, elija AWSMarketplaceRead-only.
  • Para conceder permisos para suscribirse y cancelar la suscripción, elija AWSMarketplaceManageSubscriptions.
  • Para garantizar el control total de sus suscripciones, elija AWSMarketplaceFullAccess.

Para obtener más información, consulte Controlling access to AWS Marketplace subscriptions.

Errores AccessDeniedException

En los registros del trabajo de AWS Glue, recibirá un mensaje de error AccessDeniedException similar al siguiente:

«An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:sts::xxxxxxxxxxxx:assumed-role/<IamRole>/GlueJobRunnerSession is not authorized to perform: ecr:GetAuthorizationToken on resource: * because no identity-based policy allows the ecr:GetAuthorizationToken action
Glue ETL Marketplace - failed to download connector, activation script exited with code 1
LAUNCH ERROR | Glue ETL Marketplace - failed to download connector. Please refer logs for details».

Este error se produce cuando el rol de IAM asociado a su trabajo de AWS Glue no tiene permisos suficientes para realizar la operación GetAuthorizationToken.

Para resolver este problema, asigne el permiso ecr:GetAuthorizationToken a su trabajo de AWS Glue:

  1. Abra la consola de IAM.
  2. Elija el rol de IAM que utiliza en el trabajo de AWS Glue.
  3. Elija Asociar políticas.
  4. En Filtrar políticas, introduzca AmazonEC2ContainerRegistryReadOnly y, a continuación, seleccione esta política.
  5. Elija Adjuntar política.

Después de adjuntar la política requerida al rol de IAM, vuelva a ejecutar el trabajo de AWS Glue.

Para obtener más información, consulte AmazonEC2ContainerRegistryReadOnly, Adición de permisos de identidad de IAM (consola) y Setting up IAM permissions for AWS Glue.

Problemas de red: no hay una ruta de red desde la VPC

Es posible que la configuración de red no sea adecuada para que los conectores de AWS Glue funcionen correctamente cuando se utilizan en un trabajo de AWS Glue. Es posible que se muestre un mensaje de error parecido al siguiente:

«botocore.exceptions.ConnectTimeoutError: Connect timeout on endpoint URL: "https://api.ecr.us-east-1.amazonaws.com/"Glue ETL Marketplace - failed to download connector, activation script exited with code 1
LAUNCH ERROR | Glue ETL Marketplace - failed to download connector. Please refer logs for details.
Exception in thread "main"
java.lang.Exception: Glue ETL Marketplace - failed to download connector».

El mensaje de error del ejemplo anterior indica que ninguna ruta de red desde la nube virtual privada (VPC) contiene los componentes del trabajo al repositorio de Amazon Elastic Container Registry (Amazon ECR). El repositorio de Amazon ECR contiene las imágenes de los conectores. AWS Glue almacena todos los conectores en un repositorio de Amazon ECR en la región de AWS us-east-1. Si el trabajo de AWS Glue quiere usar un conector, debe descargarlo de esta región.

Cuando se agrega una conexión a un trabajo de AWS Glue, debe establecer una ruta de red que permita que el tráfico fluya hacia o desde el servicio. AWS Glue usa direcciones IP privadas para comunicarse con los componentes del trabajo y los servicios, como Amazon ECR. Este error puede producirse si la conexión usa una subred pública con una puerta de enlace de Internet en su tabla de enrutamiento. Para obtener más información, consulte Configuration for internet access.

Al crear la conexión, la información de red, como la VPC, la subred y el grupo de seguridad, es opcional. Si crea la conexión solo con el conector y una clave de AWS Secrets Manager, el trabajo de AWS Glue utiliza una puerta de enlace de NAT interna. El trabajo no depende de una puerta de enlace de NAT en su cuenta.

Para resolver este problema, elija una de las siguientes soluciones e incorpórela al diseño de su red.

Cómo crear y conectar una puerta de enlace de NAT a la subred de conexión

No utilice una puerta de enlace de Internet. En su lugar, cree y conecte una puerta de enlace de NAT a la subred de conexión:

  1. Asigne una dirección IP elástica no asociada a su cuenta. Asegúrese de asociar la dirección IP con la puerta de enlace de NAT.
  2. Cree una puerta de enlace de NAT y, a continuación, elija una subred pública y la dirección IP elástica para crear la puerta de enlace de NAT en una subred pública.
  3. Cree una subred privada sin una ruta de puerta de enlace de Internet ni una tabla de enrutamiento relacionada. En la tabla de enrutamiento, agregue una regla con 0.0.0.0/0 que apunte a la puerta de enlace de NAT. O bien, edite una de las subredes existentes para usar la tabla de enrutamiento con la ruta de la puerta de enlace de NAT. Asegúrese de que no haya ninguna ruta de puerta de enlace de Internet que se utilice con la ruta de puerta de enlace de NAT.
  4. Revise la subred de la conexión de AWS Glue para usar la subred privada.
  5. Vuelva a ejecutar el trabajo de AWS Glue para confirmar que el error no se repite.

No utilice la información de la VPC en la conexión

No incluya información de la VPC en la conexión. En su lugar, utilice una puerta de enlace de NAT de Internet:

  1. Cree una nueva conexión para su conector en AWS Glue Studio.
  2. Especifique únicamente la clave de Secrets Manager. No añada ninguna opción de VPC para que AWS Glue utilice la NAT interna en lugar de la subred.
  3. Edite el trabajo de AWS Glue para usar la nueva conexión y, a continuación, vuelva a ejecutar el trabajo.

Para configuraciones de red privada, cree un punto de enlace de VPC

Utilice un punto de enlace de VPC con la configuración de su red privada en lugar de una puerta de enlace de NAT. Para usar un punto de enlace de VPC, complete los pasos siguientes.

Cómo crear punto de enlace de VPC

En primer lugar, cree un punto de enlace de la API de Amazon ECR. A continuación, cree un punto de enlace de VPC para com.amazonaws.<region>.ecr.dkr y, a continuación, un punto de enlace de Amazon Simple Storage Service (Amazon S3).

Cree el punto de enlace de la API de Amazon ECR:

  1. Abra la consola de Amazon VPC.
  2. En el panel de navegación, seleccione Puntos de enlace.
  3. Elija Crear punto de enlace y, a continuación, añada un nombre de punto de enlace para su punto de enlace de la API de Amazon ECR.
  4. En Categoría de servicio, elija Servicios de AWS.
  5. En Servicios, añada el filtro ECR y, a continuación, elija com.amazonaws.<region>ecr.api.
  6. En VPC, seleccione la VPC en la que quiere crear el punto de enlace. En Configuraciones adicionales, elija Habilitar nombre de DNS.
  7. Para Subredes, elija la zona de disponibilidad en la que creó la nueva subred.
  8. En ID de subred, elija el nombre de la subred.
  9. En Grupos de seguridad, elija su grupo de seguridad.
  10. En Política, elija Acceso completo para permitir todas las operaciones según todos los principios en todos los recursos a través del punto de enlace de VPC.
  11. (Opcional) Añada una etiqueta.
  12. Elija Crear punto de enlace.

Siga los mismos pasos para crear otro punto de enlace de VPC para el nombre de servicio com.amazonaws.<region>.ecr.dkr.

Complete los siguientes pasos para crear el punto de enlace de Amazon S3:

  1. Abra la consola de Amazon VPC.
  2. En el panel de navegación, seleccione Puntos de enlace.
  3. Seleccione Crear punto de enlace y, a continuación, añada un nombre de punto de enlace.
  4. En Categoría de servicio, elija Servicios de AWS.
  5. En Servicios, añada el filtro Type:Gateway y, a continuación, elija com.amazonaws.<region>.s3.
  6. En VPC, elija la VPC en la que quiere crear el punto de enlace.
  7. En Tablas de enrutamiento, elija sus tablas de enrutamiento.
  8. En Política, elija Acceso completo para permitir todas las operaciones según todos los principios en todos los recursos a través del punto de enlace de VPC.
  9. (Opcional) Añada una etiqueta.
  10. Elija Crear punto de enlace.

Cómo suscribirse a los conectores y configurarlos

Si ya se suscribió y configuró su conector en AWS Glue, vaya a la sección Cómo crear una conexión a AWS Glue.

Si no se suscribió ni configuró su conector en AWS Glue, siga los pasos que se indican en Subscribing to AWS Marketplace connectors. En la ventana emergente Instrucciones de uso, seleccione Activar el conector Glue desde AWS Glue Studio para acceder a la página Crear conexión Glue.

Cómo crear una conexión a AWS Glue

Si ya ha agregado el conector en la consola de AWS Glue, vaya a Conexiones y elija su conector. Luego elija Crear conexión.

Si ha seguido los pasos anteriores para suscribirse a los conectores y configurarlos, complete los pasos siguientes para crear la conexión:

  1. Abra la consola de AWS Glue.
  2. En la página Crear conexión a Glue, añada un Nombre de conexión.
  3. En Opciones de red, elija su VPC y los grupos de subred y seguridad.
  4. Seleccione Crear conexión y activar el conector.

Problemas de red: demasiadas conexiones en el trabajo de AWS Glue

Si tiene problemas de red porque su trabajo de AWS Glue tiene demasiadas conexiones, recibirá el siguiente mensaje de error en los registros del trabajo:

«INFO - Glue ETL Marketplace - Start downloading connector jars for connection: <connection name>test connection feature: "Caused by: com.amazonaws.services.glue.exceptions.InvalidInputException: Connection: does not exist"
LAUNCH ERROR | Glue ETL Marketplace - failed to download connector. Please refer logs for details».

AWS Glue admite una conexión por cada trabajo o punto de enlace de desarrollo. Si especifica más de una conexión en un trabajo, AWS Glue utilizará la primera conexión. Si debe acceder a más de una VPC, consulte Connect to and run ETL jobs across multiple VPCs using a dedicated AWS Glue VPC.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 meses