Configuración de una VPC para conectarse a PyPI para AWS Glue - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de una VPC para conectarse a PyPI para AWS Glue

El Python Package Index (PyPI) es un repositorio de software para el lenguaje de programación Python. En este tema se abordan los detalles necesarios para admitir el uso de paquetes instalados por pip (según lo especificado por el creador de la sesión mediante la marca --additional-python-modules).

El uso de sesiones AWS Glue interactivas con un conector implica el uso de la red de VPC a través de la subred especificada para el conector. Por lo tanto, los servicios de AWS y otros destinos de red no están disponibles a menos que se establezca una configuración especial.

Las soluciones a este problema incluyen:

  • Uso de una puerta de enlace de Internet a la que pueda acceder su sesión.

  • Configuración y uso de un bucket de S3 con un repositorio PyPI/Simple que contiene el cierre transitivo de las dependencias de un conjunto de paquetes.

  • Uso de un repositorio CodeArtifact que refleje PyPI y esté conectado a su VPC.

Configuración de una puerta de enlace de Internet

Los aspectos técnicos se detallan en los Casos de uso de la puerta de enlace NAT, pero tenga en cuenta estos requisitos al utilizar --additional-python-modules. En concreto, --additional-python-modules requiere acceso a pypi.org, que viene determinado por la configuración de su VPC. Tenga en cuenta los siguientes requisitos:

  1. El requisito de instalar módulos de Python adicionales mediante pip install para la sesión de un usuario. Si la sesión usa un conector, su configuración puede verse afectada.

  2. Cuando se utiliza un conector con --additional-python-modules, al iniciar la sesión, la subred asociada al PhysicalConnectionRequirements del conector debe proporcionar una ruta de red para llegar a pypi.org.

  3. Debe determinar si su configuración es correcta o no.

Configuración de un bucket de Amazon S3 para alojar un repositorio de PyPI/Simple de destino

En este ejemplo, se configura una réplica de PyPI en Amazon S3 para un conjunto de paquetes y sus dependencias.

Para configurar la réplica PyPI para un conjunto de paquetes:

# pip download all the dependencies pip download -d s3pypi --only-binary :all: plotly gglplot pip download -d s3pypi --platform manylinux_2_17_x86_64 --only-binary :all: psycopg2-binary # create and upload the pypi/simple index and wheel files to the s3 bucket s3pypi -b test-domain-name --put-root-index -v s3pypi/*

Si ya tienes un repositorio de artefactos existente, tendrá una URL de índice para que pip la use y que podrás proporcionar en lugar de la URL de ejemplo para el bucket de Amazon S3, como se indica anteriormente.

Para usar la URL de índice personalizada, con algunos paquetes de ejemplo:

%%configure { "--additional-python-modules": "psycopg2_binary==2.9.5", "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com" }

Configuración de una réplica CodeArtifact de pypi conectada a su VPC

Para configurar un espejo:

  1. Cree un repositorio en la misma región que la subred utilizada por el conector.

    Seleccione Public upstream repositories y elija pypi-store.

  2. Proporcione acceso al repositorio desde la VPC de la subred.

  3. Especifique la correcta --index-url mediante python-modules-installer-option.

    %%configure { "--additional-python-modules": "psycopg2_binary==2.9.5", "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com" }

Para obtener más información, consulte Usar CodeArtifact desde una VPC.