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.
Privates Repository für Laufzeitabhängigkeiten
Mit Hilfe von Befehlen oder Skripten können Sie vor der Ausführung in Ihrer Jobumgebung einen Abhängigkeitsmanager wie Pip oder Conda konfigurieren. Um eine Netzwerkisolierung zu erreichen, verwenden Sie eine dieser Optionen, um Ihre Abhängigkeitsmanager so umzuleiten, dass sie auf Ihre privaten Repositorys zugreifen und Remote-Funktionen innerhalb einer VPC ausführen. Die Befehle oder das Skript vor der Ausführung werden ausgeführt, bevor Ihre Remote-Funktion ausgeführt wird. Sie können diese mit dem @remote Decorator, der RemoteExecutor API oder in einer Konfigurationsdatei definieren.
Die folgenden Abschnitte zeigen Ihnen, wie Sie auf ein privates Python-Paketindex (PyPI) -Repository zugreifen, das mit verwaltet wird. AWS CodeArtifact In den Abschnitten wird auch gezeigt, wie Sie auf einen benutzerdefinierten Conda-Channel zugreifen, der von Amazon Simple Storage Service (Amazon S3) gehostet wird.
Wie verwende ich ein benutzerdefiniertes PyPI-Repository, das mit verwaltet wird AWS CodeArtifact
Für die Verwaltung CodeArtifact eines benutzerdefinierten PyPI-Repositorys sind die folgenden Voraussetzungen erforderlich:
-
Ihr privates PyPI-Repository sollte bereits erstellt worden sein. Sie können es verwenden AWS CodeArtifact , um Ihre privaten Paket-Repositorys zu erstellen und zu verwalten. Weitere Informationen finden CodeArtifact Sie im CodeArtifact Benutzerhandbuch.
-
Ihre VPC sollte Zugriff auf Ihr CodeArtifact Repository haben. Um eine Verbindung von Ihrer VPC zu Ihrem CodeArtifact Repository zu ermöglichen, müssen Sie Folgendes tun:
-
Erstellen Sie einen Amazon S3-Gateway-Endpunkt für Ihre VPC, der das Speichern von CodeArtifact Paketressourcen ermöglicht.
Das folgende Beispiel für einen Befehl vor der Ausführung zeigt, wie Pip im SageMaker AI-Trainingsjob so konfiguriert wird, dass es auf Ihr Repository verweist. CodeArtifact Weitere Informationen finden Sie unter Pip konfigurieren und verwenden mit. CodeArtifact
# use a requirements.txt file to import dependencies @remote( instance_type="ml.m5.large" image_uri = "my_base_python:latest", dependencies = './requirements.txt', pre_execution_commands=[ "aws codeartifact login --tool pip --domainmy-org--domain-owner <000000000000> --repositorymy-codeartifact-python-repo--endpoint-urlhttps://vpce-xxxxx.api.codeartifact.us-east-1.vpce.amazonaws.com" ] ) def matrix_multiply(a, b): return np.matmul(a, b)
So verwenden Sie einen benutzerdefinierten Conda-Channel, der auf Amazon S3 gehostet wird
Für die Verwaltung eines benutzerdefinierten Conda-Repositorys mit Hilfe von Amazon S3 bestehen die folgenden Voraussetzungen:
-
Ihr privater Conda-Kanal muss bereits in Ihrem Amazon-S3-Bucket eingerichtet sein, und alle abhängigen Pakete müssen indexiert und in Ihren Amazon-S3-Bucket hochgeladen werden. Anweisungen zur Indexierung Ihrer Conda-Pakete finden Sie unter Benutzerdefinierte Kanäle erstellen
. -
Ihre VPC sollte Zugriff auf den Amazon-S3-Bucket haben. Weitere Informationen finden Sie unter Endpunkte für Amazon S3.
-
In der Conda-Basisumgebung in Ihrem Job-Image sollte
boto3installiert sein. Um Ihre Umgebung zu überprüfen, geben Sie Folgendes in Ihre Anaconda-Eingabeaufforderung ein, um zu überprüfen, ob in der resultierenden generierten Listeboto3erscheint.conda list -n base -
Ihr Job-Image sollte mit Conda installiert werden, nicht mit Mamba
. Um Ihre Umgebung zu überprüfen, achten Sie darauf, dass die vorangehende Code-Eingabeaufforderung nicht mambazurückgibt.
Das folgende Beispiel für Befehle vor der Ausführung zeigt, wie Sie Conda im SageMaker Trainingsjob so konfigurieren, dass es auf Ihren privaten Channel auf Amazon S3 verweist. Die Befehle vor der Ausführung entfernen den Standard-Channel und fügen benutzerdefinierte Kanäle zu einer Conda-Konfigurationsdatei hinzu. .condarc
# specify your dependencies inside a conda yaml file @remote( instance_type="ml.m5.large" image_uri = "my_base_python:latest", dependencies = "./environment.yml", pre_execution_commands=[ "conda config --remove channels 'defaults'" "conda config --add channels 's3://my_bucket/my-conda-repository/conda-forge/'", "conda config --add channels 's3://my_bucket/my-conda-repository/main/'" ] ) def matrix_multiply(a, b): return np.matmul(a, b)