Einrichten einer VPC zum Herstellen einer Verbindung mit PyPI für AWS Glue - AWS Glue

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einrichten einer VPC zum Herstellen einer Verbindung mit PyPI für AWS Glue

Der Python Package Index (PyPI) ist ein Repository mit Software für die Programmiersprache Python. Dieses Thema befasst sich mit den Details, die zur Unterstützung der Verwendung von pip-installierten Paketen erforderlich sind (wie vom Sitzungsersteller mithilfe des --additional-python-modules-Flags angegeben).

Durch die Verwendung von interaktiven AWS Glue-Sitzungen mit einem Konnektor wird das VPC-Netzwerk über das für den Konnektor angegebene Subnetz verwendet. Daher sind AWS-Services und andere Netzwerkziele nur verfügbar, wenn Sie eine spezielle Konfiguration einrichten.

Zu den Lösungen für dieses Problem gehören:

  • Nutzung eines Internet-Gateways, das für Ihre Sitzung erreichbar ist.

  • Einrichten und Verwenden eines S3-Buckets mit einem PyPI/einfachen Repository, das den transitiven Abschluss der Abhängigkeiten eines Paketsatzes enthält.

  • Verwendung eines CodeArtifact-Repositorys, das PyPI spiegelt und an Ihre VPC angeschlossen ist.

Einrichten eines Internet-Gateways

Die technischen Aspekte werden in den NAT-Gateway-Anwendungsfällen detailliert beschrieben. Beachten Sie jedoch die folgenden Anforderungen für die Verwendung von --additional-python-modules. Insbesondere erfordert --additional-python-modules Zugriff auf pypi.org, was durch die Konfiguration Ihrer VPC bestimmt wird. Beachten Sie die folgenden Voraussetzungen:

  1. Die Anforderung, zusätzliche Python-Module über pip install für eine Benutzersitzung zu installieren. Wenn die Sitzung einen Konnektor verwendet, kann dies Auswirkungen auf Ihre Konfiguration haben.

  2. Wenn ein Konnektor mit --additional-python-modules verwendet wird, muss beim Starten der Sitzung das mit dem PhysicalConnectionRequirements des Konnektor verknüpfte Subnetz einen Netzwerkpfad für die Verbindung zu pypi.org bereitstellen.

  3. Sie müssen feststellen, ob Ihre Konfiguration korrekt ist oder nicht.

Einrichten eines Amazon-S3-Buckets zum Hosten eines gezielten PyPI/einfachen Repositorys

In diesem Beispiel wird in Amazon S3 ein PyPI-Spiegel für eine Reihe von Paketen und deren Abhängigkeiten eingerichtet.

So richten Sie den PyPI-Spiegel für eine Reihe von Paketen ein:

# 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/*

Wenn Sie bereits über ein vorhandenes Artefakt-Repository verfügen, verfügt dieses über eine Index-URL zur Verwendung durch pip, die Sie anstelle der Beispiel-URL für den Amazon-S3-Bucket wie oben angeben können.

So verwenden Sie die benutzerdefinierte Index-URL mit einigen Beispielpaketen:

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

Einrichtung eines CodeArtifact-Spiegels von Pypi, der an Ihre VPC angeschlossen ist

So richten Sie einen Spiegel ein:

  1. Erstellen Sie ein Repository in derselben Region wie das vom Konnektor verwendete Subnetz.

    Wählen Sie Public upstream repositories und klicken Sie auf pypi-store.

  2. Gewähren Sie Zugriff auf das Repository von der VPC für das Subnetz.

  3. Geben Sie die richtige --index-url mithilfe des python-modules-installer-option an.

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

Weitere Informationen finden Sie unter Verwenden von CodeArtifact aus einer VPC.