

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.

# Passen Sie Ihren Trainingsauftrag so an, dass Sie auf Images in einer privaten Docker-Registry zugreifen können
<a name="docker-containers-adapt-your-own-private-registry"></a>

Sie können eine private [Docker-Registry](https://docs.docker.com/registry/) anstelle einer Amazon Elastic Container Registry (Amazon ECR) verwenden, um Ihre Images für SageMaker AI Training zu hosten. Die folgenden Anweisungen zeigen Ihnen, wie Sie eine Docker-Registry erstellen, Ihre Virtual Private Cloud (VPC) und Ihren Trainingsjob konfigurieren, Images speichern und SageMaker KI Zugriff auf das Trainings-Image in der privaten Docker-Registry gewähren. Diese Anweisungen zeigen Ihnen auch, wie Sie eine Docker-Registry verwenden, für die eine Authentifizierung für einen Trainingsjob erforderlich ist. SageMaker 

## Erstellen und Speichern Ihrer Images in einer privaten Docker-Registry
<a name="docker-containers-adapt-your-own-private-registry-prerequisites"></a>

Erstellen Sie eine private Docker-Registry, um Ihre Images zu speichern. Ihre Registry muss:
+ das Protokoll [Docker Registry HTTP API](https://docs.docker.com/registry/spec/api/) verwenden
+ von derselben VPC aus zugänglich sein, die im [VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#API_CreateTrainingJob_RequestSyntax)Parameter in der `CreateTrainingJob` API angegeben ist. Geben Sie `VpcConfig` ein, wenn Sie Ihren Trainingsauftrag erstellen.
+ gesichert mit einem [TLS-Zertifikat](https://aws.amazon.com/what-is/ssl-certificate/) einer bekannten öffentlichen Zertifizierungsstelle.

Weitere Informationen zum Erstellen einer Docker-Registry finden Sie unter [Bereitstellen eines Registry-Servers](https://docs.docker.com/registry/deploying/).

## Konfigurieren Sie Ihre VPC und Ihren SageMaker Trainingsjob
<a name="docker-containers-adapt-your-own-private-registry-configure"></a>

SageMaker KI verwendet eine Netzwerkverbindung innerhalb Ihrer VPC, um auf Images in Ihrer Docker-Registry zuzugreifen. Um die Images in Ihrer Docker-Registry für Training zu verwenden, muss das Verzeichnis von einer Amazon-VPC in Ihrem Konto aus zugänglich sein. Weitere Informationen finden Sie unter [Verwenden Sie eine Docker-Registry, für die eine Authentifizierung für das Training erforderlich ist](docker-containers-adapt-your-own-private-registry-authentication.md).

Sie müssen Ihren Trainingsauftrag auch so konfigurieren, dass er eine Verbindung zu derselben VPC herstellt, auf die Ihre Docker-Registry Zugriff hat. Weitere Informationen finden Sie unter [Einen Trainingsauftrag für Amazon VPC Access konfigurieren](https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html#train-vpc-configure).

## Erstellen Sie einen Trainingsauftrag mit einem Image aus Ihrer privaten Docker-Registry
<a name="docker-containers-adapt-your-own-private-registry-create"></a>

Um ein Image aus Ihrer privaten Docker-Registry für Training zu verwenden, folgen Sie der folgenden Anleitung, um Ihr Image zu konfigurieren, und einen Trainingsauftrag zu konfigurieren und erstellen. In den folgenden Codebeispielen wird der AWS SDK für Python (Boto3) Client verwendet.

1. Erstellen Sie ein Trainings-Image-Konfigurationsobjekt und geben Sie `Vpc` in das `TrainingRepositoryAccessMode` Feld wie folgt ein.

   ```
   training_image_config = {
       'TrainingRepositoryAccessMode': 'Vpc'
   }
   ```
**Anmerkung**  
Wenn Ihre private Docker-Registry eine Authentifizierung erfordert, müssen Sie dem Trainings-Image-Konfigurationsobjekt ein `TrainingRepositoryAuthConfig` Objekt hinzufügen. Sie müssen auch den Amazon-Ressourcennamen (ARN) einer AWS Lambda Funktion angeben, die mithilfe des `TrainingRepositoryCredentialsProviderArn` Felds des `TrainingRepositoryAuthConfig` Objekts Anmeldeinformationen für SageMaker KI bereitstellt. Weitere Informationen finden Sie in der nachstehenden Beispiel-Code-Struktur.  

   ```
   training_image_config = {
      'TrainingRepositoryAccessMode': 'Vpc',
      'TrainingRepositoryAuthConfig': {
           'TrainingRepositoryCredentialsProviderArn': '{{arn:aws:lambda:Region:Acct:function:FunctionName}}'
      }
   }
   ```

   Weitere Informationen zum Erstellen der Lambda-Funktion für die Authentifizierung finden Sie unter [Verwenden Sie eine Docker-Registry, für die eine Authentifizierung für das Training erforderlich ist](docker-containers-adapt-your-own-private-registry-authentication.md).

1. Verwenden Sie einen Boto3-Client, um einen Trainingsauftrag zu erstellen und die richtige Konfiguration an die [create\_training\_job](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)-API zu übergeben. Die folgenden Anweisungen zeigen Ihnen, wie Sie die Komponenten konfigurieren und einen Trainingsauftrag erstellen.

   1. Erstellen Sie das `AlgorithmSpecification` Objekt, das Sie an `create_training_job` senden möchten. Verwenden Sie das Trainings-Image-Konfigurationsobjekt, das Sie im vorherigen Schritt erstellt haben, wie im folgenden Codebeispiel gezeigt.

      ```
      algorithm_specification = {
         'TrainingImage': '{{myteam.myorg.com/docker-local/my-training-image:<IMAGE-TAG>}}',
         'TrainingImageConfig': training_image_config,
         'TrainingInputMode': '{{File}}'
      }
      ```
**Anmerkung**  
Wenn Sie statt einer aktualisierten Version eines Images eine feste Version verwenden möchten, beziehen Sie sich auf den [Digest](https://docs.docker.com/engine/reference/commandline/pull/#pull-an-image-by-digest-immutable-identifier) des Images und nicht auf den Namen oder das Tag.

   1. Geben Sie den Namen des Trainingsauftrags und der Rolle an, den Sie an `create_training_job` senden möchten, wie im folgenden Codebeispiel gezeigt. 

      ```
      training_job_name = '{{private-registry-job}}'
      execution_role_arn = '{{arn:aws:iam::123456789012:role/SageMakerExecutionRole}}'
      ```

   1. Geben Sie eine Sicherheitsgruppe und ein Subnetz für die VPC-Konfiguration für Ihren Trainingsauftrag an. Ihre private Docker-Registry muss eingehenden Datenverkehr von den von Ihnen angegebenen Sicherheitsgruppen zulassen, wie im folgenden Codebeispiel gezeigt.

      ```
      vpc_config = {
          'SecurityGroupIds': ['{{sg-0123456789abcdef0}}'],
          'Subnets': ['{{subnet-0123456789abcdef0}}','{{subnet-0123456789abcdef1}}']
      }
      ```
**Anmerkung**  
Wenn sich Ihr Subnetz nicht in derselben VPC wie Ihre private Docker-Registry befindet, müssen Sie eine Netzwerkverbindung zwischen den beiden VPCs einrichten. SeeConnect Weitere Informationen finden Sie in [VPC VPC-Peering](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html) verwenden.

   1. Geben Sie die Ressourcenkonfiguration an, einschließlich Rechen-Instances für Machine Learning und Speichervolumes, die für das Training verwendet werden sollen, wie im folgenden Codebeispiel gezeigt. 

      ```
      resource_config = {
          'InstanceType': '{{ml.m4.xlarge}}',
          'InstanceCount': {{1}},
          'VolumeSizeInGB': {{10}},
      }
      ```

   1. Geben Sie die Konfiguration der Eingabe- und Ausgabedaten an, wo der Trainingsdatensatz gespeichert wird und wo Sie Modellartefakte speichern möchten, wie im folgenden Codebeispiel gezeigt.

      ```
      input_data_config = [
          {
              "ChannelName": "training",
              "DataSource":
              {
                  "S3DataSource":
                  {
                      "S3DataDistributionType": "{{FullyReplicated}}",
                      "S3DataType": "{{S3Prefix}}",
                      "S3Uri": "{{s3://your-training-data-bucket/training-data-folder}}"
                  }
              }
          }
      ]
      
      output_data_config = {
          'S3OutputPath': '{{s3://your-output-data-bucket/model-folder}}'
      }
      ```

   1. Geben Sie die maximale Anzahl von Sekunden an, für die ein Modelltrainingsauftrag ausgeführt werden kann, wie im folgenden Codebeispiel gezeigt.

      ```
      stopping_condition = {
          'MaxRuntimeInSeconds': {{1800}}
      }
      ```

   1. Erstellen Sie abschließend den Trainingsauftrag mit den Parametern, die Sie in den vorherigen Schritten angegeben haben, wie im folgenden Codebeispiel gezeigt.

      ```
      import boto3
      sm = boto3.client('sagemaker')
      try:
          resp = sm.create_training_job(
              TrainingJobName=training_job_name,
              AlgorithmSpecification=algorithm_specification,
              RoleArn=execution_role_arn,
              InputDataConfig=input_data_config,
              OutputDataConfig=output_data_config,
              ResourceConfig=resource_config,
              VpcConfig=vpc_config,
              StoppingCondition=stopping_condition
          )
      except Exception as e:
          print(f'error calling CreateTrainingJob operation: {e}')
      else:
          print(resp)
      ```