Verwenden Sie ein Docker-Verzeichnis, für die eine Authentifizierung für das Training erforderlich ist - Amazon SageMaker

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.

Verwenden Sie ein Docker-Verzeichnis, für die eine Authentifizierung für das Training erforderlich ist

Wenn Ihre Docker-Registrierung eine Authentifizierung erfordert, müssen Sie eine AWS Lambda -Funktion erstellen, die Anmeldeinformationen für bereitstellt SageMaker. Erstellen Sie dann einen Trainingsauftrag und geben Sie den ARN dieser Lambda-Funktion in der create_training_job-API an. Schließlich können Sie optional einen VPC-Schnittstellen-Endpunkt erstellen, sodass Ihre VPC mit Ihrer Lambda-Funktion kommunizieren kann, ohne Datenverkehr über das Internet zu senden. Die folgende Anleitung zeigt, wie Sie eine Lambda-Funktion erstellen, ihr die richtige Rolle zuweisen und einen Schnittstellen-VPC-Endpunkt erstellen.

So erstellen Sie die Lambda-Funktion:

Erstellen Sie eine - AWS Lambda Funktion, die Zugriffsanmeldeinformationen an übergibt SageMaker und eine Antwort zurückgibt. Im folgenden Codebeispiel wird der Lambda-Funktionshandler wie folgt erstellt.

def handler(event, context): response = { "Credentials": {"Username": "username", "Password": "password"} } return response

Die Art der Authentifizierung, die zum Einrichten Ihrers privaten Docker-Verzeichnis verwendet wird, bestimmt den Inhalt der Antwort, die von Ihrer Lambda-Funktion zurückgegeben wird, wie folgt.

  • Wenn Ihr privates Docker-Verzeichnis die Standardauthentifizierung verwendet, gibt die Lambda-Funktion den Benutzernamen und das Passwort zurück, die für die Authentifizierung bei der Registrierung erforderlich sind.

  • Wenn Ihr privates Docker-Verzeichnis die Bearer-Token-Authentifizierung verwendet, werden der Benutzername und das Passwort an Ihren Autorisierungsserver gesendet, der dann ein Bearer-Token zurückgibt. Dieses Token wird dann zur Authentifizierung bei Ihrem privaten Docker-Verzeichnis verwendet.

Anmerkung

Wenn Sie mehr als eine Lambda-Funktion für Ihre Verzeichnisse in demselben Konto haben und die Ausführungsrolle für Ihre Trainingsaufträge dieselbe ist, dann hätten Trainingsaufträge für Registry One Zugriff auf die Lambda-Funktionen für andere Verzeichnisse.

Gewähren Sie der Lambda-Funktion die korrekte Rolle.

Die IAMrole, die Sie in der create_training_job API verwenden, muss über die Berechtigung zum Aufrufen einer - AWS Lambda Funktion verfügen. Das folgende Codebeispiel zeigt, wie die Berechtigungsrichtlinie einer IAM-Rolle erweitert werden kann, um myLambdaFunction aufzurufen.

{ "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*myLambdaFunction*" ] }

Weitere Informationen zum Bearbeiten von Rollenberechtigungsrichtlinien finden Sie unter Modifizierung einer Rollenberechitigungsrichtline (Konsole) in dem AWS Benutzerhandbuch für Identitäts- und Zugriffsmanagement.

Anmerkung

Eine IAM-Rolle mit einer angehängten AmazonSageMakerFullAccess verwalteten Richtlinie hat die Berechtigung, jede Lambda-Funktion mit „SageMaker“ im Namen aufzurufen.

So erstellen Sie einen Schnittstellen-Endpunkt für Lambda

Wenn Sie einen Schnittstellenendpunkt erstellen, kann Ihre Amazon VPC mit Ihrer Lambda-Funktion kommunizieren, ohne Datenverkehr über das Internet zu senden. Weitere Informationen finden Sie unterKonfigurieren von Schnittstellen-VPC-Endpunkten für LambdaimAWS Lambda Entwicklerhandbuch.

Nachdem Ihr Schnittstellenendpunkt erstellt wurde, ruft SageMaker das Training Ihre Lambda-Funktion auf, indem es eine Anfrage über Ihre VPC an sendetlambda.region.amazonaws.com. Wenn Sie bei der Erstellung Ihres Schnittstellenendpunkts die Option DNS-Name aktivieren auswählen, leitet Amazon Route 53 den Anruf an den Lambda-Schnittstellenendpunkt weiter. Wenn Sie einen anderen DNS-Anbieter verwenden, müssen Sie lambda.region.amazonaws.com, Ihrem Lambda-Schnittstellenendpunkt zuordnen.