

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Sesuaikan pekerjaan pelatihan Anda untuk mengakses gambar di registri Docker pribadi
<a name="docker-containers-adapt-your-own-private-registry"></a>

Anda dapat menggunakan [registri Docker](https://docs.docker.com/registry/) pribadi alih-alih Amazon Elastic Container Registry (Amazon ECR) untuk meng-host gambar Anda untuk Pelatihan AI. SageMaker Petunjuk berikut menunjukkan kepada Anda cara membuat registri Docker, mengonfigurasi cloud pribadi virtual (VPC) dan pekerjaan pelatihan Anda, menyimpan gambar, dan SageMaker memberikan akses AI ke gambar pelatihan di registri docker pribadi. Instruksi ini juga menunjukkan cara menggunakan registri Docker yang memerlukan otentikasi untuk pekerjaan SageMaker pelatihan.

## Buat dan simpan gambar Anda di registri Docker pribadi
<a name="docker-containers-adapt-your-own-private-registry-prerequisites"></a>

Buat registri Docker pribadi untuk menyimpan gambar Anda. Registri Anda harus:
+ gunakan protokol [API HTTP Docker Registry](https://docs.docker.com/registry/spec/api/)
+ dapat diakses dari VPC yang sama yang ditentukan dalam [VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#API_CreateTrainingJob_RequestSyntax)parameter di API. `CreateTrainingJob` Masukan `VpcConfig` saat Anda membuat pekerjaan pelatihan Anda.
+ diamankan dengan sertifikat [TLS dari otoritas sertifikat](https://aws.amazon.com/what-is/ssl-certificate/) publik yang dikenal.

Untuk informasi selengkapnya tentang membuat registri Docker, lihat [Menerapkan server registri](https://docs.docker.com/registry/deploying/).

## Konfigurasikan VPC dan SageMaker pekerjaan pelatihan Anda
<a name="docker-containers-adapt-your-own-private-registry-configure"></a>

SageMaker AI menggunakan koneksi jaringan dalam VPC Anda untuk mengakses gambar di registri Docker Anda. Untuk menggunakan gambar di registri Docker Anda untuk pelatihan, registri harus dapat diakses dari VPC Amazon di akun Anda. Untuk informasi selengkapnya, lihat [Gunakan registri Docker yang memerlukan otentikasi untuk pelatihan](docker-containers-adapt-your-own-private-registry-authentication.md).

Anda juga harus mengonfigurasi pekerjaan pelatihan Anda untuk terhubung ke VPC yang sama dengan yang dapat diakses oleh registri Docker Anda. Untuk informasi selengkapnya, lihat [Mengonfigurasi Pekerjaan Pelatihan untuk Akses VPC Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html#train-vpc-configure).

## Buat pekerjaan pelatihan menggunakan gambar dari registri Docker pribadi Anda
<a name="docker-containers-adapt-your-own-private-registry-create"></a>

Untuk menggunakan gambar dari registri Docker pribadi Anda untuk pelatihan, gunakan panduan berikut untuk mengonfigurasi gambar Anda, mengonfigurasi, dan membuat pekerjaan pelatihan. Contoh kode yang mengikuti menggunakan AWS SDK untuk Python (Boto3) klien.

1. Buat objek konfigurasi gambar pelatihan dan `Vpc` masukan `TrainingRepositoryAccessMode` bidang sebagai berikut.

   ```
   training_image_config = {
       'TrainingRepositoryAccessMode': 'Vpc'
   }
   ```
**catatan**  
Jika registri Docker pribadi Anda memerlukan otentikasi, Anda harus menambahkan `TrainingRepositoryAuthConfig` objek ke objek konfigurasi gambar pelatihan. Anda juga harus menentukan Nama Sumber Daya Amazon (ARN) dari AWS Lambda fungsi yang menyediakan kredensyal akses ke SageMaker AI menggunakan `TrainingRepositoryCredentialsProviderArn` bidang objek. `TrainingRepositoryAuthConfig` Untuk informasi lebih lanjut, lihat contoh struktur kode di bawah ini.  

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

   Untuk informasi tentang cara membuat fungsi Lambda untuk menyediakan otentikasi, lihat. [Gunakan registri Docker yang memerlukan otentikasi untuk pelatihan](docker-containers-adapt-your-own-private-registry-authentication.md)

1. Gunakan klien Boto3 untuk membuat pekerjaan pelatihan dan meneruskan konfigurasi yang benar ke [create\$1training\$1job](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) API. Petunjuk berikut menunjukkan cara mengkonfigurasi komponen dan membuat pekerjaan pelatihan.

   1. Buat `AlgorithmSpecification` objek yang ingin Anda lewati`create_training_job`. Gunakan objek konfigurasi gambar pelatihan yang Anda buat pada langkah sebelumnya, seperti yang ditunjukkan pada contoh kode berikut.

      ```
      algorithm_specification = {
         'TrainingImage': 'myteam.myorg.com/docker-local/my-training-image:<IMAGE-TAG>',
         'TrainingImageConfig': training_image_config,
         'TrainingInputMode': 'File'
      }
      ```
**catatan**  
Untuk menggunakan versi tetap, bukan versi gambar yang diperbarui, lihat [intisari](https://docs.docker.com/engine/reference/commandline/pull/#pull-an-image-by-digest-immutable-identifier) gambar alih-alih berdasarkan nama atau tag.

   1. Tentukan nama pekerjaan pelatihan dan peran yang ingin Anda berikan`create_training_job`, seperti yang ditunjukkan pada contoh kode berikut. 

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

   1. Tentukan grup keamanan dan subnet untuk konfigurasi VPC untuk pekerjaan pelatihan Anda. Registri Docker pribadi Anda harus mengizinkan lalu lintas masuk dari grup keamanan yang Anda tentukan, seperti yang ditunjukkan dalam contoh kode berikut.

      ```
      vpc_config = {
          'SecurityGroupIds': ['sg-0123456789abcdef0'],
          'Subnets': ['subnet-0123456789abcdef0','subnet-0123456789abcdef1']
      }
      ```
**catatan**  
Jika subnet Anda tidak berada di VPC yang sama dengan registri Docker pribadi Anda, Anda harus mengatur koneksi jaringan di antara keduanya. VPCs SeeConnect VPCs menggunakan [VPC peering](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html) untuk informasi lebih lanjut.

   1. Tentukan konfigurasi sumber daya, termasuk instance komputasi pembelajaran mesin dan volume penyimpanan yang akan digunakan untuk pelatihan, seperti yang ditunjukkan dalam contoh kode berikut. 

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

   1. Tentukan konfigurasi data input dan output, tempat dataset pelatihan disimpan, dan di mana Anda ingin menyimpan artefak model, seperti yang ditunjukkan pada contoh kode berikut.

      ```
      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. Tentukan jumlah detik maksimum yang dapat dijalankan oleh pekerjaan pelatihan model seperti yang ditunjukkan pada contoh kode berikut.

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

   1. Terakhir, buat pekerjaan pelatihan menggunakan parameter yang Anda tentukan pada langkah sebelumnya seperti yang ditunjukkan pada contoh kode berikut.

      ```
      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)
      ```

# Gunakan estimator SageMaker AI untuk menjalankan pekerjaan pelatihan
<a name="docker-containers-adapt-your-own-private-registry-estimator"></a>

Anda juga dapat menggunakan [estimator](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html) dari SageMaker Python SDK untuk menangani konfigurasi dan menjalankan tugas pelatihan Anda. SageMaker Contoh kode berikut menunjukkan cara mengkonfigurasi dan menjalankan estimator menggunakan gambar dari registri Docker pribadi.

1. Impor pustaka dan dependensi yang diperlukan, seperti yang ditunjukkan pada contoh kode berikut.

   ```
   import boto3
   import sagemaker
   from sagemaker.estimator import Estimator
   
   session = sagemaker.Session()
   
   role = sagemaker.get_execution_role()
   ```

1. Berikan Uniform Resource Identifier (URI) ke image latihan, grup keamanan, dan subnet untuk konfigurasi VPC untuk tugas latihan Anda, seperti yang ditunjukkan pada contoh kode berikut.

   ```
   image_uri = "myteam.myorg.com/docker-local/my-training-image:<IMAGE-TAG>"
   
   security_groups = ["sg-0123456789abcdef0"]
   subnets = ["subnet-0123456789abcdef0", "subnet-0123456789abcdef0"]
   ```

   Untuk informasi selengkapnya tentang `security_group_ids` dan`subnets`, lihat deskripsi parameter yang sesuai di bagian [Estimator](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html) SDK SageMaker Python.
**catatan**  
SageMaker AI menggunakan koneksi jaringan dalam VPC Anda untuk mengakses gambar di registri Docker Anda. Untuk menggunakan gambar di registri Docker Anda untuk pelatihan, registri harus dapat diakses dari VPC Amazon di akun Anda.

1. Secara opsional, jika registri Docker Anda memerlukan otentikasi, Anda juga harus menentukan Nama Sumber Daya Amazon (ARN) dari AWS Lambda fungsi yang menyediakan kredensyal akses ke AI. SageMaker Contoh kode berikut menunjukkan cara menentukan ARN. 

   ```
   training_repository_credentials_provider_arn = "arn:aws:lambda:us-west-2:1234567890:function:test"
   ```

   Untuk informasi selengkapnya tentang penggunaan gambar dalam registri Docker yang memerlukan autentikasi, lihat **Menggunakan registri Docker yang memerlukan otentikasi** untuk pelatihan di bawah ini.

1. Gunakan contoh kode dari langkah-langkah sebelumnya untuk mengkonfigurasi estimator, seperti yang ditunjukkan pada contoh kode berikut.

   ```
   # The training repository access mode must be 'Vpc' for private docker registry jobs 
   training_repository_access_mode = "Vpc"
   
   # Specify the instance type, instance count you want to use
   instance_type="ml.m5.xlarge"
   instance_count=1
   
   # Specify the maximum number of seconds that a model training job can run
   max_run_time = 1800
   
   # Specify the output path for the model artifacts
   output_path = "s3://your-output-bucket/your-output-path"
   
   estimator = Estimator(
       image_uri=image_uri,
       role=role,
       subnets=subnets,
       security_group_ids=security_groups,
       training_repository_access_mode=training_repository_access_mode,
       training_repository_credentials_provider_arn=training_repository_credentials_provider_arn,  # remove this line if auth is not needed
       instance_type=instance_type,
       instance_count=instance_count,
       output_path=output_path,
       max_run=max_run_time
   )
   ```

1. Mulai pekerjaan pelatihan Anda `estimator.fit` dengan menelepon dengan nama pekerjaan Anda dan jalur input sebagai parameter, seperti yang ditunjukkan pada contoh kode berikut.

   ```
   input_path = "s3://your-input-bucket/your-input-path"
   job_name = "your-job-name"
   
   estimator.fit(
       inputs=input_path,
       job_name=job_name
   )
   ```

# Gunakan registri Docker yang memerlukan otentikasi untuk pelatihan
<a name="docker-containers-adapt-your-own-private-registry-authentication"></a>

Jika registri Docker Anda memerlukan otentikasi, Anda harus membuat AWS Lambda fungsi yang menyediakan kredensyal akses ke AI. SageMaker [Kemudian, buat pekerjaan pelatihan dan berikan ARN fungsi Lambda ini di dalam create\$1training\$1job API.](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job) Terakhir, Anda dapat secara opsional membuat titik akhir VPC antarmuka sehingga VPC Anda dapat berkomunikasi dengan fungsi Lambda Anda tanpa mengirim lalu lintas melalui internet. Panduan berikut menunjukkan cara membuat fungsi Lambda, menetapkan peran yang benar dan membuat antarmuka VPC endpoint.

## Buat fungsi Lambda
<a name="docker-containers-adapt-your-own-private-registry-authentication-create-lambda"></a>

Buat AWS Lambda fungsi yang meneruskan kredensyal akses ke SageMaker AI dan mengembalikan respons. Contoh kode berikut menciptakan fungsi handler Lambda, sebagai berikut.

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

Jenis otentikasi yang digunakan untuk mengatur registri Docker pribadi Anda menentukan isi respons yang dikembalikan oleh fungsi Lambda Anda sebagai berikut.
+ Jika registri Docker pribadi Anda menggunakan otentikasi dasar, fungsi Lambda akan mengembalikan nama pengguna dan kata sandi yang diperlukan untuk mengautentikasi ke registri.
+ Jika registri Docker pribadi Anda menggunakan [otentikasi token pembawa](https://docs.docker.com/registry/spec/auth/token/), nama pengguna dan kata sandi dikirim ke server otorisasi Anda, yang kemudian mengembalikan token pembawa. Token ini kemudian digunakan untuk mengautentikasi ke registri Docker pribadi Anda.

**catatan**  
Jika Anda memiliki lebih dari satu fungsi Lambda untuk pendaftar Anda di akun yang sama, dan peran pelaksanaannya sama untuk pekerjaan pelatihan Anda, maka pekerjaan pelatihan untuk registri seseorang akan memiliki akses ke fungsi Lambda untuk pendaftar lain.

## Berikan izin peran yang benar ke fungsi Lambda Anda
<a name="docker-containers-adapt-your-own-private-registry-authentication-lambda-role"></a>

[IAMrole](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)Yang Anda gunakan di `create_training_job` API harus memiliki izin untuk memanggil AWS Lambda fungsi. Contoh kode berikut menunjukkan cara memperluas kebijakan izin dari peran IAM untuk memanggil. `myLambdaFunction`

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

Untuk informasi tentang mengedit kebijakan izin peran, lihat [Memodifikasi kebijakan izin peran (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy) di Panduan Pengguna *AWS Identity and Access Management*.

**catatan**  
Peran IAM dengan kebijakan **AmazonSageMakerFullAccess**terkelola terlampir memiliki izin untuk memanggil fungsi Lambda apa pun dengan SageMaker "AI” dalam namanya.

## Buat titik akhir VPC antarmuka untuk Lambda
<a name="docker-containers-adapt-your-own-private-registry-authentication-lambda-endpoint"></a>

Jika Anda membuat titik akhir antarmuka, VPC Amazon Anda dapat berkomunikasi dengan fungsi Lambda Anda tanpa mengirim lalu lintas melalui internet. *Untuk informasi selengkapnya, lihat [Mengonfigurasi titik akhir VPC antarmuka untuk](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc-endpoints.html)AWS Lambda Lambda di Panduan Pengembang.*

Setelah titik akhir antarmuka Anda dibuat, SageMaker pelatihan akan memanggil fungsi Lambda Anda dengan mengirimkan permintaan melalui VPC Anda ke. `lambda.region.amazonaws.com` Jika Anda memilih **Aktifkan Nama DNS** saat membuat titik akhir antarmuka, [Amazon Route 53 merutekan](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) panggilan ke titik akhir antarmuka Lambda. Jika Anda menggunakan penyedia DNS yang berbeda, Anda harus memetakan `lambda.region.amazonaws.co` m, ke titik akhir antarmuka Lambda Anda.