

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

# Buat aplikasi menggunakan AWS CLI
<a name="mlflow-app-create-app-cli"></a>

Anda dapat membuat aplikasi menggunakan AWS CLI kustomisasi keamanan yang lebih terperinci.

## Prasyarat
<a name="mlflow-app-create-app-cli-prereqs"></a>

Untuk membuat aplikasi menggunakan AWS CLI, Anda harus memiliki yang berikut:
+ **Akses ke terminal.**Ini dapat mencakup IDE lokal, instans Amazon EC2, atau. AWS CloudShell
+ **Akses ke lingkungan pengembangan.** Ini dapat mencakup lingkungan notebook lokal IDEs atau Jupyter dalam Studio atau Studio Classic.
+ ** AWS CLI Instalasi yang dikonfigurasi**. Untuk informasi selengkapnya, lihat [Mengkonfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). 
+ **Peran IAM dengan izin yang sesuai**. Langkah-langkah berikut mengharuskan lingkungan Anda untuk memiliki`iam:CreateRole`,`iam:CreatePolicy`,`iam:AttachRolePolicy`, dan `iam:ListPolicies` izin. Izin ini diperlukan pada peran yang digunakan untuk menjalankan langkah-langkah dalam panduan pengguna ini. Petunjuk dalam panduan ini membuat peran IAM yang digunakan sebagai peran eksekusi MLflow Aplikasi sehingga dapat mengakses data di bucket Amazon S3 Anda. Selain itu, kebijakan dibuat untuk memberikan peran IAM pengguna yang berinteraksi dengan Aplikasi melalui izin MLflow SDK untuk menelepon. MLflow APIs Untuk informasi selengkapnya, lihat [Memodifikasi kebijakan izin peran (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy). 

  Jika menggunakan Buku Catatan SageMaker Studio, perbarui peran layanan untuk profil pengguna Studio Anda dengan izin IAM ini. Untuk memperbarui peran layanan, navigasikan ke konsol SageMaker AI dan pilih domain yang Anda gunakan. Kemudian, di bawah domain, pilih profil pengguna yang Anda gunakan. Anda akan melihat peran layanan yang tercantum di sana. Arahkan ke konsol IAM, cari peran layanan di bawah **Peran**, dan perbarui peran Anda dengan kebijakan yang memungkinkan`iam:CreateRole`,, `iam:CreatePolicy``iam:AttachRolePolicy`, dan `iam:ListPolicies` tindakan. 

## Mengatur AWS CLI model
<a name="mlflow-app-create-app-cli-setup"></a>

Ikuti langkah-langkah baris perintah ini di dalam terminal AWS CLI untuk menyiapkan Amazon SageMaker AI dengan MLflow.

1. Instal versi terbaru dari file AWS CLI. Untuk informasi selengkapnya, lihat [Menginstal atau memperbarui ke versi terbaru](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dari *Panduan AWS CLI Pengguna*. AWS CLI

1. Verifikasi AWS CLI bahwa diinstal menggunakan perintah berikut: 

   ```
   aws sagemaker help
   ```

   Tekan `q` untuk keluar dari prompt.

   Untuk bantuan penyelesaian masalah, lihat [Memecahkan masalah pengaturan umum](mlflow-troubleshooting.md).

## Menyiapkan MLflow infrastruktur
<a name="mlflow-create-app-cli-infra-setup"></a>

Bagian berikut menunjukkan cara menyiapkan MLflow Aplikasi beserta bucket Amazon S3 dan peran IAM yang diperlukan untuk aplikasi tersebut.

### Buat Bucket S3
<a name="mlflow-infra-setup-s3-bucket"></a>

Di dalam terminal Anda, gunakan perintah berikut untuk membuat bucket Amazon S3 tujuan umum: 

**penting**  
Saat Anda menyediakan URI Amazon S3 untuk toko artefak Anda, pastikan bucket Amazon S3 sama dengan Aplikasi Anda. Wilayah AWS MLflow **Penyimpanan artefak lintas wilayah tidak didukung**.

```
bucket_name=bucket-name
  region=valid-region
  
  aws s3api create-bucket \
    --bucket $bucket_name \
    --region $region \
    --create-bucket-configuration LocationConstraint=$region
```

Outputnya akan serupa dengan yang berikut ini:

```
{
      "Location": "/bucket-name"
  }
```

### Menyiapkan kebijakan kepercayaan IAM
<a name="mlflow-app-create-app-cli-trust-policy"></a>

Gunakan langkah-langkah berikut untuk membuat kebijakan kepercayaan IAM. Untuk informasi selengkapnya tentang peran dan kebijakan kepercayaan, lihat [Istilah dan konsep peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) di *Panduan AWS Identity and Access Management Pengguna*.

1. Di dalam terminal Anda, gunakan perintah berikut untuk membuat file bernama`mlflow-trust-policy.json`.

   ```
   cat <<EOF > /tmp/mlflow-trust-policy.json
     {
          "Version": "2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [                     
                           "sagemaker.amazonaws.com"
                      ]
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
     EOF
   ```

1. Di dalam terminal Anda, gunakan perintah berikut untuk membuat file bernama`custom-policy.json`.

   ```
   cat <<EOF > /tmp/custom-policy.json
     {
         "Version": "2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                     "s3:Get*",
                     "s3:Put*",
                     "sagemaker:AddTags",
                     "sagemaker:CreateModelPackageGroup",
                     "sagemaker:CreateModelPackage",
                     "sagemaker:DescribeModelPackageGroup",
                     "sagemaker:UpdateModelPackage",
                     "s3:List*"
                 ],
                 "Resource": "*"
             }
         ]
     }
     EOF
   ```

1. Gunakan file kebijakan kepercayaan untuk membuat peran. Kemudian, lampirkan kebijakan peran IAM yang memungkinkan MLflow untuk mengakses Amazon S3 SageMaker dan Registry Model dalam akun Anda. MLflow harus memiliki akses ke Amazon S3 untuk toko artefak aplikasi Anda dan Registri SageMaker Model untuk pendaftaran model otomatis. 
**catatan**  
Jika Anda memperbarui peran yang ada, gunakan perintah berikut sebagai gantinya:`aws iam update-assume-role-policy --role-name $role_name --policy-document file:///tmp/mlflow-trust-policy.json`.

   ```
   role_name=role-name
     
     aws iam  create-role \
       --role-name $role_name \
       --assume-role-policy-document file:///tmp/mlflow-trust-policy.json
     
     aws iam put-role-policy \
       --role-name $role_name \
       --policy-name custom-policy \
       --policy-document file:///tmp/custom-policy.json
     
     role_arn=$(aws iam get-role --role-name  $role_name --query 'Role.Arn' --output text)
   ```

## Buat MLflow Aplikasi
<a name="mlflow-app-create-app-cli-create"></a>

Di dalam terminal Anda, gunakan `create-mlflow-app` API untuk membuat aplikasi sesuai Wilayah AWS pilihan Anda. Langkah ini biasanya memakan waktu sekitar 2-3 menit.

Perintah berikut membuat aplikasi baru dengan pendaftaran model otomatis diaktifkan. Untuk menonaktifkan pendaftaran model otomatis, tentukan`--no-automatic-model-registration`. 

Setelah membuat aplikasi, Anda dapat meluncurkan MLflow UI. Untuk informasi selengkapnya, lihat [Luncurkan MLflow UI menggunakan URL yang telah ditetapkan sebelumnya](mlflow-launch-ui.md).

**catatan**  
Mungkin diperlukan waktu hingga 2-3 menit untuk menyelesaikan pembuatan aplikasi. Jika aplikasi membutuhkan waktu lebih dari 3 menit untuk membuat, periksa apakah Anda memiliki izin IAM yang diperlukan. Ketika Anda berhasil membuat aplikasi, aplikasi akan dimulai secara otomatis.

Secara default, aplikasi yang dibuat adalah versi terbaru dan akan diperbarui secara otomatis.

```
app_name=app-name
  region=valid-region
  version=valid-version        
  
  
  aws sagemaker create-mlflow-app \
   --name $app_name \
   --artifact-store-uri s3://$bucket_name \
   --role-arn $role_arn \
   --automatic-model-registration \
   --region $region
```

Output harus serupa dengan yang berikut ini: 

```
{
      "AppArn": "arn:aws:sagemaker:region:123456789012:mlflow-app/app-name"
  }
```

**penting**  
**Catat aplikasi ARN untuk digunakan nanti.** Anda juga akan membutuhkan langkah-langkah `$bucket_name` untuk membersihkan. 