Utilizzo di un registro Docker che richiede l'autenticazione per l’addestramento - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di un registro Docker che richiede l'autenticazione per l’addestramento

Se il registro Docker richiede l’autenticazione, è necessario creare una funzione AWS Lambda che fornisca le credenziali di accesso a SageMaker AI. Quindi, crea un processo di addestramento e inserisci l’ARN di questa funzione Lambda all’interno dell’API create_training_job. Infine, è possibile facoltativamente creare un endpoint VPC di interfaccia in modo che il VPC possa comunicare con la propria funzione Lambda senza inviare traffico su Internet. La seguente guida mostra come creare una funzione Lambda, assegnarle il ruolo corretto e creare un endpoint VPC di interfaccia.

Creazione della funzione Lambda

Crea una funzione AWS Lambda che passi le credenziali di accesso a SageMaker AI e restituisca una risposta. Il seguente esempio di codice crea il gestore di funzioni Lambda, come segue.

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

Il tipo di autenticazione utilizzato per configurare il registro Docker privato determina il contenuto della risposta restituita dalla funzione Lambda come segue.

  • Se il registro Docker privato utilizza l'autenticazione di base, la funzione Lambda restituirà il nome utente e la password necessari per l'autenticazione nel registro.

  • Se il registro Docker privato utilizza l'autenticazione con token bearer, il nome utente e la password vengono inviati al server di autorizzazione, che quindi restituisce un token bearer. Questo token viene quindi utilizzato per l'autenticazione nel registro Docker privato.

Nota

Se disponi di più di una funzione Lambda per i tuoi registri nello stesso account e il ruolo di esecuzione è lo stesso per i tuoi processi di addestramento, allora i processi di addestramento per il registro uno avranno accesso alle funzioni Lambda per gli altri registri.

Concedi l'autorizzazione del ruolo corretto alla tua funzione Lambda

Il Ruolo IAM che si utilizza nell'API create_training_job deve avere l'autorizzazione per chiamare una funzione AWS Lambda. L'esempio di codice seguente mostra come estendere la policy delle autorizzazioni di un ruolo IAM per chiamare myLambdaFunction.

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

Per ulteriori informazioni su come modificare la policy delle autorizzazioni di un ruolo, consulta Modifying a role permission policy (console) nella AWS Guida per l'utente di AWS Identity and Access Management.

Nota

Un ruolo IAM con una policy gestita AmazonSageMakerFullAccess collegata è autorizzato a chiamare qualsiasi funzione Lambda con “SageMaker AI” nel nome.

Creazione di un endpoint VPC di interfaccia per Lambda

Se crei un endpoint di interfaccia, Amazon VPC può comunicare con la funzione Lambda senza inviare traffico su Internet. Per ulteriori informazioni, consulta Configuring interface VPC endpoints for Lambda nella AWS LambdaGuida per gli sviluppatori.

Dopo aver creato l'endpoint dell'interfaccia, l’addestramento SageMaker chiamerà la funzione Lambda inviando una richiesta tramite il VPC a lambda.region.amazonaws.com. Se selezioni Abilita nome DNS quando crei l'endpoint di interfaccia, Amazon Route 53 indirizza la chiamata all'endpoint dell'interfaccia Lambda. Se utilizzi un provider DNS diverso, devi mappare lambda.region.amazonaws.co, all'endpoint dell'interfaccia Lambda.