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.
Utilisation d'un registre Docker nécessitant une authentification pour l'entraînement
Si votre registre Docker nécessite une authentification, vous devez créer une AWS Lambda
fonction fournissant des informations d'accès à SageMaker. Ensuite, créez une tâche d'entraînement et fournissez l'ARN de cette fonction Lambda dans l'API create_training_job
Créer la fonction Lambda
Créez une AWS Lambda fonction qui transmet les informations d'accès SageMaker et renvoie une réponse. L'exemple de code suivant crée le gestionnaire de fonction Lambda, comme suit.
def handler(event, context): response = { "Credentials": {"Username": "username", "Password": "password"} } return response
Le type d'authentification utilisé pour configurer votre registre Docker privé détermine le contenu de la réponse renvoyée par votre fonction Lambda comme suit.
-
Si votre registre Docker privé utilise une authentification de base, la fonction Lambda renverra le nom d'utilisateur et le mot de passe nécessaires pour s'authentifier auprès du registre.
-
Si votre registre Docker privé utilise l'authentification par jeton du porteur
, le nom d'utilisateur et le mot de passe sont envoyés à votre serveur d'autorisation, qui renvoie un jeton du porteur. Ce jeton est ensuite utilisé pour l'authentification auprès de votre registre Docker privé.
Note
Si vous avez plusieurs fonctions Lambda pour vos registres dans le même compte et que le rôle d'exécution est le même pour vos tâches d'entraînement, les tâches d'entraînement pour le registre 1 auront accès aux fonctions Lambda pour les autres registres.
Octroi de l'autorisation de rôle appropriée à votre fonction Lambda
L'IAMRole que vous utilisez dans l'create_training_job
API doit être autorisé à appeler une AWS Lambda fonction. L'exemple de code suivant montre comment étendre la politique d'autorisation d'un rôle IAM pour appeler myLambdaFunction
.
{ "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*myLambdaFunction*" ] }
Pour obtenir des informations sur la modification d'une politique d'autorisations de rôle, consultez Modification d'une politique d'autorisations de rôle (console) dans le Guide de l'utilisateur AWS Identity and Access Management.
Note
Un rôle IAM associé à une politique AmazonSageMakerFullAccessgérée est autorisé à appeler n'importe quelle fonction Lambda dont le nom contient SageMaker « ».
Créer un point de terminaison de VPC d'interface pour Lambda
Si vous créez un point de terminaison d'interface, votre Amazon VPC peut communiquer avec votre fonction Lambda sans envoyer de trafic sur Internet. Pour plus d'informations, consultez Configuration de points de terminaison de VPC d'interface pour Lambda dans leGuide du développeur AWS Lambda .
Une fois le point de terminaison de votre interface créé, SageMaker Training appellera votre fonction Lambda en envoyant une demande via votre VPC à. lambda.region.amazonaws.com
Si vous sélectionnez Enable DNS Name (Activer le nom DNS) lorsque vous créez votre point de terminaison d'interface, Amazon Route 53 route l'appel vers le point de terminaison d'interface Lambda. Si vous utilisez un fournisseur DNS différent, vous devez mapper lambda.region.amazonaws.co
m à votre point de terminaison d'interface Lambda.