Configuration d'un VPC pour se connecter à PyPI pour AWS Glue - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration d'un VPC pour se connecter à PyPI pour AWS Glue

Le Python Package Index (PyPI) est un référentiel de logiciels pour le langage de programmation Python. Cette rubrique aborde les détails nécessaires pour prendre en charge l'utilisation des packages installés par pip (comme spécifié par le créateur de la session à l'aide de l'indicateur --additional-python-modules).

L'utilisation de sessions interactives AWS Glue avec un connecteur entraîne l'utilisation du réseau VPC via le sous-réseau spécifié pour le connecteur. Par conséquent, les services AWS et autres destinations réseau ne sont pas disponibles, à moins que vous n'établissiez une configuration spéciale.

Les solutions à ce problème incluent :

  • L'utilisation d'une passerelle Internet accessible par votre session.

  • La configuration et l'utilisation d'un compartiment S3 avec un référentiel PyPI/simple contenant la fermeture transitive des dépendances d'un ensemble de packages.

  • L'utilisation d'un référentiel CodeArtifact qui reflète PyPI et qui est attaché à votre VPC.

Configuration d'une passerelle Internet

Les aspects techniques sont détaillés dans Cas d'utilisation de la passerelle NAT, mais notez ces exigences pour l'utilisation de --additional-python-modules. Plus précisément, --additional-python-modules nécessite l'accès à pypi.org, qui est déterminé par la configuration de votre VPC. Notez les critères suivants :

  1. L'obligation d'installer des modules Python supplémentaires via l'installation pip pour la session d'un utilisateur. Si la session utilise un connecteur, votre configuration peut être affectée.

  2. Lorsqu'un connecteur est utilisé avec --additional-python-modules, lors du démarrage de la session, le sous-réseau associé aux PhysicalConnectionRequirements du connecteur doit fournir un chemin réseau pour atteindre pypi.org.

  3. Vous devez déterminer si votre configuration est correcte ou non.

Configuration d'un compartiment Amazon S3 pour héberger un référentiel PyPI/simple ciblé

Cet exemple configure un miroir PyPI dans Amazon S3 pour un ensemble de packages et leurs dépendances.

Pour configurer le miroir PyPI pour un ensemble de packages :

# 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 vous possédez déjà un référentiel d'artefacts, il contiendra une URL d'index pour l'utilisation de pip que vous pourrez fournir à la place de l'exemple d'URL pour le compartiment Amazon S3 comme indiqué ci-dessus.

Pour utiliser l'URL d'index personnalisée, avec quelques exemples de packages :

%%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" }

Configuration d'un miroir CodeArtifact ou PyPI attaché à votre VPC

Pour configurer un miroir :

  1. Créez un référentiel dans la même région que le sous-réseau utilisé par le connecteur.

    Sélectionnez Public upstream repositories et choisissez pypi-store.

  2. Fournissez un accès au référentiel depuis le VPC pour le sous-réseau.

  3. Spécifiez l'--index-url correcte en utilisant le 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" }

Pour plus d'informations, consultez Use CodeArtifact from a VPC.