

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

# SageMaker Alur Kerja AI
<a name="workflows"></a>

Saat Anda menskalakan operasi pembelajaran mesin (ML), Anda dapat menggunakan layanan alur kerja yang dikelola sepenuhnya Amazon SageMaker AI untuk menerapkan praktik integrasi dan penerapan berkelanjutan (CI/CD) untuk siklus hidup ML Anda. Dengan Pipelines SDK, Anda memilih dan mengintegrasikan langkah-langkah pipeline ke dalam solusi terpadu yang mengotomatiskan proses pembuatan model dari persiapan data hingga penerapan model. Untuk arsitektur berbasis Kubernetes, Anda dapat menginstal Operator SageMaker AI di klaster Kubernetes Anda untuk membuat pekerjaan SageMaker AI secara native menggunakan API Kubernetes dan alat Kubernetes baris perintah seperti. `kubectl` Dengan komponen SageMaker AI untuk pipeline Kubeflow, Anda dapat membuat dan memantau pekerjaan SageMaker AI asli dari Pipelines Kubeflow Anda. Parameter pekerjaan, status, dan output dari SageMaker AI dapat diakses dari UI Pipelines Kubeflow. Terakhir, jika Anda ingin menjadwalkan pekerjaan batch, Anda dapat menggunakan integrasi antrian AWS Batch pekerjaan atau layanan alur kerja berbasis notebook Jupyter untuk memulai proses mandiri atau reguler pada jadwal yang Anda tentukan.

Singkatnya, SageMaker AI menawarkan teknologi alur kerja berikut:
+ [Pipeline](pipelines.md): Alat untuk membangun dan mengelola jaringan pipa ML.
+ [Orkestrasi Kubernetes](kubernetes-workflows.md): Operator kustom SageMaker AI untuk klaster Kubernetes Anda dan komponen untuk Pipelines Kubeflow.
+ [SageMaker Lowongan Notebook](notebook-auto-run.md): Sesuai permintaan atau batch non-interaktif terjadwal dari notebook Jupyter Anda.

Anda juga dapat memanfaatkan layanan lain yang terintegrasi dengan SageMaker AI untuk membangun alur kerja Anda. Opsi termasuk layanan berikut:
+ [Alur Kerja Alur Udara](https://sagemaker.readthedocs.io/en/stable/workflows/airflow/index.html): SageMaker APIs untuk mengekspor konfigurasi untuk membuat dan mengelola alur kerja Alur Udara.
+ [AWS Step Functions](https://sagemaker.readthedocs.io/en/stable/workflows/step_functions/index.html): Alur kerja MLM multi-langkah dengan Python yang mengatur infrastruktur SageMaker AI tanpa harus menyediakan sumber daya Anda secara terpisah.
+ [AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-sagemaker.html): Kirim pekerjaan pelatihan SageMaker AI ke antrian AWS Batch pekerjaan, di mana Anda dapat memprioritaskan dan menjadwalkan pekerjaan untuk dijalankan di lingkungan komputasi.

Untuk informasi selengkapnya tentang mengelola SageMaker pelatihan dan inferensi, lihat Alur Kerja SDK [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable/workflows/index.html).

**Topics**
+ [Pipeline](pipelines.md)
+ [Orkestrasi Kubernetes](kubernetes-workflows.md)
+ [SageMaker Lowongan Notebook](notebook-auto-run.md)
+ [Jadwalkan alur kerja ML Anda](workflow-scheduling.md)
+ [AWS Batch dukungan untuk pekerjaan pelatihan SageMaker AI](training-job-queues.md)

# Pipeline
<a name="pipelines"></a>

Amazon SageMaker Pipelines adalah layanan orkestrasi alur kerja yang dibuat khusus untuk mengotomatiskan pengembangan machine learning (ML).

Pipelines memberikan keuntungan sebagai berikut dibandingkan penawaran AWS alur kerja lainnya:

**Infrastruktur tanpa server penskalaan otomatis Anda tidak perlu mengelola infrastruktur** orkestrasi yang mendasarinya untuk menjalankan Pipelines, yang memungkinkan Anda untuk fokus pada tugas-tugas inti HTML. SageMaker AI secara otomatis menyediakan, menskalakan, dan mematikan sumber daya komputasi orkestrasi pipeline sesuai tuntutan beban kerja ML Anda.

**Pengalaman pengguna yang intuitif** Pipelines dapat dibuat dan dikelola melalui antarmuka pilihan Anda: editor visual, SDK APIs, atau JSON. Anda dapat drag-and-drop melakukan berbagai langkah ML untuk membuat pipeline Anda di antarmuka visual Amazon SageMaker Studio. Tangkapan layar berikut menunjukkan editor visual Studio untuk saluran pipa.

![\[Tangkapan layar drag-and-drop antarmuka visual untuk Pipelines di Studio.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/pipelines/pipelines-studio-overview.png)


Jika Anda lebih suka mengelola alur kerja ML Anda secara terprogram, SageMaker Python SDK menawarkan fitur orkestrasi lanjutan. Untuk informasi selengkapnya, lihat [Amazon SageMaker Pipelines](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html) dalam dokumentasi SageMaker Python SDK.

**AWS integrasi** Pipelines menyediakan integrasi tanpa batas dengan semua fitur SageMaker AI dan AWS layanan lainnya untuk mengotomatiskan pemrosesan data, pelatihan model, fine-tuning, evaluasi, penyebaran, dan pekerjaan pemantauan. Anda dapat menggabungkan fitur SageMaker AI di Pipelines Anda dan menavigasi mereka menggunakan deep link untuk membuat, memantau, dan men-debug alur kerja ML Anda dalam skala besar.

**Mengurangi biaya** Dengan Pipelines, Anda hanya membayar untuk lingkungan SageMaker Studio dan pekerjaan dasar yang diatur oleh Pipelines (misalnya, SageMaker Pelatihan, SageMaker Pemrosesan, Inferensi SageMaker AI, dan penyimpanan data Amazon S3).

**Auditabilitas dan pelacakan garis keturunan** Dengan Pipelines, Anda dapat melacak riwayat pembaruan dan eksekusi pipeline menggunakan versi bawaan. Amazon SageMaker ML Lineage Tracking membantu Anda menganalisis sumber data dan konsumen data dalam siklus hidup pengembangan end-to-end ML.

**Topics**
+ [Ikhtisar jaringan pipa](pipelines-overview.md)
+ [Tindakan saluran pipa](pipelines-build.md)

# Ikhtisar jaringan pipa
<a name="pipelines-overview"></a>

[Pipeline Amazon SageMaker AI adalah serangkaian langkah yang saling berhubungan dalam grafik asiklik terarah (DAG) yang didefinisikan menggunakan drag-and-drop UI atau Pipelines SDK.](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html) Anda juga dapat membangun pipeline menggunakan [skema JSON definisi pipeline](https://aws-sagemaker-mlops.github.io/sagemaker-model-building-pipeline-definition-JSON-schema/). Definisi DAG JSON ini memberikan informasi tentang persyaratan dan hubungan antara setiap langkah pipa Anda. Struktur DAG pipa ditentukan oleh dependensi data antar langkah. Dependensi data ini dibuat ketika properti output langkah diteruskan sebagai input ke langkah lain. Gambar berikut adalah contoh dari pipa DAG:

![\[\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/pipeline-full.png)


**Contoh DAG mencakup langkah-langkah berikut:**

1. `AbaloneProcess`, contoh dari langkah [Processing](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-processing), menjalankan skrip preprocessing pada data yang digunakan untuk pelatihan. Misalnya, skrip dapat mengisi nilai yang hilang, menormalkan data numerik, atau membagi data ke dalam kumpulan data kereta, validasi, dan pengujian.

1. `AbaloneTrain`, contoh dari langkah [Pelatihan](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-training), mengonfigurasi hiperparameter dan melatih model dari data input yang telah diproses sebelumnya.

1. `AbaloneEval`, contoh lain dari langkah [Pemrosesan](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-processing), mengevaluasi model untuk akurasi. Langkah ini menunjukkan contoh ketergantungan data—langkah ini menggunakan keluaran dataset pengujian dari. `AbaloneProcess`

1. `AbaloneMSECond`adalah contoh dari langkah [Kondisi](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-condition) yang, dalam contoh ini, memeriksa untuk memastikan mean-square-error hasil evaluasi model di bawah batas tertentu. Jika model tidak memenuhi kriteria, proses pipa berhenti.

1. Proses pipeline berjalan dengan langkah-langkah berikut:

   1. `AbaloneRegisterModel`, di mana SageMaker AI memanggil [RegisterModel](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-register-model)langkah untuk mendaftarkan model sebagai grup paket model berversi ke dalam Amazon SageMaker Model Registry.

   1. `AbaloneCreateModel`, di mana SageMaker AI memanggil [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-create-model)langkah untuk membuat model dalam persiapan untuk transformasi batch. Di`AbaloneTransform`, SageMaker AI memanggil langkah [Transform](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-transform) untuk menghasilkan prediksi model pada kumpulan data yang Anda tentukan.

Topik berikut menjelaskan konsep dasar Pipelines. Untuk tutorial yang menjelaskan implementasi konsep-konsep ini, lihat[Tindakan saluran pipa](pipelines-build.md).

**Topics**
+ [Struktur dan Eksekusi Pipa](build-and-manage-pipeline.md)
+ [Manajemen Akses IAM](build-and-manage-access.md)
+ [Menyiapkan dukungan lintas akun untuk Pipelines](build-and-manage-xaccount.md)
+ [Parameter pipa](build-and-manage-parameters.md)
+ [Langkah-langkah saluran pipa](build-and-manage-steps.md)
+ [Lift-and-shift Kode Python dengan dekorator @step](pipelines-step-decorator.md)
+ [Lulus Data Antar Langkah](build-and-manage-propertyfile.md)
+ [Langkah-langkah pipa cache](pipelines-caching.md)
+ [Coba lagi Kebijakan untuk Langkah-langkah Pipa](pipelines-retry-policy.md)
+ [Eksekusi selektif dari langkah-langkah pipa](pipelines-selective-ex.md)
+ [Perhitungan dasar, deteksi drift, dan siklus hidup dengan serta langkah-langkah di Amazon Pipelines ClarifyCheck QualityCheck SageMaker](pipelines-quality-clarify-baseline-lifecycle.md)
+ [Jadwalkan Pipeline Runs](pipeline-eventbridge.md)
+ [Integrasi SageMaker Eksperimen Amazon](pipelines-experiments.md)
+ [Jalankan saluran pipa menggunakan mode lokal](pipelines-local-mode.md)
+ [Memecahkan Masalah Pipa Amazon SageMaker](pipelines-troubleshooting.md)

# Struktur dan Eksekusi Pipa
<a name="build-and-manage-pipeline"></a>

**Topics**
+ [Struktur Pipa](#build-and-manage-pipeline-structure)
+ [Eksekusi Pipeline menggunakan Konfigurasi Paralelisme](#build-and-manage-pipeline-execution)

## Struktur Pipa
<a name="build-and-manage-pipeline-structure"></a>

Instans Amazon SageMaker Pipelines terdiri dari`name`,`parameters`, dan`steps`. Nama pipa harus unik dalam `(account, region)` pasangan. Semua parameter yang digunakan dalam definisi langkah harus didefinisikan dalam pipeline. Langkah-langkah pipeline yang tercantum secara otomatis menentukan urutan eksekusi mereka berdasarkan dependensi data mereka satu sama lain. Layanan Pipelines menyelesaikan hubungan antara langkah-langkah dalam dependensi data DAG untuk membuat serangkaian langkah yang diselesaikan eksekusi. Berikut ini adalah contoh struktur pipa.

**Awas**  
Saat membangun pipeline melalui editor visual atau SageMaker AI Python SDK, jangan sertakan informasi sensitif dalam parameter pipeline atau bidang definisi langkah apa pun (seperti variabel lingkungan). Bidang ini akan terlihat di masa depan saat dikembalikan dalam `DescribePipeline` permintaan.

```
from sagemaker.workflow.pipeline import Pipeline
  
  pipeline_name = f"AbalonePipeline"
  pipeline = Pipeline(
      name=pipeline_name,
      parameters=[
          processing_instance_type, 
          processing_instance_count,
          training_instance_type,
          model_approval_status,
          input_data,
          batch_data,
      ],
      steps=[step_process, step_train, step_eval, step_cond],
  )
```

## Eksekusi Pipeline menggunakan Konfigurasi Paralelisme
<a name="build-and-manage-pipeline-execution"></a>

Secara default, pipeline melakukan semua langkah yang tersedia untuk dijalankan secara paralel. Anda dapat mengontrol perilaku ini dengan menggunakan `ParallelismConfiguration` properti saat membuat atau memperbarui pipeline, serta saat memulai atau mencoba ulang eksekusi pipeline. 

Konfigurasi paralelisme diterapkan per eksekusi. Misalnya, jika dua eksekusi dimulai, mereka masing-masing dapat menjalankan maksimum 50 langkah secara bersamaan, dengan total 100 langkah yang berjalan secara bersamaan. Juga, `ParallelismConfiguration` yang ditentukan saat memulai, mencoba kembali, atau memperbarui eksekusi lebih diutamakan daripada konfigurasi paralelisme yang ditentukan dalam pipeline.

**Example Membuat eksekusi pipeline dengan `ParallelismConfiguration`**  

```
pipeline = Pipeline(
        name="myPipeline",
        steps=[step_process, step_train]
    )

  pipeline.create(role, parallelism_config={"MaxParallelExecutionSteps": 50})
```

# Manajemen Akses IAM
<a name="build-and-manage-access"></a>

Bagian berikut menjelaskan persyaratan AWS Identity and Access Management (IAM) untuk Amazon SageMaker Pipelines. Untuk contoh bagaimana Anda dapat menerapkan izin ini, lihat[Prasyarat](define-pipeline.md#define-pipeline-prereq).

**Topics**
+ [Izin Peran Pipeline](#build-and-manage-role-permissions)
+ [Izin Langkah Pipeline](#build-and-manage-step-permissions)
+ [Konfigurasi CORS dengan bucket Amazon S3](#build-and-manage-cors-s3)
+ [Sesuaikan manajemen akses untuk pekerjaan Pipelines](#build-and-manage-step-permissions-prefix)
+ [Sesuaikan akses ke versi pipeline](#build-and-manage-step-permissions-version)
+ [Kebijakan Kontrol Layanan dengan Pipa](#build-and-manage-scp)

## Izin Peran Pipeline
<a name="build-and-manage-role-permissions"></a>

Pipeline Anda memerlukan peran eksekusi pipeline IAM yang diteruskan ke Pipelines saat Anda membuat pipeline. Peran instans SageMaker AI yang Anda gunakan untuk membuat pipeline harus memiliki kebijakan dengan `iam:PassRole` izin yang menentukan peran eksekusi pipeline. Ini karena instans memerlukan izin untuk meneruskan peran eksekusi pipeline Anda ke layanan Pipelines untuk digunakan dalam membuat dan menjalankan pipeline. Untuk informasi selengkapnya tentang peran IAM, lihat Peran [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).

Peran eksekusi pipeline Anda memerlukan izin berikut:
+ Anda dapat menggunakan peran unik atau khusus untuk setiap langkah pekerjaan SageMaker AI di pipeline Anda (bukan peran eksekusi pipeline, yang digunakan secara default). Pastikan peran eksekusi pipeline Anda telah menambahkan kebijakan dengan `iam:PassRole` izin yang menentukan masing-masing peran ini.
+  `Create`dan `Describe` izin untuk masing-masing jenis pekerjaan di pipeline. 
+  Izin Amazon S3 untuk menggunakan fungsi tersebut. `JsonGet` Anda mengontrol akses ke sumber daya Amazon S3 menggunakan kebijakan berbasis sumber daya dan kebijakan berbasis identitas. Kebijakan berbasis sumber daya diterapkan pada bucket Amazon S3 Anda dan memberikan akses Pipelines ke bucket. Kebijakan berbasis identitas memberi pipeline kemampuan untuk melakukan panggilan Amazon S3 dari akun Anda. [Untuk informasi selengkapnya tentang kebijakan berbasis sumber daya dan kebijakan berbasis identitas, lihat Kebijakan berbasis identitas dan kebijakan berbasis sumber daya.](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) 

  ```
  {
      "Action": [
          "s3:GetObject"
      ],
      "Resource": "arn:aws:s3:::<your-bucket-name>/*",
      "Effect": "Allow"
  }
  ```

## Izin Langkah Pipeline
<a name="build-and-manage-step-permissions"></a>

Pipelines mencakup langkah-langkah yang menjalankan pekerjaan SageMaker AI. Agar langkah pipeline dapat menjalankan pekerjaan ini, mereka memerlukan peran IAM di akun Anda yang menyediakan akses untuk sumber daya yang dibutuhkan. Peran ini diteruskan ke kepala layanan SageMaker AI oleh pipeline Anda. Untuk informasi selengkapnya tentang peran IAM, lihat Peran [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). 

Secara default, setiap langkah mengambil peran eksekusi pipeline. Anda secara opsional dapat meneruskan peran yang berbeda ke salah satu langkah dalam pipeline Anda. Ini memastikan bahwa kode di setiap langkah tidak memiliki kemampuan untuk memengaruhi sumber daya yang digunakan dalam langkah lain kecuali ada hubungan langsung antara dua langkah yang ditentukan dalam definisi pipeline. Anda melewati peran ini saat mendefinisikan prosesor atau estimator untuk langkah Anda. Untuk contoh cara memasukkan peran ini dalam definisi ini, lihat dokumentasi [SageMaker AI Python SDK](https://sagemaker.readthedocs.io/en/stable/overview.html#using-estimators). 

## Konfigurasi CORS dengan bucket Amazon S3
<a name="build-and-manage-cors-s3"></a>

Untuk memastikan gambar Anda diimpor ke Pipelines dari bucket Amazon S3 dengan cara yang dapat diprediksi, konfigurasi CORS harus ditambahkan ke bucket Amazon S3 tempat gambar diimpor. Bagian ini memberikan petunjuk tentang cara menyetel konfigurasi CORS yang diperlukan ke bucket Amazon S3 Anda. XHTML yang `CORSConfiguration` diperlukan untuk Pipelines berbeda dari yang ada di[Persyaratan CORS untuk Data Gambar Input](sms-cors-update.md), jika tidak, Anda dapat menggunakan informasi di sana untuk mempelajari lebih lanjut tentang persyaratan CORS dengan bucket Amazon S3.

Gunakan kode konfigurasi CORS berikut untuk bucket Amazon S3 yang meng-host gambar Anda. Untuk petunjuk cara mengonfigurasi CORS, lihat [Mengonfigurasi berbagi sumber daya lintas asal (CORS) di Panduan Pengguna Layanan](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-cors-configuration.html) Penyimpanan Sederhana Amazon. Jika Anda menggunakan konsol Amazon S3 untuk menambahkan kebijakan ke bucket, Anda harus menggunakan format JSON.

**JSON**

```
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "Access-Control-Allow-Origin"
        ]
    }
]
```

**XML-XM**

```
<CORSConfiguration>
 <CORSRule>
   <AllowedHeader>*</AllowedHeader>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>PUT</AllowedMethod>
   <ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
 </CORSRule>
</CORSConfiguration>
```

GIF berikut menunjukkan petunjuk yang ditemukan dalam dokumentasi Amazon S3 untuk menambahkan kebijakan header CORS menggunakan konsol Amazon S3.

![\[Gif tentang cara menambahkan kebijakan header CORS menggunakan konsol Amazon S3.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/sms/gifs/cors-config.gif)


## Sesuaikan manajemen akses untuk pekerjaan Pipelines
<a name="build-and-manage-step-permissions-prefix"></a>

Anda dapat menyesuaikan kebijakan IAM lebih lanjut sehingga anggota yang dipilih di organisasi Anda dapat menjalankan salah satu atau semua langkah pipeline. Misalnya, Anda dapat memberikan izin kepada pengguna tertentu untuk membuat pekerjaan pelatihan, dan grup pengguna lain izin untuk membuat pekerjaan pemrosesan, dan semua pengguna Anda mengizinkan untuk menjalankan langkah-langkah yang tersisa. Untuk menggunakan fitur ini, Anda memilih string kustom yang awalan nama pekerjaan Anda. Admin Anda menambahkan awalan yang diizinkan ARNs dengan awalan sementara ilmuwan data Anda menyertakan awalan ini dalam instantiasi pipeline. Karena kebijakan IAM untuk pengguna yang diizinkan berisi ARN pekerjaan dengan awalan yang ditentukan, pekerjaan berikutnya dari langkah pipeline Anda memiliki izin yang diperlukan untuk melanjutkan. Awalan Job tidak aktif secara default—Anda harus mengaktifkan opsi ini di kelas Anda untuk menggunakannya. `Pipeline` 

Untuk pekerjaan dengan awalan dimatikan, nama pekerjaan diformat seperti yang ditunjukkan dan merupakan rangkaian bidang yang dijelaskan dalam tabel berikut:

`pipelines-<executionId>-<stepNamePrefix>-<entityToken>-<failureCount>`


| Bidang | Definisi | 
| --- | --- | 
|  jaringan pipa   |  String statis selalu diawali. String ini mengidentifikasi layanan orkestrasi pipeline sebagai sumber pekerjaan.  | 
|  ExecutionID  |  Buffer acak untuk instance pipeline yang sedang berjalan.  | 
|  stepNamePrefix  |  Nama langkah yang ditentukan pengguna (diberikan dalam `name` argumen langkah pipeline), terbatas pada 20 karakter pertama.  | 
|  EntityToken  |  Token acak untuk memastikan idempotensi entitas langkah.  | 
|  FailureCount  |  Jumlah percobaan ulang saat ini berusaha menyelesaikan pekerjaan.  | 

Dalam hal ini, tidak ada awalan khusus yang ditambahkan ke nama pekerjaan, dan kebijakan IAM yang sesuai harus cocok dengan string ini.

Untuk pengguna yang mengaktifkan awalan pekerjaan, nama pekerjaan yang mendasarinya mengambil formulir berikut, dengan awalan kustom ditentukan sebagai: `MyBaseJobName`

*<MyBaseJobName>*-*<executionId>*-*<entityToken>*-*<failureCount>*

Awalan kustom menggantikan `pipelines` string statis untuk membantu Anda mempersempit pilihan pengguna yang dapat menjalankan pekerjaan SageMaker AI sebagai bagian dari pipeline.

**Pembatasan panjang awalan**

Nama pekerjaan memiliki batasan panjang internal khusus untuk masing-masing langkah pipa. Kendala ini juga membatasi panjang awalan yang diizinkan. Persyaratan panjang awalan adalah sebagai berikut:


| Langkah pipa | Panjang awalan | 
| --- | --- | 
|   `[TrainingStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#trainingstep)`, `[ModelStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#step-collections)`, `[TransformStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#transformstep)`, `[ProcessingStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#processingstep)`, `[ClarifyCheckStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#clarifycheckstep)`, `[QualityCheckStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#qualitycheckstep)`, `[RegisterModelStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#step-collections)`   |  38  | 
|  `[TuningStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#tuningstep)`, `[AutoML](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#automlstep)`  |  6  | 

### Terapkan awalan pekerjaan ke kebijakan IAM
<a name="build-and-manage-step-permissions-prefix-iam"></a>

Admin Anda membuat kebijakan IAM yang memungkinkan pengguna awalan tertentu untuk membuat pekerjaan. Contoh kebijakan berikut memungkinkan ilmuwan data untuk membuat pekerjaan pelatihan jika mereka menggunakan `MyBaseJobName` awalan. 

```
{
    "Action": "sagemaker:CreateTrainingJob",
    "Effect": "Allow",
    "Resource": [
        "arn:aws:sagemaker:region:account-id:*/MyBaseJobName-*"
    ]
}
```

### Terapkan awalan pekerjaan ke instantiasi pipeline
<a name="build-and-manage-step-permissions-prefix-inst"></a>

Anda menentukan awalan Anda dengan `*base_job_name` argumen kelas instance pekerjaan.

**catatan**  
Anda meneruskan awalan pekerjaan Anda dengan `*base_job_name` argumen ke instance pekerjaan sebelum membuat langkah pipeline. Contoh pekerjaan ini berisi informasi yang diperlukan agar pekerjaan dapat dijalankan sebagai langkah dalam pipeline. Argumen ini bervariasi tergantung pada instance pekerjaan yang digunakan. Daftar berikut menunjukkan argumen mana yang akan digunakan untuk setiap jenis langkah pipeline:  
`base_job_name`untuk kelas `[Estimator](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html)` (`[TrainingStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#trainingstep)`), `[Processor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html)` (`[ProcessingStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#processingstep)`), dan `[AutoML](https://sagemaker.readthedocs.io/en/stable/api/training/automl.html)` (`[AutoMLStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#automlstep)`)
`tuning_base_job_name`untuk `[Tuner](https://sagemaker.readthedocs.io/en/stable/api/training/tuner.html)` kelas (`[TuningStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#tuningstep)`)
`transform_base_job_name`untuk `[Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html)` kelas (`[TransformStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#transformstep)`)
`base_job_name``[CheckJobConfig](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#checkjobconfig)`untuk kelas `[QualityCheckStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#qualitycheckstep)` (Quality Check) dan `[ClarifyCheckstep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#clarifycheckstep)` (Clarify Check)
Untuk `[Model](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html)` kelas, argumen yang digunakan tergantung pada apakah Anda menjalankan `create` atau `register` pada model Anda sebelum meneruskan hasilnya ke `[ModelStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#step-collections)`  
Jika Anda memanggil`create`, awalan kustom berasal dari `name` argumen saat Anda membuat model Anda (yaitu,) `Model(name=)`
Jika Anda menelepon`register`, awalan kustom berasal dari `model_package_name` argumen panggilan Anda ke `register` (yaitu,`my_model.register(model_package_name=)`)

Contoh berikut menunjukkan cara menentukan awalan untuk instance pekerjaan pelatihan baru.

```
# Create a job instance
xgb_train = Estimator(
    image_uri=image_uri,
    instance_type="ml.m5.xlarge",
    instance_count=1,
    output_path=model_path,
    role=role,
    subnets=["subnet-0ab12c34567de89f0"],
    base_job_name="MyBaseJobName"
    security_group_ids=["sg-1a2bbcc3bd4444e55"],
    tags = [ ... ]
    encrypt_inter_container_traffic=True, 
)

# Attach your job instance to a pipeline step
step_train = TrainingStep(
    name="TestTrainingJob",
    estimator=xgb_train, 
    inputs={
        "train": TrainingInput(...), 
        "validation": TrainingInput(...) 
    }
)
```

Awalan Job tidak aktif secara default. Untuk memilih fitur ini, gunakan `use_custom_job_prefix` opsi `PipelineDefinitionConfig` seperti yang ditunjukkan pada cuplikan berikut:

```
from sagemaker.workflow.pipeline_definition_config import PipelineDefinitionConfig
        
# Create a definition configuration and toggle on custom prefixing
definition_config = PipelineDefinitionConfig(use_custom_job_prefix=True);

# Create a pipeline with a custom prefix
 pipeline = Pipeline(
     name="MyJobPrefixedPipeline",
     parameters=[...]
     steps=[...]
     pipeline_definition_config=definition_config
)
```

Buat dan jalankan pipeline Anda. Contoh berikut membuat dan menjalankan pipeline, dan juga menunjukkan bagaimana Anda dapat mematikan awalan pekerjaan dan menjalankan kembali pipeline Anda.

```
pipeline.create(role_arn=sagemaker.get_execution_role())

# Optionally, call definition() to confirm your prefixed job names are in the built JSON
pipeline.definition()
pipeline.start()
      
# To run a pipeline without custom-prefixes, toggle off use_custom_job_prefix, update the pipeline 
# via upsert() or update(), and start a new run
definition_config = PipelineDefinitionConfig(use_custom_job_prefix=False)
pipeline.pipeline_definition_config = definition_config
pipeline.update()
execution = pipeline.start()
```

Demikian pula, Anda dapat mengaktifkan fitur untuk pipeline yang ada dan memulai proses baru yang menggunakan awalan pekerjaan.

```
definition_config = PipelineDefinitionConfig(use_custom_job_prefix=True)
pipeline.pipeline_definition_config = definition_config
pipeline.update()
execution = pipeline.start()
```

Terakhir, Anda dapat melihat pekerjaan yang diawali khusus dengan memanggil eksekusi `list_steps` pipeline.

```
steps = execution.list_steps()

prefixed_training_job_name = steps['PipelineExecutionSteps'][0]['Metadata']['TrainingJob']['Arn']
```

## Sesuaikan akses ke versi pipeline
<a name="build-and-manage-step-permissions-version"></a>

Anda dapat memberikan akses khusus ke versi Amazon SageMaker Pipelines tertentu dengan menggunakan kunci `sagemaker:PipelineVersionId` kondisi. Misalnya, kebijakan di bawah ini memberikan akses untuk memulai eksekusi atau memperbarui versi pipeline hanya untuk ID versi 6 ke atas.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "AllowStartPipelineExecution",
        "Effect": "Allow",
        "Action": [
            "sagemaker:StartPipelineExecution",
            "sagemaker:UpdatePipelineVersion"
        ],
        "Resource": "*",
        "Condition": {
            "NumericGreaterThanEquals": {
                "sagemaker:PipelineVersionId": 6
            }
        }
    }
}
```

------

Untuk informasi selengkapnya tentang kunci kondisi yang didukung, lihat [Kunci kondisi untuk Amazon SageMaker AI](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-policy-keys).

## Kebijakan Kontrol Layanan dengan Pipa
<a name="build-and-manage-scp"></a>

Kebijakan kontrol layanan (SCPs) adalah jenis kebijakan organisasi yang dapat Anda gunakan untuk mengelola izin di organisasi Anda. SCPs menawarkan kontrol pusat atas izin maksimum yang tersedia untuk semua akun di organisasi Anda. Dengan menggunakan Pipelines dalam organisasi Anda, Anda dapat memastikan bahwa ilmuwan data mengelola eksekusi pipeline Anda tanpa harus berinteraksi dengan konsol. AWS  

Jika Anda menggunakan VPC dengan SCP yang membatasi akses ke Amazon S3, Anda perlu mengambil langkah-langkah untuk mengizinkan pipeline mengakses sumber daya Amazon S3 lainnya. 

Untuk mengizinkan Pipelines mengakses Amazon S3 di luar VPC Anda dengan fungsi `JsonGet` tersebut, perbarui SCP organisasi Anda untuk memastikan bahwa peran yang menggunakan Pipelines dapat mengakses Amazon S3. Untuk melakukan ini, buat pengecualian untuk peran yang digunakan oleh pelaksana Pipelines melalui peran eksekusi pipeline menggunakan tag utama dan kunci kondisi. 

**Untuk mengizinkan Pipelines mengakses Amazon S3 di luar VPC Anda**

1. Buat tag unik untuk peran eksekusi pipeline Anda mengikuti langkah-langkah dalam [Menandai pengguna dan peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html). 

1. Berikan pengecualian di SCP Anda menggunakan kunci `Aws:PrincipalTag IAM` kondisi untuk tag yang Anda buat. Untuk informasi selengkapnya, lihat [Membuat, memperbarui, dan menghapus kebijakan kontrol layanan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html). 

# Menyiapkan dukungan lintas akun untuk Pipelines
<a name="build-and-manage-xaccount"></a>

Dukungan lintas akun untuk Amazon SageMaker Pipelines memungkinkan Anda berkolaborasi dalam pipeline pembelajaran mesin dengan tim atau organisasi lain yang beroperasi di akun berbeda. AWS Dengan menyiapkan berbagi pipeline lintas akun, Anda dapat memberikan akses terkontrol ke pipeline, mengizinkan akun lain untuk melihat detail pipeline, memicu eksekusi, dan memantau proses. Topik berikut mencakup cara mengatur berbagi pipeline lintas akun, berbagai kebijakan izin yang tersedia untuk sumber daya bersama, dan cara mengakses dan berinteraksi dengan entitas pipeline bersama melalui panggilan API langsung ke SageMaker AI.

## Siapkan berbagi saluran lintas akun
<a name="build-and-manage-xaccount-set-up"></a>

SageMaker AI menggunakan [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) (AWS RAM) untuk membantu Anda berbagi entitas pipeline dengan aman di seluruh akun. 

### Buat berbagi sumber daya
<a name="build-and-manage-xaccount-set-up-console"></a>

1. Pilih **Buat berbagi sumber daya** melalui [AWS RAM konsol](https://console.aws.amazon.com/ram/home).

1. Saat menentukan detail berbagi sumber daya, pilih jenis sumber daya Pipelines dan pilih satu atau beberapa saluran pipa yang ingin Anda bagikan. Saat Anda berbagi pipeline dengan akun lain, semua eksekusinya juga dibagikan secara implisit.

1. Kaitkan izin dengan pembagian sumber daya Anda. Pilih kebijakan izin hanya-baca default atau kebijakan izin eksekusi pipeline yang diperluas. Untuk informasi selengkapnya, lihat [Kebijakan izin untuk sumber daya Pipelines](#build-and-manage-xaccount-permissions). 
**catatan**  
Jika Anda memilih kebijakan eksekusi pipeline yang diperluas, perhatikan bahwa perintah start, stop, dan retry yang dipanggil oleh akun bersama menggunakan sumber daya di AWS akun yang berbagi pipeline.

1. Gunakan AWS akun IDs untuk menentukan akun yang ingin Anda berikan akses ke sumber daya bersama Anda.

1. Tinjau konfigurasi berbagi sumber daya Anda dan pilih **Buat berbagi sumber daya**. Mungkin diperlukan beberapa menit untuk pembagian sumber daya dan asosiasi utama untuk menyelesaikannya.

Untuk informasi selengkapnya, lihat [Berbagi AWS sumber daya Anda](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html) di *Panduan Pengguna AWS Resource Access Manager*.

### Dapatkan tanggapan atas undangan berbagi sumber daya Anda
<a name="build-and-manage-xaccount-set-up-responses"></a>

Setelah pembagian sumber daya dan asosiasi utama ditetapkan, AWS akun yang ditentukan menerima undangan untuk bergabung dengan pembagian sumber daya. AWS Akun harus menerima undangan untuk mendapatkan akses ke sumber daya bersama.

Untuk informasi selengkapnya tentang menerima undangan berbagi sumber daya AWS RAM, lihat [Menggunakan AWS sumber daya bersama](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-shared.html) di *Panduan Pengguna AWS Resource Access Manager*.

## Kebijakan izin untuk sumber daya Pipelines
<a name="build-and-manage-xaccount-permissions"></a>

Saat membuat pembagian sumber daya, pilih salah satu dari dua kebijakan izin yang didukung untuk dikaitkan dengan jenis sumber daya saluran SageMaker AI. Kedua kebijakan tersebut memberikan akses ke saluran pipa yang dipilih dan semua pelaksanaannya. 

### Izin hanya-baca default
<a name="build-and-manage-xaccount-permissions-default"></a>

`AWSRAMDefaultPermissionSageMakerPipeline`Kebijakan ini memungkinkan tindakan hanya-baca berikut:

```
"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"   
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:Search"
```

### Izin eksekusi pipa yang diperluas
<a name="build-and-manage-xaccount-permissions-extended"></a>

`AWSRAMPermissionSageMakerPipelineAllowExecution`Kebijakan ini mencakup semua izin hanya-baca dari kebijakan default dan juga memungkinkan akun bersama untuk memulai, menghentikan, dan mencoba lagi eksekusi pipeline.

**catatan**  
Perhatikan penggunaan AWS sumber daya saat menggunakan kebijakan izin eksekusi pipeline yang diperluas. Dengan kebijakan ini, akun bersama diizinkan untuk memulai, menghentikan, dan mencoba lagi eksekusi pipeline. Sumber daya apa pun yang digunakan untuk eksekusi pipa bersama dikonsumsi oleh akun pemilik. 

Kebijakan izin eksekusi pipeline yang diperluas memungkinkan tindakan berikut:

```
"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"   
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:StartPipelineExecution"
"sagemaker:StopPipelineExecution"
"sagemaker:RetryPipelineExecution"
"sagemaker:Search"
```

## Akses entitas pipeline bersama melalui panggilan API langsung
<a name="build-and-manage-xaccount-api-calls"></a>

Setelah berbagi pipeline lintas akun disiapkan, Anda dapat memanggil tindakan SageMaker API berikut menggunakan ARN pipeline:

**catatan**  
Anda hanya dapat memanggil perintah API jika perintah tersebut disertakan dalam izin yang terkait dengan pembagian sumber daya Anda. Jika Anda memilih `AWSRAMPermissionSageMakerPipelineAllowExecution` kebijakan, perintah mulai, berhenti, dan coba lagi menggunakan sumber daya di AWS akun yang membagikan pipeline.
+ [DescribePipeline](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribePipeline.html)
+ [DescribePipelineDefinitionForExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribePipelineDefinitionForExecution.html)
+ [DescribePipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribePipelineExecution.html)
+ [ListPipelineExecutions](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListPipelineExecutions.html)
+ [ListPipelineExecutionSteps](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListPipelineExecutionSteps.html)
+ [ListPipelineParametersForExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListPipelineParametersForExecution.html)
+ [StartPipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StartPipelineExecution.html)
+ [StopPipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopPipelineExecution.html)
+ [RetryPipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RetryPipelineExecution.html)

# Parameter pipa
<a name="build-and-manage-parameters"></a>

Anda dapat memasukkan variabel ke dalam definisi pipeline Anda menggunakan parameter. Anda dapat mereferensikan parameter yang Anda tentukan di seluruh definisi pipeline Anda. Parameter memiliki nilai default, yang dapat Anda timpa dengan menentukan nilai parameter saat memulai eksekusi pipeline. Nilai default harus berupa instance yang cocok dengan tipe parameter. Semua parameter yang digunakan dalam definisi langkah harus didefinisikan dalam definisi pipeline Anda. Topik ini menjelaskan parameter yang dapat Anda tentukan dan cara menerapkannya.

Amazon SageMaker Pipelines mendukung jenis parameter berikut: 
+  `ParameterString`— Mewakili parameter string. 
+  `ParameterInteger`— Mewakili parameter integer. 
+  `ParameterFloat`— Mewakili parameter float.
+  `ParameterBoolean`— Mewakili tipe Boolean Python.

Parameter mengambil format berikut:

```
<parameter> = <parameter_type>(
    name="<parameter_name>",
    default_value=<default_value>
)
```

Contoh berikut menunjukkan implementasi parameter sampel.

```
from sagemaker.workflow.parameters import (
    ParameterInteger,
    ParameterString,
    ParameterFloat,
    ParameterBoolean
)

processing_instance_count = ParameterInteger(
    name="ProcessingInstanceCount",
    default_value=1
)
```

Anda meneruskan parameter saat membuat pipeline Anda seperti yang ditunjukkan pada contoh berikut.

```
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[
        processing_instance_count
    ],
    steps=[step_process]
)
```

Anda juga dapat meneruskan nilai parameter yang berbeda dari nilai default ke eksekusi pipeline, seperti yang ditunjukkan pada contoh berikut.

```
execution = pipeline.start(
    parameters=dict(
        ProcessingInstanceCount="2",
        ModelApprovalStatus="Approved"
    )
)
```

Anda dapat memanipulasi parameter dengan fungsi SageMaker Python SDK seperti. `[ sagemaker.workflow.functions.Join](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.functions.Join)` Untuk informasi selengkapnya tentang parameter, lihat [Parameter SageMaker Pipelines](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#parameters).

Untuk batasan Parameter Pipelines yang diketahui, lihat *[Batasan - Parameterisasi](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#parameterization)* di Amazon [Python SageMaker ](https://sagemaker.readthedocs.io/en/stable) SDK.

# Langkah-langkah saluran pipa
<a name="build-and-manage-steps"></a>

Pipa terdiri dari langkah-langkah. Langkah-langkah ini menentukan tindakan yang diambil pipeline dan hubungan antara langkah-langkah menggunakan properti. Halaman berikut menjelaskan jenis langkah, propertinya, dan hubungan di antara mereka.

**Topics**
+ [Tambahkan langkah](build-and-manage-steps-types.md)
+ [Tambahkan integrasi](build-and-manage-steps-integration.md)
+ [Properti langkah](#build-and-manage-properties)
+ [Paralelisme langkah](#build-and-manage-parallelism)
+ [Ketergantungan data antar langkah](#build-and-manage-data-dependency)
+ [Ketergantungan khusus antar langkah](#build-and-manage-custom-dependency)
+ [Gambar khusus dalam satu langkah](#build-and-manage-images)

# Tambahkan langkah
<a name="build-and-manage-steps-types"></a>

Berikut ini menjelaskan persyaratan dari setiap jenis langkah dan memberikan contoh implementasi langkah, serta cara menambahkan langkah ke Pipelines. Ini bukan implementasi yang berfungsi karena mereka tidak menyediakan sumber daya dan input yang dibutuhkan. Untuk tutorial yang mengimplementasikan langkah-langkah ini, lihat[Tindakan saluran pipa](pipelines-build.md).

**catatan**  
Anda juga dapat membuat langkah dari kode pembelajaran mesin lokal Anda dengan mengubahnya menjadi langkah Pipelines dengan dekorator. `@step` Untuk informasi selengkapnya, lihat [@step dekorator](#step-type-custom).

Amazon SageMaker Pipelines mendukung jenis langkah berikut:
+ [Jalankan kode](#step-type-executecode)

  [Pemrosesan](#step-type-processing)
+ [Pelatihan](#step-type-training)
+ [Tuning](#step-type-tuning)
+ [AutoML](#step-type-automl)
+ [`Model`](#step-type-model)
+ [`Create model`](#step-type-create-model)
+ [`Register model`](#step-type-register-model)
+ [`Deploy model (endpoint)`](#step-type-deploy-model-endpoint)
+ [Transformasi](#step-type-transform)
+ [Kondisi](#step-type-condition)
+ [`Callback`](#step-type-callback)
+ [Lambda](#step-type-lambda)
+ [`ClarifyCheck`](#step-type-clarify-check)
+ [`QualityCheck`](#step-type-quality-check)
+ [EMR](#step-type-emr)
+ [Job Notebook](#step-type-notebook-job)
+ [Gagal](#step-type-fail)

## @step dekorator
<a name="step-type-custom"></a>

Jika Anda ingin mengatur pekerjaan ML khusus yang memanfaatkan fitur SageMaker AI tingkat lanjut atau AWS layanan lain di UI drag-and-drop Pipelines, gunakan. [Jalankan langkah kode](#step-type-executecode)

Anda dapat membuat langkah dari kode pembelajaran mesin lokal menggunakan `@step` dekorator. Setelah menguji kode, Anda dapat mengonversi fungsi menjadi langkah pipeline SageMaker AI dengan membubuhi keterangan dengan dekorator. `@step` Pipelines membuat dan menjalankan pipa ketika Anda melewati output dari fungsi `@step` -decorated sebagai langkah ke pipeline Anda. Anda juga dapat membuat pipeline DAG multi-langkah yang mencakup satu atau lebih fungsi `@step` yang didekorasi serta langkah-langkah pipa SageMaker AI tradisional. Untuk detail selengkapnya tentang cara membuat langkah dengan `@step` dekorator, lihat[Lift-and-shift Kode Python dengan dekorator @step](pipelines-step-decorator.md).

## Jalankan langkah kode
<a name="step-type-executecode"></a>

Di drag-and-drop UI Pipelines, Anda dapat menggunakan langkah **kode Execute** untuk menjalankan kode Anda sendiri sebagai langkah pipeline. Anda dapat mengunggah fungsi, skrip, atau buku catatan Python untuk dieksekusi sebagai bagian dari pipeline Anda. Anda harus menggunakan langkah ini jika Anda ingin mengatur pekerjaan HTML khusus yang memanfaatkan fitur SageMaker AI canggih atau layanan lainnya. AWS 

Langkah **Execute Code** mengunggah file ke bucket Amazon S3 default Anda untuk Amazon SageMaker AI. Bucket ini mungkin tidak memiliki izin Cross-Origin Resource Sharing (CORS) yang diperlukan. Untuk mempelajari lebih lanjut tentang mengonfigurasi izin CORS, lihat. [Persyaratan CORS untuk Data Gambar Input](sms-cors-update.md)

Langkah **Execute Code** menggunakan pekerjaan SageMaker pelatihan Amazon untuk menjalankan kode Anda. Pastikan peran IAM Anda memiliki izin `sagemaker:CreateTrainingJob` API `sagemaker:DescribeTrainingJob` dan. Untuk mempelajari lebih lanjut tentang semua izin yang diperlukan untuk Amazon SageMaker AI dan cara mengaturnya, lihat[Izin Amazon SageMaker AI API: Tindakan, Izin, dan Referensi Sumber Daya](api-permissions-reference.md).

Untuk menambahkan langkah kode eksekusi ke pipeline menggunakan Pipeline Designer, lakukan hal berikut:

1. Buka konsol Amazon SageMaker Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Pilih **Kosong**.

1. Di bilah sisi kiri, pilih **Jalankan kode** dan seret ke kanvas.

1. Di kanvas, pilih langkah **Execute code** yang Anda tambahkan.

1. Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan** dan **Detail**.

1. Anda dapat mengunggah satu file untuk mengeksekusi atau mengunggah folder terkompresi yang berisi beberapa artefak.

1. Untuk unggahan file tunggal, Anda dapat memberikan parameter opsional untuk notebook, fungsi python, atau skrip.

1. Saat menyediakan fungsi Python, handler harus disediakan dalam format `file.py:<function_name>`

1. Untuk unggahan folder terkompresi, jalur relatif ke kode Anda harus disediakan, dan Anda dapat secara opsional memberikan jalur ke `requirements.txt` file atau skrip inisialisasi di dalam folder terkompresi.

1. Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah **Execute code** yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah **Execute code** untuk membuat edge.

1. Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah **Execute code** yang Anda tambahkan, klik dan seret kursor dari langkah **Execute code** ke langkah untuk membuat edge. Output dari langkah-langkah **kode Execute** dapat direferensikan untuk fungsi Python.

## Langkah pemrosesan
<a name="step-type-processing"></a>

Gunakan langkah pemrosesan untuk membuat pekerjaan pemrosesan untuk pemrosesan data. Untuk informasi selengkapnya tentang pekerjaan pemrosesan, lihat [Memproses Data dan Mengevaluasi Model](https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html).

------
#### [ Pipeline Designer ]

Untuk menambahkan langkah pemrosesan ke pipeline menggunakan Pipeline Designer, lakukan hal berikut:

1. Buka konsol Amazon SageMaker Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Di bilah sisi kiri, pilih **Proses data** dan seret ke kanvas.

1. Di kanvas, pilih langkah **Proses data** yang Anda tambahkan.

1. Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan** dan **Detail**. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.steps. ProcessingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.ProcessingStep).

1. Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah **Proses data** yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah **Proses data** untuk membuat tepi.

1. Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah **Proses data** yang Anda tambahkan, klik dan seret kursor dari langkah **Proses data** ke langkah untuk membuat tepi.

------
#### [ SageMaker Python SDK ]

Langkah pemrosesan membutuhkan prosesor, skrip Python yang mendefinisikan kode pemrosesan, output untuk pemrosesan, dan argumen pekerjaan. Contoh berikut menunjukkan cara membuat `ProcessingStep` definisi. 

```
from sagemaker.sklearn.processing import SKLearnProcessor

sklearn_processor = SKLearnProcessor(framework_version='1.0-1',
                                     role=<role>,
                                     instance_type='ml.m5.xlarge',
                                     instance_count=1)
```

```
from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker.workflow.steps import ProcessingStep

inputs = [
    ProcessingInput(source=<input_data>, destination="/opt/ml/processing/input"),
]

outputs = [
    ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
    ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"),
    ProcessingOutput(output_name="test", source="/opt/ml/processing/test")
]

step_process = ProcessingStep(
    name="AbaloneProcess",
    step_args = sklearn_processor.run(inputs=inputs, outputs=outputs,
        code="abalone/preprocessing.py")
)
```

**Lulus parameter runtime**

Contoh berikut menunjukkan cara meneruskan parameter runtime dari PySpark prosesor ke file. `ProcessingStep`

```
from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.spark.processing import PySparkProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker.workflow.steps import ProcessingStep

pipeline_session = PipelineSession()

pyspark_processor = PySparkProcessor(
    framework_version='2.4',
    role=<role>,
    instance_type='ml.m5.xlarge',
    instance_count=1,
    sagemaker_session=pipeline_session,
)

step_args = pyspark_processor.run(
    inputs=[ProcessingInput(source=<input_data>, destination="/opt/ml/processing/input"),],
    outputs=[
        ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
        ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"),
        ProcessingOutput(output_name="test", source="/opt/ml/processing/test")
    ],
    code="preprocess.py",
    arguments=None,
)


step_process = ProcessingStep(
    name="AbaloneProcess",
    step_args=step_args,
)
```

Untuk informasi selengkapnya tentang persyaratan langkah pemrosesan, lihat [sagemaker.workflow.steps. ProcessingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.ProcessingStep)dokumentasi. Untuk contoh mendalam, lihat buku catatan contoh [Orchestrate Jobs to Train and Evaluate Models with Amazon SageMaker ](https://github.com/aws/amazon-sagemaker-examples/blob/62de6a1fca74c7e70089d77e36f1356033adbe5f/sagemaker-pipelines/tabular/abalone_build_train_deploy/sagemaker-pipelines-preprocess-train-evaluate-batch-transform.ipynb) Pipelines. Bagian *Tentukan Langkah Pemrosesan untuk Rekayasa Fitur* mencakup informasi lebih lanjut.

------

## Langkah pelatihan
<a name="step-type-training"></a>

Anda menggunakan langkah pelatihan untuk membuat pekerjaan pelatihan untuk melatih model. Untuk informasi lebih lanjut tentang pekerjaan pelatihan, lihat [Melatih Model dengan Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html).

Langkah pelatihan membutuhkan estimator, serta input data pelatihan dan validasi.

------
#### [ Pipeline Designer ]

Untuk menambahkan langkah pelatihan ke pipeline menggunakan Pipeline Designer, lakukan hal berikut:

1. Buka konsol Amazon SageMaker Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Pilih **Kosong**.

1. Di sidebar kiri, pilih **Train model** dan seret ke kanvas.

1. Di kanvas, pilih langkah **model Kereta** yang Anda tambahkan.

1. Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan** dan **Detail**. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.steps. TrainingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TrainingStep).

1. Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah **model Kereta** yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah **model Kereta** untuk membuat tepi.

1. Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah **model Kereta** yang Anda tambahkan, klik dan seret kursor dari langkah **model Kereta** ke langkah untuk membuat tepi.

------
#### [ SageMaker Python SDK ]

Contoh berikut menunjukkan cara membuat `TrainingStep` definisi. Untuk informasi selengkapnya tentang persyaratan langkah pelatihan, lihat [sagemaker.workflow.steps. TrainingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TrainingStep)dokumentasi.

```
from sagemaker.workflow.pipeline_context import PipelineSession

from sagemaker.inputs import TrainingInput
from sagemaker.workflow.steps import TrainingStep

from sagemaker.xgboost.estimator import XGBoost

pipeline_session = PipelineSession()

xgb_estimator = XGBoost(..., sagemaker_session=pipeline_session)

step_args = xgb_estimator.fit(
    inputs={
        "train": TrainingInput(
            s3_data=step_process.properties.ProcessingOutputConfig.Outputs[
                "train"
            ].S3Output.S3Uri,
            content_type="text/csv"
        ),
        "validation": TrainingInput(
            s3_data=step_process.properties.ProcessingOutputConfig.Outputs[
                "validation"
            ].S3Output.S3Uri,
            content_type="text/csv"
        )
    }
)

step_train = TrainingStep(
    name="TrainAbaloneModel",
    step_args=step_args,
)
```

------

## Langkah penyetelan
<a name="step-type-tuning"></a>

Anda menggunakan langkah tuning untuk membuat pekerjaan tuning hyperparameter, juga dikenal sebagai optimasi hyperparameter (HPO). Pekerjaan tuning hyperparameter menjalankan beberapa pekerjaan pelatihan, dengan setiap pekerjaan menghasilkan versi model. Untuk informasi lebih lanjut tentang penyetelan hyperparameter, lihat. [Penyetelan model otomatis dengan AI SageMaker](automatic-model-tuning.md)

Pekerjaan penyetelan dikaitkan dengan eksperimen SageMaker AI untuk pipa, dengan pekerjaan pelatihan yang dibuat sebagai uji coba. Untuk informasi selengkapnya, lihat [Integrasi Eksperimen](pipelines-experiments.md).

Langkah penyetelan membutuhkan input [HyperparameterTuner](https://sagemaker.readthedocs.io/en/stable/api/training/tuner.html)dan pelatihan. Anda dapat melatih kembali pekerjaan penyetelan sebelumnya dengan menentukan `warm_start_config` parameter. `HyperparameterTuner` Untuk informasi lebih lanjut tentang penyetelan hyperparameter dan start hangat, lihat. [Jalankan Pekerjaan Tuning Hyperparameter Mulai yang Hangat](automatic-model-tuning-warm-start.md)

[Anda menggunakan metode [get\$1top\$1model\$1s3\$1uri dari sagemaker.workflow.steps](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TuningStep.get_top_model_s3_uri). TuningStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TuningStep)kelas untuk mendapatkan artefak model dari salah satu versi model berkinerja terbaik. Untuk notebook yang menunjukkan cara menggunakan langkah penyetelan dalam pipeline SageMaker AI, lihat [sagemaker-pipelines-tuning-step.ipynb](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-pipelines/tabular/tuning-step/sagemaker-pipelines-tuning-step.ipynb).

**penting**  
Langkah-langkah penyetelan diperkenalkan di Amazon SageMaker Python SDK v2.48.0 dan Amazon Studio Classic v3.8.0. SageMaker Anda harus memperbarui Studio Classic sebelum menggunakan langkah penyetelan atau DAG pipeline tidak ditampilkan. Untuk memperbarui Studio Classic, lihat[Matikan dan Perbarui Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

Contoh berikut menunjukkan cara membuat `TuningStep` definisi.

```
from sagemaker.workflow.pipeline_context import PipelineSession

from sagemaker.tuner import HyperparameterTuner
from sagemaker.inputs import TrainingInput
from sagemaker.workflow.steps import TuningStep

tuner = HyperparameterTuner(..., sagemaker_session=PipelineSession())
    
step_tuning = TuningStep(
    name = "HPTuning",
    step_args = tuner.fit(inputs=TrainingInput(s3_data="s3://amzn-s3-demo-bucket/my-data"))
)
```

**Dapatkan versi model terbaik**

Contoh berikut menunjukkan cara mendapatkan versi model terbaik dari pekerjaan penyetelan menggunakan `get_top_model_s3_uri` metode ini. Paling-paling, 50 versi berkinerja teratas tersedia berdasarkan peringkat [HyperParameterTuningJobObjective](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobObjective.html). `top_k`Argumennya adalah indeks ke dalam versi, di mana `top_k=0` versi berkinerja terbaik dan `top_k=49` merupakan versi berkinerja terburuk.

```
best_model = Model(
    image_uri=image_uri,
    model_data=step_tuning.get_top_model_s3_uri(
        top_k=0,
        s3_bucket=sagemaker_session.default_bucket()
    ),
    ...
)
```

Untuk informasi selengkapnya tentang persyaratan langkah penyetelan, lihat [sagemaker.workflow.steps. TuningStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TuningStep)dokumentasi.

## Langkah fine-tuning
<a name="step-type-fine-tuning"></a>

Fine-tuning melatih model fondasi terlatih dari Amazon SageMaker JumpStart pada dataset baru. Proses ini, juga dikenal sebagai pembelajaran transfer, dapat menghasilkan model yang akurat dengan kumpulan data yang lebih kecil dan waktu pelatihan yang lebih sedikit. Saat Anda menyempurnakan model, Anda dapat menggunakan kumpulan data default atau memilih data Anda sendiri. Untuk mempelajari lebih lanjut tentang menyempurnakan model pondasi dari JumpStart, lihat. [Sempurnakan Model](jumpstart-fine-tune.md)

Langkah fine-tuning menggunakan pekerjaan SageMaker pelatihan Amazon untuk menyesuaikan model Anda. Pastikan peran IAM Anda memiliki izin `sagemaker:CreateTrainingJob` API `sagemaker:DescribeTrainingJob` dan untuk menjalankan tugas fine-tuning di pipeline Anda. Untuk mempelajari lebih lanjut tentang izin yang diperlukan untuk Amazon SageMaker AI dan cara mengaturnya, lihat[Izin Amazon SageMaker AI API: Tindakan, Izin, dan Referensi Sumber Daya](api-permissions-reference.md).

Untuk menambahkan langkah **model Fine-tune** ke pipeline Anda menggunakan drag-and-drop editor, ikuti langkah-langkah berikut:

1. Buka konsol Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Pilih **Kosong**.

1. Di bilah sisi kiri, pilih **Fine-tune model** dan seret ke kanvas.

1. Di kanvas, pilih langkah **model Fine-tune** yang Anda tambahkan.

1. Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan** dan **Detail**.

1. Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah **model Fine-tune** yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah **model Fine-tune** untuk membuat tepi.

1. Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah **model Fine-tune** yang Anda tambahkan, klik dan seret kursor dari langkah **model Fine-tune** ke langkah untuk membuat tepi.

## Langkah AutoML
<a name="step-type-automl"></a>

Gunakan [AutoML](https://sagemaker.readthedocs.io/en/stable/api/training/automl.html) API untuk membuat pekerjaan AutoML untuk melatih model secara otomatis. Untuk informasi selengkapnya tentang pekerjaan AutoML, lihat [Mengotomatiskan pengembangan model dengan Amazon Autopilot](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html). SageMaker 

**catatan**  
Saat ini, langkah AutoML hanya mendukung mode pelatihan [ensembling](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html).

Contoh berikut menunjukkan cara membuat definisi menggunakan`AutoMLStep`.

```
from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.workflow.automl_step import AutoMLStep

pipeline_session = PipelineSession()

auto_ml = AutoML(...,
    role="<role>",
    target_attribute_name="my_target_attribute_name",
    mode="ENSEMBLING",
    sagemaker_session=pipeline_session) 

input_training = AutoMLInput(
    inputs="s3://amzn-s3-demo-bucket/my-training-data",
    target_attribute_name="my_target_attribute_name",
    channel_type="training",
)
input_validation = AutoMLInput(
    inputs="s3://amzn-s3-demo-bucket/my-validation-data",
    target_attribute_name="my_target_attribute_name",
    channel_type="validation",
)

step_args = auto_ml.fit(
    inputs=[input_training, input_validation]
)

step_automl = AutoMLStep(
    name="AutoMLStep",
    step_args=step_args,
)
```

**Dapatkan versi model terbaik**

Langkah AutoML secara otomatis melatih beberapa kandidat model. Dapatkan model dengan metrik objektif terbaik dari pekerjaan AutoML menggunakan `get_best_auto_ml_model` metode sebagai berikut. Anda juga harus menggunakan IAM `role` untuk mengakses artefak model.

```
best_model = step_automl.get_best_auto_ml_model(role=<role>)
```

Untuk informasi selengkapnya, lihat langkah [AutoML](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.automl_step.AutoMLStep) di Python SageMaker SDK.

## Langkah model
<a name="step-type-model"></a>

Gunakan a `ModelStep` untuk membuat atau mendaftarkan model SageMaker AI. Untuk informasi selengkapnya tentang `ModelStep` persyaratan, lihat [sagemaker.workflow.model\$1step. ModelStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.model_step.ModelStep)dokumentasi.

### Buat model
<a name="step-type-model-create"></a>

Anda dapat menggunakan a `ModelStep` untuk membuat model SageMaker AI. A `ModelStep` membutuhkan artefak model dan informasi tentang jenis instance SageMaker AI yang perlu Anda gunakan untuk membuat model. Untuk informasi selengkapnya tentang model SageMaker AI, lihat [Melatih Model dengan Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html).

Contoh berikut menunjukkan cara membuat `ModelStep` definisi.

```
from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.model import Model
from sagemaker.workflow.model_step import ModelStep

step_train = TrainingStep(...)
model = Model(
    image_uri=pytorch_estimator.training_image_uri(),
    model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts,
    sagemaker_session=PipelineSession(),
    role=role,
)

step_model_create = ModelStep(
   name="MyModelCreationStep",
   step_args=model.create(instance_type="ml.m5.xlarge"),
)
```

### Daftarkan model
<a name="step-type-model-register"></a>

Anda dapat menggunakan a `ModelStep` untuk mendaftarkan a `sagemaker.model.Model` atau `sagemaker.pipeline.PipelineModel` dengan Amazon SageMaker Model Registry. A `PipelineModel` mewakili pipa inferensi, yang merupakan model yang terdiri dari urutan linier kontainer yang memproses permintaan inferensi. Untuk informasi selengkapnya tentang cara mendaftarkan model, lihat[Penerapan Pendaftaran Model dengan Model Registry](model-registry.md).

Contoh berikut menunjukkan cara membuat `ModelStep` yang mendaftarkan a`PipelineModel`.

```
import time

from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.sklearn import SKLearnModel
from sagemaker.xgboost import XGBoostModel

pipeline_session = PipelineSession()

code_location = 's3://{0}/{1}/code'.format(bucket_name, prefix)

sklearn_model = SKLearnModel(
   model_data=processing_step.properties.ProcessingOutputConfig.Outputs['model'].S3Output.S3Uri,
   entry_point='inference.py',
   source_dir='sklearn_source_dir/',
   code_location=code_location,
   framework_version='1.0-1',
   role=role,
   sagemaker_session=pipeline_session,
   py_version='py3'
)

xgboost_model = XGBoostModel(
   model_data=training_step.properties.ModelArtifacts.S3ModelArtifacts,
   entry_point='inference.py',
   source_dir='xgboost_source_dir/',
   code_location=code_location,
   framework_version='0.90-2',
   py_version='py3',
   sagemaker_session=pipeline_session,
   role=role
)

from sagemaker.workflow.model_step import ModelStep
from sagemaker import PipelineModel

pipeline_model = PipelineModel(
   models=[sklearn_model, xgboost_model],
   role=role,sagemaker_session=pipeline_session,
)

register_model_step_args = pipeline_model.register(
    content_types=["application/json"],
   response_types=["application/json"],
   inference_instances=["ml.t2.medium", "ml.m5.xlarge"],
   transform_instances=["ml.m5.xlarge"],
   model_package_group_name='sipgroup',
)

step_model_registration = ModelStep(
   name="AbaloneRegisterModel",
   step_args=register_model_step_args,
)
```

## Buat langkah model
<a name="step-type-create-model"></a>

Anda menggunakan langkah Buat model untuk membuat model SageMaker AI. Untuk informasi lebih lanjut tentang model SageMaker AI, lihat[Latih Model dengan Amazon SageMaker](how-it-works-training.md).

Langkah membuat model memerlukan artefak model dan informasi tentang jenis instans SageMaker AI yang perlu Anda gunakan untuk membuat model. Contoh berikut menunjukkan cara membuat definisi langkah model Create. Untuk informasi selengkapnya tentang Membuat persyaratan langkah model, lihat [sagemaker.workflow.steps. CreateModelStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.CreateModelStep)dokumentasi.

------
#### [ Pipeline Designer ]

Untuk menambahkan langkah buat model ke pipeline Anda, lakukan hal berikut:

1. Buka konsol Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Pilih **Kosong**.

1. Di bilah sisi kiri, pilih **Buat model** dan seret ke kanvas.

1. Di kanvas, pilih langkah **Buat model** yang Anda tambahkan.

1. Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan** dan **Detail**. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.steps. CreateModelStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.CreateModelStep).

1. Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah **Buat model** yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah **Buat model** untuk membuat tepi.

1. Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah **Buat model** yang Anda tambahkan, klik dan seret kursor dari langkah **Buat model** ke langkah untuk membuat tepi.

------
#### [ SageMaker Python SDK ]

**penting**  
Kami merekomendasikan penggunaan [Langkah model](#step-type-model) untuk membuat model pada v2.90.0 dari AI SageMaker Python SDK. `CreateModelStep`akan terus bekerja di versi SDK SageMaker Python sebelumnya, tetapi tidak lagi didukung secara aktif.

```
from sagemaker.workflow.steps import CreateModelStep

step_create_model = CreateModelStep(
    name="AbaloneCreateModel",
    model=best_model,
    inputs=inputs
)
```

------

## Daftarkan langkah model
<a name="step-type-register-model"></a>

Langkah model Register mendaftarkan model ke dalam SageMaker Model Registry.

------
#### [ Pipeline Designer ]

Untuk mendaftarkan model dari pipeline menggunakan Pipeline Designer, lakukan hal berikut:

1. Buka konsol Amazon SageMaker Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Pilih **Kosong**.

1. Di bilah sisi kiri, pilih **Daftar model** dan seret ke kanvas.

1. Di kanvas, pilih langkah **model Daftar** yang Anda tambahkan.

1. Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan** dan **Detail**. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.step\$1collections. RegisterModel](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.step_collections.RegisterModel).

1. Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah **model Register** yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah **model Daftar** untuk membuat tepi.

1. Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah **model Register** yang Anda tambahkan, klik dan seret kursor dari langkah **model Daftar** ke langkah untuk membuat tepi.

------
#### [ SageMaker Python SDK ]

**penting**  
Kami merekomendasikan penggunaan [Langkah model](#step-type-model) untuk mendaftarkan model pada v2.90.0 dari AI SageMaker Python SDK. `RegisterModel`akan terus bekerja di versi SDK SageMaker Python sebelumnya, tetapi tidak lagi didukung secara aktif.

[Anda menggunakan `RegisterModel` langkah untuk mendaftarkan [Sagemaker.model.Model atau sagemaker.pipeline.](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html) PipelineModel](https://sagemaker.readthedocs.io/en/stable/api/inference/pipeline.html#pipelinemodel)dengan Registri SageMaker Model Amazon. A `PipelineModel` mewakili pipa inferensi, yang merupakan model yang terdiri dari urutan linier kontainer yang memproses permintaan inferensi.

Untuk informasi selengkapnya tentang cara mendaftarkan model, lihat[Penerapan Pendaftaran Model dengan Model Registry](model-registry.md). Untuk informasi selengkapnya tentang persyaratan `RegisterModel` langkah, lihat [sagemaker.workflow.step\$1collections. RegisterModel](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.step_collections.RegisterModel)dokumentasi.

Contoh berikut menunjukkan cara membuat `RegisterModel` langkah yang mendaftarkan a`PipelineModel`.

```
import time
from sagemaker.sklearn import SKLearnModel
from sagemaker.xgboost import XGBoostModel

code_location = 's3://{0}/{1}/code'.format(bucket_name, prefix)

sklearn_model = SKLearnModel(model_data=processing_step.properties.ProcessingOutputConfig.Outputs['model'].S3Output.S3Uri,
 entry_point='inference.py',
 source_dir='sklearn_source_dir/',
 code_location=code_location,
 framework_version='1.0-1',
 role=role,
 sagemaker_session=sagemaker_session,
 py_version='py3')

xgboost_model = XGBoostModel(model_data=training_step.properties.ModelArtifacts.S3ModelArtifacts,
 entry_point='inference.py',
 source_dir='xgboost_source_dir/',
 code_location=code_location,
 framework_version='0.90-2',
 py_version='py3',
 sagemaker_session=sagemaker_session,
 role=role)

from sagemaker.workflow.step_collections import RegisterModel
from sagemaker import PipelineModel
pipeline_model = PipelineModel(models=[sklearn_model,xgboost_model],role=role,sagemaker_session=sagemaker_session)

step_register = RegisterModel(
 name="AbaloneRegisterModel",
 model=pipeline_model,
 content_types=["application/json"],
 response_types=["application/json"],
 inference_instances=["ml.t2.medium", "ml.m5.xlarge"],
 transform_instances=["ml.m5.xlarge"],
 model_package_group_name='sipgroup',
)
```

Jika `model` tidak disediakan, langkah model register memerlukan estimator seperti yang ditunjukkan pada contoh berikut.

```
from sagemaker.workflow.step_collections import RegisterModel

step_register = RegisterModel(
    name="AbaloneRegisterModel",
    estimator=xgb_train,
    model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts,
    content_types=["text/csv"],
    response_types=["text/csv"],
    inference_instances=["ml.t2.medium", "ml.m5.xlarge"],
    transform_instances=["ml.m5.xlarge"],
    model_package_group_name=model_package_group_name,
    approval_status=model_approval_status,
    model_metrics=model_metrics
)
```

------

## Terapkan langkah model (titik akhir)
<a name="step-type-deploy-model-endpoint"></a>

Di Pipeline Designer, gunakan langkah Deploy model (endpoint) untuk menerapkan model Anda ke titik akhir. Anda dapat membuat endpoint baru atau menggunakan endpoint yang sudah ada. Inferensi waktu nyata ideal untuk beban kerja inferensi di mana Anda memiliki persyaratan waktu nyata, interaktif, dan latensi rendah. Anda dapat menerapkan model Anda ke layanan SageMaker AI Hosting dan mendapatkan titik akhir real-time yang dapat digunakan untuk inferensi. Titik akhir ini dikelola sepenuhnya dan mendukung auto-scaling. Untuk mempelajari lebih lanjut tentang inferensi real-time di SageMaker AI, lihat[Inferensi waktu nyata](realtime-endpoints.md).

Sebelum menambahkan langkah model penerapan ke pipeline Anda, pastikan peran IAM Anda memiliki izin berikut:
+ `sagemaker:CreateModel`
+ `sagemaker:CreateEndpointConfig`
+ `sagemaker:CreateEndpoint`
+ `sagemaker:UpdateEndpoint`
+ `sagemaker:DescribeModel`
+ `sagemaker:DescribeEndpointConfig`
+ `sagemaker:DescribeEndpoint`

Untuk mempelajari lebih lanjut tentang semua izin yang diperlukan untuk SageMaker AI dan cara mengaturnya, lihat[Izin Amazon SageMaker AI API: Tindakan, Izin, dan Referensi Sumber Daya](api-permissions-reference.md).

Untuk menambahkan langkah penerapan model ke Pipeline Anda di drag-and-drop editor, selesaikan langkah-langkah berikut:

1. Buka konsol Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Pilih **Kosong**.

1. Di sidebar kiri, pilih **Deploy model (endpoint)** dan seret ke kanvas.

1. Di kanvas, pilih langkah **Deploy model (endpoint)** yang Anda tambahkan.

1. Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan** dan **Detail**.

1. Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah **Deploy model (endpoint)** yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah **Deploy model (endpoint)** untuk membuat edge.

1. Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah **Deploy model (endpoint)** yang Anda tambahkan, klik dan seret kursor dari langkah **Deploy model (endpoint)** ke langkah untuk membuat edge.

## Transformasikan langkah
<a name="step-type-transform"></a>

Anda menggunakan langkah transformasi untuk transformasi batch untuk menjalankan inferensi pada seluruh kumpulan data. Untuk informasi selengkapnya tentang transformasi batch, lihat[Batch berubah dengan pipa inferensi](inference-pipeline-batch.md).

Langkah transformasi membutuhkan transformator dan data untuk menjalankan transformasi batch. Contoh berikut menunjukkan cara membuat definisi langkah Transform. Untuk informasi selengkapnya tentang persyaratan langkah Transform, lihat [sagemaker.workflow.steps. TransformStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TransformStep)dokumentasi.

------
#### [ Pipeline Designer ]

Untuk menambahkan langkah transformasi batch ke pipeline Anda menggunakan editor drag-and-drop visual, lakukan hal berikut:

1. Buka konsol Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Pilih **Kosong**.

1. Di sidebar kiri, pilih **Deploy model (batch transform)** dan seret ke kanvas.

1. Di kanvas, pilih langkah **Deploy model (batch transform)** yang Anda tambahkan.

1. Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan** dan **Detail**. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.steps. TransformStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TransformStep).

1. Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah **Deploy model (batch transform)** yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah **Deploy model (batch transform)** untuk membuat edge.

1. Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah **Deploy model (batch transform)** yang Anda tambahkan, klik dan seret kursor dari langkah **Deploy model (batch transform)** ke langkah untuk membuat edge.

------
#### [ SageMaker Python SDK ]

```
from sagemaker.workflow.pipeline_context import PipelineSession

from sagemaker.transformer import Transformer
from sagemaker.inputs import TransformInput
from sagemaker.workflow.steps import TransformStep

transformer = Transformer(..., sagemaker_session=PipelineSession())

step_transform = TransformStep(
    name="AbaloneTransform",
    step_args=transformer.transform(data="s3://amzn-s3-demo-bucket/my-data"),
)
```

------

## Langkah kondisi
<a name="step-type-condition"></a>

Anda menggunakan langkah kondisi untuk mengevaluasi kondisi properti langkah untuk menilai tindakan mana yang harus diambil selanjutnya dalam pipeline.

Langkah kondisi membutuhkan:
+ Daftar kondisi.
+ Daftar langkah-langkah yang harus dijalankan jika kondisi dievaluasi. `true`
+ Daftar langkah-langkah yang harus dijalankan jika kondisi dievaluasi. `false`

------
#### [ Pipeline Designer ]

Untuk menambahkan langkah kondisi ke pipeline menggunakan Pipeline Designer, lakukan hal berikut:

1. Buka konsol Amazon SageMaker Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Pilih **Kosong**.

1. Di bilah sisi kiri, pilih **Kondisi** dan seret ke kanvas.

1. Di kanvas, pilih langkah **Kondisi** yang Anda tambahkan.

1. Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan** dan **Detail**. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.condition\$1step. ConditionStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.condition_step.ConditionStep).

1. Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah **Kondisi** yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah **Kondisi** untuk membuat tepi.

1. Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah **Kondisi** yang Anda tambahkan, klik dan seret kursor dari langkah **Kondisi** ke langkah untuk membuat tepi.

------
#### [ SageMaker Python SDK ]

 Contoh berikut menunjukkan cara membuat `ConditionStep` definisi. 

**Batasan**
+ Pipelines tidak mendukung penggunaan langkah-langkah kondisi bersarang. Anda tidak dapat melewati langkah kondisi sebagai input untuk langkah kondisi lain.
+ Langkah kondisi tidak dapat menggunakan langkah yang identik di kedua cabang. Jika Anda membutuhkan fungsionalitas langkah yang sama di kedua cabang, duplikat langkahnya dan beri nama yang berbeda.

```
from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo
from sagemaker.workflow.condition_step import ConditionStep
from sagemaker.workflow.functions import JsonGet

cond_lte = ConditionLessThanOrEqualTo(
    left=JsonGet(
        step_name=step_eval.name,
        property_file=evaluation_report,
        json_path="regression_metrics.mse.value"
    ),
    right=6.0
)

step_cond = ConditionStep(
    name="AbaloneMSECond",
    conditions=[cond_lte],
    if_steps=[step_register, step_create_model, step_transform],
    else_steps=[]
)
```

Untuk informasi selengkapnya tentang `ConditionStep` persyaratan, lihat [sagemaker.workflow.condition\$1step. ConditionStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#conditionstep) Referensi API. Untuk informasi selengkapnya tentang kondisi yang didukung, lihat *[Amazon SageMaker Pipelines - Ketentuan](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#conditions)* dalam dokumentasi SageMaker AI Python SDK. 

------

## Langkah panggilan balik
<a name="step-type-callback"></a>

Gunakan `Callback` langkah untuk menambahkan proses dan AWS layanan tambahan ke dalam alur kerja Anda yang tidak langsung disediakan oleh Amazon SageMaker Pipelines. Ketika sebuah `Callback` langkah berjalan, prosedur berikut terjadi:
+ Pipelines mengirimkan pesan ke antrean Amazon Simple Queue Service (Amazon SQS) yang ditentukan pelanggan. Pesan tersebut berisi token yang dihasilkan pipeline dan daftar parameter input yang disediakan pelanggan. Setelah mengirim pesan, Pipelines menunggu tanggapan dari pelanggan.
+ Pelanggan mengambil pesan dari antrian Amazon SQS dan memulai proses kustom mereka.
+ Ketika proses selesai, pelanggan memanggil salah satu dari yang berikut APIs dan mengirimkan token yang dihasilkan pipeline:
  +  [SendPipelineExecutionStepSuccess](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SendPipelineExecutionStepSuccess.html), bersama dengan daftar parameter output
  +  [SendPipelineExecutionStepFailure](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SendPipelineExecutionStepFailure.html), bersama dengan alasan kegagalan
+ Panggilan API menyebabkan Pipelines melanjutkan proses pipeline atau gagal dalam proses.

Untuk informasi selengkapnya tentang persyaratan `Callback` langkah, lihat [sagemaker.workflow.callback\$1step. CallbackStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.callback_step.CallbackStep)dokumentasi. Untuk solusi selengkapnya, lihat [Memperluas SageMaker Pipelines untuk menyertakan langkah-langkah kustom menggunakan langkah panggilan balik](https://aws.amazon.com/blogs/machine-learning/extend-amazon-sagemaker-pipelines-to-include-custom-steps-using-callback-steps/).

**penting**  
`Callback`langkah-langkah diperkenalkan di Amazon SageMaker Python SDK v2.45.0 dan Amazon Studio Classic v3.6.2. SageMaker Anda harus memperbarui Studio Classic sebelum menggunakan `Callback` langkah atau DAG pipeline tidak ditampilkan. Untuk memperbarui Studio Classic, lihat[Matikan dan Perbarui Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

Contoh berikut menunjukkan implementasi dari prosedur sebelumnya.

```
from sagemaker.workflow.callback_step import CallbackStep

step_callback = CallbackStep(
    name="MyCallbackStep",
    sqs_queue_url="https://sqs.us-east-2.amazonaws.com/012345678901/MyCallbackQueue",
    inputs={...},
    outputs=[...]
)

callback_handler_code = '
    import boto3
    import json

    def handler(event, context):
        sagemaker_client=boto3.client("sagemaker")

        for record in event["Records"]:
            payload=json.loads(record["body"])
            token=payload["token"]

            # Custom processing

            # Call SageMaker AI to complete the step
            sagemaker_client.send_pipeline_execution_step_success(
                CallbackToken=token,
                OutputParameters={...}
            )
'
```

**catatan**  
Parameter keluaran untuk tidak `CallbackStep` boleh bersarang. Misalnya, jika Anda menggunakan kamus bersarang sebagai parameter keluaran Anda, maka kamus diperlakukan sebagai string tunggal (mis. `{"output1": "{\"nested_output1\":\"my-output\"}"}`). Jika Anda memberikan nilai bersarang, maka ketika Anda mencoba merujuk ke parameter keluaran tertentu, SageMaker AI melempar kesalahan klien yang tidak dapat dicoba ulang.

**Menghentikan perilaku**

Proses pipeline tidak berhenti saat `Callback` langkah sedang berjalan.

Saat Anda memanggil [StopPipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopPipelineExecution.html)proses pipeline dengan `Callback` langkah yang sedang berjalan, Pipelines mengirimkan pesan Amazon SQS ke antrean SQS. Tubuh pesan SQS berisi bidang **Status**, yang diatur ke`Stopping`. Berikut ini menunjukkan contoh badan pesan SQS.

```
{
  "token": "26vcYbeWsZ",
  "pipelineExecutionArn": "arn:aws:sagemaker:us-east-2:012345678901:pipeline/callback-pipeline/execution/7pinimwddh3a",
  "arguments": {
    "number": 5,
    "stringArg": "some-arg",
    "inputData": "s3://sagemaker-us-west-2-012345678901/abalone/abalone-dataset.csv"
  },
  "status": "Stopping"
}
```

Anda harus menambahkan logika ke konsumen pesan Amazon SQS Anda untuk mengambil tindakan apa pun yang diperlukan (misalnya, pembersihan sumber daya) setelah menerima pesan. Kemudian tambahkan panggilan ke `SendPipelineExecutionStepSuccess` atau`SendPipelineExecutionStepFailure`.

Hanya ketika Pipelines menerima salah satu panggilan ini barulah ia menghentikan proses pipeline.

## Langkah Lambda
<a name="step-type-lambda"></a>

Anda menggunakan langkah Lambda untuk menjalankan fungsi. AWS Lambda Anda dapat menjalankan fungsi Lambda yang ada, atau SageMaker AI dapat membuat dan menjalankan fungsi Lambda baru. Jika Anda memilih untuk menggunakan fungsi Lambda yang ada, itu harus Wilayah AWS sama dengan pipeline SageMaker AI. [Untuk buku catatan yang menunjukkan cara menggunakan langkah Lambda dalam pipeline SageMaker AI, lihat sagemaker-pipelines-lambda-step .ipynb.](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-pipelines/tabular/lambda-step/sagemaker-pipelines-lambda-step.ipynb)

**penting**  
Langkah-langkah Lambda diperkenalkan di Amazon SageMaker Python SDK v2.51.0 dan Amazon Studio Classic v3.9.1. SageMaker Anda harus memperbarui Studio Classic sebelum menggunakan langkah Lambda atau DAG pipeline tidak ditampilkan. Untuk memperbarui Studio Classic, lihat[Matikan dan Perbarui Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

SageMaker AI menyediakan [kelas SageMaker.lambda\$1helper.Lambda untuk membuat, memperbarui, memanggil, dan menghapus fungsi Lambda](https://sagemaker.readthedocs.io/en/stable/api/utility/lambda_helper.html). `Lambda`memiliki tanda tangan berikut.

```
Lambda(
    function_arn,       # Only required argument to invoke an existing Lambda function

    # The following arguments are required to create a Lambda function:
    function_name,
    execution_role_arn,
    zipped_code_dir,    # Specify either zipped_code_dir and s3_bucket, OR script
    s3_bucket,          # S3 bucket where zipped_code_dir is uploaded
    script,             # Path of Lambda function script
    handler,            # Lambda handler specified as "lambda_script.lambda_handler"
    timeout,            # Maximum time the Lambda function can run before the lambda step fails
    ...
)
```

[Sagemaker.workflow.lambda\$1step. LambdaStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.lambda_step.LambdaStep)kelas memiliki `lambda_func` argumen tipe`Lambda`. Untuk menjalankan fungsi Lambda yang ada, satu-satunya persyaratan adalah menyediakan Nama Sumber Daya Amazon (ARN) dari fungsi tersebut. `function_arn` Jika Anda tidak memberikan nilai untuk`function_arn`, Anda harus menentukan `handler` dan salah satu dari berikut ini:
+ `zipped_code_dir`— Jalur fungsi Lambda yang di-zip

  `s3_bucket`- Bucket Amazon S3 tempat akan `zipped_code_dir` diunggah
+ `script`— Jalur file skrip fungsi Lambda

Contoh berikut menunjukkan cara membuat definisi `Lambda` langkah yang memanggil fungsi Lambda yang ada.

```
from sagemaker.workflow.lambda_step import LambdaStep
from sagemaker.lambda_helper import Lambda

step_lambda = LambdaStep(
    name="ProcessingLambda",
    lambda_func=Lambda(
        function_arn="arn:aws:lambda:us-west-2:012345678910:function:split-dataset-lambda"
    ),
    inputs={
        s3_bucket = s3_bucket,
        data_file = data_file
    },
    outputs=[
        "train_file", "test_file"
    ]
)
```

Contoh berikut menunjukkan cara membuat definisi `Lambda` langkah yang membuat dan memanggil fungsi Lambda menggunakan skrip fungsi Lambda.

```
from sagemaker.workflow.lambda_step import LambdaStep
from sagemaker.lambda_helper import Lambda

step_lambda = LambdaStep(
    name="ProcessingLambda",
    lambda_func=Lambda(
      function_name="split-dataset-lambda",
      execution_role_arn=execution_role_arn,
      script="lambda_script.py",
      handler="lambda_script.lambda_handler",
      ...
    ),
    inputs={
        s3_bucket = s3_bucket,
        data_file = data_file
    },
    outputs=[
        "train_file", "test_file"
    ]
)
```

**Input dan output**

Jika `Lambda` fungsi Anda memiliki input atau output, ini juga harus didefinisikan dalam langkah Anda`Lambda`.

**catatan**  
Parameter input dan output tidak boleh bersarang. Misalnya, jika Anda menggunakan kamus bersarang sebagai parameter keluaran Anda, maka kamus diperlakukan sebagai string tunggal (mis. `{"output1": "{\"nested_output1\":\"my-output\"}"}`). Jika Anda memberikan nilai bersarang dan mencoba merujuknya nanti, kesalahan klien yang tidak dapat dicoba ulang akan dilemparkan.

Saat mendefinisikan `Lambda` langkah, `inputs` harus kamus pasangan kunci-nilai. Setiap nilai `inputs` kamus harus berupa tipe primitif (string, integer, atau float). Objek bersarang tidak didukung. Jika dibiarkan tidak terdefinisi, `inputs` nilai default ke. `None`

`outputs`Nilai harus berupa daftar kunci. Kunci-kunci ini mengacu pada kamus yang didefinisikan dalam output `Lambda` fungsi. Seperti`inputs`, kunci ini harus tipe primitif, dan objek bersarang tidak didukung.

**Timeout dan menghentikan perilaku**

`Lambda`Kelas memiliki `timeout` argumen yang menentukan waktu maksimum bahwa fungsi Lambda dapat berjalan. Nilai default adalah 120 detik dengan nilai maksimum 10 menit. Jika fungsi Lambda berjalan saat batas waktu terpenuhi, langkah Lambda gagal; Namun, fungsi Lambda terus berjalan.

Proses pipeline tidak dapat dihentikan saat langkah Lambda berjalan karena fungsi Lambda yang dipanggil oleh langkah Lambda tidak dapat dihentikan. Jika Anda menghentikan proses saat fungsi Lambda sedang berjalan, pipeline menunggu fungsi selesai atau sampai batas waktu tercapai. Ini tergantung pada mana yang terjadi lebih dulu. Prosesnya kemudian berhenti. Jika fungsi Lambda selesai, status proses pipeline adalah. `Stopped` Jika batas waktu tercapai, status proses pipeline adalah`Failed`.

## ClarifyCheck langkah
<a name="step-type-clarify-check"></a>

Anda dapat menggunakan `ClarifyCheck` langkah untuk melakukan pemeriksaan penyimpangan dasar terhadap garis dasar sebelumnya untuk analisis bias dan penjelasan model. Anda kemudian dapat membuat dan [mendaftarkan baseline Anda](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-calculations) dengan `model.register()` metode dan meneruskan output dari metode itu untuk [Langkah model](#step-type-model) digunakan. `[step\$1args](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#model-step)` Garis dasar untuk pemeriksaan drift ini dapat digunakan oleh Amazon SageMaker Model Monitor untuk titik akhir model Anda. Akibatnya, Anda tidak perlu melakukan saran [dasar](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-create-baseline.html) secara terpisah. 

`ClarifyCheck`Langkah ini juga dapat menarik garis dasar untuk pemeriksaan drift dari registri model. `ClarifyCheck`Langkah ini menggunakan Container Prebuilt SageMaker Clarify. Wadah ini menyediakan berbagai kemampuan pemantauan model, termasuk saran kendala dan validasi kendala terhadap garis dasar yang diberikan. Untuk informasi selengkapnya, lihat [Kontainer SageMaker Klarifikasi Prebuilt](clarify-processing-job-configure-container.md).

### Mengkonfigurasi langkahnya ClarifyCheck
<a name="configuring-step-type-clarify"></a>

Anda dapat mengonfigurasi `ClarifyCheck` langkah untuk melakukan hanya satu dari jenis pemeriksaan berikut setiap kali digunakan dalam pipeline.
+ Pemeriksaan bias data
+ Pemeriksaan bias model
+ Pemeriksaan penjelasan model

Untuk melakukan ini, atur `clarify_check_config` parameter dengan salah satu nilai jenis cek berikut:
+ `DataBiasCheckConfig`
+ `ModelBiasCheckConfig`
+ `ModelExplainabilityCheckConfig`

`ClarifyCheck`Langkah ini meluncurkan pekerjaan pemrosesan yang menjalankan wadah prebuilt SageMaker AI Clarify dan memerlukan [konfigurasi khusus untuk pemeriksaan dan](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-configure-processing-jobs.html) pekerjaan pemrosesan. `ClarifyCheckConfig`dan `CheckJobConfig` merupakan fungsi pembantu untuk konfigurasi ini. Fungsi pembantu ini selaras dengan bagaimana pekerjaan pemrosesan SageMaker Clarify menghitung untuk memeriksa bias model, bias data, atau penjelasan model. Untuk informasi selengkapnya, lihat [Jalankan Pekerjaan Pemrosesan SageMaker Klarifikasi untuk Analisis Bias dan Penjelasan](clarify-processing-job-run.md). 

### Mengontrol perilaku langkah untuk pemeriksaan drift
<a name="controlling-step-type-clarify"></a>

`ClarifyCheck`Langkah ini membutuhkan dua flag boolean berikut untuk mengontrol perilakunya:
+ `skip_check`: Parameter ini menunjukkan apakah pemeriksaan drift terhadap baseline sebelumnya dilewati atau tidak. Jika disetel ke`False`, baseline sebelumnya dari jenis pemeriksaan yang dikonfigurasi harus tersedia.
+ `register_new_baseline`: Parameter ini menunjukkan apakah baseline yang baru dihitung dapat diakses melalui properti langkah. `BaselineUsedForDriftCheckConstraints` Jika disetel ke`False`, baseline sebelumnya dari jenis pemeriksaan yang dikonfigurasi juga harus tersedia. Ini dapat diakses melalui `BaselineUsedForDriftCheckConstraints` properti. 

Untuk informasi selengkapnya, lihat [Perhitungan dasar, deteksi drift, dan siklus hidup dengan serta langkah-langkah di Amazon Pipelines ClarifyCheck QualityCheck SageMaker](pipelines-quality-clarify-baseline-lifecycle.md).

### Bekerja dengan baseline
<a name="step-type-clarify-working-with-baselines"></a>

Anda dapat secara opsional menentukan `model_package_group_name` untuk menemukan baseline yang ada. Kemudian, `ClarifyCheck` langkah tersebut `DriftCheckBaselines` menarik paket model terbaru yang disetujui dalam grup paket model. 

Atau, Anda dapat memberikan baseline sebelumnya melalui parameter. `supplied_baseline_constraints` Jika Anda menentukan kedua `model_package_group_name` dan`supplied_baseline_constraints`, `ClarifyCheck` langkah menggunakan garis dasar yang ditentukan oleh parameter. `supplied_baseline_constraints`

Untuk informasi selengkapnya tentang penggunaan persyaratan `ClarifyCheck` langkah, lihat [sagemaker.workflow.steps. ClarifyCheckStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.clarify_check_step.ClarifyCheckStep)di *Amazon SageMaker AI SageMaker AI SDK untuk Python*. Untuk notebook Amazon SageMaker Studio Classic yang menunjukkan cara menggunakan `ClarifyCheck` step di Pipelines, lihat [sagemaker-pipeline-model-monitor-clarify-steps.ipynb](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-pipelines/tabular/model-monitor-clarify-pipelines/sagemaker-pipeline-model-monitor-clarify-steps.ipynb).

**Example Buat `ClarifyCheck` langkah untuk pemeriksaan bias data**  

```
from sagemaker.workflow.check_job_config import CheckJobConfig
from sagemaker.workflow.clarify_check_step import DataBiasCheckConfig, ClarifyCheckStep
from sagemaker.workflow.execution_variables import ExecutionVariables

check_job_config = CheckJobConfig(
    role=role,
    instance_count=1,
    instance_type="ml.c5.xlarge",
    volume_size_in_gb=120,
    sagemaker_session=sagemaker_session,
)

data_bias_data_config = DataConfig(
    s3_data_input_path=step_process.properties.ProcessingOutputConfig.Outputs["train"].S3Output.S3Uri,
    s3_output_path=Join(on='/', values=['s3:/', your_bucket, base_job_prefix, ExecutionVariables.PIPELINE_EXECUTION_ID, 'databiascheckstep']),
    label=0,
    dataset_type="text/csv",
    s3_analysis_config_output_path=data_bias_analysis_cfg_output_path,
)

data_bias_config = BiasConfig(
    label_values_or_threshold=[15.0], facet_name=[8], facet_values_or_threshold=[[0.5]]  
)

data_bias_check_config = DataBiasCheckConfig(
    data_config=data_bias_data_config,
    data_bias_config=data_bias_config,
)h

data_bias_check_step = ClarifyCheckStep(
    name="DataBiasCheckStep",
    clarify_check_config=data_bias_check_config,
    check_job_config=check_job_config,
    skip_check=False,
    register_new_baseline=False
   supplied_baseline_constraints="s3://sagemaker-us-west-2-111122223333/baseline/analysis.json",
    model_package_group_name="MyModelPackageGroup"
)
```

## QualityCheck langkah
<a name="step-type-quality-check"></a>

Gunakan `QualityCheck` langkah untuk melakukan [saran dasar](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-create-baseline.html) dan pemeriksaan drift terhadap baseline sebelumnya untuk kualitas data atau kualitas model dalam pipeline. Anda kemudian dapat membuat dan [mendaftarkan baseline Anda](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-calculations) dengan `model.register()` metode dan meneruskan output dari metode itu untuk [Langkah model](#step-type-model) digunakan`[step\$1args](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#model-step)`.]

Model Monitor dapat menggunakan garis dasar ini untuk pemeriksaan drift untuk titik akhir model Anda sehingga Anda tidak perlu melakukan saran dasar secara terpisah. `QualityCheck`Langkah ini juga dapat menarik garis dasar untuk pemeriksaan drift dari registri model. `QualityCheck`Langkah ini memanfaatkan wadah prebuilt Amazon SageMaker AI Model Monitor. Wadah ini memiliki berbagai kemampuan pemantauan model termasuk saran kendala, pembuatan statistik, dan validasi kendala terhadap baseline. Untuk informasi selengkapnya, lihat [Amazon SageMaker Model Monitor wadah bawaan](model-monitor-pre-built-container.md).

### Mengkonfigurasi langkahnya QualityCheck
<a name="configuring-step-type-quality"></a>

Anda dapat mengonfigurasi `QualityCheck` langkah untuk menjalankan hanya satu dari jenis pemeriksaan berikut setiap kali digunakan dalam pipeline.
+ Pemeriksaan kualitas data
+ Pemeriksaan kualitas model

Anda melakukan ini dengan mengatur `quality_check_config` parameter dengan salah satu nilai jenis cek berikut:
+ `DataQualityCheckConfig`
+ `ModelQualityCheckConfig`

`QualityCheck`Langkah ini meluncurkan pekerjaan pemrosesan yang menjalankan wadah bawaan Model Monitor dan memerlukan konfigurasi khusus untuk pemeriksaan dan pekerjaan pemrosesan. Fungsi `QualityCheckConfig` dan `CheckJobConfig` pembantu untuk konfigurasi ini. Fungsi pembantu ini selaras dengan bagaimana Model Monitor membuat garis dasar untuk kualitas model atau pemantauan kualitas data. Untuk informasi selengkapnya tentang saran dasar Model Monitor, lihat [Buat Baseline](model-monitor-create-baseline.md) dan. [Buat baseline kualitas model](model-monitor-model-quality-baseline.md)

### Mengontrol perilaku langkah untuk pemeriksaan drift
<a name="controlling-step-type-quality"></a>

`QualityCheck`Langkah ini membutuhkan dua flag Boolean berikut untuk mengontrol perilakunya:
+ `skip_check`: Parameter ini menunjukkan apakah pemeriksaan drift terhadap baseline sebelumnya dilewati atau tidak. Jika disetel ke`False`, baseline sebelumnya dari jenis pemeriksaan yang dikonfigurasi harus tersedia.
+ `register_new_baseline`: Parameter ini menunjukkan apakah baseline yang baru dihitung dapat diakses melalui properti `BaselineUsedForDriftCheckConstraints` langkah dan. `BaselineUsedForDriftCheckStatistics` Jika disetel ke`False`, baseline sebelumnya dari jenis pemeriksaan yang dikonfigurasi juga harus tersedia. Ini dapat diakses melalui `BaselineUsedForDriftCheckConstraints` dan `BaselineUsedForDriftCheckStatistics` properti.

Untuk informasi selengkapnya, lihat [Perhitungan dasar, deteksi drift, dan siklus hidup dengan serta langkah-langkah di Amazon Pipelines ClarifyCheck QualityCheck SageMaker](pipelines-quality-clarify-baseline-lifecycle.md).

### Bekerja dengan baseline
<a name="step-type-quality-working-with-baselines"></a>

Anda dapat menentukan garis dasar sebelumnya secara langsung melalui parameter `supplied_baseline_statistics` dan`supplied_baseline_constraints`. Anda juga dapat menentukan `model_package_group_name` dan `QualityCheck` langkah menarik paket model terbaru yang disetujui dalam grup paket model. `DriftCheckBaselines` 

Saat Anda menentukan yang berikut ini, `QualityCheck` langkah tersebut menggunakan garis dasar yang ditentukan oleh `supplied_baseline_constraints` dan `supplied_baseline_statistics` pada jenis pemeriksaan langkah. `QualityCheck`
+ `model_package_group_name`
+ `supplied_baseline_constraints`
+ `supplied_baseline_statistics`

Untuk informasi selengkapnya tentang penggunaan persyaratan `QualityCheck` langkah, lihat [sagemaker.workflow.steps. QualityCheckStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.quality_check_step.QualityCheckStep)di *Amazon SageMaker AI SageMaker AI SDK untuk Python*. Untuk notebook Amazon SageMaker Studio Classic yang menunjukkan cara menggunakan `QualityCheck` step di Pipelines, lihat [sagemaker-pipeline-model-monitor-clarify-steps.ipynb](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-pipelines/tabular/model-monitor-clarify-pipelines/sagemaker-pipeline-model-monitor-clarify-steps.ipynb). 

**Example Buat `QualityCheck` langkah untuk pemeriksaan kualitas data**  

```
from sagemaker.workflow.check_job_config import CheckJobConfig
from sagemaker.workflow.quality_check_step import DataQualityCheckConfig, QualityCheckStep
from sagemaker.workflow.execution_variables import ExecutionVariables

check_job_config = CheckJobConfig(
    role=role,
    instance_count=1,
    instance_type="ml.c5.xlarge",
    volume_size_in_gb=120,
    sagemaker_session=sagemaker_session,
)

data_quality_check_config = DataQualityCheckConfig(
    baseline_dataset=step_process.properties.ProcessingOutputConfig.Outputs["train"].S3Output.S3Uri,
    dataset_format=DatasetFormat.csv(header=False, output_columns_position="START"),
    output_s3_uri=Join(on='/', values=['s3:/', your_bucket, base_job_prefix, ExecutionVariables.PIPELINE_EXECUTION_ID, 'dataqualitycheckstep'])
)

data_quality_check_step = QualityCheckStep(
    name="DataQualityCheckStep",
    skip_check=False,
    register_new_baseline=False,
    quality_check_config=data_quality_check_config,
    check_job_config=check_job_config,
    supplied_baseline_statistics="s3://sagemaker-us-west-2-555555555555/baseline/statistics.json",
    supplied_baseline_constraints="s3://sagemaker-us-west-2-555555555555/baseline/constraints.json",
    model_package_group_name="MyModelPackageGroup"
)
```

## Langkah EMR
<a name="step-type-emr"></a>

Gunakan langkah [EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-overview.html) Amazon SageMaker Pipelines untuk:
+ Memproses [langkah-langkah Amazon EMR pada klaster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-work-with-steps.html) EMR Amazon yang sedang berjalan.
+ Minta pipeline membuat dan mengelola cluster EMR Amazon untuk Anda.

Untuk informasi selengkapnya tentang Amazon EMR, lihat [Memulai dengan Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html).

Langkah EMR mengharuskan `EMRStepConfig` menyertakan lokasi file JAR yang digunakan oleh cluster EMR Amazon dan argumen apa pun yang akan diteruskan. Anda juga memberikan ID cluster EMR Amazon jika Anda ingin menjalankan langkah pada cluster EMR yang sedang berjalan. Anda juga dapat meneruskan konfigurasi cluster untuk menjalankan langkah EMR pada cluster yang dibuat, dikelola, dan diakhiri untuk Anda. Bagian berikut mencakup contoh dan tautan ke notebook sampel yang menunjukkan kedua metode.

**catatan**  
Langkah-langkah EMR mengharuskan peran yang diteruskan ke pipeline Anda memiliki izin tambahan. Lampirkan [kebijakan AWS terkelola: `AmazonSageMakerPipelinesIntegrations`](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-pipelines.html#security-iam-awsmanpol-AmazonSageMakerPipelinesIntegrations) ke peran pipeline Anda, atau pastikan peran tersebut menyertakan izin dalam kebijakan tersebut.
Jika Anda memproses langkah EMR pada cluster yang sedang berjalan, Anda hanya dapat menggunakan cluster yang berada di salah satu status berikut:   
`STARTING`
`BOOTSTRAPPING`
`RUNNING`
`WAITING`
Jika Anda memproses langkah-langkah EMR pada cluster yang sedang berjalan, Anda dapat memiliki paling banyak 256 langkah EMR dalam keadaan di cluster EMR. `PENDING` Langkah-langkah EMR yang diajukan di luar batas ini mengakibatkan kegagalan eksekusi pipeline. Anda dapat mempertimbangkan untuk menggunakan[Coba lagi Kebijakan untuk Langkah-langkah Pipa](pipelines-retry-policy.md).
Anda dapat menentukan ID cluster atau konfigurasi cluster, tetapi tidak keduanya.
Langkah EMR bergantung pada Amazon EventBridge untuk memantau perubahan dalam langkah EMR atau status cluster. Jika Anda memproses pekerjaan EMR Amazon di klaster yang sedang berjalan, langkah EMR menggunakan aturan `SageMakerPipelineExecutionEMRStepStatusUpdateRule` untuk memantau status langkah EMR. Jika Anda memproses pekerjaan Anda di klaster yang dibuat oleh langkah EMR, langkah tersebut menggunakan `SageMakerPipelineExecutionEMRClusterStatusRule` aturan untuk memantau perubahan status klaster. Jika Anda melihat salah satu dari EventBridge aturan ini di AWS akun Anda, jangan menghapusnya atau langkah EMR Anda mungkin tidak selesai.

**Tambahkan langkah EMR Amazon ke pipeline Anda**

Untuk menambahkan langkah EMR ke pipeline Anda, lakukan hal berikut:
+ Buka konsol Studio dengan mengikuti petunjuk di [Luncurkan Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).
+ Di panel navigasi kiri, pilih **Pipelines**.
+ Pilih **Buat**.
+ Pilih **Kosong**.
+ Di bilah sisi kiri, pilih **Proses data** dan seret ke kanvas.
+ Di kanvas, pilih langkah **Proses data** yang Anda tambahkan.
+ Di sidebar kanan, di bawah mode, pilih **EMR (dikelola)**.
+ Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan dan Detail**. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.fail\$1step. EMRstep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.emr_step.EMRStep).

**Luncurkan pekerjaan baru di klaster EMR Amazon yang sedang berjalan**

Untuk meluncurkan pekerjaan baru di klaster EMR Amazon yang sedang berjalan, teruskan ID cluster sebagai string ke `cluster_id` argumen. `EMRStep` Contoh berikut menunjukkan prosedur ini.

```
from sagemaker.workflow.emr_step import EMRStep, EMRStepConfig

emr_config = EMRStepConfig(
    jar="jar-location", # required, path to jar file used
    args=["--verbose", "--force"], # optional list of arguments to pass to the jar
    main_class="com.my.Main1", # optional main class, this can be omitted if jar above has a manifest 
    properties=[ # optional list of Java properties that are set when the step runs
    {
        "key": "mapred.tasktracker.map.tasks.maximum",
        "value": "2"
    },
    {
        "key": "mapreduce.map.sort.spill.percent",
        "value": "0.90"
   },
   {
       "key": "mapreduce.tasktracker.reduce.tasks.maximum",
       "value": "5"
    }
  ]
)

step_emr = EMRStep (
    name="EMRSampleStep", # required
    cluster_id="j-1ABCDEFG2HIJK", # include cluster_id to use a running cluster
    step_config=emr_config, # required
    display_name="My EMR Step",
    description="Pipeline step to execute EMR job"
)
```

Untuk contoh buku catatan yang memandu Anda melalui contoh lengkap, lihat [Pipelines EMR Step With Running EMR Cluster](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-pipelines/tabular/emr-step/sagemaker-pipelines-emr-step-with-running-emr-cluster.ipynb).

**Luncurkan pekerjaan baru di cluster EMR Amazon baru**

Untuk meluncurkan pekerjaan baru di klaster baru yang `EMRStep` membuat untuk Anda, berikan konfigurasi klaster Anda sebagai kamus. Kamus harus memiliki struktur yang sama dengan [RunJobFlow](https://docs.aws.amazon.com/emr/latest/APIReference/API_RunJobFlow.html)permintaan. Namun, jangan sertakan bidang berikut dalam konfigurasi klaster Anda:
+ [`Name`]
+ [`Steps`]
+ [`AutoTerminationPolicy`]
+ [`Instances`][`KeepJobFlowAliveWhenNoSteps`]
+ [`Instances`][`TerminationProtected`]

Semua `RunJobFlow` argumen lain tersedia untuk digunakan dalam konfigurasi cluster Anda. Untuk detail tentang sintaks permintaan, lihat [RunJobFlow](https://docs.aws.amazon.com/emr/latest/APIReference/API_RunJobFlow.html).

Contoh berikut meneruskan konfigurasi cluster ke definisi langkah EMR. Ini mendorong langkah untuk meluncurkan pekerjaan baru di cluster EMR baru. Konfigurasi cluster EMR dalam contoh ini mencakup spesifikasi untuk node cluster EMR primer dan inti. Untuk informasi selengkapnya tentang jenis node EMR Amazon, lihat [Memahami tipe node: node primer, inti, dan tugas](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html).

```
from sagemaker.workflow.emr_step import EMRStep, EMRStepConfig

emr_step_config = EMRStepConfig(
    jar="jar-location", # required, path to jar file used
    args=["--verbose", "--force"], # optional list of arguments to pass to the jar
    main_class="com.my.Main1", # optional main class, this can be omitted if jar above has a manifest 
    properties=[ # optional list of Java properties that are set when the step runs
    {
        "key": "mapred.tasktracker.map.tasks.maximum",
        "value": "2"
    },
    {
        "key": "mapreduce.map.sort.spill.percent",
        "value": "0.90"
   },
   {
       "key": "mapreduce.tasktracker.reduce.tasks.maximum",
       "value": "5"
    }
  ]
)

# include your cluster configuration as a dictionary
emr_cluster_config = {
    "Applications": [
        {
            "Name": "Spark", 
        }
    ],
    "Instances":{
        "InstanceGroups":[
            {
                "InstanceRole": "MASTER",
                "InstanceCount": 1,
                "InstanceType": "m5.2xlarge"
            },
            {
                "InstanceRole": "CORE",
                "InstanceCount": 2,
                "InstanceType": "m5.2xlarge"
            }
        ]
    },
    "BootstrapActions":[],
    "ReleaseLabel": "emr-6.6.0",
    "JobFlowRole": "job-flow-role",
    "ServiceRole": "service-role"
}

emr_step = EMRStep(
    name="emr-step",
    cluster_id=None,
    display_name="emr_step",
    description="MyEMRStepDescription",
    step_config=emr_step_config,
    cluster_config=emr_cluster_config
)
```

Untuk contoh buku catatan yang memandu Anda melalui contoh lengkap, lihat [Pipelines EMR Step With Cluster](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-pipelines/tabular/emr-step/sagemaker-pipelines-emr-step-with-cluster-lifecycle-management.ipynb) Lifecycle Management.

## Langkah EMR tanpa server
<a name="step-type-serverless"></a>

Untuk menambahkan langkah EMR tanpa server ke pipeline Anda, lakukan hal berikut:
+ Buka konsol Studio dengan mengikuti petunjuk di [Luncurkan Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).
+ Di panel navigasi kiri, pilih **Pipelines**.
+ Pilih **Buat**.
+ Pilih **Kosong**.
+ Di bilah sisi kiri, pilih **Proses data** dan seret ke kanvas.
+ Di kanvas, pilih langkah **Proses data** yang Anda tambahkan.
+ Di sidebar kanan, di bawah mode, pilih **EMR (tanpa server)**.
+ Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan dan Detail**.

## Langkah pekerjaan notebook
<a name="step-type-notebook-job"></a>

Gunakan a `NotebookJobStep` untuk menjalankan Job SageMaker Notebook Anda secara non-interaktif sebagai langkah pipeline. Jika Anda membangun pipeline di drag-and-drop UI Pipelines, gunakan file [Jalankan langkah kode](#step-type-executecode) untuk menjalankan notebook Anda. Untuk informasi selengkapnya tentang Pekerjaan SageMaker Notebook, lihat[SageMaker Lowongan Notebook](notebook-auto-run.md).

A `NotebookJobStep` membutuhkan minimal notebook input, URI gambar dan nama kernel. Untuk informasi selengkapnya tentang persyaratan langkah Job Notebook dan parameter lain yang dapat Anda atur untuk menyesuaikan langkah, lihat [sagemaker.workflow.steps. NotebookJobStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.notebook_job_step.NotebookJobStep).

Contoh berikut menggunakan argumen minimum untuk mendefinisikan a`NotebookJobStep`.

```
from sagemaker.workflow.notebook_job_step import NotebookJobStep


notebook_job_step = NotebookJobStep(
    input_notebook=input_notebook,
    image_uri=image_uri,
    kernel_name=kernel_name
)
```

Langkah `NotebookJobStep` pipeline Anda diperlakukan sebagai pekerjaan SageMaker notebook. Akibatnya, lacak status eksekusi di dasbor pekerjaan notebook UI Studio Classic dengan menyertakan tag tertentu dengan `tags` argumen. Untuk detail selengkapnya tentang tag yang akan disertakan, lihat[Melihat pekerjaan notebook Anda di dasbor Studio UI](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash).

Selain itu, jika Anda menjadwalkan pekerjaan notebook menggunakan SageMaker Python SDK, Anda hanya dapat menentukan gambar tertentu untuk menjalankan pekerjaan notebook Anda. Untuk informasi selengkapnya, lihat [Kendala gambar untuk pekerjaan notebook AI SageMaker Python SDK](notebook-auto-run-constraints.md#notebook-auto-run-constraints-image-sdk).

## Langkah gagal
<a name="step-type-fail"></a>

Gunakan langkah Gagal untuk menghentikan eksekusi Amazon SageMaker Pipelines jika kondisi atau status yang diinginkan tidak tercapai. Langkah Gagal juga memungkinkan Anda memasukkan pesan kesalahan khusus, yang menunjukkan penyebab kegagalan eksekusi pipeline.

**catatan**  
Ketika langkah Gagal dan langkah pipeline lainnya dijalankan pada saat yang sama, pipeline tidak berakhir sampai semua langkah bersamaan selesai.

### Batasan untuk menggunakan langkah Gagal
<a name="step-type-fail-limitations"></a>
+ Anda tidak dapat menambahkan langkah Gagal ke `DependsOn` daftar langkah lainnya. Untuk informasi selengkapnya, lihat [Ketergantungan khusus antar langkah](build-and-manage-steps.md#build-and-manage-custom-dependency).
+ Langkah-langkah lain tidak dapat mereferensikan langkah Gagal. Itu *selalu* merupakan langkah terakhir dalam eksekusi pipeline.
+ Anda tidak dapat mencoba lagi eksekusi pipeline yang diakhiri dengan langkah Gagal.

Anda dapat membuat pesan kesalahan langkah Gagal dalam bentuk string teks statis. Atau, Anda juga dapat menggunakan [Parameter Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-parameters.html), operasi [Gabung](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html?highlight=Join#sagemaker.workflow.functions.Join), atau [properti langkah](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#build-and-manage-properties) lainnya untuk membuat pesan kesalahan yang lebih informatif jika Anda menggunakan SDK.

------
#### [ Pipeline Designer ]

Untuk menambahkan langkah Gagal ke pipeline Anda, lakukan hal berikut:

1. Buka konsol Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Pilih **Kosong**.

1. Di bilah sisi kiri, pilih **Gagal** dan seret ke kanvas.

1. Di kanvas, pilih langkah **Gagal** yang Anda tambahkan.

1. Di bilah sisi kanan, lengkapi formulir di tab **Pengaturan** dan **Detail**. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.fail\$1step. FailStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.fail_step.FailStep).

1. Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah **Gagal** yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah **Gagal** untuk membuat tepi.

1. Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah **Gagal** yang Anda tambahkan, klik dan seret kursor dari langkah **Gagal** ke langkah untuk membuat tepi.

------
#### [ SageMaker Python SDK ]

**Example**  
Contoh cuplikan kode berikut menggunakan dengan `ErrorMessage` dikonfigurasi `FailStep` dengan Parameter Pipeline dan operasi. `Join`  

```
from sagemaker.workflow.fail_step import FailStep
from sagemaker.workflow.functions import Join
from sagemaker.workflow.parameters import ParameterInteger

mse_threshold_param = ParameterInteger(name="MseThreshold", default_value=5)
step_fail = FailStep(
    name="AbaloneMSEFail",
    error_message=Join(
        on=" ", values=["Execution failed due to MSE >", mse_threshold_param]
    ),
)
```

------

# Tambahkan integrasi
<a name="build-and-manage-steps-integration"></a>

MLflow integrasi memungkinkan Anda untuk menggunakan MLflow dengan pipeline untuk memilih server pelacak atau aplikasi tanpa server, memilih eksperimen, dan mencatat metrik.

## Konsep utama
<a name="add-integration-key-concepts"></a>

**Pembuatan aplikasi default** - MLflow Aplikasi default akan dibuat saat Anda memasukkan editor visual pipeline.

**Panel integrasi - Panel** integrasi baru termasuk MLflow, yang dapat Anda pilih dan konfigurasikan.

**Perbarui aplikasi dan eksperimen** - Opsi untuk mengganti aplikasi dan eksperimen yang dipilih selama eksekusi pipeline.

## Cara kerjanya
<a name="add-integration-how-it-works"></a>
+ Pergi ke **Pipeline Visual Editor**
+ Pilih **Integrasi** pada toolbar
+ Pilih **MLflow**
+ Konfigurasikan MLflow aplikasi dan eksperimen

## Contoh tangkapan layar
<a name="add-integration-example-screenshots"></a>

Integrasi panel samping

![\[Deskripsi yang harus dilakukan.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/screenshot-pipeline-1.png)


MLflow konfigurasi

![\[Deskripsi yang harus dilakukan.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/screenshot-pipeline-2.png)


Cara mengganti eksperimen selama eksekusi pipeline

![\[Deskripsi yang harus dilakukan.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/screenshot-pipeline-3.png)


## Properti langkah
<a name="build-and-manage-properties"></a>

Gunakan `properties` atribut untuk menambahkan dependensi data di antara langkah-langkah dalam pipeline. Pipelines menggunakan dependensi data ini untuk membangun DAG dari definisi pipeline. Properti ini dapat direferensikan sebagai nilai placeholder dan diselesaikan saat runtime. 

`properties`Atribut langkah Pipelines cocok dengan objek yang dikembalikan oleh `Describe` panggilan untuk jenis pekerjaan SageMaker AI yang sesuai. Untuk setiap jenis pekerjaan, `Describe` panggilan mengembalikan objek respons berikut:
+ `ProcessingStep` – [DescribeProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html)
+ `TrainingStep` – [DescribeTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html)
+ `TransformStep` – [DescribeTransformJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTransformJob.html)

Untuk memeriksa properti mana yang dapat direferensikan untuk setiap tipe langkah selama pembuatan dependensi data, lihat *[Ketergantungan Data - Referensi Properti](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#data-dependency-property-reference)* di Amazon [Python SageMaker ](https://sagemaker.readthedocs.io/en/stable) SDK.

## Paralelisme langkah
<a name="build-and-manage-parallelism"></a>

Ketika sebuah langkah tidak bergantung pada langkah lain, itu berjalan segera setelah eksekusi pipeline. Namun, mengeksekusi terlalu banyak langkah pipeline secara paralel dapat dengan cepat menghabiskan sumber daya yang tersedia. Kontrol jumlah langkah bersamaan untuk eksekusi pipeline dengan`ParallelismConfiguration`.

Contoh berikut digunakan `ParallelismConfiguration` untuk mengatur batas langkah bersamaan ke lima.

```
pipeline.create(
    parallelism_config=ParallelismConfiguration(5),
)
```

## Ketergantungan data antar langkah
<a name="build-and-manage-data-dependency"></a>

Anda menentukan struktur DAG Anda dengan menentukan hubungan data antar langkah. Untuk membuat dependensi data antar langkah, berikan properti dari satu langkah sebagai input ke langkah lain dalam pipeline. Langkah menerima input tidak dimulai sampai setelah langkah menyediakan input selesai berjalan.

Ketergantungan data menggunakan JsonPath notasi dalam format berikut. Format ini melintasi file properti JSON. Ini berarti Anda dapat menambahkan sebanyak mungkin *<property>* instance yang diperlukan untuk mencapai properti bersarang yang diinginkan dalam file. Untuk informasi lebih lanjut tentang JsonPath notasi, lihat [JsonPath repo](https://github.com/json-path/JsonPath).

```
<step_name>.properties.<property>.<property>
```

Berikut ini menunjukkan cara menentukan bucket Amazon S3 menggunakan `ProcessingOutputConfig` properti langkah pemrosesan.

```
step_process.properties.ProcessingOutputConfig.Outputs["train_data"].S3Output.S3Uri
```

Untuk membuat ketergantungan data, teruskan bucket ke langkah pelatihan sebagai berikut.

```
from sagemaker.workflow.pipeline_context import PipelineSession

sklearn_train = SKLearn(..., sagemaker_session=PipelineSession())

step_train = TrainingStep(
    name="CensusTrain",
    step_args=sklearn_train.fit(inputs=TrainingInput(
        s3_data=step_process.properties.ProcessingOutputConfig.Outputs[
            "train_data"].S3Output.S3Uri
    ))
)
```

Untuk memeriksa properti mana yang dapat direferensikan untuk setiap tipe langkah selama pembuatan dependensi data, lihat *[Ketergantungan Data - Referensi Properti](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#data-dependency-property-reference)* di Amazon [Python SageMaker ](https://sagemaker.readthedocs.io/en/stable) SDK.

## Ketergantungan khusus antar langkah
<a name="build-and-manage-custom-dependency"></a>

Saat Anda menentukan ketergantungan data, Pipelines menyediakan koneksi data di antara langkah-langkah tersebut. Atau, satu langkah dapat mengakses data dari langkah sebelumnya tanpa langsung menggunakan Pipelines. Dalam hal ini, Anda dapat membuat dependensi khusus yang memberi tahu Pipelines untuk tidak memulai langkah sampai setelah langkah lain selesai berjalan. Anda membuat dependensi kustom dengan menentukan atribut step. `DependsOn`

Sebagai contoh, berikut ini mendefinisikan langkah `C` yang dimulai hanya setelah kedua langkah `A` dan langkah `B` selesai berjalan.

```
{
  'Steps': [
    {'Name':'A', ...},
    {'Name':'B', ...},
    {'Name':'C', 'DependsOn': ['A', 'B']}
  ]
}
```

Pipelines melempar pengecualian validasi jika ketergantungan akan membuat ketergantungan siklik.

Contoh berikut membuat langkah pelatihan yang dimulai setelah langkah pemrosesan selesai berjalan.

```
processing_step = ProcessingStep(...)
training_step = TrainingStep(...)

training_step.add_depends_on([processing_step])
```

Contoh berikut membuat langkah pelatihan yang tidak dimulai sampai dua langkah pemrosesan yang berbeda selesai berjalan.

```
processing_step_1 = ProcessingStep(...)
processing_step_2 = ProcessingStep(...)

training_step = TrainingStep(...)

training_step.add_depends_on([processing_step_1, processing_step_2])
```

Berikut ini menyediakan cara alternatif untuk membuat ketergantungan kustom.

```
training_step.add_depends_on([processing_step_1])
training_step.add_depends_on([processing_step_2])
```

Contoh berikut membuat langkah pelatihan yang menerima masukan dari satu langkah pemrosesan dan menunggu langkah pemrosesan yang berbeda untuk selesai berjalan.

```
processing_step_1 = ProcessingStep(...)
processing_step_2 = ProcessingStep(...)

training_step = TrainingStep(
    ...,
    inputs=TrainingInput(
        s3_data=processing_step_1.properties.ProcessingOutputConfig.Outputs[
            "train_data"
        ].S3Output.S3Uri
    )

training_step.add_depends_on([processing_step_2])
```

Contoh berikut menunjukkan bagaimana untuk mengambil daftar string dari dependensi kustom langkah.

```
custom_dependencies = training_step.depends_on
```

## Gambar khusus dalam satu langkah
<a name="build-and-manage-images"></a>

 Anda dapat menggunakan salah satu [gambar SageMaker AI Deep Learning Container](https://github.com/aws/deep-learning-containers/blob/master/available_images.md) yang tersedia saat membuat langkah dalam pipeline. 

Anda juga dapat menggunakan wadah Anda sendiri dengan langkah-langkah pipa. Karena Anda tidak dapat membuat gambar dari dalam Studio Classic, Anda harus membuat gambar menggunakan metode lain sebelum menggunakannya dengan Pipelines.

Untuk menggunakan penampung Anda sendiri saat membuat langkah-langkah untuk pipeline Anda, sertakan URI gambar dalam definisi estimator. Untuk informasi selengkapnya tentang penggunaan kontainer Anda sendiri dengan SageMaker AI, lihat [Menggunakan Kontainer Docker dengan SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/docker-containers.html).

# Lift-and-shift Kode Python dengan dekorator @step
<a name="pipelines-step-decorator"></a>

`@step`Dekorator adalah fitur yang mengubah kode machine learning (ML) lokal Anda menjadi satu atau beberapa langkah pipeline. Anda dapat menulis fungsi ML Anda seperti yang Anda lakukan untuk setiap proyek ML. Setelah diuji secara lokal atau sebagai pekerjaan pelatihan menggunakan `@remote` dekorator, Anda dapat mengonversi fungsi menjadi langkah pipa SageMaker AI dengan menambahkan dekorator. `@step` Anda kemudian dapat meneruskan output dari panggilan fungsi `@step` -decorated sebagai langkah ke Pipelines untuk membuat dan menjalankan pipeline. Anda dapat menghubungkan serangkaian fungsi dengan `@step` dekorator untuk membuat pipa grafik asiklik terarah (DAG) multi-langkah juga.

Pengaturan untuk menggunakan `@step` dekorator sama dengan pengaturan untuk menggunakan `@remote` dekorator. Anda dapat merujuk ke dokumentasi fungsi jarak jauh untuk detail tentang cara [mengatur lingkungan](https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-decorator.html#train-remote-decorator-env) dan [menggunakan file konfigurasi](https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-decorator-config.html) untuk mengatur default. Untuk informasi selengkapnya tentang `@step` dekorator, lihat [sagemaker.workflow.function\$1step.step](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.function_step.step).

Untuk melihat contoh buku catatan yang menunjukkan penggunaan `@step` dekorator, lihat contoh notebook [@step decorator](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-pipelines/step-decorator).

Bagian berikut menjelaskan bagaimana Anda dapat membuat anotasi kode HTML lokal Anda dengan `@step` dekorator untuk membuat langkah, membuat dan menjalankan pipeline menggunakan langkah, dan menyesuaikan pengalaman untuk kasus penggunaan Anda.

**Topics**
+ [Buat pipa dengan fungsi yang `@step` didekorasi](pipelines-step-decorator-create-pipeline.md)
+ [Jalankan pipa](pipelines-step-decorator-run-pipeline.md)
+ [Konfigurasikan pipeline Anda](pipelines-step-decorator-cfg-pipeline.md)
+ [Praktik Terbaik](pipelines-step-decorator-best.md)
+ [Batasan](pipelines-step-decorator-limit.md)

# Buat pipa dengan fungsi yang `@step` didekorasi
<a name="pipelines-step-decorator-create-pipeline"></a>

Anda dapat membuat pipeline dengan mengubah fungsi Python menjadi langkah-langkah pipeline menggunakan dekorator, membuat dependensi `@step` di antara fungsi-fungsi tersebut untuk membuat grafik pipeline (atau grafik asiklik terarah (DAG)), dan meneruskan simpul daun grafik itu sebagai daftar langkah ke pipeline. Bagian berikut menjelaskan prosedur ini secara rinci dengan contoh.

**Topics**
+ [Ubah fungsi menjadi langkah](#pipelines-step-decorator-run-pipeline-convert)
+ [Buat dependensi di antara langkah-langkah](#pipelines-step-decorator-run-pipeline-link)
+ [Gunakan `ConditionStep` dengan langkah-langkah `@step` yang didekorasi](#pipelines-step-decorator-condition)
+ [Tentukan pipeline menggunakan `DelayedReturn` output dari langkah-langkah](#pipelines-step-define-delayed)
+ [Membuat jalur](#pipelines-step-decorator-pipeline-create)

## Ubah fungsi menjadi langkah
<a name="pipelines-step-decorator-run-pipeline-convert"></a>

Untuk membuat langkah menggunakan `@step` dekorator, beri anotasi fungsi dengan. `@step` Contoh berikut menunjukkan fungsi `@step` -decorated yang memproses data sebelumnya.

```
from sagemaker.workflow.function_step import step

@step
def preprocess(raw_data):
    df = pandas.read_csv(raw_data)
    ...
    return procesed_dataframe
    
step_process_result = preprocess(raw_data)
```

Saat Anda menjalankan fungsi `@step` -decorated, SageMaker AI mengembalikan `DelayedReturn` instance alih-alih menjalankan fungsi. Sebuah `DelayedReturn` instance adalah proxy untuk pengembalian aktual dari fungsi itu. `DelayedReturn`Instance dapat diteruskan ke fungsi lain sebagai argumen atau langsung ke instance pipeline sebagai langkah. Untuk informasi tentang `DelayedReturn` kelas, lihat [sagemaker.workflow.function\$1step. DelayedReturn](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.function_step.DelayedReturn).

## Buat dependensi di antara langkah-langkah
<a name="pipelines-step-decorator-run-pipeline-link"></a>

Saat Anda membuat dependensi di antara dua langkah, Anda membuat koneksi antara langkah-langkah dalam grafik pipeline Anda. Bagian berikut memperkenalkan beberapa cara Anda dapat membuat ketergantungan di antara langkah-langkah pipeline Anda.

### Dependensi data melalui argumen masukan
<a name="pipelines-step-decorator-run-pipeline-link-interstep"></a>

Melewati `DelayedReturn` output dari satu fungsi sebagai input ke fungsi lain secara otomatis menciptakan ketergantungan data dalam pipeline DAG. Dalam contoh berikut, meneruskan `DelayedReturn` output fungsi ke `preprocess` `train` fungsi menciptakan ketergantungan antara `preprocess` dan`train`.

```
from sagemaker.workflow.function_step import step

@step
def preprocess(raw_data):
    df = pandas.read_csv(raw_data)
    ...
    return procesed_dataframe

@step
def train(training_data):
    ...
    return trained_model

step_process_result = preprocess(raw_data)    
step_train_result = train(step_process_result)
```

Contoh sebelumnya mendefinisikan fungsi pelatihan yang dihiasi dengan`@step`. Ketika fungsi ini dipanggil, ia menerima `DelayedReturn` output dari langkah pipa preprocessing sebagai input. Memanggil fungsi pelatihan mengembalikan `DelayedReturn` instance lain. Instance ini menyimpan informasi tentang semua langkah sebelumnya yang didefinisikan dalam fungsi itu (yaitu, `preprocess` langkah dalam contoh ini) yang membentuk saluran DAG.

Pada contoh sebelumnya, `preprocess` fungsi mengembalikan nilai tunggal. Untuk jenis pengembalian yang lebih kompleks seperti daftar atau tupel, lihat. [Batasan](pipelines-step-decorator-limit.md)

### Tentukan dependensi khusus
<a name="pipelines-step-decorator-run-pipeline-link-custom"></a>

Pada contoh sebelumnya, `train` fungsi menerima `DelayedReturn` output `preprocess` dan menciptakan ketergantungan. Jika Anda ingin mendefinisikan ketergantungan secara eksplisit tanpa melewatkan output langkah sebelumnya, gunakan `add_depends_on` fungsi dengan langkah. Anda dapat menggunakan `get_step()` fungsi untuk mengambil langkah yang mendasari dari `DelayedReturn` instance-nya, dan kemudian memanggil `add_depends_on` \$1on dengan ketergantungan sebagai input. Untuk melihat definisi `get_step()` fungsi, lihat [sagemaker.workflow.step\$1outputs.get\$1step](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.step_outputs.get_step). Contoh berikut menunjukkan cara membuat ketergantungan antara `preprocess` dan `train` menggunakan `get_step()` dan`add_depends_on()`.

```
from sagemaker.workflow.step_outputs import get_step

@step
def preprocess(raw_data):
    df = pandas.read_csv(raw_data)
    ...
    processed_data = ..
    return s3.upload(processed_data)

@step
def train():
    training_data = s3.download(....)
    ...
    return trained_model

step_process_result = preprocess(raw_data)    
step_train_result = train()

get_step(step_train_result).add_depends_on([step_process_result])
```

### Meneruskan data ke dan dari fungsi `@step` yang didekorasi ke langkah pipa tradisional
<a name="pipelines-step-decorator-run-pipeline-link-pass"></a>

Anda dapat membuat pipa yang mencakup langkah yang `@step` didekorasi dan langkah pipa tradisional dan meneruskan data di antara mereka. Misalnya, Anda dapat menggunakan `ProcessingStep` untuk memproses data dan meneruskan hasilnya ke fungsi pelatihan `@step` yang didekorasi. Dalam contoh berikut, langkah pelatihan yang `@step` didekorasi mereferensikan output dari langkah pemrosesan.

```
# Define processing step

from sagemaker.sklearn.processing import SKLearnProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker.workflow.steps import ProcessingStep

sklearn_processor = SKLearnProcessor(
    framework_version='1.2-1',
    role='arn:aws:iam::123456789012:role/SagemakerExecutionRole',
    instance_type='ml.m5.large',
    instance_count='1',
)

inputs = [
    ProcessingInput(source=input_data, destination="/opt/ml/processing/input"),
]
outputs = [
    ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
    ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"),
    ProcessingOutput(output_name="test", source="/opt/ml/processing/test")
]

process_step = ProcessingStep(
    name="MyProcessStep",
    step_args=sklearn_processor.run(inputs=inputs, outputs=outputs,code='preprocessing.py'),
)
```

```
# Define a @step-decorated train step which references the 
# output of a processing step

@step
def train(train_data_path, test_data_path):
    ...
    return trained_model
    
step_train_result = train(
   process_step.properties.ProcessingOutputConfig.Outputs["train"].S3Output.S3Uri,
   process_step.properties.ProcessingOutputConfig.Outputs["test"].S3Output.S3Uri,
)
```

## Gunakan `ConditionStep` dengan langkah-langkah `@step` yang didekorasi
<a name="pipelines-step-decorator-condition"></a>

Pipelines mendukung `ConditionStep` kelas yang mengevaluasi hasil dari langkah-langkah sebelumnya untuk memutuskan tindakan apa yang harus diambil dalam pipeline. Anda dapat menggunakan `ConditionStep` dengan langkah `@step` yang didekorasi juga. Untuk menggunakan output dari setiap langkah `@step` yang didekorasi dengan`ConditionStep`, masukkan output dari langkah itu sebagai argumen untuk`ConditionStep`. Dalam contoh berikut, langkah kondisi menerima output dari langkah evaluasi model `@step` yang didekorasi.

```
# Define steps

@step(name="evaluate")
def evaluate_model():
    # code to evaluate the model
    return {
        "rmse":rmse_value
    }
    
@step(name="register")
def register_model():
    # code to register the model
    ...
```

```
# Define ConditionStep

from sagemaker.workflow.condition_step import ConditionStep
from sagemaker.workflow.conditions import ConditionGreaterThanOrEqualTo
from sagemaker.workflow.fail_step import FailStep

conditionally_register = ConditionStep(
    name="conditional_register",
    conditions=[
        ConditionGreaterThanOrEqualTo(
            # Output of the evaluate step must be json serializable
            left=evaluate_model()["rmse"],  # 
            right=5,
        )
    ],
    if_steps=[FailStep(name="Fail", error_message="Model performance is not good enough")],
    else_steps=[register_model()],
)
```

## Tentukan pipeline menggunakan `DelayedReturn` output dari langkah-langkah
<a name="pipelines-step-define-delayed"></a>

Anda mendefinisikan pipeline dengan cara yang sama apakah Anda menggunakan `@step` dekorator atau tidak. Ketika Anda meneruskan `DelayedReturn` instance ke pipeline Anda, Anda tidak perlu melewati daftar lengkap langkah-langkah untuk membangun pipeline. SDK secara otomatis menyimpulkan langkah-langkah sebelumnya berdasarkan dependensi yang Anda tetapkan. Semua langkah sebelumnya dari `Step` objek yang Anda lewatkan ke pipa atau `DelayedReturn` objek termasuk dalam grafik pipa. Dalam contoh berikut, pipa menerima `DelayedReturn` objek untuk `train` fungsi tersebut. SageMaker AI menambahkan `preprocess` langkah, sebagai langkah sebelumnya`train`, ke grafik pipeline.

```
from sagemaker.workflow.pipeline import Pipeline

pipeline = Pipeline(
    name="<pipeline-name>",
    steps=[step_train_result],
    sagemaker_session=<sagemaker-session>,
)
```

Jika tidak ada data atau dependensi khusus di antara langkah-langkah dan Anda menjalankan beberapa langkah secara paralel, grafik pipeline memiliki lebih dari satu simpul daun. Berikan semua node daun ini dalam daftar ke `steps` argumen dalam definisi pipeline Anda, seperti yang ditunjukkan pada contoh berikut:

```
@step
def process1():
    ...
    return data
    
@step
def process2():
   ...
   return data
   
step_process1_result = process1()
step_process2_result = process2()

pipeline = Pipeline(
    name="<pipeline-name>",
    steps=[step_process1_result, step_process2_result],
    sagemaker_session=sagemaker-session,
)
```

Saat pipeline berjalan, kedua langkah berjalan secara paralel.

Anda hanya meneruskan simpul daun grafik ke pipeline karena simpul daun berisi informasi tentang semua langkah sebelumnya yang ditentukan melalui data atau dependensi khusus. Saat mengkompilasi pipeline, SageMaker AI juga menyimpulkan semua langkah selanjutnya yang membentuk grafik pipa dan menambahkan masing-masing sebagai langkah terpisah ke pipa.

## Membuat jalur
<a name="pipelines-step-decorator-pipeline-create"></a>

Buat pipeline dengan memanggil`pipeline.create()`, seperti yang ditunjukkan pada cuplikan berikut. Untuk detailnya`create()`, lihat [SageMaker.Workflow.Pipeline.Pipeline.Create](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.pipeline.Pipeline.create).

```
role = "pipeline-role"
pipeline.create(role)
```

Saat Anda menelepon`pipeline.create()`, SageMaker AI mengkompilasi semua langkah yang didefinisikan sebagai bagian dari instance pipeline. SageMaker AI mengunggah fungsi serial, argumen, dan semua artefak terkait langkah lainnya ke Amazon S3.

Data berada di bucket S3 sesuai dengan struktur berikut:

```
s3_root_uri/
    pipeline_name/
        sm_rf_user_ws/
            workspace.zip  # archive of the current working directory (workdir)
        step_name/
            timestamp/
                arguments/                # serialized function arguments
                function/                 # serialized function
                pre_train_dependencies/   # any dependencies and pre_execution scripts provided for the step       
        execution_id/
            step_name/
                results     # returned output from the serialized function including the model
```

`s3_root_uri`didefinisikan dalam file konfigurasi SageMaker AI dan berlaku untuk seluruh pipeline. Jika tidak ditentukan, bucket SageMaker AI default digunakan.

**catatan**  
Setiap kali SageMaker AI mengkompilasi pipeline, SageMaker AI menyimpan fungsi, argumen, dan dependensi serial langkah-langkah dalam folder yang diberi cap waktu dengan waktu saat ini. Ini terjadi setiap kali Anda berlari`pipeline.create()`,`pipeline.update()`, `pipeline.upsert()` atau`pipeline.definition()`.

# Jalankan pipa
<a name="pipelines-step-decorator-run-pipeline"></a>

Halaman berikut menjelaskan cara menjalankan pipeline dengan Amazon SageMaker Pipelines, baik dengan sumber daya SageMaker AI atau lokal.

Mulai proses pipeline baru dengan `pipeline.start()` fungsi seperti yang Anda lakukan untuk menjalankan pipeline SageMaker AI tradisional. Untuk informasi tentang `start()` fungsi, lihat [SageMaker.workflow.pipeline.pipeline.pipeline.start](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.pipeline.Pipeline.start).

**catatan**  
Langkah yang didefinisikan menggunakan `@step` dekorator berjalan sebagai pekerjaan pelatihan. Karena itu, waspadai batas-batas berikut:  
Batas instans dan batas pekerjaan pelatihan di akun Anda. Perbarui batas Anda untuk menghindari masalah pembatasan atau batas sumber daya.
Biaya moneter yang terkait dengan setiap langkah pelatihan dalam pipa. Untuk detail selengkapnya, lihat [ SageMaker Harga Amazon](https://aws.amazon.com/sagemaker/pricing/).

## Mengambil hasil dari pipeline yang dijalankan secara lokal
<a name="pipelines-step-decorator-run-pipeline-retrieve"></a>

Untuk melihat hasil dari setiap langkah dari pipeline run, gunakan [execution.result ()](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.pipeline._PipelineExecution.result           ), seperti yang ditunjukkan pada cuplikan berikut:

```
execution = pipeline.start()
execution.result(step_name="train")
```

**catatan**  
Pipelines tidak mendukung `execution.result()` dalam mode lokal.

Anda hanya dapat mengambil hasil untuk satu langkah pada satu waktu. Jika nama langkah dihasilkan oleh SageMaker AI, Anda dapat mengambil nama langkah dengan memanggil `list_steps` sebagai berikut:

```
execution.list_step()
```

## Jalankan pipeline secara lokal
<a name="pipelines-step-decorator-run-pipeline-local"></a>

Anda dapat menjalankan pipa dengan langkah-langkah yang `@step` didekorasi secara lokal seperti yang Anda lakukan untuk langkah-langkah pipa tradisional. Untuk detail tentang proses pipeline mode lokal, lihat[Jalankan saluran pipa menggunakan mode lokal](pipelines-local-mode.md). Untuk menggunakan mode lokal, berikan definisi pipeline sebagai `LocalPipelineSession` pengganti a`SageMakerSession`, seperti yang ditunjukkan pada contoh berikut:

```
from sagemaker.workflow.function_step import step
from sagemaker.workflow.pipeline import Pipeline
from sagemaker.workflow.pipeline_context import LocalPipelineSession

@step
def train():
    training_data = s3.download(....)
    ...
    return trained_model
    
step_train_result = train()

local_pipeline_session = LocalPipelineSession()

local_pipeline = Pipeline(
    name="<pipeline-name>",
    steps=[step_train_result],
    sagemaker_session=local_pipeline_session # needed for local mode
)

local_pipeline.create(role_arn="role_arn")

# pipeline runs locally
execution = local_pipeline.start()
```

# Konfigurasikan pipeline Anda
<a name="pipelines-step-decorator-cfg-pipeline"></a>

Anda disarankan untuk menggunakan file konfigurasi SageMaker AI untuk mengatur default untuk pipeline. Untuk informasi tentang file konfigurasi SageMaker AI, lihat [Mengonfigurasi dan menggunakan default dengan Python SDK](https://sagemaker.readthedocs.io/en/stable/overview.html#configuring-and-using-defaults-with-the-sagemaker-python-sdk). SageMaker Konfigurasi apa pun yang ditambahkan ke file konfigurasi berlaku untuk semua langkah dalam pipeline. Jika Anda ingin mengganti opsi untuk salah satu langkah, berikan nilai baru dalam argumen `@step` dekorator. Topik berikut menjelaskan cara menyiapkan file konfigurasi.

Konfigurasi `@step` dekorator dalam file konfigurasi identik dengan konfigurasi `@remote` dekorator. Untuk menyiapkan ARN peran pipeline dan tag pipeline di file konfigurasi, gunakan `Pipeline` bagian yang ditunjukkan dalam cuplikan berikut:

```
SchemaVersion: '1.0'
SageMaker:
  Pipeline:
    RoleArn: 'arn:aws:iam::555555555555:role/IMRole'
    Tags:
    - Key: 'tag_key'
      Value: 'tag_value'
```

Untuk sebagian besar default yang dapat Anda atur dalam file konfigurasi, Anda juga dapat mengganti dengan meneruskan nilai baru ke dekorator. `@step` Misalnya, Anda dapat mengganti jenis instance yang disetel dalam file konfigurasi untuk langkah preprocessing Anda, seperti yang ditunjukkan pada contoh berikut:

```
@step(instance_type="ml.m5.large")
def preprocess(raw_data):
    df = pandas.read_csv(raw_data)
    ...
    return procesed_dataframe
```

Beberapa argumen bukan bagian dari daftar parameter `@step` dekorator — ini dapat dikonfigurasi untuk seluruh pipeline hanya melalui file konfigurasi SageMaker AI. Mereka terdaftar sebagai berikut:
+ `sagemaker_session`(`sagemaker.session.Session`): Sesi SageMaker AI yang mendasari panggilan layanan SageMaker AI mendelegasikan. Jika tidak ditentukan, sesi dibuat menggunakan konfigurasi default sebagai berikut:

  ```
  SageMaker:
    PythonSDK:
      Modules:
        Session:
          DefaultS3Bucket: 'default_s3_bucket'
          DefaultS3ObjectKeyPrefix: 'key_prefix'
  ```
+ `custom_file_filter`(`CustomFileFilter)`: `CustomFileFilter` Objek yang menentukan direktori dan file lokal untuk disertakan dalam langkah pipeline. Jika tidak ditentukan, nilai ini default ke. `None` `custom_file_filter`Agar berlaku, Anda harus mengatur `IncludeLocalWorkdir` ke`True`. Contoh berikut menunjukkan konfigurasi yang mengabaikan semua file notebook, dan file dan direktori bernama. `data`

  ```
  SchemaVersion: '1.0'
  SageMaker:
    PythonSDK:
      Modules:
        RemoteFunction:
          IncludeLocalWorkDir: true
          CustomFileFilter: 
            IgnoreNamePatterns: # files or directories to ignore
            - "*.ipynb" # all notebook files
            - "data" # folder or file named "data"
  ```

  Untuk detail selengkapnya tentang cara menggunakannya `IncludeLocalWorkdir``CustomFileFilter`, lihat[Menggunakan kode modular dengan dekorator @remote](train-remote-decorator-modular.md).
+ `s3_root_uri (str)`: Folder root Amazon S3 tempat SageMaker AI mengunggah arsip kode dan data. Jika tidak ditentukan, bucket SageMaker AI default digunakan.
+ `s3_kms_key (str)`: Kunci yang digunakan untuk mengenkripsi data input dan output. Anda hanya dapat mengonfigurasi argumen ini di file konfigurasi SageMaker AI dan argumen tersebut berlaku untuk semua langkah yang ditentukan dalam pipeline. Jika tidak ditentukan, nilai default ke. `None` Lihat cuplikan berikut untuk contoh konfigurasi kunci S3 KMS:

  ```
  SchemaVersion: '1.0'
  SageMaker:
    PythonSDK:
      Modules:
        RemoteFunction:
          S3KmsKeyId: 's3kmskeyid'
          S3RootUri: 's3://amzn-s3-demo-bucket/my-project
  ```

# Praktik Terbaik
<a name="pipelines-step-decorator-best"></a>

Bagian berikut menyarankan praktik terbaik untuk diikuti ketika Anda menggunakan `@step` dekorator untuk langkah-langkah pipeline Anda.

## Gunakan kolam hangat
<a name="pipelines-step-decorator-best-warmpool"></a>

Untuk langkah pipa yang lebih cepat berjalan, gunakan fungsionalitas penyatuan hangat yang disediakan untuk pekerjaan pelatihan. Anda dapat mengaktifkan fungsionalitas kolam hangat dengan memberikan `keep_alive_period_in_seconds` argumen kepada `@step` dekorator seperti yang ditunjukkan dalam cuplikan berikut:

```
@step(
   keep_alive_period_in_seconds=900
)
```

Untuk informasi lebih lanjut tentang kolam hangat, lihat[SageMaker Kolam Hangat yang Dikelola AI](train-warm-pools.md). 

## Struktur direktori Anda
<a name="pipelines-step-decorator-best-dir"></a>

Anda disarankan untuk menggunakan modul kode saat menggunakan `@step` dekorator. Letakkan `pipeline.py` modul, di mana Anda menjalankan fungsi langkah dan menentukan pipeline, di root ruang kerja. Struktur yang direkomendasikan ditunjukkan sebagai berikut:

```
.
├── config.yaml # the configuration file that define the infra settings
├── requirements.txt # dependencies
├── pipeline.py  # invoke @step-decorated functions and define the pipeline here
├── steps/
| ├── processing.py
| ├── train.py
├── data/
├── test/
```

# Batasan
<a name="pipelines-step-decorator-limit"></a>

Bagian berikut menguraikan batasan yang harus Anda waspadai ketika Anda menggunakan `@step` dekorator untuk langkah-langkah pipa Anda.

## Keterbatasan argumen fungsi
<a name="pipelines-step-decorator-arg"></a>

Saat Anda meneruskan argumen input ke fungsi `@step` -decorated, batasan berikut berlaku:
+ Anda dapat meneruskan`DelayedReturn`, `Properties` (langkah dari jenis lain),`Parameter`, dan `ExecutionVariable` objek ke fungsi `@step` -decorated sebagai argumen. Tapi fungsi `@step` yang didekorasi tidak mendukung `JsonGet` dan `Join` objek sebagai argumen.
+ Anda tidak dapat langsung mengakses variabel pipeline dari suatu `@step` fungsi. Contoh berikut menghasilkan kesalahan:

  ```
  param = ParameterInteger(name="<parameter-name>", default_value=10)
  
  @step
  def func():
      print(param)
  
  func() # this raises a SerializationError
  ```
+ Anda tidak dapat membuat sarang variabel pipeline di objek lain dan meneruskannya ke `@step` fungsi. Contoh berikut menghasilkan kesalahan:

  ```
  param = ParameterInteger(name="<parameter-name>", default_value=10)
  
  @step
  def func(arg):
      print(arg)
  
  func(arg=(param,)) # this raises a SerializationError because param is nested in a tuple
  ```
+ Karena input dan output dari suatu fungsi diserialisasi, ada batasan pada jenis data yang dapat diteruskan sebagai input atau output dari suatu fungsi. Lihat bagian *Serialisasi dan deserialisasi data* [Memanggil fungsi jarak jauh](train-remote-decorator-invocation.md) untuk detail selengkapnya. Pembatasan yang sama berlaku untuk fungsi `@step` yang didekorasi.
+ Objek apa pun yang memiliki klien boto tidak dapat diserialisasi, oleh karena itu Anda tidak dapat meneruskan objek seperti input ke atau output dari fungsi `@step` -decorated. Misalnya, kelas klien SDK SageMaker Python seperti`Estimator`,`Predictor`, dan tidak `Processor` dapat diserialisasi.

## Impor fungsi
<a name="pipelines-step-decorator-best-import"></a>

Anda harus mengimpor pustaka yang diperlukan oleh langkah di dalam daripada di luar fungsi. Jika Anda mengimpornya di lingkup global, Anda berisiko mengalami tabrakan impor saat membuat serial fungsi. Misalnya, `sklearn.pipeline.Pipeline` bisa diganti dengan. `sagemaker.workflow.pipeline.Pipeline`

## Mereferensikan anggota anak dari nilai pengembalian fungsi
<a name="pipelines-step-decorator-best-child"></a>

Jika Anda mereferensikan anggota turunan dari nilai pengembalian fungsi `@step` -decorated, batasan berikut berlaku:
+ Anda dapat mereferensikan anggota anak dengan `[]` jika `DelayedReturn` objek mewakili Tuple, list atau dict, seperti yang ditunjukkan pada contoh berikut:

  ```
  delayed_return[0]
  delayed_return["a_key"]
  delayed_return[1]["a_key"]
  ```
+ Anda tidak dapat membongkar keluaran tuple atau daftar karena panjang yang tepat dari tupel atau daftar yang mendasarinya tidak dapat diketahui saat Anda menjalankan fungsi tersebut. Contoh berikut menghasilkan kesalahan:

  ```
  a, b, c = func() # this raises ValueError
  ```
+ Anda tidak dapat mengulangi `DelayedReturn` objek. Contoh berikut menimbulkan kesalahan:

  ```
  for item in func(): # this raises a NotImplementedError
  ```
+ Anda tidak dapat mereferensikan anggota anak yang sewenang-wenang dengan '`.`'. Contoh berikut menghasilkan kesalahan:

  ```
  delayed_return.a_child # raises AttributeError
  ```

## Fitur pipeline yang ada yang tidak didukung
<a name="pipelines-step-decorator-best-unsupported"></a>

Anda tidak dapat menggunakan `@step` dekorator dengan fitur pipeline berikut:
+ [Caching langkah pipa](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-caching.html)
+ [File properti](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-propertyfile.html#build-and-manage-propertyfile-property)

# Lulus Data Antar Langkah
<a name="build-and-manage-propertyfile"></a>

Saat membangun jaringan pipa dengan Amazon SageMaker Pipelines, Anda mungkin perlu meneruskan data dari satu langkah ke langkah berikutnya. Misalnya, Anda mungkin ingin menggunakan artefak model yang dihasilkan oleh langkah pelatihan sebagai masukan ke evaluasi model atau langkah penerapan. Anda dapat menggunakan fungsionalitas ini untuk membuat langkah pipeline yang saling bergantung dan membangun alur kerja ML Anda.

Ketika Anda perlu mengambil informasi dari output dari langkah pipa, Anda dapat menggunakannya`JsonGet`. `JsonGet`membantu Anda mengekstrak informasi dari Amazon S3 atau file properti. Bagian berikut menjelaskan metode yang dapat Anda gunakan untuk mengekstrak output langkah dengan`JsonGet`.

## Lulus data antar langkah dengan Amazon S3
<a name="build-and-manage-propertyfile-s3"></a>

Anda dapat menggunakan `JsonGet` dalam `ConditionStep` untuk mengambil output JSON langsung dari Amazon S3. URI Amazon S3 dapat berupa `Std:Join` fungsi yang berisi string primitif, variabel pipeline run, atau parameter pipeline. Contoh berikut menunjukkan bagaimana Anda dapat menggunakan `JsonGet` dalam`ConditionStep`:

```
# Example json file in s3 bucket generated by a processing_step
{
   "Output": [5, 10]
}

cond_lte = ConditionLessThanOrEqualTo(
    left=JsonGet(
        step_name="<step-name>",
        s3_uri="<s3-path-to-json>",
        json_path="Output[1]"
    ),
    right=6.0
)
```

Jika Anda menggunakan `JsonGet` jalur Amazon S3 di langkah kondisi, Anda harus secara eksplisit menambahkan ketergantungan antara langkah kondisi dan langkah yang menghasilkan output JSON. Dalam contoh berikut, langkah kondisi dibuat dengan ketergantungan pada langkah pemrosesan:

```
cond_step = ConditionStep(
        name="<step-name>",
        conditions=[cond_lte],
        if_steps=[fail_step],
        else_steps=[register_model_step],
        depends_on=[processing_step],
)
```

## Lulus data antar langkah dengan file properti
<a name="build-and-manage-propertyfile-property"></a>

Gunakan file properti untuk menyimpan informasi dari output dari langkah pemrosesan. Ini sangat berguna ketika menganalisis hasil dari langkah pemrosesan untuk memutuskan bagaimana langkah bersyarat harus dijalankan. `JsonGet`Fungsi memproses file properti dan memungkinkan Anda untuk menggunakan JsonPath notasi untuk query file JSON properti. Untuk informasi lebih lanjut tentang JsonPath notasi, lihat [JsonPath repo](https://github.com/json-path/JsonPath).

Untuk menyimpan file properti untuk digunakan nanti, Anda harus terlebih dahulu membuat `PropertyFile` instance dengan format berikut. `path`Parameter adalah nama file JSON tempat file properti disimpan. Setiap `output_name` harus cocok dengan `output_name` `ProcessingOutput` yang Anda tentukan dalam langkah pemrosesan Anda. Hal ini memungkinkan file properti untuk menangkap `ProcessingOutput` dalam langkah.

```
from sagemaker.workflow.properties import PropertyFile

<property_file_instance> = PropertyFile(
    name="<property_file_name>",
    output_name="<processingoutput_output_name>",
    path="<path_to_json_file>"
)
```

Saat membuat `ProcessingStep` instance, tambahkan `property_files` parameter untuk mencantumkan semua file parameter yang harus diindeks oleh layanan Amazon SageMaker Pipelines. Ini menyimpan file properti untuk digunakan nanti.

```
property_files=[<property_file_instance>]
```

Untuk menggunakan file properti Anda dalam langkah kondisi, tambahkan `property_file` ke kondisi yang Anda teruskan ke langkah kondisi Anda seperti yang ditunjukkan pada contoh berikut untuk menanyakan file JSON untuk properti yang Anda inginkan menggunakan `json_path` parameter.

```
cond_lte = ConditionLessThanOrEqualTo(
    left=JsonGet(
        step_name=step_eval.name,
        property_file=<property_file_instance>,
        json_path="mse"
    ),
    right=6.0
)
```

Untuk contoh lebih mendalam, lihat *[File properti](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#property-file)* di [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

# Langkah-langkah pipa cache
<a name="pipelines-caching"></a>

Di Amazon SageMaker Pipelines, Anda dapat menggunakan caching langkah untuk menghemat waktu dan sumber daya saat menjalankan ulang pipeline. Step caching menggunakan kembali output dari langkah yang berhasil sebelumnya (bukan mengkomputernya ulang) ketika langkah memiliki konfigurasi dan input yang sama. Ini membantu Anda mencapai hasil yang konsisten di seluruh tayangan ulang pipeline dengan parameter yang identik. Topik berikut menunjukkan cara mengkonfigurasi dan mengaktifkan caching langkah untuk pipeline Anda.

Saat Anda menggunakan caching tanda tangan langkah, Pipelines mencoba menemukan langkah pipeline Anda yang berjalan sebelumnya dengan nilai yang sama untuk atribut tertentu. Jika ditemukan, Pipelines menyebarkan output dari proses sebelumnya daripada menghitung ulang langkah. Atribut yang dicentang khusus untuk jenis langkah, dan tercantum dalam[Atribut kunci cache default berdasarkan tipe langkah pipa](pipelines-default-keys.md).

Anda harus memilih untuk melakukan caching langkah — ini tidak aktif secara default. Saat Anda mengaktifkan caching langkah, Anda juga harus menentukan batas waktu. Batas waktu ini menentukan berapa umur lari sebelumnya untuk tetap menjadi kandidat untuk digunakan kembali.

Step caching hanya mempertimbangkan proses yang berhasil - tidak pernah menggunakan kembali proses yang gagal. Ketika beberapa proses yang berhasil ada dalam periode batas waktu, Pipelines menggunakan hasilnya untuk menjalankan sukses terbaru. Jika tidak ada pertandingan berjalan yang berhasil dalam periode batas waktu, Pipelines menjalankan ulang langkahnya. Jika pelaksana menemukan proses sebelumnya yang memenuhi kriteria tetapi masih dalam proses, kedua langkah terus berjalan dan memperbarui cache jika berhasil.

Step caching hanya dicakup untuk pipeline individu, jadi Anda tidak dapat menggunakan kembali langkah dari pipeline lain meskipun ada kecocokan tanda tangan langkah.

Langkah caching tersedia untuk jenis langkah berikut: 
+ [Pemrosesan](build-and-manage-steps-types.md#step-type-processing)
+ [Pelatihan](build-and-manage-steps-types.md#step-type-training)
+ [Tuning](build-and-manage-steps-types.md#step-type-tuning)
+ [AutoML](build-and-manage-steps-types.md#step-type-automl)
+ [Transformasi](build-and-manage-steps-types.md#step-type-transform)
+ [`ClarifyCheck`](build-and-manage-steps-types.md#step-type-clarify-check)
+ [`QualityCheck`](build-and-manage-steps-types.md#step-type-quality-check)
+ [EMR](build-and-manage-steps-types.md#step-type-emr)

**Topics**
+ [Aktifkan caching langkah](pipelines-caching-enabling.md)
+ [Matikan caching langkah](pipelines-caching-disabling.md)
+ [Atribut kunci cache default berdasarkan tipe langkah pipa](pipelines-default-keys.md)
+ [Kontrol akses data cache](pipelines-access-control.md)

# Aktifkan caching langkah
<a name="pipelines-caching-enabling"></a>

Untuk mengaktifkan caching langkah, Anda harus menambahkan `CacheConfig` properti ke definisi langkah. `CacheConfig`properti menggunakan format berikut dalam file definisi pipeline:

```
{
    "CacheConfig": {
        "Enabled": false,
        "ExpireAfter": "<time>"
    }
}
```

`Enabled`Bidang menunjukkan apakah caching dihidupkan untuk langkah tertentu. Anda dapat mengatur bidang ke`true`, yang memberi tahu SageMaker AI untuk mencoba menemukan langkah langkah sebelumnya dengan atribut yang sama. Atau, Anda dapat mengatur bidang ke`false`, yang memberi tahu SageMaker AI untuk menjalankan langkah setiap kali pipeline berjalan. `ExpireAfter`adalah string dalam format [durasi ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) yang menentukan periode batas waktu. `ExpireAfter`Durasi dapat berupa nilai tahun, bulan, minggu, hari, jam, atau menit. Setiap nilai terdiri dari angka diikuti dengan huruf yang menunjukkan satuan durasi. Contoh:
+ “30d” = 30 hari
+ “5y” = 5 tahun
+ “T16m” = 16 menit
+ “30dT5h” = 30 hari dan 5 jam.

Diskusi berikut menjelaskan prosedur untuk mengaktifkan caching untuk pipeline baru atau yang sudah ada sebelumnya menggunakan Amazon Python SageMaker SDK.

**Aktifkan caching untuk pipeline baru**

Untuk pipeline baru, inisialisasi `CacheConfig` instance dengan `enable_caching=True` dan berikan sebagai input ke langkah pipeline Anda. Contoh berikut mengaktifkan caching dengan periode batas waktu 1 jam untuk langkah pelatihan: 

```
from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.workflow.steps import CacheConfig
      
cache_config = CacheConfig(enable_caching=True, expire_after="PT1H")
estimator = Estimator(..., sagemaker_session=PipelineSession())

step_train = TrainingStep(
    name="TrainAbaloneModel",
    step_args=estimator.fit(inputs=inputs),
    cache_config=cache_config
)
```

**Aktifkan caching untuk pipeline yang sudah ada sebelumnya**

Untuk mengaktifkan caching untuk pipeline yang sudah ada sebelumnya dan sudah ditentukan, nyalakan `enable_caching` properti untuk langkah tersebut, dan setel `expire_after` ke nilai batas waktu. Terakhir, perbarui pipeline dengan `pipeline.upsert()` atau`pipeline.update()`. Setelah Anda menjalankannya lagi, contoh kode berikut mengaktifkan caching dengan periode batas waktu 1 jam untuk langkah pelatihan:

```
from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.workflow.steps import CacheConfig
from sagemaker.workflow.pipeline import Pipeline

cache_config = CacheConfig(enable_caching=True, expire_after="PT1H")
estimator = Estimator(..., sagemaker_session=PipelineSession())

step_train = TrainingStep(
    name="TrainAbaloneModel",
    step_args=estimator.fit(inputs=inputs),
    cache_config=cache_config
)

# define pipeline
pipeline = Pipeline(
    steps=[step_train]
)

# additional step for existing pipelines
pipeline.update()
# or, call upsert() to update the pipeline
# pipeline.upsert()
```

Atau, perbarui konfigurasi cache setelah Anda mendefinisikan pipeline (yang sudah ada sebelumnya), memungkinkan satu kode berkelanjutan dijalankan. Contoh kode berikut menunjukkan metode ini:

```
# turn on caching with timeout period of one hour
pipeline.steps[0].cache_config.enable_caching = True 
pipeline.steps[0].cache_config.expire_after = "PT1H" 

# additional step for existing pipelines
pipeline.update()
# or, call upsert() to update the pipeline
# pipeline.upsert()
```

Untuk contoh kode yang lebih rinci dan diskusi tentang bagaimana parameter SDK Python memengaruhi caching, lihat [Konfigurasi Caching dalam](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#caching-configuration) dokumentasi Amazon Python SDK. SageMaker 

# Matikan caching langkah
<a name="pipelines-caching-disabling"></a>

Langkah pipeline tidak dijalankan kembali jika Anda mengubah atribut apa pun yang tidak tercantum [Atribut kunci cache default berdasarkan tipe langkah pipa](pipelines-default-keys.md) untuk jenis langkahnya. Namun, Anda dapat memutuskan bahwa Anda ingin langkah pipeline dijalankan kembali. Dalam hal ini, Anda perlu mematikan caching langkah.

Untuk menonaktifkan caching langkah, atur `Enabled` atribut di `CacheConfig` properti definisi langkah dalam definisi langkah ke`false`, seperti yang ditunjukkan pada cuplikan kode berikut:

```
{
    "CacheConfig": {
        "Enabled": false,
        "ExpireAfter": "<time>"
    }
}
```

Perhatikan bahwa `ExpireAfter` atribut diabaikan ketika `Enabled` ada`false`.

Untuk mematikan caching untuk langkah pipeline menggunakan Amazon SageMaker Python SDK, tentukan pipeline langkah pipeline Anda, matikan properti, dan `enable_caching` perbarui pipeline.

Setelah Anda menjalankannya lagi, contoh kode berikut mematikan caching untuk langkah pelatihan:

```
from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.workflow.steps import CacheConfig
from sagemaker.workflow.pipeline import Pipeline

cache_config = CacheConfig(enable_caching=False, expire_after="PT1H")
estimator = Estimator(..., sagemaker_session=PipelineSession())

step_train = TrainingStep(
    name="TrainAbaloneModel",
    step_args=estimator.fit(inputs=inputs),
    cache_config=cache_config
)

# define pipeline
pipeline = Pipeline(
    steps=[step_train]
)

# update the pipeline
pipeline.update()
# or, call upsert() to update the pipeline
# pipeline.upsert()
```

Atau, matikan `enable_caching` properti setelah Anda telah menentukan pipeline, memungkinkan satu kode berkelanjutan dijalankan. Contoh kode berikut menunjukkan solusi ini:

```
# turn off caching for the training step
pipeline.steps[0].cache_config.enable_caching = False

# update the pipeline
pipeline.update()
# or, call upsert() to update the pipeline
# pipeline.upsert()
```

Untuk contoh kode yang lebih rinci dan diskusi tentang bagaimana parameter SDK Python memengaruhi caching, lihat [Konfigurasi Caching dalam](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#caching-configuration) dokumentasi Amazon Python SDK. SageMaker 

# Atribut kunci cache default berdasarkan tipe langkah pipa
<a name="pipelines-default-keys"></a>

Saat memutuskan apakah akan menggunakan kembali langkah pipeline sebelumnya atau menjalankan kembali langkah tersebut, Pipelines memeriksa untuk melihat apakah atribut tertentu telah berubah. Jika kumpulan atribut berbeda dari semua proses sebelumnya dalam periode batas waktu, langkah berjalan lagi. Atribut ini termasuk artefak input, spesifikasi aplikasi atau algoritma, dan variabel lingkungan. Daftar berikut menunjukkan setiap jenis langkah pipeline dan atribut yang, jika diubah, memulai tayangan ulang langkah. Untuk informasi selengkapnya tentang parameter SDK Python yang digunakan untuk membuat atribut berikut, lihat Konfigurasi [Caching dalam](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#caching-configuration) dokumentasi Amazon SageMaker Python SDK.

## [Langkah pemrosesan](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
<a name="collapsible-caching-section-1"></a>
+ AppSpecification
+ Lingkungan
+ ProcessingInputs. Atribut ini berisi informasi tentang skrip preprocessing.

  

## [Langkah pelatihan](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
<a name="collapsible-caching-section-2"></a>
+ AlgorithmSpecification
+ CheckpointConfig
+ DebugHookConfig
+ DebugRuleConfigurations
+ Lingkungan
+ HyperParameters
+ InputDataConfig. Atribut ini berisi informasi tentang skrip pelatihan.

  

## [Langkah penyetelan](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)
<a name="collapsible-caching-section-3"></a>
+ HyperParameterTuningJobConfig
+ TrainingJobDefinition. Atribut ini terdiri dari beberapa atribut anak, tidak semuanya menyebabkan langkah dijalankan kembali. Atribut anak yang dapat menimbulkan tayangan ulang (jika diubah) adalah:
  + AlgorithmSpecification
  + HyperParameterRanges
  + InputDataConfig
  + StaticHyperParameters
  + TuningObjective
+ TrainingJobDefinitions

  

## [Langkah AutoML](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_AutoMLJobConfig.html)
<a name="collapsible-caching-section-4"></a>
+ MLJobKonfigurasi Otomatis. Atribut ini terdiri dari beberapa atribut anak, tidak semuanya menyebabkan langkah dijalankan kembali. Atribut anak yang dapat menimbulkan tayangan ulang (jika diubah) adalah:
  + CompletionCriteria
  + CandidateGenerationConfig
  + DataSplitConfig
  + Modus
+ MLJobTujuan Otomatis
+ InputDataConfig
+ ProblemType

  

## [Transformasikan langkah](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
<a name="collapsible-caching-section-5"></a>
+ DataProcessing
+ Lingkungan
+ ModelName
+ TransformInput

  

## [ClarifyCheck langkah](build-and-manage-steps-types.md#step-type-clarify-check)
<a name="collapsible-caching-section-6"></a>
+ ClarifyCheckConfig
+ CheckJobConfig
+ SkipCheck
+ RegisterNewBaseline
+ ModelPackageGroupName
+ SuppliedBaselineConstraints

  

## [QualityCheck langkah](build-and-manage-steps-types.md#step-type-quality-check)
<a name="collapsible-caching-section-7"></a>
+ QualityCheckConfig
+ CheckJobConfig
+ SkipCheck
+ RegisterNewBaseline
+ ModelPackageGroupName
+ SuppliedBaselineConstraints
+ SuppliedBaselineStatistics

  

## [Langkah EMR](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-emr)
<a name="collapsible-caching-section-8"></a>
+ ClusterId
+ StepConfig

  

# Kontrol akses data cache
<a name="pipelines-access-control"></a>

Ketika pipeline SageMaker AI berjalan, ia menyimpan parameter dan metadata yang terkait dengan pekerjaan SageMaker AI yang diluncurkan oleh pipeline dan menyimpannya untuk digunakan kembali dalam proses berikutnya. Metadata ini dapat diakses melalui berbagai sumber selain langkah-langkah pipeline yang di-cache, dan mencakup jenis berikut:
+ Permintaan `Describe*Job`
+ CloudWatch Log
+ CloudWatch Event
+ CloudWatch Metrik
+ SageMaker Pencarian AI

Perhatikan bahwa akses ke setiap sumber data dalam daftar dikendalikan oleh kumpulan izin IAM sendiri. Menghapus akses peran tertentu ke satu sumber data tidak mempengaruhi tingkat akses ke yang lain. Misalnya, admin akun mungkin menghapus izin IAM untuk `Describe*Job` permintaan dari peran pemanggil. Meskipun penelepon tidak dapat lagi membuat `Describe*Job` permintaan, mereka masih dapat mengambil metadata dari pipeline yang dijalankan dengan langkah-langkah cache selama mereka memiliki izin untuk menjalankan pipeline. Jika admin akun ingin menghapus akses ke metadata dari pekerjaan SageMaker AI tertentu sepenuhnya, mereka perlu menghapus izin untuk setiap layanan terkait yang menyediakan akses ke data. 

# Coba lagi Kebijakan untuk Langkah-langkah Pipa
<a name="pipelines-retry-policy"></a>

Kebijakan coba lagi membantu Anda mencoba ulang langkah Pipelines secara otomatis setelah terjadi kesalahan. Setiap langkah pipeline dapat menemukan pengecualian, dan pengecualian terjadi karena berbagai alasan. Dalam beberapa kasus, coba lagi dapat menyelesaikan masalah ini. Dengan kebijakan coba lagi untuk langkah-langkah pipeline, Anda dapat memilih apakah akan mencoba lagi langkah pipeline tertentu atau tidak.

Kebijakan coba lagi hanya mendukung langkah-langkah pipeline berikut:
+ [Langkah pemrosesan](build-and-manage-steps-types.md#step-type-processing) 
+ [Langkah pelatihan](build-and-manage-steps-types.md#step-type-training) 
+ [Langkah penyetelan](build-and-manage-steps-types.md#step-type-tuning) 
+ [Langkah AutoML](build-and-manage-steps-types.md#step-type-automl) 
+ [Buat langkah model](build-and-manage-steps-types.md#step-type-create-model) 
+ [Daftarkan langkah model](build-and-manage-steps-types.md#step-type-register-model) 
+ [Transformasikan langkah](build-and-manage-steps-types.md#step-type-transform) 
+ [Langkah pekerjaan notebook](build-and-manage-steps-types.md#step-type-notebook-job) 

**catatan**  
Pekerjaan yang berjalan di dalam langkah penyetelan dan AutoML melakukan percobaan ulang secara internal dan tidak akan mencoba lagi jenis pengecualian, meskipun kebijakan coba `SageMaker.JOB_INTERNAL_ERROR` lagi dikonfigurasi. Anda dapat memprogram [Strategi Coba Ulang](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RetryStrategy.html) Anda sendiri menggunakan SageMaker API.

## Jenis pengecualian yang didukung untuk kebijakan coba lagi
<a name="pipelines-retry-policy-supported-exceptions"></a>

Kebijakan coba lagi untuk langkah-langkah pipeline mendukung jenis pengecualian berikut:
+ `Step.SERVICE_FAULT`: Pengecualian ini terjadi ketika kesalahan server internal atau kesalahan sementara terjadi saat memanggil layanan hilir. Pipelines mencoba ulang jenis kesalahan ini secara otomatis. Dengan kebijakan coba lagi, Anda dapat mengganti operasi coba ulang default untuk jenis pengecualian ini.
+ `Step.THROTTLING`: Pengecualian pelambatan dapat terjadi saat memanggil layanan hilir. Pipelines mencoba ulang jenis kesalahan ini secara otomatis. Dengan kebijakan coba lagi, Anda dapat mengganti operasi coba ulang default untuk jenis pengecualian ini.
+ `SageMaker.JOB_INTERNAL_ERROR`: Pengecualian ini terjadi ketika pekerjaan SageMaker AI kembali`InternalServerError`. Dalam hal ini, memulai pekerjaan baru dapat memperbaiki masalah sementara.
+ `SageMaker.CAPACITY_ERROR`: Pekerjaan SageMaker AI mungkin menghadapi Amazon EC2`InsufficientCapacityErrors`, yang menyebabkan kegagalan pekerjaan SageMaker AI. Anda dapat mencoba lagi dengan memulai pekerjaan SageMaker AI baru untuk menghindari masalah tersebut. 
+ `SageMaker.RESOURCE_LIMIT`: Anda dapat melampaui kuota batas sumber daya saat menjalankan pekerjaan SageMaker AI. Anda dapat menunggu dan mencoba lagi menjalankan pekerjaan SageMaker AI setelah waktu yang singkat dan melihat apakah sumber daya dirilis.

## Skema JSON untuk kebijakan coba lagi
<a name="pipelines-retry-policy-json-schema"></a>

Kebijakan coba lagi untuk Pipelines memiliki skema JSON berikut:

```
"RetryPolicy": {
   "ExceptionType": [String]
   "IntervalSeconds": Integer
   "BackoffRate": Double
   "MaxAttempts": Integer
   "ExpireAfterMin": Integer
}
```
+ `ExceptionType`: Bidang ini membutuhkan jenis pengecualian berikut dalam format array string.
  + `Step.SERVICE_FAULT`
  + `Step.THROTTLING`
  + `SageMaker.JOB_INTERNAL_ERROR`
  + `SageMaker.CAPACITY_ERROR`
  + `SageMaker.RESOURCE_LIMIT`
+ `IntervalSeconds`(opsional): Jumlah detik sebelum percobaan ulang pertama (1 secara default). `IntervalSeconds`memiliki nilai maksimum 43200 detik (12 jam).
+ `BackoffRate`(opsional): Pengganda dimana interval coba lagi meningkat selama setiap upaya (2.0 secara default).
+ `MaxAttempts`(opsional): Sebuah bilangan bulat positif yang mewakili jumlah maksimum percobaan ulang (5 secara default). Jika kesalahan berulang lebih dari yang `MaxAttempts` ditentukan, percobaan ulang berhenti dan penanganan kesalahan normal dilanjutkan. Nilai 0 menentukan bahwa kesalahan tidak pernah dicoba lagi. `MaxAttempts`memiliki nilai maksimum 20.
+ `ExpireAfterMin`(opsional): Sebuah bilangan bulat positif yang mewakili rentang waktu maksimum percobaan ulang. Jika kesalahan berulang setelah hitungan `ExpireAfterMin` menit dari langkah dijalankan, percobaan ulang berhenti dan penanganan kesalahan normal dilanjutkan. Nilai 0 menentukan bahwa kesalahan tidak pernah dicoba lagi. `ExpireAfterMin `memiliki nilai maksimum 14.400 menit (10 hari).
**catatan**  
Hanya satu dari `MaxAttempts` atau `ExpireAfterMin` dapat diberikan, tetapi tidak keduanya; jika keduanya *tidak* ditentukan, `MaxAttempts` menjadi default. Jika kedua properti diidentifikasi dalam satu kebijakan, maka kebijakan coba lagi menghasilkan kesalahan validasi.

# Mengonfigurasi kebijakan coba lagi
<a name="pipelines-configuring-retry-policy"></a>

Meskipun SageMaker Pipelines menyediakan cara yang kuat dan otomatis untuk mengatur alur kerja pembelajaran mesin, Anda mungkin mengalami kegagalan saat menjalankannya. Untuk menangani skenario seperti itu dengan anggun dan meningkatkan keandalan pipeline, Anda dapat mengonfigurasi kebijakan coba ulang yang menentukan bagaimana dan kapan harus mencoba ulang langkah-langkah tertentu secara otomatis setelah menemukan pengecualian. Kebijakan coba lagi memungkinkan Anda menentukan jenis pengecualian untuk dicoba lagi, jumlah maksimum percobaan ulang, interval antara percobaan ulang, dan tingkat backoff untuk meningkatkan interval coba lagi. Bagian berikut memberikan contoh cara mengonfigurasi kebijakan coba lagi untuk langkah pelatihan di pipeline Anda, baik di JSON maupun menggunakan Python SageMaker SDK.

Berikut ini adalah contoh langkah pelatihan dengan kebijakan coba lagi.

```
{
    "Steps": [
        {
            "Name": "MyTrainingStep",
            "Type": "Training",
            "RetryPolicies": [
                {
                    "ExceptionType": [
                        "SageMaker.JOB_INTERNAL_ERROR",
                        "SageMaker.CAPACITY_ERROR"
                    ],
                    "IntervalSeconds": 1,
                    "BackoffRate": 2,
                    "MaxAttempts": 5
                }
            ]
        }
    ]
}
```



Berikut ini adalah contoh cara membuat `TrainingStep` in SDK for Python (Boto3) dengan kebijakan coba lagi.

```
from sagemaker.workflow.retry import (
    StepRetryPolicy, 
    StepExceptionTypeEnum,
    SageMakerJobExceptionTypeEnum,
    SageMakerJobStepRetryPolicy
)

step_train = TrainingStep(
    name="MyTrainingStep",
    xxx,
    retry_policies=[
        // override the default 
        StepRetryPolicy(
            exception_types=[
                StepExceptionTypeEnum.SERVICE_FAULT, 
                StepExceptionTypeEnum.THROTTLING
            ],
            expire_after_mins=5,
            interval_seconds=10,
            backoff_rate=2.0 
        ),
        // retry when resource limit quota gets exceeded
        SageMakerJobStepRetryPolicy(
            exception_types=[SageMakerJobExceptionTypeEnum.RESOURCE_LIMIT],
            expire_after_mins=120,
            interval_seconds=60,
            backoff_rate=2.0
        ),
        // retry when job failed due to transient error or EC2 ICE.
        SageMakerJobStepRetryPolicy(
            failure_reason_types=[
                SageMakerJobExceptionTypeEnum.INTERNAL_ERROR,
                SageMakerJobExceptionTypeEnum.CAPACITY_ERROR,
            ],
            max_attempts=10,
            interval_seconds=30,
            backoff_rate=2.0
        )
    ]
)
```

Untuk informasi selengkapnya tentang mengonfigurasi perilaku coba lagi untuk jenis langkah tertentu, lihat *[Amazon SageMaker Pipelines - Kebijakan Coba Lagi dalam](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#retry-policy)* dokumentasi Amazon Python SageMaker SDK.

# Eksekusi selektif dari langkah-langkah pipa
<a name="pipelines-selective-ex"></a>

Saat Anda menggunakan Pipelines untuk membuat alur kerja dan mengatur langkah pelatihan ML Anda, Anda mungkin perlu melakukan beberapa fase eksperimen. Alih-alih menjalankan pipeline penuh setiap kali, Anda mungkin hanya ingin mengulangi langkah-langkah tertentu. Dengan Pipelines, Anda dapat menjalankan langkah-langkah pipeline secara selektif. Ini membantu mengoptimalkan pelatihan ML Anda. Eksekusi selektif berguna dalam skenario berikut: 
+ Anda ingin memulai ulang langkah tertentu dengan jenis instance yang diperbarui, hyperparameters, atau variabel lain sambil menjaga parameter dari langkah hulu.
+ Pipeline Anda gagal dalam langkah perantara. Langkah-langkah sebelumnya dalam eksekusi, seperti persiapan data atau ekstraksi fitur, mahal untuk dijalankan kembali. Anda mungkin perlu memperkenalkan perbaikan dan menjalankan kembali langkah-langkah tertentu secara manual untuk menyelesaikan pipeline. 

Dengan menggunakan eksekusi selektif, Anda dapat memilih untuk menjalankan subset langkah apa pun selama mereka terhubung dalam grafik asiklik terarah (DAG) dari pipeline Anda. DAG berikut menunjukkan contoh alur kerja pipeline:

![\[Grafik asiklik terarah (DAG) dari contoh pipa.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/pipeline-full.png)


Anda dapat memilih langkah-langkah `AbaloneTrain` dan `AbaloneEval` dalam eksekusi selektif, tetapi Anda tidak dapat memilih hanya `AbaloneTrain` dan `AbaloneMSECond` langkah-langkah karena langkah-langkah ini tidak terhubung di DAG. Untuk langkah-langkah yang tidak dipilih dalam alur kerja, eksekusi selektif menggunakan kembali output dari eksekusi pipeline referensi daripada menjalankan ulang langkah-langkahnya. Juga, langkah-langkah yang tidak dipilih yang hilir dari langkah-langkah yang dipilih tidak berjalan dalam eksekusi selektif. 

Jika Anda memilih untuk menjalankan subset langkah perantara dalam pipeline, langkah Anda mungkin bergantung pada langkah sebelumnya. SageMaker AI membutuhkan eksekusi pipeline referensi untuk sumber daya dependensi ini. Misalnya, jika Anda memilih untuk menjalankan langkah-langkah `AbaloneTrain` dan`AbaloneEval`, Anda memerlukan output dari `AbaloneProcess` langkah tersebut. Anda dapat memberikan ARN eksekusi referensi atau mengarahkan SageMaker AI untuk menggunakan eksekusi pipeline terbaru, yang merupakan perilaku default. Jika Anda memiliki eksekusi referensi, Anda juga dapat membuat parameter runtime dari proses referensi Anda dan menyediakannya ke eksekutif selektif Anda dengan penggantian. Lihat perinciannya di [Gunakan kembali nilai parameter runtime dari eksekusi referensi](#pipelines-selective-ex-reuse).

Secara detail, Anda menyediakan konfigurasi untuk pipeline eksekusi selektif yang dijalankan. `SelectiveExecutionConfig` Jika Anda menyertakan ARN untuk eksekusi pipeline referensi (dengan `source_pipeline_execution_arn` argumen), SageMaker AI menggunakan dependensi langkah sebelumnya dari eksekusi pipeline yang Anda berikan. Jika Anda tidak menyertakan ARN dan eksekusi pipeline terbaru ada, SageMaker AI menggunakannya sebagai referensi secara default. Jika Anda tidak menyertakan ARN dan tidak ingin SageMaker AI menggunakan eksekusi pipeline terbaru Anda, atur `reference_latest_execution` ke. `False` Eksekusi pipeline yang akhirnya digunakan SageMaker AI sebagai referensi, baik yang terbaru atau yang ditentukan pengguna, harus dalam `Success` atau `Failed` status.

Tabel berikut merangkum bagaimana SageMaker AI memilih eksekusi referensi.


| Nilai `source_pipeline_execution_arn` argumen | Nilai `reference_latest_execution` argumen | Eksekusi referensi yang digunakan | 
| --- | --- | --- | 
| Sebuah pipa ARN | `True`atau tidak ditentukan | ARN pipa yang ditentukan | 
| Sebuah pipa ARN | `False` | ARN pipa yang ditentukan | 
| nullatau tidak ditentukan | `True`atau tidak ditentukan | Eksekusi pipeline terbaru | 
| nullatau tidak ditentukan | `False` | Tidak ada—dalam hal ini, pilih langkah tanpa dependensi upstream | 

Untuk informasi selengkapnya tentang persyaratan konfigurasi eksekusi selektif, lihat [sagemaker.workflow.selective\$1execution\$1config. SelectiveExecutionConfig](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#selective-execution-config)dokumentasi.

Diskusi berikut mencakup contoh untuk kasus di mana Anda ingin menentukan eksekusi referensi pipeline, menggunakan eksekusi pipeline terbaru sebagai referensi, atau menjalankan eksekusi selektif tanpa eksekusi pipeline referensi.

## Eksekusi selektif dengan referensi pipeline yang ditentukan pengguna
<a name="pipelines-selective-ex-arn"></a>

Contoh berikut menunjukkan eksekusi selektif dari langkah-langkah `AbaloneTrain` dan `AbaloneEval` menggunakan eksekusi pipeline referensi.

```
from sagemaker.workflow.selective_execution_config import SelectiveExecutionConfig

selective_execution_config = SelectiveExecutionConfig(
    source_pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", 
    selected_steps=["AbaloneTrain", "AbaloneEval"]
)

selective_execution = pipeline.start(
    execution_display_name=f"Sample-Selective-Execution-1",
    parameters={"MaxDepth":6, "NumRound":60},
    selective_execution_config=selective_execution_config,
)
```

## Eksekusi selektif dengan eksekusi pipeline terbaru sebagai referensi
<a name="pipelines-selective-ex-latest"></a>

Contoh berikut menunjukkan eksekusi selektif dari langkah-langkah `AbaloneTrain` dan `AbaloneEval` menggunakan eksekusi pipeline terbaru sebagai referensi. Karena SageMaker AI menggunakan eksekusi pipeline terbaru secara default, Anda dapat mengatur `reference_latest_execution` argumen secara opsional. `True`

```
# Prepare a new selective execution. Select only the first step in the pipeline without providing source_pipeline_execution_arn.
selective_execution_config = SelectiveExecutionConfig(
    selected_steps=["AbaloneTrain", "AbaloneEval"],
    # optional
    reference_latest_execution=True
)

# Start pipeline execution without source_pipeline_execution_arn
pipeline.start(
    execution_display_name=f"Sample-Selective-Execution-1",
    parameters={"MaxDepth":6, "NumRound":60},
    selective_execution_config=selective_execution_config,
)
```

## Eksekusi selektif tanpa pipa referensi
<a name="pipelines-selective-ex-none"></a>

Contoh berikut menunjukkan eksekusi selektif dari langkah-langkah `AbaloneProcess` dan `AbaloneTrain` tanpa memberikan referensi ARN dan mematikan opsi untuk menggunakan pipeline terbaru yang dijalankan sebagai referensi. SageMaker AI mengizinkan konfigurasi ini karena subset langkah ini tidak bergantung pada langkah sebelumnya.

```
# Prepare a new selective execution. Select only the first step in the pipeline without providing source_pipeline_execution_arn.
selective_execution_config = SelectiveExecutionConfig(
    selected_steps=["AbaloneProcess", "AbaloneTrain"],
    reference_latest_execution=False
)

# Start pipeline execution without source_pipeline_execution_arn
pipeline.start(
    execution_display_name=f"Sample-Selective-Execution-1",
    parameters={"MaxDepth":6, "NumRound":60},
    selective_execution_config=selective_execution_config,
)
```

## Gunakan kembali nilai parameter runtime dari eksekusi referensi
<a name="pipelines-selective-ex-reuse"></a>

Anda dapat membuat parameter dari eksekusi pipeline referensi Anda menggunakan`build_parameters_from_execution`, dan memberikan hasilnya ke pipeline eksekusi selektif Anda. Anda dapat menggunakan parameter asli dari eksekusi referensi, atau menerapkan penggantian apa pun menggunakan argumen. `parameter_value_overrides`

Contoh berikut menunjukkan cara membangun parameter dari eksekusi referensi dan menerapkan override untuk `MseThreshold` parameter.

```
# Prepare a new selective execution.
selective_execution_config = SelectiveExecutionConfig(
    source_pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef",
    selected_steps=["AbaloneTrain", "AbaloneEval", "AbaloneMSECond"],
)
# Define a new parameters list to test.
new_parameters_mse={
    "MseThreshold": 5,
}

# Build parameters from reference execution and override with new parameters to test.
new_parameters = pipeline.build_parameters_from_execution(
    pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef",
    parameter_value_overrides=new_parameters_mse
)

# Start pipeline execution with new parameters.
execution = pipeline.start(
    selective_execution_config=selective_execution_config,
    parameters=new_parameters
)
```

# Perhitungan dasar, deteksi drift, dan siklus hidup dengan serta langkah-langkah di Amazon Pipelines ClarifyCheck QualityCheck SageMaker
<a name="pipelines-quality-clarify-baseline-lifecycle"></a>

Topik berikut membahas bagaimana baseline dan versi model berkembang di Amazon SageMaker Pipelines saat menggunakan dan langkah-langkahnya. [`ClarifyCheck`](build-and-manage-steps-types.md#step-type-clarify-check) [`QualityCheck`](build-and-manage-steps-types.md#step-type-quality-check)

Untuk `ClarifyCheck` langkah ini, baseline adalah file tunggal yang berada di properti langkah dengan akhiran. `constraints` Untuk `QualityCheck` langkah ini, baseline adalah kombinasi dari dua file yang berada di properti langkah: satu dengan akhiran `statistics` dan yang lainnya dengan sufiks. `constraints` Dalam topik berikut, kami membahas properti ini dengan awalan yang menjelaskan cara penggunaannya, memengaruhi perilaku dasar dan siklus hidup dalam dua langkah pipeline ini. Misalnya, `ClarifyCheck` langkah selalu menghitung dan menetapkan garis dasar baru di properti dan `QualityCheck` langkahnya melakukan hal yang sama di `CalculatedBaselineConstraints` properti dan. `CalculatedBaselineConstraints` `CalculatedBaselineStatistics`

## Perhitungan dasar dan pendaftaran untuk ClarifyCheck dan langkah-langkah QualityCheck
<a name="pipelines-quality-clarify-baseline-calculations"></a>

Baik `QualityCheck` langkah `ClarifyCheck` dan langkah selalu menghitung baseline baru berdasarkan input langkah melalui pekerjaan pemrosesan yang mendasarinya. Garis dasar yang baru dihitung ini diakses melalui properti dengan awalan. `CalculatedBaseline` Anda dapat merekam properti ini sebagai paket model Anda di[Langkah model](build-and-manage-steps-types.md#step-type-model). `ModelMetrics` Paket model ini dapat didaftarkan dengan 5 baseline yang berbeda. Anda dapat mendaftarkannya dengan satu untuk setiap jenis pemeriksaan: bias data, bias model, dan penjelasan model dari menjalankan `ClarifyCheck` langkah dan kualitas model, dan kualitas data dari menjalankan langkah. `QualityCheck` `register_new_baseline`Parameter menentukan nilai yang ditetapkan dalam properti dengan awalan `BaselineUsedForDriftCheck` setelah langkah berjalan.

Tabel kasus penggunaan potensial berikut menunjukkan perilaku berbeda yang dihasilkan dari parameter langkah yang dapat Anda tetapkan untuk `ClarifyCheck` dan `QualityCheck` langkah-langkahnya:


| Kemungkinan kasus penggunaan yang dapat Anda pertimbangkan untuk memilih konfigurasi ini  | `skip_check` / `register_new_baseline` | Apakah langkah melakukan pemeriksaan drift? | Nilai properti langkah `CalculatedBaseline` | Nilai properti langkah `BaselineUsedForDriftCheck` | 
| --- | --- | --- | --- | --- | 
| Anda melakukan pelatihan ulang reguler dengan pemeriksaan diaktifkan untuk mendapatkan versi model baru, tetapi Anda *ingin membawa baseline sebelumnya* seperti `DriftCheckBaselines` dalam registri model untuk versi model baru Anda. | False/ False | Pemeriksaan drift berjalan terhadap baseline yang ada | Garis dasar baru dihitung dengan menjalankan langkah | Baseline dari model terbaru yang disetujui di Model Registry atau baseline yang disediakan sebagai parameter langkah | 
| Anda melakukan pelatihan ulang reguler dengan pemeriksaan diaktifkan untuk mendapatkan versi model baru, tetapi Anda *ingin menyegarkan `DriftCheckBaselines` di registri model dengan garis dasar yang baru dihitung* untuk versi model baru Anda. | False/ True | Pemeriksaan drift berjalan terhadap baseline yang ada | Garis dasar baru dihitung dengan menjalankan langkah | Garis dasar yang baru dihitung dengan menjalankan langkah (nilai properti) CalculatedBaseline | 
| Anda memulai pipeline untuk melatih ulang versi model baru karena ada pelanggaran yang terdeteksi oleh Amazon SageMaker Model Monitor pada titik akhir untuk jenis pemeriksaan tertentu, dan Anda ingin *melewati jenis pemeriksaan ini terhadap baseline sebelumnya, tetapi bawa baseline sebelumnya seperti `DriftCheckBaselines` dalam registri model untuk versi model* baru Anda. | True/ False | Tidak ada pemeriksaan drift | Garis dasar baru dihitung dengan menjalankan | Baseline dari model terbaru yang disetujui dalam registri model atau baseline yang disediakan sebagai parameter langkah | 
| Ini terjadi dalam kasus-kasus berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html)  | True/ True | Tidak ada pemeriksaan drift | Garis dasar baru dihitung dengan menjalankan langkah | Garis dasar yang baru dihitung dengan menjalankan langkah (nilai properti) CalculatedBaseline | 

**catatan**  
Jika Anda menggunakan notasi ilmiah dalam kendala Anda, Anda perlu mengkonversi ke float. Untuk contoh skrip preprocessing tentang cara melakukannya, lihat [Membuat Garis Dasar Kualitas Model](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-baseline.html).

Saat Anda mendaftarkan model[Langkah model](build-and-manage-steps-types.md#step-type-model), Anda dapat mendaftarkan `BaselineUsedForDriftCheck` properti sebagai`DriftCheckBaselines`. File dasar ini kemudian dapat digunakan oleh Model Monitor untuk pemeriksaan kualitas model dan data. Selain itu, baseline ini juga dapat digunakan dalam `QualityCheck` langkah ClarifyCheckStep dan untuk membandingkan model yang baru dilatih dengan model yang ada yang terdaftar dalam registri model untuk proses pipeline future.

## Deteksi Drift terhadap Baseline Sebelumnya di Pipa
<a name="pipelines-quality-clarify-baseline-drift-detection"></a>

Dalam hal `QualityCheck` langkah, ketika Anda memulai pipeline untuk pelatihan ulang reguler untuk mendapatkan versi model baru, Anda mungkin tidak ingin menjalankan langkah pelatihan jika kualitas data dan bias data ada [Skema untuk Pelanggaran (file constraint\$1violations.json)](model-monitor-interpreting-violations.md) pada garis dasar versi model yang disetujui sebelumnya. Anda juga mungkin tidak ingin mendaftarkan versi model yang baru dilatih jika kualitas model, bias model, atau penjelasan model melanggar garis dasar terdaftar dari versi model yang disetujui sebelumnya saat menjalankan langkah. `ClarifyCheck` Dalam kasus ini, Anda dapat mengaktifkan pemeriksaan yang Anda inginkan dengan menyetel `skip_check` properti dari langkah pemeriksaan terkait yang disetel`False`, sehingga `QualityCheck` langkah `ClarifyCheck` dan gagal jika pelanggaran terdeteksi terhadap garis dasar sebelumnya. Proses pipa kemudian tidak dilanjutkan sehingga model yang melayang dari baseline tidak terdaftar. `ClarifyCheck`dan `QualityCheck` langkah-langkah bisa mendapatkan `DriftCheckBaselines` versi model terbaru yang disetujui dari grup paket model tertentu yang dapat dibandingkan. Garis dasar sebelumnya juga dapat diberikan langsung melalui `supplied_baseline_constraints` (selain `supplied_baseline_statistics` jika itu adalah `QualityCheck` langkah) dan selalu diprioritaskan di atas garis dasar apa pun yang ditarik dari grup paket model. 

## Siklus hidup dan evolusi versi dasar dan model dengan Pipelines
<a name="pipelines-quality-clarify-baseline-evolution"></a>

Dengan menetapkan `register_new_baseline` `QualityCheck` langkah Anda `ClarifyCheck` dan ke`False`, baseline Anda sebelumnya dapat diakses melalui awalan properti langkah. `BaselineUsedForDriftCheck` Anda kemudian dapat mendaftarkan baseline ini sebagai `DriftCheckBaselines` dalam versi model baru ketika Anda mendaftarkan model dengan. [Langkah model](build-and-manage-steps-types.md#step-type-model) Setelah Anda menyetujui versi model baru ini di registri model, versi model ini akan tersedia untuk `ClarifyCheck` dan `QualityCheck` langkah-langkah dalam proses pipeline berikutnya. `DriftCheckBaseline` Jika Anda ingin me-refresh baseline dari jenis pemeriksaan tertentu untuk versi model future, Anda dapat mengatur `register_new_baseline` `True` agar properti dengan awalan `BaselineUsedForDriftCheck` menjadi baseline yang baru dihitung. Dengan cara ini, Anda dapat mempertahankan baseline pilihan Anda untuk model yang dilatih di masa mendatang, atau menyegarkan baseline untuk pemeriksaan drift bila diperlukan, mengelola evolusi dasar dan siklus hidup Anda di seluruh iterasi pelatihan model Anda. 

Diagram berikut mengilustrasikan model-version-centric pandangan evolusi dasar dan siklus hidup.

![\[model-version-centricPandangan tentang evolusi dasar dan siklus hidup.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/pipelines/Baseline-Lifecycle.png)


# Jadwalkan Pipeline Runs
<a name="pipeline-eventbridge"></a>

[Anda dapat menjadwalkan eksekusi Amazon SageMaker Pipelines Anda menggunakan Amazon. EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) Amazon SageMaker Pipelines didukung sebagai target di [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html). Ini memungkinkan Anda untuk memulai eksekusi pipa bangunan model Anda berdasarkan peristiwa apa pun di bus acara Anda. Dengan EventBridge, Anda dapat mengotomatiskan eksekusi pipeline dan merespons secara otomatis peristiwa seperti pekerjaan pelatihan atau perubahan status titik akhir. Acara termasuk file baru yang diunggah ke bucket Amazon S3 Anda, perubahan status titik akhir Amazon AI karena drift, *dan topik SageMaker Amazon Simple* Notification Service (SNS).

Tindakan Pipelines berikut dapat dimulai secara otomatis:  
+  `StartPipelineExecution` 

Untuk informasi selengkapnya tentang penjadwalan pekerjaan SageMaker AI, lihat [Mengotomatiskan SageMaker AI dengan Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/automating-sagemaker-with-eventbridge.html). EventBridge 

**Topics**
+ [Jadwalkan Pipeline dengan Amazon EventBridge](#pipeline-eventbridge-schedule)
+ [Jadwalkan pipeline dengan SageMaker Python SDK](#build-and-manage-scheduling)

## Jadwalkan Pipeline dengan Amazon EventBridge
<a name="pipeline-eventbridge-schedule"></a>

Untuk memulai eksekusi pipeline dengan Amazon CloudWatch Events, Anda harus membuat EventBridge [aturan](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_Rule.html). Saat Anda membuat aturan untuk acara, Anda menentukan tindakan target yang akan diambil saat EventBridge menerima peristiwa yang cocok dengan aturan. Ketika suatu peristiwa cocok dengan aturan, EventBridge mengirimkan acara ke target yang ditentukan dan memulai tindakan yang ditentukan dalam aturan. 

 Tutorial berikut menunjukkan cara menjadwalkan eksekusi pipeline dengan EventBridge menggunakan EventBridge konsol atau file AWS CLI.  

### Prasyarat
<a name="pipeline-eventbridge-schedule-prerequisites"></a>
+ Peran yang EventBridge dapat diasumsikan dengan `SageMaker::StartPipelineExecution` izin. Peran ini dapat dibuat secara otomatis jika Anda membuat aturan dari EventBridge konsol; jika tidak, Anda perlu membuat peran ini sendiri. Untuk informasi tentang membuat peran SageMaker AI, lihat [SageMaker Peran](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
+ Pipeline SageMaker AI Amazon untuk menjadwalkan. Untuk membuat Pipeline Amazon SageMaker AI, lihat [Mendefinisikan Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/define-pipeline.html).

### Buat EventBridge aturan menggunakan EventBridge konsol
<a name="pipeline-eventbridge-schedule-console"></a>

 Prosedur berikut menunjukkan cara membuat EventBridge aturan menggunakan EventBridge konsol.  

1. Navigasikan ke [konsol EventBridge ](https://console.aws.amazon.com/events) tersebut. 

1. Pilih **Aturan** di sisi kiri. 

1.  Pilih `Create Rule`. 

1. Masukkan nama dan deskripsi untuk aturan Anda.

1.  Pilih bagaimana Anda ingin memulai aturan ini. Anda memiliki pilihan berikut untuk aturan Anda: 
   + **Pola acara**: Aturan Anda dimulai ketika peristiwa yang cocok dengan pola terjadi. Anda dapat memilih pola yang telah ditentukan yang cocok dengan jenis acara tertentu, atau Anda dapat membuat pola kustom. Jika Anda memilih pola yang telah ditentukan, Anda dapat mengedit pola untuk menyesuaikannya. Untuk informasi selengkapnya tentang pola Peristiwa, lihat [Pola CloudWatch Peristiwa di Acara](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html). 
   + **Jadwal**: Aturan Anda dimulai secara teratur pada jadwal yang ditentukan. Anda dapat menggunakan jadwal tarif tetap yang dimulai secara teratur untuk jumlah menit, jam, atau minggu tertentu. Anda juga dapat menggunakan [ekspresi cron](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) untuk membuat jadwal yang lebih halus, seperti “Senin pertama setiap bulan pukul 8 pagi.” Jadwal tidak didukung pada bus acara khusus atau mitra. 

1. Pilih bus Acara yang Anda inginkan. 

1. Pilih target yang akan dipanggil saat acara cocok dengan pola acara Anda atau saat jadwal dimulai. Anda dapat menambahkan hingga 5 target per aturan. Pilih `SageMaker Pipeline` dalam daftar tarik-turun target. 

1. Pilih pipeline yang ingin Anda mulai dari daftar dropdown pipeline. 

1. Tambahkan parameter untuk diteruskan ke eksekusi pipeline Anda menggunakan nama dan pasangan nilai. Nilai parameter bisa statis atau dinamis. Untuk informasi selengkapnya tentang parameter Amazon SageMaker AI Pipeline, lihat [AWS::Events::Rule SagemakerPipelineParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-pipeline.html#aws-resource-sagemaker-pipeline-properties).
   + Nilai statis diteruskan ke eksekusi pipeline setiap kali pipeline dimulai. Misalnya, jika `{"Name": "Instance_type", "Value": "ml.4xlarge"}` ditentukan dalam daftar parameter, maka itu dilewatkan sebagai parameter di `StartPipelineExecutionRequest` setiap kali EventBridge memulai pipeline. 
   + Nilai dinamis ditentukan menggunakan jalur JSON. EventBridge mem-parsing nilai dari muatan peristiwa, lalu meneruskannya ke eksekusi pipeline. Misalnya: *`$.detail.param.value`* 

1. Pilih peran yang akan digunakan untuk aturan ini. Anda dapat menggunakan peran yang ada atau membuat yang baru. 

1. (Opsional) Tambahkan tanda. 

1. Pilih `Create` untuk menyelesaikan aturan Anda. 

 Aturan Anda sekarang berlaku dan siap untuk memulai eksekusi pipeline Anda. 

### Buat EventBridge aturan menggunakan [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/events/index.html)
<a name="pipeline-eventbridge-schedule-cli"></a>

 Prosedur berikut menunjukkan cara membuat EventBridge aturan menggunakan AWS CLI. 

1. Buat aturan yang akan dimulai. Saat membuat EventBridge aturan menggunakan AWS CLI, Anda memiliki dua opsi untuk bagaimana aturan Anda dimulai, pola acara dan jadwal.
   +  **Pola acara**: Aturan Anda dimulai ketika peristiwa yang cocok dengan pola terjadi. Anda dapat memilih pola yang telah ditentukan yang cocok dengan jenis acara tertentu, atau Anda dapat membuat pola kustom. Jika Anda memilih pola yang telah ditentukan, Anda dapat mengedit pola untuk menyesuaikannya.  Anda dapat membuat aturan dengan pola acara menggunakan perintah berikut: 

     ```
     aws events put-rule --name <RULE_NAME> ----event-pattern <YOUR_EVENT_PATTERN> --description <RULE_DESCRIPTION> --role-arn <ROLE_TO_EXECUTE_PIPELINE> --tags <TAGS>
     ```
   +  **Jadwal**: Aturan Anda dimulai secara teratur pada jadwal yang ditentukan. Anda dapat menggunakan jadwal tarif tetap yang dimulai secara teratur untuk jumlah menit, jam, atau minggu tertentu. Anda juga dapat menggunakan ekspresi cron untuk membuat jadwal yang lebih halus, seperti “Senin pertama setiap bulan pukul 8 pagi.” Jadwal tidak didukung pada bus acara khusus atau mitra. Anda dapat membuat aturan dengan jadwal menggunakan perintah berikut: 

     ```
     aws events put-rule --name <RULE_NAME> --schedule-expression <YOUR_CRON_EXPRESSION> --description <RULE_DESCRIPTION> --role-arn <ROLE_TO_EXECUTE_PIPELINE> --tags <TAGS>
     ```

1. Tambahkan target untuk dipanggil saat acara cocok dengan pola acara Anda atau saat jadwal dimulai. Anda dapat menambahkan hingga 5 target per aturan.  Untuk setiap target, Anda harus menentukan:  
   +  ARN: ARN sumber daya pipa Anda. 
   +  Peran ARN: ARN peran EventBridge harus diasumsikan untuk mengeksekusi pipa. 
   +  Parameter: Parameter pipa Amazon SageMaker AI untuk dilewati. 

1. Jalankan perintah berikut untuk meneruskan pipeline Amazon SageMaker AI sebagai target ke aturan Anda menggunakan [put-target](https://docs.aws.amazon.com/cli/latest/reference/events/put-targets.html): 

   ```
   aws events put-targets --rule <RULE_NAME> --event-bus-name <EVENT_BUS_NAME> --targets "[{\"Id\": <ID>, \"Arn\": <RESOURCE_ARN>, \"RoleArn\": <ROLE_ARN>, \"SageMakerPipelineParameter\": { \"SageMakerParameterList\": [{\"Name\": <NAME>, \"Value\": <VALUE>}]} }]"] 
   ```

## Jadwalkan pipeline dengan SageMaker Python SDK
<a name="build-and-manage-scheduling"></a>

Bagian berikut menunjukkan cara mengatur izin untuk mengakses EventBridge sumber daya dan membuat jadwal pipeline Anda menggunakan SageMaker Python SDK. 

### Izin yang diperlukan
<a name="build-and-manage-scheduling-permissions"></a>

Anda harus memiliki izin yang diperlukan untuk menggunakan penjadwal pipa. Selesaikan langkah-langkah berikut untuk mengatur izin Anda:

1. Lampirkan kebijakan hak istimewa minimum berikut ke peran IAM yang digunakan untuk membuat pemicu pipeline, atau gunakan kebijakan AWS terkelola. `AmazonEventBridgeSchedulerFullAccess`

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement":
       [
           {
               "Action":
               [
                   "scheduler:ListSchedules",
                   "scheduler:GetSchedule",
                   "scheduler:CreateSchedule",
                   "scheduler:UpdateSchedule",
                   "scheduler:DeleteSchedule"
               ],
               "Effect": "Allow",
               "Resource":
               [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/*", 
               "Condition": {
                   "StringLike": {
                       "iam:PassedToService": "scheduler.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. Membangun hubungan kepercayaan EventBridge dengan menambahkan prinsip layanan `scheduler.amazonaws.com` ke kebijakan kepercayaan peran ini. Pastikan Anda melampirkan kebijakan kepercayaan berikut ke peran eksekusi jika Anda meluncurkan buku catatan di SageMaker Studio.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "scheduler.amazonaws.com",
                    "sagemaker.amazonaws.com"
                ]
            },
        "Action": "sts:AssumeRole"
        }
    ]
}
```

------

### Buat jadwal pipeline
<a name="build-and-manage-scheduling-create"></a>

Menggunakan `PipelineSchedule` konstruktor, Anda dapat menjadwalkan pipeline untuk dijalankan sekali atau pada interval yang telah ditentukan. Jadwal pipa harus dari jenis`at`,`rate`, atau`cron`. Kumpulan jenis penjadwalan ini merupakan perpanjangan dari opsi [EventBridge penjadwalan](https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html). Untuk informasi selengkapnya tentang cara menggunakan `PipelineSchedule` kelas, lihat [sagemaker.workflow.trigger. PipelineSchedule](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#pipeline-schedule). Contoh berikut menunjukkan cara membuat setiap jenis penjadwalan dengan. `PipelineSchedule`

```
from sagemaker.workflow.triggers import PipelineSchedule

# schedules a pipeline run for 12/13/2023 at time 10:15:20 UTC
my_datetime_schedule = PipelineSchedule(
    name="<schedule-name>", 
    at=datetime(2023, 12, 13, 10, 15, 20)
)

# schedules a pipeline run every 5 minutes
my_rate_schedule = PipelineSchedule(
    name="<schedule-name>", 
    rate=(5, "minutes")
)

# schedules a pipeline run at 10:15am UTC on the last Friday of each month during the years 2022 to 2023
my_cron_schedule = PipelineSchedule(
    name="<schedule-name>", 
    cron="15 10 ? * 6L 2022-2023"
)
```

**catatan**  
Jika Anda membuat jadwal satu kali dan perlu mengakses waktu saat ini, gunakan `datetime.utcnow()` sebagai gantinya. `datetime.now()` Yang terakhir tidak menyimpan konteks zona saat ini dan menghasilkan waktu yang salah EventBridge.

### Pasang pelatuk ke pipa Anda
<a name="build-and-manage-scheduling-attach"></a>

Untuk melampirkan `PipelineSchedule` ke pipeline, panggil `put_triggers` panggilan pada objek pipeline yang Anda buat dengan daftar pemicu. Jika Anda mendapatkan respons ARN, Anda berhasil membuat jadwal di akun Anda dan EventBridge mulai memanggil pipeline target pada waktu atau tarif yang ditentukan. Anda harus menentukan peran dengan izin yang benar untuk melampirkan pemicu ke pipeline induk. Jika Anda tidak menyediakannya, Pipelines mengambil peran default yang digunakan untuk membuat pipeline dari file [konfigurasi](https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-decorator-config.html).

Contoh berikut menunjukkan cara melampirkan jadwal ke pipa.

```
scheduled_pipeline = Pipeline(
    name="<pipeline-name>",
    steps=[...],
    sagemaker_session=<sagemaker-session>,
)
custom_schedule = PipelineSchedule(
    name="<schedule-name>", 
    at=datetime(year=2023, month=12, date=25, hour=10, minute=30, second=30)
)
scheduled_pipeline.put_triggers(triggers=[custom_schedule], role_arn=<role>)
```

### Jelaskan pemicu saat ini
<a name="build-and-manage-scheduling-describe"></a>

Untuk mengambil informasi tentang pemicu pipeline yang dibuat, Anda dapat memanggil `describe_trigger()` API dengan nama pemicu. Perintah ini mengembalikan detail tentang ekspresi jadwal yang dibuat seperti waktu mulai, status diaktifkan, dan informasi berguna lainnya. Cuplikan berikut menunjukkan contoh pemanggilan:

```
scheduled_pipeline.describe_trigger(name="<schedule-name>")
```

### Sumber daya pemicu pembersihan
<a name="build-and-manage-scheduling-clean"></a>

Sebelum menghapus pipeline, bersihkan pemicu yang ada untuk menghindari kebocoran sumber daya di akun Anda. Anda harus menghapus pemicu sebelum menghancurkan pipeline induk. Anda dapat menghapus pemicu dengan meneruskan daftar nama pemicu ke `delete_triggers` API. Cuplikan berikut menunjukkan cara menghapus pemicu.

```
pipeline.delete_triggers(trigger_names=["<schedule-name>"])
```

**catatan**  
Waspadai batasan berikut saat Anda menghapus pemicu:  
Opsi untuk menghapus pemicu dengan menentukan nama pemicu hanya tersedia di Python SageMaker SDK. Menghapus pipeline di CLI atau panggilan API tidak menghapus `DeletePipeline` pemicu Anda. Akibatnya, pemicu menjadi yatim piatu dan SageMaker AI mencoba untuk memulai proses untuk pipa yang tidak ada.
[Juga, jika Anda menggunakan sesi notebook lain atau sudah menghapus target pipeline, bersihkan jadwal yatim melalui CLI penjadwal atau konsol.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/scheduler/delete-schedule.html) EventBridge 

# Integrasi SageMaker Eksperimen Amazon
<a name="pipelines-experiments"></a>

Amazon SageMaker Pipelines terintegrasi erat dengan Amazon SageMaker Experiments. Secara default, saat Pipelines membuat dan mengeksekusi pipeline, entitas SageMaker Eksperimen berikut dibuat jika tidak ada:
+ Eksperimen untuk pipa
+ Grup run untuk setiap eksekusi pipeline
+ Run yang ditambahkan ke grup run untuk setiap pekerjaan SageMaker AI yang dibuat dalam langkah eksekusi pipeline

Anda dapat membandingkan metrik seperti akurasi pelatihan model di beberapa eksekusi pipeline seperti halnya Anda dapat membandingkan metrik tersebut di beberapa grup lari dari eksperimen pelatihan model SageMaker AI.

Contoh berikut menunjukkan parameter yang relevan dari kelas [Pipeline](https://github.com/aws/sagemaker-python-sdk/blob/v2.41.0/src/sagemaker/workflow/pipeline.py) di [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) SDK.

```
Pipeline(
    name="MyPipeline",
    parameters=[...],
    pipeline_experiment_config=PipelineExperimentConfig(
      ExecutionVariables.PIPELINE_NAME,
      ExecutionVariables.PIPELINE_EXECUTION_ID
    ),
    steps=[...]
)
```

Jika Anda tidak ingin grup eksperimen dan jalankan dibuat untuk pipeline, setel `pipeline_experiment_config` ke`None`.

**catatan**  
Integrasi eksperimen diperkenalkan di Amazon SageMaker Python SDK v2.41.0.

Aturan penamaan berikut berlaku berdasarkan apa yang Anda tentukan untuk `ExperimentName` dan `TrialName` parameter`pipeline_experiment_config`:
+ Jika Anda tidak menentukan`ExperimentName`, pipeline `name` digunakan untuk nama percobaan.

  Jika Anda menentukan`ExperimentName`, itu digunakan untuk nama percobaan. Jika eksperimen dengan nama itu ada, grup run yang dibuat pipeline akan ditambahkan ke eksperimen yang ada. Jika eksperimen dengan nama itu tidak ada, eksperimen baru dibuat.
+ Jika Anda tidak menentukan`TrialName`, ID eksekusi pipeline digunakan untuk nama grup run.

  Jika Anda menentukan`TrialName`, itu digunakan untuk nama grup run. Jika grup run dengan nama itu ada, proses yang dibuat pipeline akan ditambahkan ke grup run yang ada. Jika grup run dengan nama itu tidak ada, grup run baru akan dibuat.

**catatan**  
Entitas eksperimen tidak dihapus saat pipeline yang membuat entitas dihapus. Anda dapat menggunakan SageMaker Experiments API untuk menghapus entitas.

Untuk informasi tentang cara melihat entitas Eksperimen SageMaker AI yang terkait dengan pipeline, lihat[Akses data eksperimen dari pipeline](pipelines-studio-experiments.md). Untuk informasi lebih lanjut tentang SageMaker Eksperimen, lihat[SageMaker Eksperimen Amazon di Studio Classic](experiments.md).

Bagian berikut menunjukkan contoh aturan sebelumnya dan bagaimana mereka direpresentasikan dalam file definisi pipeline. Untuk informasi selengkapnya tentang file definisi pipeline, lihat[Ikhtisar jaringan pipa](pipelines-overview.md).

**Topics**
+ [Perilaku Default](pipelines-experiments-default.md)
+ [Nonaktifkan Integrasi Eksperimen](pipelines-experiments-none.md)
+ [Tentukan Nama Eksperimen Kustom](pipelines-experiments-custom-experiment.md)
+ [Tentukan Nama Grup Jalankan Kustom](pipelines-experiments-custom-trial.md)

# Perilaku Default
<a name="pipelines-experiments-default"></a>

**Membuat jalur**

Perilaku default saat membuat Pipeline SageMaker AI adalah mengintegrasikannya secara otomatis dengan SageMaker Eksperimen. Jika Anda tidak menentukan konfigurasi kustom apa pun, SageMaker AI akan membuat eksperimen dengan nama yang sama dengan pipeline, grup run untuk setiap eksekusi pipeline menggunakan ID eksekusi pipeline sebagai namanya, dan individu berjalan dalam setiap grup run untuk setiap pekerjaan SageMaker AI yang diluncurkan sebagai bagian dari langkah pipeline. Anda dapat melacak dan membandingkan metrik dengan mulus di berbagai eksekusi pipeline, mirip dengan cara Anda menganalisis eksperimen pelatihan model. Bagian berikut menunjukkan perilaku default ini saat mendefinisikan pipeline tanpa secara eksplisit mengonfigurasi integrasi eksperimen.

`pipeline_experiment_config`Itu dihilangkan. `ExperimentName`default ke pipa. `name` `TrialName`default ke ID eksekusi.

```
pipeline_name = f"MyPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[...],
    steps=[step_train]
)
```

**File definisi saluran pipa**

```
{
  "Version": "2020-12-01",
  "Parameters": [
    {
      "Name": "InputDataSource"
    },
    {
      "Name": "InstanceCount",
      "Type": "Integer",
      "DefaultValue": 1
    }
  ],
  "PipelineExperimentConfig": {
    "ExperimentName": {"Get": "Execution.PipelineName"},
    "TrialName": {"Get": "Execution.PipelineExecutionId"}
  },
  "Steps": [...]
}
```

# Nonaktifkan Integrasi Eksperimen
<a name="pipelines-experiments-none"></a>

**Membuat jalur**

Anda dapat menonaktifkan integrasi pipeline dengan SageMaker Eksperimen dengan menyetel `pipeline_experiment_config` parameter `None` saat Anda menentukan pipeline. Dengan cara ini, SageMaker AI tidak akan secara otomatis membuat eksperimen, menjalankan grup, atau menjalankan individu untuk melacak metrik dan artefak yang terkait dengan eksekusi pipeline Anda. Contoh berikut menyetel parameter konfigurasi pipeline ke`None`.

```
pipeline_name = f"MyPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[...],
    pipeline_experiment_config=None,
    steps=[step_train]
)
```

**File definisi saluran pipa**

Ini sama dengan contoh default sebelumnya, tanpa. `PipelineExperimentConfig`

# Tentukan Nama Eksperimen Kustom
<a name="pipelines-experiments-custom-experiment"></a>

Meskipun perilaku defaultnya adalah menggunakan nama pipeline sebagai nama SageMaker eksperimen di Eksperimen, Anda dapat mengganti ini dan menetapkan nama eksperimen khusus sebagai gantinya. Ini dapat berguna jika Anda ingin mengelompokkan beberapa eksekusi pipeline di bawah eksperimen yang sama untuk analisis dan perbandingan yang lebih mudah. Nama grup run akan tetap default ke ID eksekusi pipeline kecuali Anda secara eksplisit menetapkan nama khusus untuk itu juga. Bagian berikut menunjukkan cara membuat pipeline dengan nama eksperimen kustom sambil meninggalkan nama grup run sebagai ID eksekusi default.

**Membuat jalur**

```
pipeline_name = f"MyPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[...],
    pipeline_experiment_config=PipelineExperimentConfig(
      "CustomExperimentName",
      ExecutionVariables.PIPELINE_EXECUTION_ID
    ),
    steps=[step_train]
)
```

**File definisi saluran pipa**

```
{
  ...,
  "PipelineExperimentConfig": {
    "ExperimentName": "CustomExperimentName",
    "TrialName": {"Get": "Execution.PipelineExecutionId"}
  },
  "Steps": [...]
}
```

# Tentukan Nama Grup Jalankan Kustom
<a name="pipelines-experiments-custom-trial"></a>

Selain menyetel nama eksperimen kustom, Anda juga dapat menentukan nama kustom untuk grup yang dijalankan yang dibuat oleh SageMaker Eksperimen selama eksekusi pipeline. Nama ini ditambahkan dengan ID eksekusi pipeline untuk memastikan keunikan. Anda dapat menentukan nama grup run kustom untuk mengidentifikasi dan menganalisis pipeline terkait yang berjalan dalam eksperimen yang sama. Bagian berikut menunjukkan cara mendefinisikan pipeline dengan nama grup run kustom saat menggunakan nama pipeline default untuk nama eksperimen.

**Membuat jalur**

```
pipeline_name = f"MyPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[...],
    pipeline_experiment_config=PipelineExperimentConfig(
      ExecutionVariables.PIPELINE_NAME,
      Join(on="-", values=["CustomTrialName", ExecutionVariables.PIPELINE_EXECUTION_ID])
    ),
    steps=[step_train]
)
```

**File definisi saluran pipa**

```
{
  ...,
  "PipelineExperimentConfig": {
    "ExperimentName": {"Get": "Execution.PipelineName"},
    "TrialName": {
      "On": "-",
      "Values": [
         "CustomTrialName",
         {"Get": "Execution.PipelineExecutionId"}
       ]
    }
  },
  "Steps": [...]
}
```

# Jalankan saluran pipa menggunakan mode lokal
<a name="pipelines-local-mode"></a>

SageMaker Mode lokal pipeline adalah cara mudah untuk menguji skrip pelatihan, pemrosesan, dan inferensi Anda, serta kompatibilitas runtime [parameter pipeline sebelum Anda menjalankan pipeline](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#pipeline-parameters) pada layanan AI terkelola. SageMaker Dengan menggunakan mode lokal, Anda dapat menguji pipeline SageMaker AI secara lokal menggunakan kumpulan data yang lebih kecil. Hal ini memungkinkan debugging cepat dan mudah kesalahan dalam skrip pengguna dan definisi pipeline itu sendiri tanpa menimbulkan biaya menggunakan layanan terkelola. Topik berikut menunjukkan cara mendefinisikan dan menjalankan pipeline secara lokal.

Mode lokal saluran pipa memanfaatkan [mode lokal pekerjaan SageMaker AI di bawah tenda](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode). Ini adalah fitur dalam SageMaker Python SDK yang memungkinkan Anda menjalankan gambar bawaan atau kustom SageMaker AI secara lokal menggunakan wadah Docker. Mode lokal saluran pipa dibangun di atas mode lokal pekerjaan SageMaker AI. Oleh karena itu, Anda dapat mengharapkan untuk melihat hasil yang sama seolah-olah Anda menjalankan pekerjaan itu secara terpisah. Misalnya, mode lokal masih menggunakan Amazon S3 untuk mengunggah artefak model dan output pemrosesan. Jika Anda ingin data yang dihasilkan oleh pekerjaan lokal berada di disk lokal, Anda dapat menggunakan pengaturan yang disebutkan dalam [Mode Lokal](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode).

Mode lokal pipa saat ini mendukung jenis langkah berikut:
+ [Langkah pelatihan](build-and-manage-steps-types.md#step-type-training)
+ [Langkah pemrosesan](build-and-manage-steps-types.md#step-type-processing)
+ [Transformasikan langkah](build-and-manage-steps-types.md#step-type-transform)
+ [Model Step](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-model-create) (dengan argumen Create Model saja)
+ [Langkah kondisi](build-and-manage-steps-types.md#step-type-condition)
+ [Langkah gagal](build-and-manage-steps-types.md#step-type-fail)

Berbeda dengan layanan Pipelines terkelola yang memungkinkan beberapa langkah untuk dijalankan secara paralel menggunakan [Parallelism Configuration](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#parallelism-configuration), pelaksana pipeline lokal menjalankan langkah-langkah secara berurutan. Oleh karena itu, kinerja eksekusi keseluruhan dari pipa lokal mungkin lebih buruk daripada yang berjalan di cloud - ini sebagian besar tergantung pada ukuran dataset, algoritma, serta kekuatan komputer lokal Anda. Perhatikan juga bahwa Pipelines berjalan dalam mode lokal tidak direkam dalam [SageMaker Eksperimen](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-experiments.html).

**catatan**  
Pipelines mode lokal tidak kompatibel dengan algoritma SageMaker AI seperti. XGBoost Jika Anda ingin menggunakan algoritma ini, Anda harus menggunakannya dalam [mode skrip](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-script-mode/sagemaker-script-mode.html).

Untuk menjalankan pipa secara lokal, `sagemaker_session` bidang yang terkait dengan langkah-langkah pipa dan pipa itu sendiri harus bertipe`LocalPipelineSession`. Contoh berikut menunjukkan bagaimana Anda dapat menentukan pipeline SageMaker AI untuk dieksekusi secara lokal.

```
from sagemaker.workflow.pipeline_context import LocalPipelineSession
from sagemaker.pytorch import PyTorch
from sagemaker.workflow.steps import TrainingStep
from sagemaker.workflow.pipeline import Pipeline

local_pipeline_session = LocalPipelineSession()

pytorch_estimator = PyTorch(
    sagemaker_session=local_pipeline_session,
    role=sagemaker.get_execution_role(),
    instance_type="ml.c5.xlarge",
    instance_count=1,
    framework_version="1.8.0",
    py_version="py36",
    entry_point="./entry_point.py",
)

step = TrainingStep(
    name="MyTrainingStep",
    step_args=pytorch_estimator.fit(
        inputs=TrainingInput(s3_data="s3://amzn-s3-demo-bucket/my-data/train"),
    )
)

pipeline = Pipeline(
    name="MyPipeline",
    steps=[step],
    sagemaker_session=local_pipeline_session
)

pipeline.create(
    role_arn=sagemaker.get_execution_role(), 
    description="local pipeline example"
)

// pipeline will execute locally
execution = pipeline.start()

steps = execution.list_steps()

training_job_name = steps['PipelineExecutionSteps'][0]['Metadata']['TrainingJob']['Arn']

step_outputs = pipeline_session.sagemaker_client.describe_training_job(TrainingJobName = training_job_name)
```

Setelah Anda siap untuk menjalankan pipeline pada layanan SageMaker Pipelines terkelola, Anda dapat melakukannya dengan mengganti `LocalPipelineSession` cuplikan kode sebelumnya dengan `PipelineSession` (seperti yang ditunjukkan pada contoh kode berikut) dan menjalankan ulang kode.

```
from sagemaker.workflow.pipeline_context import PipelineSession

pipeline_session = PipelineSession()
```

# Memecahkan Masalah Pipa Amazon SageMaker
<a name="pipelines-troubleshooting"></a>

Saat menggunakan Amazon SageMaker Pipelines, Anda mungkin mengalami masalah karena berbagai alasan. Topik ini memberikan informasi tentang kesalahan umum dan cara mengatasinya. 

 **Masalah Definisi Pipeline** 

Definisi pipeline Anda mungkin tidak diformat dengan benar. Hal ini dapat mengakibatkan  eksekusi Anda gagal atau pekerjaan Anda menjadi tidak akurat. Kesalahan ini dapat ditangkap ketika pipeline dibuat atau ketika eksekusi terjadi. Jika definisi Anda tidak memvalidasi, Pipelines mengembalikan pesan kesalahan yang mengidentifikasi karakter di mana file JSON salah format. Untuk memperbaiki masalah ini, tinjau langkah-langkah yang dibuat menggunakan SageMaker AI Python SDK untuk akurasi. 

Anda hanya dapat menyertakan langkah-langkah dalam definisi pipeline sekali. Karena itu, langkah-langkah tidak dapat ada sebagai bagian dari langkah kondisi *dan* pipa dalam pipa yang sama. 

 **Memeriksa Log Pipa** 

Anda dapat melihat status langkah-langkah Anda menggunakan perintah berikut: 

```
execution.list_steps()
```

Setiap langkah mencakup informasi berikut:
+ ARN entitas yang diluncurkan oleh pipeline, seperti pekerjaan SageMaker AI ARN, model ARN, atau paket model ARN. 
+ Alasan kegagalan mencakup penjelasan singkat tentang kegagalan langkah.
+ Jika langkah adalah langkah kondisi, itu termasuk apakah kondisi dievaluasi menjadi benar atau salah.  
+ Jika eksekusi menggunakan kembali eksekusi pekerjaan sebelumnya, `CacheHit` daftar eksekusi sumber.  

Anda juga dapat melihat pesan kesalahan dan log di antarmuka Amazon SageMaker Studio. Untuk informasi tentang cara melihat log di Studio, lihat[Lihat detail proses pipeline](pipelines-studio-view-execution.md).

 **Izin Hilang** 

Izin yang benar diperlukan untuk peran yang membuat eksekusi pipeline, dan langkah-langkah yang membuat setiap pekerjaan dalam eksekusi pipeline Anda. Tanpa izin ini, Anda mungkin tidak dapat mengirimkan eksekusi pipeline atau menjalankan pekerjaan SageMaker AI seperti yang diharapkan. Untuk memastikan bahwa izin Anda diatur dengan benar, lihat[Manajemen Akses IAM](build-and-manage-access.md). 

 **Kesalahan Eksekusi Job** 

Anda mungkin mengalami masalah saat menjalankan langkah-langkah Anda karena masalah dalam skrip yang menentukan fungsionalitas pekerjaan SageMaker AI Anda. Setiap pekerjaan memiliki satu set CloudWatch log. Untuk melihat log ini dari Studio, lihat[Lihat detail proses pipeline](pipelines-studio-view-execution.md). Untuk informasi tentang penggunaan CloudWatch log dengan SageMaker AI, lihat[CloudWatch Log untuk Amazon SageMaker AI](logging-cloudwatch.md). 

 **Kesalahan Berkas Properti** 

Anda mungkin mengalami masalah saat salah menerapkan file properti dengan pipeline Anda. Untuk memastikan bahwa implementasi file properti Anda berfungsi seperti yang diharapkan, lihat[Lulus Data Antar Langkah](build-and-manage-propertyfile.md). 

 **Masalah menyalin skrip ke wadah di Dockerfile** 

Anda dapat menyalin skrip ke wadah atau meneruskannya melalui `entry_point` argumen (entitas estimator Anda) atau `code` argumen (entitas prosesor Anda), seperti yang ditunjukkan dalam contoh kode berikut.

```
step_process = ProcessingStep(
    name="PreprocessAbaloneData",
    processor=sklearn_processor,
    inputs = [
        ProcessingInput(
            input_name='dataset',
            source=...,
            destination="/opt/ml/processing/code",
        )
    ],
    outputs=[
        ProcessingOutput(output_name="train", source="/opt/ml/processing/train", destination = processed_data_path),
        ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation", destination = processed_data_path),
        ProcessingOutput(output_name="test", source="/opt/ml/processing/test", destination = processed_data_path),
    ],
    code=os.path.join(BASE_DIR, "process.py"), ## Code is passed through an argument
    cache_config = cache_config,
    job_arguments = ['--input', 'arg1']
)

sklearn_estimator = SKLearn(
    entry_point=os.path.join(BASE_DIR, "train.py"), ## Code is passed through the entry_point
    framework_version="0.23-1",
    instance_type=training_instance_type,
    role=role,
    output_path=model_path, # New
    sagemaker_session=sagemaker_session, # New
    instance_count=1, # New
    base_job_name=f"{base_job_prefix}/pilot-train",
    metric_definitions=[
        {'Name': 'train:accuracy', 'Regex': 'accuracy_train=(.*?);'},
        {'Name': 'validation:accuracy', 'Regex': 'accuracy_validation=(.*?);'}
    ],
)
```

# Tindakan saluran pipa
<a name="pipelines-build"></a>

Anda dapat menggunakan Amazon SageMaker Pipelines Python SDK atau drag-and-drop desainer visual di SageMaker Amazon Studio untuk membuat, melihat, mengedit, mengeksekusi, dan memantau alur kerja ML Anda.

Tangkapan layar berikut menunjukkan desainer visual yang dapat Anda gunakan untuk membuat dan mengelola SageMaker Pipelines Amazon Anda.

![\[Tangkapan layar drag-and-drop antarmuka visual untuk Pipelines di Studio.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/pipelines/pipelines-studio-overview.png)


Setelah pipeline diterapkan, Anda dapat melihat grafik asiklik terarah (DAG) untuk pipeline dan mengelola eksekusi menggunakan Amazon Studio. SageMaker Menggunakan SageMaker Studio, Anda bisa mendapatkan informasi tentang pipeline Anda saat ini dan historis, membandingkan eksekusi, melihat DAG untuk eksekusi Anda, mendapatkan informasi metadata, dan banyak lagi. Untuk mempelajari cara melihat pipeline dari Studio, lihat[Lihat detail pipa](pipelines-studio-list.md). 

**Topics**
+ [Tentukan pipa](define-pipeline.md)
+ [Mengedit pipa](edit-pipeline-before-execution.md)
+ [Jalankan pipa](run-pipeline.md)
+ [Hentikan pipa](pipelines-studio-stop.md)
+ [Lihat detail pipa](pipelines-studio-list.md)
+ [Lihat detail proses pipeline](pipelines-studio-view-execution.md)
+ [Unduh file definisi pipeline](pipelines-studio-download.md)
+ [Akses data eksperimen dari pipeline](pipelines-studio-experiments.md)
+ [Lacak garis keturunan pipa](pipelines-lineage-tracking.md)

# Tentukan pipa
<a name="define-pipeline"></a>

Untuk mengatur alur kerja Anda dengan SageMaker Amazon Pipelines, Anda harus membuat grafik asiklik terarah (DAG) dalam bentuk definisi pipeline JSON. DAG menentukan berbagai langkah yang terlibat dalam proses ML Anda, seperti prapemrosesan data, pelatihan model, evaluasi model, dan penerapan model, serta dependensi dan aliran data di antara langkah-langkah ini. Topik berikut menunjukkan cara menghasilkan definisi pipeline.

Anda dapat membuat definisi pipeline JSON menggunakan SageMaker Python SDK atau fitur drag-and-drop visual Pipeline Designer di Amazon Studio. SageMaker Gambar berikut adalah representasi dari pipeline DAG yang Anda buat dalam tutorial ini:

![\[Tangkapan layar drag-and-drop antarmuka visual untuk Pipelines di Studio.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/pipelines/pipelines-studio-overview.png)


Pipa yang Anda tentukan di bagian berikut memecahkan masalah regresi untuk menentukan usia abalon berdasarkan pengukuran fisiknya. Untuk buku catatan Jupyter yang dapat dijalankan yang menyertakan konten dalam tutorial ini, lihat [Mengatur Pekerjaan dengan Pipa Bangunan Model Amazon](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-pipelines/tabular/abalone_build_train_deploy/sagemaker-pipelines-preprocess-train-evaluate-batch-transform.html). SageMaker 

**catatan**  
Anda dapat mereferensikan lokasi model sebagai properti dari langkah pelatihan, seperti yang ditunjukkan pada end-to-end contoh [CustomerChurn pipeline](https://github.com/aws-samples/customer-churn-sagemaker-pipelines-sample/blob/main/pipelines/customerchurn/pipeline.py) di Github.

**Topics**

## Tentukan pipa (Pipeline Designer)
<a name="create-pipeline-designer"></a>

Panduan berikut memandu Anda melalui langkah-langkah untuk membuat pipeline barebone menggunakan Pipeline Designer. drag-and-drop Jika Anda perlu menjeda atau mengakhiri sesi pengeditan Pipeline Anda di desainer visual kapan saja, klik opsi **Ekspor**. Ini memungkinkan Anda mengunduh definisi Pipeline saat ini ke lingkungan lokal Anda. Kemudian, ketika Anda ingin melanjutkan proses pengeditan Pipeline, Anda dapat mengimpor file definisi JSON yang sama ke desainer visual.

### Buat langkah Pemrosesan
<a name="create-processing-step"></a>

Untuk membuat langkah pekerjaan pemrosesan data, lakukan hal berikut:

1. Buka konsol Studio dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio](studio-updated-launch.md).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. Pilih **Buat**.

1. Pilih **Kosong**.

1. Di bilah sisi kiri, pilih **Proses data** dan seret ke kanvas.

1. Di kanvas, pilih langkah **Proses data** yang Anda tambahkan.

1. Untuk menambahkan kumpulan data input, pilih **Tambah** di bawah **Data (input)** di bilah sisi kanan dan pilih kumpulan data.

1. Untuk menambahkan lokasi untuk menyimpan kumpulan data keluaran, pilih **Tambah** di bawah **Data (output)** di bilah sisi kanan dan arahkan ke tujuan.

1. Lengkapi bidang yang tersisa di sidebar kanan. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.steps. ProcessingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.ProcessingStep).

### Buat langkah Pelatihan
<a name="create-training-step"></a>

Untuk mengatur langkah pelatihan model, lakukan hal berikut:

1. Di sidebar kiri, pilih **Train model** dan seret ke kanvas.

1. Di kanvas, pilih langkah **model Kereta** yang Anda tambahkan.

1. Untuk menambahkan kumpulan data input, pilih **Tambah** di bawah **Data (input)** di bilah sisi kanan dan pilih kumpulan data.

1. Untuk memilih lokasi untuk menyimpan artefak model Anda, masukkan URI Amazon S3 di bidang **Lokasi (URI S3**), atau **pilih Jelajahi** S3 untuk menavigasi ke lokasi tujuan.

1. Lengkapi bidang yang tersisa di sidebar kanan. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.steps. TrainingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TrainingStep).

1. Klik dan seret kursor dari langkah **Proses data** yang Anda tambahkan di bagian sebelumnya ke langkah **Model kereta** untuk membuat tepi yang menghubungkan dua langkah.

### Buat paket model dengan langkah model Register
<a name="create-register-model-step"></a>

Untuk membuat paket model dengan langkah pendaftaran model, lakukan hal berikut:

1. Di bilah sisi kiri, pilih **Daftar model** dan seret ke kanvas.

1. Di kanvas, pilih langkah **model Daftar** yang Anda tambahkan.

1. Untuk memilih model yang akan didaftarkan, pilih **Tambah** di bawah **Model (input)**.

1. Pilih **Buat grup model** untuk menambahkan model Anda ke grup model baru.

1. Lengkapi bidang yang tersisa di sidebar kanan. Untuk informasi tentang bidang di tab ini, lihat [sagemaker.workflow.step\$1collections. RegisterModel](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.step_collections.RegisterModel).

1. Klik dan seret kursor dari langkah **model Kereta** yang Anda tambahkan di bagian sebelumnya ke langkah **model Daftar** untuk membuat tepi yang menghubungkan dua langkah.

### Terapkan model ke titik akhir dengan langkah model Deploy (titik akhir)
<a name="create-deploy-endpoint-step"></a>

Untuk menerapkan model Anda menggunakan langkah penerapan model, lakukan hal berikut:

1. Di sidebar kiri, pilih **Deploy model (endpoint)** dan seret ke kanvas.

1. Di kanvas, pilih langkah **Deploy model (endpoint)** yang Anda tambahkan.

1. Untuk memilih model yang akan digunakan, pilih **Tambah** di bawah **Model (input)**.

1. Pilih tombol **Create endpoint** radio untuk membuat endpoint baru.

1. Masukkan **Nama** dan **Deskripsi** untuk titik akhir Anda.

1. Klik dan seret kursor dari langkah **model Register** yang Anda tambahkan di bagian sebelumnya ke langkah **Deploy model (endpoint)** untuk membuat tepi yang menghubungkan dua langkah.

1. Lengkapi bidang yang tersisa di sidebar kanan.

### Tentukan parameter Pipeline
<a name="define-pipeline-parameters"></a>

Anda dapat mengonfigurasi satu set parameter Pipeline yang nilainya dapat diperbarui untuk setiap eksekusi. Untuk menentukan parameter pipa dan mengatur nilai default, klik ikon roda gigi di bagian bawah desainer visual.

### Simpan Pipeline
<a name="save-pipeline"></a>

Setelah Anda memasukkan semua informasi yang diperlukan untuk membuat pipeline Anda, klik **Simpan** di bagian bawah desainer visual. Ini memvalidasi pipeline Anda untuk setiap potensi kesalahan saat runtime dan memberi tahu Anda. Operasi **Simpan** tidak akan berhasil sampai Anda mengatasi semua kesalahan yang ditandai oleh pemeriksaan validasi otomatis. Jika Anda ingin melanjutkan pengeditan di lain waktu, Anda dapat menyimpan pipeline yang sedang berlangsung sebagai definisi JSON di lingkungan lokal Anda. Anda dapat mengekspor Pipeline Anda sebagai file definisi JSON dengan mengklik tombol **Ekspor** di bagian bawah desainer visual. Kemudian, untuk melanjutkan memperbarui Pipeline Anda, unggah file definisi JSON itu dengan mengklik tombol **Impor**.

## Tentukan pipeline (SageMaker Python SDK)
<a name="create-pipeline-wrap"></a>

### Prasyarat
<a name="define-pipeline-prereq"></a>

 Untuk menjalankan tutorial berikut, lengkapi yang berikut ini: 
+ Siapkan instance notebook Anda seperti yang diuraikan dalam [Buat instance notebook](https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-create-ws.html). Ini memberi izin peran Anda untuk membaca dan menulis ke Amazon S3, dan membuat pelatihan, transformasi batch, dan pekerjaan SageMaker pemrosesan di AI. 
+ Berikan izin buku catatan Anda untuk mendapatkan dan meneruskan perannya sendiri seperti yang ditunjukkan dalam [Memodifikasi kebijakan izin peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy). Tambahkan cuplikan JSON berikut untuk melampirkan kebijakan ini ke peran Anda. Ganti `<your-role-arn>` dengan ARN yang digunakan untuk membuat instance notebook Anda. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "iam:GetRole",
                  "iam:PassRole"
              ],
              "Resource": "arn:aws:iam::111122223333:role/role-name"
          }
      ]
  }
  ```

------
+  Percayai prinsip layanan SageMaker AI dengan mengikuti langkah-langkah dalam [Memodifikasi kebijakan kepercayaan peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-cli.html#roles-managingrole_edit-trust-policy-cli). Tambahkan fragmen pernyataan berikut ke hubungan kepercayaan peran Anda: 

  ```
  {
        "Sid": "",
        "Effect": "Allow",
        "Principal": {
          "Service": "sagemaker.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
  ```

#### Siapkan lingkungan Anda
<a name="define-pipeline-prereq-setup"></a>

Buat sesi SageMaker AI baru menggunakan blok kode berikut. Ini mengembalikan peran ARN untuk sesi tersebut. Peran ARN ini harus menjadi peran eksekusi ARN yang Anda tetapkan sebagai prasyarat. 

```
import boto3
import sagemaker
import sagemaker.session
from sagemaker.workflow.pipeline_context import PipelineSession

region = boto3.Session().region_name
sagemaker_session = sagemaker.session.Session()
role = sagemaker.get_execution_role()
default_bucket = sagemaker_session.default_bucket()

pipeline_session = PipelineSession()

model_package_group_name = f"AbaloneModelPackageGroupName"
```

### Membuat jalur
<a name="define-pipeline-create"></a>

**penting**  
Kebijakan IAM khusus yang memungkinkan Amazon SageMaker Studio atau Amazon SageMaker Studio Classic membuat SageMaker sumber daya Amazon juga harus memberikan izin untuk menambahkan tag ke sumber daya tersebut. Izin untuk menambahkan tag ke sumber daya diperlukan karena Studio dan Studio Classic secara otomatis menandai sumber daya apa pun yang mereka buat. Jika kebijakan IAM memungkinkan Studio dan Studio Classic membuat sumber daya tetapi tidak mengizinkan penandaan, kesalahan "AccessDenied" dapat terjadi saat mencoba membuat sumber daya. Untuk informasi selengkapnya, lihat [Berikan izin untuk menandai sumber daya AI SageMaker](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS kebijakan terkelola untuk Amazon SageMaker AI](security-iam-awsmanpol.md)yang memberikan izin untuk membuat SageMaker sumber daya sudah menyertakan izin untuk menambahkan tag saat membuat sumber daya tersebut.

Jalankan langkah-langkah berikut dari instance notebook SageMaker AI Anda untuk membuat pipeline yang menyertakan langkah-langkah untuk:
+ prapemrosesan
+ pelatihan
+ evaluasi
+ evaluasi bersyarat
+ pendaftaran model

**catatan**  
Anda dapat menggunakan [ExecutionVariables](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#execution-variables)dan fungsi [Gabung](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#execution-variables) untuk menentukan lokasi output Anda. `ExecutionVariables`diselesaikan saat runtime. Misalnya, `ExecutionVariables.PIPELINE_EXECUTION_ID` diselesaikan ke ID eksekusi saat ini, yang dapat digunakan sebagai pengidentifikasi unik di berbagai proses.

#### Langkah 1: Unduh dataset
<a name="define-pipeline-data-download"></a>

Notebook ini menggunakan Dataset Abalone Machine Learning UCI. Dataset berisi fitur-fitur berikut: 
+ `length`— Pengukuran cangkang terpanjang dari abalon.
+ `diameter`— Diameter abalon tegak lurus dengan panjangnya.
+ `height`— Ketinggian abalon dengan daging di cangkang.
+ `whole_weight`— Berat seluruh abalon.
+ `shucked_weight`— Berat daging dikeluarkan dari abalon.
+ `viscera_weight`— Berat visera abalon setelah pendarahan.
+ `shell_weight`— Berat cangkang abalon setelah pengangkatan dan pengeringan daging.
+ `sex`- Jenis kelamin abalon. Salah satu dari 'M', 'F', atau 'I', di mana 'I' adalah abalon bayi.
+ `rings`— Jumlah cincin di cangkang abalon.

Jumlah cincin dalam cangkang abalon adalah perkiraan yang baik untuk usianya menggunakan rumus. `age=rings + 1.5` Namun, mendapatkan nomor ini adalah tugas yang memakan waktu. Anda harus memotong cangkang melalui kerucut, menodai bagian, dan menghitung jumlah cincin melalui mikroskop. Namun, pengukuran fisik lainnya lebih mudah didapat. Notebook ini menggunakan dataset untuk membangun model prediktif dari cincin variabel menggunakan pengukuran fisik lainnya.

**Untuk mengunduh dataset**

1. Unduh kumpulan data ke bucket Amazon S3 default akun Anda.

   ```
   !mkdir -p data
   local_path = "data/abalone-dataset.csv"
   
   s3 = boto3.resource("s3")
   s3.Bucket(f"sagemaker-servicecatalog-seedcode-{region}").download_file(
       "dataset/abalone-dataset.csv",
       local_path
   )
   
   base_uri = f"s3://{default_bucket}/abalone"
   input_data_uri = sagemaker.s3.S3Uploader.upload(
       local_path=local_path, 
       desired_s3_uri=base_uri,
   )
   print(input_data_uri)
   ```

1. Unduh kumpulan data kedua untuk transformasi batch setelah model Anda dibuat.

   ```
   local_path = "data/abalone-dataset-batch.csv"
   
   s3 = boto3.resource("s3")
   s3.Bucket(f"sagemaker-servicecatalog-seedcode-{region}").download_file(
       "dataset/abalone-dataset-batch",
       local_path
   )
   
   base_uri = f"s3://{default_bucket}/abalone"
   batch_data_uri = sagemaker.s3.S3Uploader.upload(
       local_path=local_path, 
       desired_s3_uri=base_uri,
   )
   print(batch_data_uri)
   ```

#### Langkah 2: Tentukan parameter pipa
<a name="define-pipeline-parameters"></a>

 Blok kode ini mendefinisikan parameter berikut untuk pipeline Anda: 
+  `processing_instance_count`— Jumlah instance dari pekerjaan pemrosesan. 
+  `input_data`— Lokasi Amazon S3 dari data input. 
+  `batch_data`— Lokasi Amazon S3 dari data input untuk transformasi batch. 
+  `model_approval_status`— Status persetujuan untuk mendaftarkan model terlatih untuk CI/CD. Untuk informasi selengkapnya, lihat [MLOps Otomatisasi Dengan SageMaker Proyek](sagemaker-projects.md).

```
from sagemaker.workflow.parameters import (
    ParameterInteger,
    ParameterString,
)

processing_instance_count = ParameterInteger(
    name="ProcessingInstanceCount",
    default_value=1
)
model_approval_status = ParameterString(
    name="ModelApprovalStatus",
    default_value="PendingManualApproval"
)
input_data = ParameterString(
    name="InputData",
    default_value=input_data_uri,
)
batch_data = ParameterString(
    name="BatchData",
    default_value=batch_data_uri,
)
```

#### Langkah 3: Tentukan langkah pemrosesan untuk rekayasa fitur
<a name="define-pipeline-processing-feature"></a>

Bagian ini menunjukkan cara membuat langkah pemrosesan untuk menyiapkan data dari kumpulan data untuk pelatihan.

**Untuk membuat langkah pemrosesan**

1.  Buat direktori untuk skrip pemrosesan.

   ```
   !mkdir -p abalone
   ```

1. Buat file di `/abalone` direktori bernama `preprocessing.py` dengan konten berikut. Skrip preprocessing ini diteruskan ke langkah pemrosesan untuk berjalan pada data input. Langkah pelatihan kemudian menggunakan fitur dan label pelatihan yang telah diproses sebelumnya untuk melatih model. Langkah evaluasi menggunakan model terlatih dan fitur dan label uji yang telah diproses sebelumnya untuk mengevaluasi model. Skrip digunakan `scikit-learn` untuk melakukan hal berikut:
   +  Isi data `sex` kategoris yang hilang dan kodekan sehingga cocok untuk pelatihan. 
   +  Skala dan normalkan semua bidang numerik kecuali untuk `rings` dan`sex`. 
   +  Pisahkan data menjadi kumpulan data pelatihan, pengujian, dan validasi. 

   ```
   %%writefile abalone/preprocessing.py
   import argparse
   import os
   import requests
   import tempfile
   import numpy as np
   import pandas as pd
   
   
   from sklearn.compose import ColumnTransformer
   from sklearn.impute import SimpleImputer
   from sklearn.pipeline import Pipeline
   from sklearn.preprocessing import StandardScaler, OneHotEncoder
   
   
   # Because this is a headerless CSV file, specify the column names here.
   feature_columns_names = [
       "sex",
       "length",
       "diameter",
       "height",
       "whole_weight",
       "shucked_weight",
       "viscera_weight",
       "shell_weight",
   ]
   label_column = "rings"
   
   feature_columns_dtype = {
       "sex": str,
       "length": np.float64,
       "diameter": np.float64,
       "height": np.float64,
       "whole_weight": np.float64,
       "shucked_weight": np.float64,
       "viscera_weight": np.float64,
       "shell_weight": np.float64
   }
   label_column_dtype = {"rings": np.float64}
   
   
   def merge_two_dicts(x, y):
       z = x.copy()
       z.update(y)
       return z
   
   
   if __name__ == "__main__":
       base_dir = "/opt/ml/processing"
   
       df = pd.read_csv(
           f"{base_dir}/input/abalone-dataset.csv",
           header=None, 
           names=feature_columns_names + [label_column],
           dtype=merge_two_dicts(feature_columns_dtype, label_column_dtype)
       )
       numeric_features = list(feature_columns_names)
       numeric_features.remove("sex")
       numeric_transformer = Pipeline(
           steps=[
               ("imputer", SimpleImputer(strategy="median")),
               ("scaler", StandardScaler())
           ]
       )
   
       categorical_features = ["sex"]
       categorical_transformer = Pipeline(
           steps=[
               ("imputer", SimpleImputer(strategy="constant", fill_value="missing")),
               ("onehot", OneHotEncoder(handle_unknown="ignore"))
           ]
       )
   
       preprocess = ColumnTransformer(
           transformers=[
               ("num", numeric_transformer, numeric_features),
               ("cat", categorical_transformer, categorical_features)
           ]
       )
       
       y = df.pop("rings")
       X_pre = preprocess.fit_transform(df)
       y_pre = y.to_numpy().reshape(len(y), 1)
       
       X = np.concatenate((y_pre, X_pre), axis=1)
       
       np.random.shuffle(X)
       train, validation, test = np.split(X, [int(.7*len(X)), int(.85*len(X))])
   
       
       pd.DataFrame(train).to_csv(f"{base_dir}/train/train.csv", header=False, index=False)
       pd.DataFrame(validation).to_csv(f"{base_dir}/validation/validation.csv", header=False, index=False)
       pd.DataFrame(test).to_csv(f"{base_dir}/test/test.csv", header=False, index=False)
   ```

1.  Buat instance `SKLearnProcessor` untuk diteruskan ke langkah pemrosesan. 

   ```
   from sagemaker.sklearn.processing import SKLearnProcessor
   
   
   framework_version = "0.23-1"
   
   sklearn_processor = SKLearnProcessor(
       framework_version=framework_version,
       instance_type="ml.m5.xlarge",
       instance_count=processing_instance_count,
       base_job_name="sklearn-abalone-process",
       sagemaker_session=pipeline_session,
       role=role,
   )
   ```

1. Buat langkah pemrosesan. Langkah ini mengambil`SKLearnProcessor`, saluran input dan output, dan `preprocessing.py` skrip yang Anda buat. Ini sangat mirip dengan `run` metode instance prosesor di SageMaker AI Python SDK. `input_data`Parameter yang diteruskan `ProcessingStep` adalah data input dari langkah itu sendiri. Data input ini digunakan oleh instance prosesor saat berjalan. 

    Perhatikan`"train`,`"validation`, dan saluran `"test"` bernama yang ditentukan dalam konfigurasi output untuk pekerjaan pemrosesan. Langkah `Properties` seperti ini dapat digunakan dalam langkah-langkah berikutnya dan menyelesaikan nilai runtime mereka saat runtime. 

   ```
   from sagemaker.processing import ProcessingInput, ProcessingOutput
   from sagemaker.workflow.steps import ProcessingStep
      
   
   processor_args = sklearn_processor.run(
       inputs=[
         ProcessingInput(source=input_data, destination="/opt/ml/processing/input"),  
       ],
       outputs=[
           ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
           ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"),
           ProcessingOutput(output_name="test", source="/opt/ml/processing/test")
       ],
       code="abalone/preprocessing.py",
   ) 
   
   step_process = ProcessingStep(
       name="AbaloneProcess",
       step_args=processor_args
   )
   ```

#### Langkah 4: Tentukan langkah pelatihan
<a name="define-pipeline-training"></a>

Bagian ini menunjukkan cara menggunakan [XGBoostAlgoritma SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) AI untuk melatih model pada output data pelatihan dari langkah-langkah pemrosesan. 

**Untuk menentukan langkah pelatihan**

1.  Tentukan jalur model tempat Anda ingin menyimpan model dari pelatihan. 

   ```
   model_path = f"s3://{default_bucket}/AbaloneTrain"
   ```

1. Konfigurasikan estimator untuk XGBoost algoritme dan kumpulan data input. Jenis instance pelatihan diteruskan ke estimator. Skrip pelatihan yang khas:
   + memuat data dari saluran input
   + mengonfigurasi pelatihan dengan hyperparameters
   + melatih model
   + menyimpan model `model_dir` agar dapat di-host nanti

   SageMaker AI mengunggah model ke Amazon S3 dalam bentuk `model.tar.gz` a di akhir pekerjaan pelatihan.

   ```
   from sagemaker.estimator import Estimator
   
   
   image_uri = sagemaker.image_uris.retrieve(
       framework="xgboost",
       region=region,
       version="1.0-1",
       py_version="py3",
       instance_type="ml.m5.xlarge"
   )
   xgb_train = Estimator(
       image_uri=image_uri,
       instance_type="ml.m5.xlarge",
       instance_count=1,
       output_path=model_path,
       sagemaker_session=pipeline_session,
       role=role,
   )
   xgb_train.set_hyperparameters(
       objective="reg:linear",
       num_round=50,
       max_depth=5,
       eta=0.2,
       gamma=4,
       min_child_weight=6,
       subsample=0.7,
       silent=0
   )
   ```

1. Buat `TrainingStep` menggunakan instance estimator dan properti dari. `ProcessingStep` Lewati `S3Uri` saluran `"train"` dan `"validation"` output ke`TrainingStep`.  

   ```
   from sagemaker.inputs import TrainingInput
   from sagemaker.workflow.steps import TrainingStep
   
   
   train_args = xgb_train.fit(
       inputs={
           "train": TrainingInput(
               s3_data=step_process.properties.ProcessingOutputConfig.Outputs[
                   "train"
               ].S3Output.S3Uri,
               content_type="text/csv"
           ),
           "validation": TrainingInput(
               s3_data=step_process.properties.ProcessingOutputConfig.Outputs[
                   "validation"
               ].S3Output.S3Uri,
               content_type="text/csv"
           )
       },
   )
   
   step_train = TrainingStep(
       name="AbaloneTrain",
       step_args = train_args
   )
   ```

#### Langkah 5: Tentukan langkah pemrosesan untuk evaluasi model
<a name="define-pipeline-processing-model"></a>

Bagian ini menunjukkan cara membuat langkah pemrosesan untuk mengevaluasi keakuratan model. Hasil evaluasi model ini digunakan dalam langkah kondisi untuk menentukan jalur lari mana yang akan diambil.

**Untuk menentukan langkah pemrosesan untuk evaluasi model**

1. Buat file di `/abalone` direktori bernama`evaluation.py`. Skrip ini digunakan dalam langkah pemrosesan untuk melakukan evaluasi model. Dibutuhkan model terlatih dan kumpulan data pengujian sebagai input, kemudian menghasilkan file JSON yang berisi metrik evaluasi klasifikasi.

   ```
   %%writefile abalone/evaluation.py
   import json
   import pathlib
   import pickle
   import tarfile
   import joblib
   import numpy as np
   import pandas as pd
   import xgboost
   
   
   from sklearn.metrics import mean_squared_error
   
   
   if __name__ == "__main__":
       model_path = f"/opt/ml/processing/model/model.tar.gz"
       with tarfile.open(model_path) as tar:
           tar.extractall(path=".")
       
       model = pickle.load(open("xgboost-model", "rb"))
   
       test_path = "/opt/ml/processing/test/test.csv"
       df = pd.read_csv(test_path, header=None)
       
       y_test = df.iloc[:, 0].to_numpy()
       df.drop(df.columns[0], axis=1, inplace=True)
       
       X_test = xgboost.DMatrix(df.values)
       
       predictions = model.predict(X_test)
   
       mse = mean_squared_error(y_test, predictions)
       std = np.std(y_test - predictions)
       report_dict = {
           "regression_metrics": {
               "mse": {
                   "value": mse,
                   "standard_deviation": std
               },
           },
       }
   
       output_dir = "/opt/ml/processing/evaluation"
       pathlib.Path(output_dir).mkdir(parents=True, exist_ok=True)
       
       evaluation_path = f"{output_dir}/evaluation.json"
       with open(evaluation_path, "w") as f:
           f.write(json.dumps(report_dict))
   ```

1.  Buat sebuah instance dari `ScriptProcessor` yang digunakan untuk membuat`ProcessingStep`. 

   ```
   from sagemaker.processing import ScriptProcessor
   
   
   script_eval = ScriptProcessor(
       image_uri=image_uri,
       command=["python3"],
       instance_type="ml.m5.xlarge",
       instance_count=1,
       base_job_name="script-abalone-eval",
       sagemaker_session=pipeline_session,
       role=role,
   )
   ```

1.  Buat `ProcessingStep` menggunakan instance prosesor, saluran input dan output, dan `evaluation.py` skrip. Lulus:
   + `S3ModelArtifacts`properti dari langkah `step_train` pelatihan
   + `S3Uri`saluran `"test"` output dari langkah `step_process` pemrosesan

   Ini sangat mirip dengan `run` metode instance prosesor di SageMaker AI Python SDK.  

   ```
   from sagemaker.workflow.properties import PropertyFile
   
   
   evaluation_report = PropertyFile(
       name="EvaluationReport",
       output_name="evaluation",
       path="evaluation.json"
   )
   
   eval_args = script_eval.run(
           inputs=[
           ProcessingInput(
               source=step_train.properties.ModelArtifacts.S3ModelArtifacts,
               destination="/opt/ml/processing/model"
           ),
           ProcessingInput(
               source=step_process.properties.ProcessingOutputConfig.Outputs[
                   "test"
               ].S3Output.S3Uri,
               destination="/opt/ml/processing/test"
           )
       ],
       outputs=[
           ProcessingOutput(output_name="evaluation", source="/opt/ml/processing/evaluation"),
       ],
       code="abalone/evaluation.py",
   )
   
   step_eval = ProcessingStep(
       name="AbaloneEval",
       step_args=eval_args,
       property_files=[evaluation_report],
   )
   ```

#### Langkah 6: Tentukan CreateModelStep untuk transformasi batch
<a name="define-pipeline-create-model"></a>

**penting**  
Kami merekomendasikan penggunaan [Langkah model](build-and-manage-steps-types.md#step-type-model) untuk membuat model pada v2.90.0 dari Python SDK. SageMaker `CreateModelStep`akan terus bekerja di versi SDK SageMaker Python sebelumnya, tetapi tidak lagi didukung secara aktif.

Bagian ini menunjukkan cara membuat model SageMaker AI dari output langkah pelatihan. Model ini digunakan untuk transformasi batch pada dataset baru. Langkah ini diteruskan ke langkah kondisi dan hanya berjalan jika langkah kondisi dievaluasi. `true`

**Untuk menentukan transformasi CreateModelStep untuk batch**

1.  Buat model SageMaker AI. Lewati `S3ModelArtifacts` properti dari langkah `step_train` pelatihan.

   ```
   from sagemaker.model import Model
   
   
   model = Model(
       image_uri=image_uri,
       model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts,
       sagemaker_session=pipeline_session,
       role=role,
   )
   ```

1. Tentukan input model untuk model SageMaker AI Anda.

   ```
   from sagemaker.inputs import CreateModelInput
   
   
   inputs = CreateModelInput(
       instance_type="ml.m5.large",
       accelerator_type="ml.eia1.medium",
   )
   ```

1. Buat `CreateModelStep` contoh model `CreateModelInput` dan SageMaker AI yang Anda tentukan.

   ```
   from sagemaker.workflow.steps import CreateModelStep
   
   
   step_create_model = CreateModelStep(
       name="AbaloneCreateModel",
       model=model,
       inputs=inputs,
   )
   ```

#### Langkah 7: Tentukan TransformStep untuk melakukan transformasi batch
<a name="define-pipeline-transform"></a>

Bagian ini menunjukkan cara membuat `TransformStep` untuk melakukan transformasi batch pada kumpulan data setelah model dilatih. Langkah ini diteruskan ke langkah kondisi dan hanya berjalan jika langkah kondisi dievaluasi. `true`

**Untuk menentukan TransformStep untuk melakukan transformasi batch**

1. Buat instance transformator dengan jenis instans komputasi yang sesuai, jumlah instans, dan URI bucket Amazon S3 keluaran yang diinginkan. Lewati `ModelName` properti dari `step_create_model` `CreateModel` langkah. 

   ```
   from sagemaker.transformer import Transformer
   
   
   transformer = Transformer(
       model_name=step_create_model.properties.ModelName,
       instance_type="ml.m5.xlarge",
       instance_count=1,
       output_path=f"s3://{default_bucket}/AbaloneTransform"
   )
   ```

1. Buat `TransformStep` menggunakan instance transformator yang Anda tentukan dan parameter `batch_data` pipeline.

   ```
   from sagemaker.inputs import TransformInput
   from sagemaker.workflow.steps import TransformStep
   
   
   step_transform = TransformStep(
       name="AbaloneTransform",
       transformer=transformer,
       inputs=TransformInput(data=batch_data)
   )
   ```

#### Langkah 8: Tentukan RegisterModel langkah untuk membuat paket model
<a name="define-pipeline-register"></a>

**penting**  
Kami merekomendasikan penggunaan [Langkah model](build-and-manage-steps-types.md#step-type-model) untuk mendaftarkan model pada v2.90.0 dari Python SDK. SageMaker `RegisterModel`akan terus bekerja di versi SDK SageMaker Python sebelumnya, tetapi tidak lagi didukung secara aktif.

Bagian ini menunjukkan cara membuat instance dari`RegisterModel`. Hasil berjalan `RegisterModel` dalam pipa adalah paket model. Paket model adalah abstraksi artefak model yang dapat digunakan kembali yang mengemas semua bahan yang diperlukan untuk inferensi. Ini terdiri dari spesifikasi inferensi yang mendefinisikan gambar inferensi untuk digunakan bersama dengan lokasi bobot model opsional. Grup paket model adalah kumpulan paket model. Anda dapat menggunakan `ModelPackageGroup` for Pipelines untuk menambahkan versi baru dan paket model ke grup untuk setiap pipeline yang dijalankan. Untuk informasi selengkapnya tentang registri model, lihat[Penerapan Pendaftaran Model dengan Model Registry](model-registry.md).

Langkah ini diteruskan ke langkah kondisi dan hanya berjalan jika langkah kondisi dievaluasi. `true`

**Untuk menentukan RegisterModel langkah untuk membuat paket model**
+  Buat `RegisterModel` langkah menggunakan instance estimator yang Anda gunakan untuk langkah pelatihan. Lewati `S3ModelArtifacts` properti dari langkah `step_train` pelatihan dan tentukan a`ModelPackageGroup`. Pipelines menciptakan ini `ModelPackageGroup` untuk Anda.

  ```
  from sagemaker.model_metrics import MetricsSource, ModelMetrics 
  from sagemaker.workflow.step_collections import RegisterModel
  
  
  model_metrics = ModelMetrics(
      model_statistics=MetricsSource(
          s3_uri="{}/evaluation.json".format(
              step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
          ),
          content_type="application/json"
      )
  )
  step_register = RegisterModel(
      name="AbaloneRegisterModel",
      estimator=xgb_train,
      model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts,
      content_types=["text/csv"],
      response_types=["text/csv"],
      inference_instances=["ml.t2.medium", "ml.m5.xlarge"],
      transform_instances=["ml.m5.xlarge"],
      model_package_group_name=model_package_group_name,
      approval_status=model_approval_status,
      model_metrics=model_metrics
  )
  ```

#### Langkah 9: Tentukan langkah kondisi untuk memverifikasi akurasi model
<a name="define-pipeline-condition"></a>

A `ConditionStep` memungkinkan Pipelines untuk mendukung pengoperasian bersyarat di DAG pipeline Anda berdasarkan kondisi properti langkah. Dalam hal ini, Anda hanya ingin mendaftarkan paket model jika keakuratan model tersebut melebihi nilai yang diperlukan. Keakuratan model ditentukan oleh langkah evaluasi model. Jika akurasi melebihi nilai yang diperlukan, pipeline juga membuat Model SageMaker AI dan menjalankan transformasi batch pada kumpulan data. Bagian ini menunjukkan cara mendefinisikan langkah Kondisi.

**Untuk menentukan langkah kondisi untuk memverifikasi akurasi model**

1.  Tentukan `ConditionLessThanOrEqualTo` kondisi menggunakan nilai akurasi yang ditemukan dalam output dari langkah pemrosesan evaluasi model,`step_eval`. Dapatkan output ini menggunakan file properti yang Anda indeks dalam langkah pemrosesan dan masing-masing JSONPath nilai kesalahan kuadrat rata-rata,. `"mse"`

   ```
   from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo
   from sagemaker.workflow.condition_step import ConditionStep
   from sagemaker.workflow.functions import JsonGet
   
   
   cond_lte = ConditionLessThanOrEqualTo(
       left=JsonGet(
           step_name=step_eval.name,
           property_file=evaluation_report,
           json_path="regression_metrics.mse.value"
       ),
       right=6.0
   )
   ```

1.  Membangun a. `ConditionStep` Lulus `ConditionEquals` kondisi, lalu atur pendaftaran paket model dan langkah transformasi batch sebagai langkah selanjutnya jika kondisi berlalu. 

   ```
   step_cond = ConditionStep(
       name="AbaloneMSECond",
       conditions=[cond_lte],
       if_steps=[step_register, step_create_model, step_transform],
       else_steps=[], 
   )
   ```

#### Langkah 10: Buat pipeline
<a name="define-pipeline-pipeline"></a>

Sekarang setelah Anda membuat semua langkah, gabungkan mereka ke dalam pipeline.

**Untuk membuat pipa**

1.  Tentukan hal berikut untuk pipeline Anda:`name`,`parameters`, dan`steps`. Nama harus unik dalam `(account, region)` pasangan.
**catatan**  
Sebuah langkah hanya dapat muncul sekali di daftar langkah pipeline atau daftar langkah if/else dari langkah kondisi. Itu tidak bisa muncul di keduanya. 

   ```
   from sagemaker.workflow.pipeline import Pipeline
   
   
   pipeline_name = f"AbalonePipeline"
   pipeline = Pipeline(
       name=pipeline_name,
       parameters=[
           processing_instance_count,
           model_approval_status,
           input_data,
           batch_data,
       ],
       steps=[step_process, step_train, step_eval, step_cond],
   )
   ```

1.  (Opsional) Periksa definisi pipa JSON untuk memastikan bahwa itu terbentuk dengan baik.

   ```
   import json
   
   json.loads(pipeline.definition())
   ```

 Definisi pipeline ini siap dikirimkan ke SageMaker AI. Dalam tutorial berikutnya, Anda mengirimkan pipeline ini ke SageMaker AI dan mulai menjalankan. 

## Tentukan pipeline (JSON)
<a name="collapsible-section-1"></a>

Anda juga dapat menggunakan [boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_pipeline) atau [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-pipeline.html)untuk membuat pipeline. Membuat pipa memerlukan definisi pipa, yang merupakan objek JSON yang mendefinisikan setiap langkah pipa. SageMaker SDK menawarkan cara sederhana untuk membuat definisi pipeline, yang dapat Anda gunakan dengan salah satu yang disebutkan APIs sebelumnya untuk membuat pipeline itu sendiri. Tanpa menggunakan SDK, pengguna harus menulis definisi JSON mentah untuk membuat pipeline tanpa pemeriksaan kesalahan yang disediakan oleh Python SageMaker SDK. Untuk melihat skema definisi JSON pipeline, lihat Skema JSON [Definisi Pipeline SageMaker AI](https://aws-sagemaker-mlops.github.io/sagemaker-model-building-pipeline-definition-JSON-schema/). Contoh kode berikut menunjukkan contoh objek JSON definisi pipeline SageMaker AI:

```
{'Version': '2020-12-01',
 'Metadata': {},
 'Parameters': [{'Name': 'ProcessingInstanceType',
   'Type': 'String',
   'DefaultValue': 'ml.m5.xlarge'},
  {'Name': 'ProcessingInstanceCount', 'Type': 'Integer', 'DefaultValue': 1},
  {'Name': 'TrainingInstanceType',
   'Type': 'String',
   'DefaultValue': 'ml.m5.xlarge'},
  {'Name': 'ModelApprovalStatus',
   'Type': 'String',
   'DefaultValue': 'PendingManualApproval'},
  {'Name': 'ProcessedData',
   'Type': 'String',
   'DefaultValue': 'S3_URL',
{'Name': 'InputDataUrl',
   'Type': 'String',
   'DefaultValue': 'S3_URL',
 'PipelineExperimentConfig': {'ExperimentName': {'Get': 'Execution.PipelineName'},
  'TrialName': {'Get': 'Execution.PipelineExecutionId'}},
 'Steps': [{'Name': 'ReadTrainDataFromFS',
   'Type': 'Processing',
   'Arguments': {'ProcessingResources': {'ClusterConfig': {'InstanceType': 'ml.m5.4xlarge',
      'InstanceCount': 2,
      'VolumeSizeInGB': 30}},
    'AppSpecification': {'ImageUri': 'IMAGE_URI',
     'ContainerArguments': [....]},
    'RoleArn': 'ROLE',
      'ProcessingInputs': [...],
    'ProcessingOutputConfig': {'Outputs': [.....]},
    'StoppingCondition': {'MaxRuntimeInSeconds': 86400}},
   'CacheConfig': {'Enabled': True, 'ExpireAfter': '30d'}},
   ...
   ...
   ...
  }
```

 **Langkah selanjutnya:** [Jalankan pipa](run-pipeline.md) 

# Mengedit pipa
<a name="edit-pipeline-before-execution"></a>

Untuk membuat perubahan pada pipeline sebelum menjalankannya, lakukan hal berikut:

1. Buka SageMaker Studio dengan mengikuti petunjuk di [Luncurkan Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Di panel navigasi kiri Studio, pilih **Pipelines**.

1. Pilih nama pipeline untuk melihat detail tentang pipeline.

1. Pilih tab **Eksekusi**.

1. Pilih nama eksekusi pipeline.

1. Pilih **Edit** untuk membuka Pipeline Designer.

1. Perbarui tepi di antara langkah-langkah atau konfigurasi langkah sesuai kebutuhan dan klik **Simpan**. 

   Menyimpan pipeline setelah mengedit secara otomatis menghasilkan nomor versi baru.

1. Pilih **Jalankan**.

# Jalankan pipa
<a name="run-pipeline"></a>

Setelah mendefinisikan langkah-langkah pipeline Anda sebagai grafik asiklik terarah (DAG), Anda dapat menjalankan pipeline Anda, yang menjalankan langkah-langkah yang ditentukan dalam DAG Anda. Panduan berikut menunjukkan cara menjalankan pipeline Amazon SageMaker AI menggunakan editor drag-and-drop visual di Amazon SageMaker Studio atau Amazon Python SageMaker SDK.

## Jalankan pipa (Perancang pipa)
<a name="run-pipeline-designer"></a>

Untuk memulai eksekusi baru pipeline Anda, lakukan hal berikut:

------
#### [ Studio ]

1. Buka SageMaker Studio dengan mengikuti petunjuk di [Luncurkan Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. (Opsional) Untuk memfilter daftar saluran pipa berdasarkan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Pilih nama pipeline untuk membuka tampilan detail pipeline.

1. Pilih **Visual Editor** di kanan atas.

1. Untuk memulai eksekusi dari versi terbaru, pilih **Eksekusi.**

1. Untuk memulai eksekusi dari versi tertentu, ikuti langkah-langkah ini:
   + Pilih ikon versi di toolbar bawah untuk membuka panel versi.
   + Pilih versi pipeline yang ingin Anda jalankan.
   + **Arahkan kursor ke item versi untuk menampilkan menu tiga titik, pilih Jalankan.**
   + (Opsional) Untuk melihat versi pipeline sebelumnya, pilih **Pratinjau** dari menu tiga titik di panel versi. Anda juga dapat mengedit versi dengan memilih **Edit** di bilah notifikasi.

**catatan**  
Jika pipeline Anda gagal, spanduk status akan menampilkan status **Gagal**. Setelah memecahkan masalah langkah yang gagal, pilih **Coba lagi** pada spanduk status untuk melanjutkan menjalankan pipeline dari langkah itu.

------
#### [ Studio Classic ]

1. Masuk ke Amazon SageMaker Studio Classic. Untuk informasi selengkapnya, lihat [Meluncurkan Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Di sidebar Studio Classic, pilih ikon **Beranda** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Pilih **Pipelines** dari menu.

1. Untuk mempersempit daftar saluran pipa dengan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Pilih nama pipeline.

1. Dari tab **Eksekusi** atau **Grafik** dalam daftar eksekusi, pilih **Buat eksekusi**.

1. Masukkan atau perbarui informasi yang diperlukan berikut:
   + **Nama** — Harus unik untuk akun Anda di AWS Wilayah.
   + **ProcessingInstanceCount**— Jumlah instance yang digunakan untuk pemrosesan.
   + **ModelApprovalStatus**- Untuk kenyamanan Anda.
   + **InputDataUrl**— URI Amazon S3 dari data input.

1. Pilih **Mulai**.

Setelah pipeline berjalan, Anda dapat melihat detail eksekusi dengan memilih **Lihat detail** pada spanduk status.

Untuk menghentikan proses, pilih **Berhenti** pada spanduk status. Untuk melanjutkan eksekusi dari tempat itu dihentikan, pilih **Lanjutkan** pada spanduk status.

**catatan**  
Jika pipeline Anda gagal, spanduk status akan menampilkan status **Gagal**. Setelah memecahkan masalah langkah yang gagal, pilih **Coba lagi** pada spanduk status untuk melanjutkan menjalankan pipeline dari langkah itu.

------

## Jalankan pipeline (SageMaker Python SDK)
<a name="run-pipeline-sdk"></a>

Setelah Anda membuat definisi pipeline menggunakan SageMaker AI Python SDK, Anda dapat mengirimkannya ke SageMaker AI untuk memulai eksekusi Anda. Tutorial berikut menunjukkan cara mengirimkan pipeline, memulai eksekusi, memeriksa hasil eksekusi itu, dan menghapus pipeline Anda. 

**Topics**
+ [Prasyarat](#run-pipeline-prereq)
+ [Langkah 1: Mulai Pipeline](#run-pipeline-submit)
+ [Langkah 2: Periksa Eksekusi Pipeline](#run-pipeline-examine)
+ [Langkah 3: Ganti Parameter Default untuk Eksekusi Pipeline](#run-pipeline-parametrized)
+ [Langkah 4: Hentikan dan Hapus Eksekusi Pipeline](#run-pipeline-delete)

### Prasyarat
<a name="run-pipeline-prereq"></a>

Tutorial ini membutuhkan yang berikut: 
+  Sebuah contoh SageMaker notebook.  
+  Definisi pipa pipa. Tutorial ini mengasumsikan Anda menggunakan definisi pipeline yang dibuat dengan menyelesaikan [Tentukan pipa](define-pipeline.md) tutorial. 

### Langkah 1: Mulai Pipeline
<a name="run-pipeline-submit"></a>

Pertama, Anda perlu memulai pipa. 

**Untuk memulai pipa**

1. Periksa definisi pipa JSON untuk memastikan bahwa itu terbentuk dengan baik.

   ```
   import json
   
   json.loads(pipeline.definition())
   ```

1. Kirimkan definisi pipeline ke layanan Pipelines untuk membuat pipeline jika tidak ada, atau perbarui pipeline jika ada. Peran yang diteruskan digunakan oleh Pipelines untuk menciptakan semua pekerjaan yang ditentukan dalam langkah-langkah. 

   ```
   pipeline.upsert(role_arn=role)
   ```

1. Mulai eksekusi pipeline.

   ```
   execution = pipeline.start()
   ```

### Langkah 2: Periksa Eksekusi Pipeline
<a name="run-pipeline-examine"></a>

Selanjutnya, Anda perlu memeriksa eksekusi pipa. 

**Untuk memeriksa eksekusi pipa**

1.  Jelaskan status eksekusi pipeline untuk memastikan bahwa itu telah dibuat dan dimulai dengan sukses.

   ```
   execution.describe()
   ```

1. Tunggu eksekusi selesai. 

   ```
   execution.wait()
   ```

1. Buat daftar langkah-langkah eksekusi dan statusnya.

   ```
   execution.list_steps()
   ```

   Output Anda akan terlihat seperti berikut:

   ```
   [{'StepName': 'AbaloneTransform',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 870000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 45, 50, 492000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'TransformJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:transform-job/pipelines-cfvy1tjuxdq8-abalonetransform-ptyjoef3jy'}}},
    {'StepName': 'AbaloneRegisterModel',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 929000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 28, 15000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'RegisterModel': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model-package/abalonemodelpackagegroupname/1'}}},
    {'StepName': 'AbaloneCreateModel',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 895000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 708000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'Model': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model/pipelines-cfvy1tjuxdq8-abalonecreatemodel-jl94rai0ra'}}},
    {'StepName': 'AbaloneMSECond',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 25, 558000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 329000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'Condition': {'Outcome': 'True'}}},
    {'StepName': 'AbaloneEval',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 767000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 18, 80000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneeval-zfraozhmny'}}},
    {'StepName': 'AbaloneTrain',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 34, 55, 867000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 34000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'TrainingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:training-job/pipelines-cfvy1tjuxdq8-abalonetrain-tavd6f3wdf'}}},
    {'StepName': 'AbaloneProcess',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 30, 27, 160000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 34, 48, 390000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneprocess-mgqyfdujcj'}}}]
   ```

1. Setelah eksekusi pipeline Anda selesai, unduh `evaluation.json` file yang dihasilkan dari Amazon S3 untuk memeriksa laporan. 

   ```
   evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format(
       step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
   ))
   json.loads(evaluation_json)
   ```

### Langkah 3: Ganti Parameter Default untuk Eksekusi Pipeline
<a name="run-pipeline-parametrized"></a>

Anda dapat menjalankan eksekusi tambahan dari pipeline dengan menentukan parameter pipeline yang berbeda untuk mengganti default.

**Untuk mengganti parameter default**

1. Buat eksekusi pipeline. Ini memulai eksekusi pipeline lain dengan penggantian status persetujuan model disetel ke “Disetujui”. Ini berarti bahwa versi paket model yang dihasilkan oleh `RegisterModel` langkah secara otomatis siap untuk penyebaran melalui CI/CD pipeline, seperti dengan SageMaker Projects. Untuk informasi selengkapnya, lihat [MLOps Otomatisasi Dengan SageMaker Proyek](sagemaker-projects.md).

   ```
   execution = pipeline.start(
       parameters=dict(
           ModelApprovalStatus="Approved",
       )
   )
   ```

1. Tunggu eksekusi selesai. 

   ```
   execution.wait()
   ```

1. Buat daftar langkah-langkah eksekusi dan statusnya.

   ```
   execution.list_steps()
   ```

1. Setelah eksekusi pipeline Anda selesai, unduh `evaluation.json` file yang dihasilkan dari Amazon S3 untuk memeriksa laporan. 

   ```
   evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format(
       step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
   ))
   json.loads(evaluation_json)
   ```

### Langkah 4: Hentikan dan Hapus Eksekusi Pipeline
<a name="run-pipeline-delete"></a>

Setelah selesai dengan pipeline, Anda dapat menghentikan eksekusi yang sedang berlangsung dan menghapus pipeline.

**Untuk menghentikan dan menghapus eksekusi pipeline**

1. Hentikan eksekusi pipa.

   ```
   execution.stop()
   ```

1. Hapus pipa.

   ```
   pipeline.delete()
   ```

# Hentikan pipa
<a name="pipelines-studio-stop"></a>

Anda dapat menghentikan proses pipeline di konsol Amazon SageMaker Studio.

Untuk menghentikan eksekusi pipeline di konsol Amazon SageMaker Studio, selesaikan langkah-langkah berikut berdasarkan apakah Anda menggunakan Studio atau Studio Classic.

------
#### [ Studio ]

1. Di panel navigasi kiri, pilih **Pipelines**.

1. (Opsional) Untuk memfilter daftar saluran pipa berdasarkan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Pilih nama pipeline.

1. Pilih tab **Eksekusi**.

1. Pilih eksekusi untuk berhenti.

1. Pilih **Berhenti**. Untuk melanjutkan eksekusi dari tempat itu dihentikan, pilih **Lanjutkan**

------
#### [ Studio Classic ]

1. Masuk ke Amazon SageMaker Studio Classic. Untuk informasi selengkapnya, lihat [Meluncurkan Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Di sidebar Studio Classic, pilih ikon **Beranda** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Pilih **Pipelines** dari menu.

1. Untuk mempersempit daftar saluran pipa dengan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Untuk menghentikan proses pipeline, pilih **Lihat detail** pada spanduk status pipeline, lalu pilih **Berhenti**. Untuk melanjutkan eksekusi dari tempat itu dihentikan, pilih **Lanjutkan**.

------

# Lihat detail pipa
<a name="pipelines-studio-list"></a>

Anda dapat melihat detail pipeline SageMaker AI untuk memahami parameternya, dependensi langkah-langkahnya, atau memantau kemajuan dan statusnya. Ini dapat membantu Anda memecahkan masalah atau mengoptimalkan alur kerja Anda. Anda dapat mengakses detail pipeline tertentu menggunakan konsol Amazon SageMaker Studio dan menjelajahi riwayat eksekusi, definisi, parameter, dan metadata.

Atau, jika pipeline Anda dikaitkan dengan Proyek SageMaker AI, Anda dapat mengakses detail pipeline dari halaman detail proyek. Untuk informasi selengkapnya, lihat [Lihat Sumber Daya Proyek](sagemaker-projects-resources.md).

Untuk melihat detail pipeline SageMaker AI, selesaikan langkah-langkah berikut berdasarkan apakah Anda menggunakan Studio atau Studio Classic.

**catatan**  
Pengemasan ulang model terjadi ketika pipeline perlu menyertakan skrip khusus dalam file model terkompresi (model.tar.gz) untuk diunggah ke Amazon S3 dan digunakan untuk menerapkan model ke titik akhir AI. SageMaker Ketika pipa SageMaker AI melatih model dan mendaftarkannya ke registri model, ia memperkenalkan langkah pengemasan ulang *jika* keluaran model terlatih dari pekerjaan pelatihan perlu menyertakan skrip inferensi khusus. Langkah repack membuka kompres model, menambahkan skrip baru, dan mengompresi ulang model. Menjalankan pipeline menambahkan langkah repack sebagai pekerjaan pelatihan.

------
#### [ Studio ]

1. Buka konsol SageMaker Studio dengan mengikuti petunjuk di [Luncurkan Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. (Opsional) Untuk memfilter daftar saluran pipa berdasarkan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Pilih nama pipeline untuk melihat detail tentang pipeline.

1. Pilih salah satu tab berikut untuk melihat detail pipeline:
   + **Eksekusi** — Detail tentang eksekusi.
   + **Grafik** — Grafik pipa, termasuk semua langkah.
   + **Parameter** — Parameter run dan metrik yang terkait dengan pipeline.
   + **Informasi** — Metadata yang terkait dengan pipeline, seperti tag, pipeline Amazon Resource Name (ARN), dan peran ARN. Anda juga dapat mengedit deskripsi pipeline dari halaman ini.

------
#### [ Studio Classic ]

1. Masuk ke Amazon SageMaker Studio Classic. Untuk informasi selengkapnya, lihat [Meluncurkan Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Di sidebar Studio Classic, pilih ikon **Beranda** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Pilih **Pipelines** dari menu.

1. Untuk mempersempit daftar saluran pipa dengan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Pilih nama pipeline untuk melihat detail tentang pipeline. Tab rincian pipeline membuka dan menampilkan daftar eksekusi pipeline. Anda dapat memulai eksekusi atau memilih salah satu tab lain untuk informasi lebih lanjut tentang pipeline. Gunakan ikon **Property Inspector** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/icons/gears.png)) untuk memilih kolom mana yang akan ditampilkan.

1. Dari halaman detail pipeline, pilih salah satu tab berikut untuk melihat detail tentang pipeline:
   + **Eksekusi** — Detail tentang eksekusi. Anda dapat membuat eksekusi dari tab ini atau tab **Grafik**.
   + **Grafik** — DAG untuk pipa.
   + **Parameter** - Termasuk status persetujuan model.
   + **Pengaturan** — Metadata yang terkait dengan pipa. Anda dapat mengunduh file definisi pipeline dan mengedit nama dan deskripsi pipeline dari tab ini.

------

# Lihat detail proses pipeline
<a name="pipelines-studio-view-execution"></a>

Anda dapat meninjau detail proses pipeline SageMaker AI tertentu. Ini dapat membantu Anda:
+ Identifikasi dan selesaikan masalah yang mungkin terjadi selama proses, seperti langkah gagal atau kesalahan tak terduga.
+ Bandingkan hasil eksekusi pipeline yang berbeda untuk memahami bagaimana perubahan data input atau parameter memengaruhi alur kerja secara keseluruhan.
+ Identifikasi kemacetan dan peluang untuk optimasi.

Untuk melihat detail proses pipeline, selesaikan langkah-langkah berikut berdasarkan apakah Anda menggunakan Studio atau Studio Classic.

------
#### [ Studio ]

1. Buka konsol SageMaker Studio dengan mengikuti petunjuk di [Luncurkan Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. (Opsional) Untuk memfilter daftar saluran pipa berdasarkan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Pilih nama pipeline untuk melihat detail tentang pipeline.

1. Pilih tab **Eksekusi**.

1. Pilih nama eksekusi pipeline untuk dilihat. Grafik pipeline untuk eksekusi itu muncul.

1. Pilih salah satu langkah pipeline dalam grafik untuk melihat pengaturan langkah di bilah sisi kanan.

1. Pilih salah satu tab berikut untuk melihat detail pipeline lainnya:
   + **Definisi** — Grafik pipa, termasuk semua langkah.
   + **Parameter** - Termasuk status persetujuan model.
   + **Detail** — Metadata yang terkait dengan pipeline, seperti tag, pipeline Amazon Resource Name (ARN), dan peran ARN. Anda juga dapat mengedit deskripsi pipeline dari halaman ini.

------
#### [ Studio Classic ]

1. Masuk ke Amazon SageMaker Studio Classic. Untuk informasi selengkapnya, lihat [Meluncurkan Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Di sidebar Studio Classic, pilih ikon **Beranda** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Pilih **Pipelines** dari menu.

1. Untuk mempersempit daftar saluran pipa dengan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Pilih nama pipeline. Halaman **Eksekusi** pipeline terbuka.

1. Di halaman **Eksekusi**, pilih nama eksekusi untuk melihat detail tentang eksekusi. Tab detail eksekusi terbuka dan menampilkan grafik langkah-langkah dalam pipeline.

1. Untuk mencari langkah demi nama, ketik karakter yang cocok dengan nama langkah di bidang pencarian. Gunakan ikon pengubahan ukuran di sisi kanan bawah grafik untuk memperbesar dan memperkecil grafik, menyesuaikan grafik ke layar, dan memperluas grafik ke layar penuh. Untuk fokus pada bagian tertentu dari grafik, Anda dapat memilih area kosong grafik dan menyeret grafik ke tengah area itu.   
![\[\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/yosemite/execution-graph-w-input.png)

1. Pilih salah satu langkah pipeline dalam grafik untuk melihat detail tentang langkah tersebut. Pada tangkapan layar sebelumnya, langkah pelatihan dipilih dan menampilkan tab berikut:
   + **Input** — Input pelatihan. Jika sumber input berasal dari Amazon Simple Storage Service (Amazon S3), pilih tautan untuk melihat file di konsol Amazon S3.
   + **Output** — Output pelatihan, seperti metrik, bagan, file, dan hasil evaluasi. Grafik diproduksi menggunakan [ APIsTracker](https://sagemaker-experiments.readthedocs.io/en/latest/tracker.html#smexperiments.tracker.Tracker.log_precision_recall).
   + **Log** — CloudWatch Log Amazon diproduksi oleh langkah.
   + **Info** — Parameter dan metadata yang terkait dengan langkah.  
![\[\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/yosemite/execution-graph-info.png)

------

# Unduh file definisi pipeline
<a name="pipelines-studio-download"></a>

Anda dapat mengunduh file definisi untuk pipeline SageMaker AI Anda langsung dari Amazon SageMaker Studio UI. Anda dapat menggunakan file definisi pipeline ini untuk:
+ Backup dan restorasi: Gunakan file yang diunduh untuk membuat cadangan konfigurasi pipeline Anda, yang dapat Anda pulihkan jika terjadi kegagalan infrastruktur atau perubahan yang tidak disengaja.
+ Kontrol versi: Simpan file definisi pipeline dalam sistem kontrol sumber untuk melacak perubahan pada pipeline dan kembali ke versi sebelumnya jika diperlukan.
+ Interaksi terprogram: Gunakan file definisi pipeline sebagai input ke SageMaker SDK atau file. AWS CLI
+ Integrasi dengan proses otomatisasi: Integrasikan definisi pipeline ke dalam CI/CD alur kerja Anda atau proses otomatisasi lainnya.

Untuk mengunduh file definisi pipeline, selesaikan langkah-langkah berikut berdasarkan apakah Anda menggunakan Studio atau Studio Classic.

------
#### [ Studio ]

1. Buka konsol SageMaker Studio dengan mengikuti petunjuk di [Luncurkan Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. (Opsional) Untuk memfilter daftar saluran pipa berdasarkan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Pilih nama pipeline. Halaman **Eksekusi** membuka dan menampilkan daftar eksekusi pipeline.

1. Tetap di halaman **Eksekusi** atau pilih halaman **Grafik**, **Informasi**, atau **Parameter** di sebelah kiri tabel eksekusi pipeline. Anda dapat mengunduh definisi pipeline dari salah satu halaman ini.

1. Di kanan atas halaman, pilih elipsis vertikal dan pilih **Download pipeline definition (JSON**).

------
#### [ Studio Classic ]

1. Masuk ke Amazon SageMaker Studio Classic. Untuk informasi selengkapnya, lihat [Meluncurkan Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Di sidebar Studio Classic, pilih ikon **Beranda** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Pilih **Pipelines** dari menu.

1. Untuk mempersempit daftar saluran pipa dengan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Pilih nama pipeline.

1. Pilih tab **Pengaturan**.

1. Pilih **Unduh file definisi pipeline**.

------

# Akses data eksperimen dari pipeline
<a name="pipelines-studio-experiments"></a>

**catatan**  
SageMaker Eksperimen adalah fitur yang disediakan di Studio Classic saja.

Saat Anda membuat pipeline dan menentukan [pipeline\$1experiment\$1config](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.pipeline.Pipeline.pipeline_experiment_config), Pipelines akan membuat entitas SageMaker Eksperimen berikut secara default jika tidak ada:
+ Eksperimen untuk pipa
+ Grup run untuk setiap eksekusi pipeline
+ Lari untuk setiap pekerjaan SageMaker AI yang dibuat dalam langkah pipeline

Untuk informasi tentang bagaimana eksperimen diintegrasikan dengan jaringan pipa, lihat[Integrasi SageMaker Eksperimen Amazon](pipelines-experiments.md). Untuk informasi lebih lanjut tentang SageMaker Eksperimen, lihat[SageMaker Eksperimen Amazon di Studio Classic](experiments.md).

Anda dapat membuka daftar proses yang terkait dengan pipeline baik dari daftar eksekusi pipeline atau daftar eksperimen.

**Untuk melihat daftar run dari daftar eksekusi pipeline**

1. Untuk melihat daftar eksekusi pipeline, ikuti lima langkah pertama di tab *Studio Classic*. [Lihat detail pipa](pipelines-studio-list.md)

1. Di kanan atas layar, pilih ikon **Filter** (![\[Funnel or filter icon representing data filtering or narrowing down options.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/jumpstart/jumpstart-filter-icon.png)).

1. Pilih **Eksperimen**. Jika integrasi eksperimen tidak dinonaktifkan saat pipeline dibuat, nama eksperimen akan ditampilkan dalam daftar eksekusi. 
**catatan**  
Integrasi eksperimen diperkenalkan di v2.41.0 dari Amazon [Python SageMaker ](https://sagemaker.readthedocs.io/en/stable) SDK. Pipeline yang dibuat dengan versi SDK yang lebih lama tidak terintegrasi dengan eksperimen secara default.

1. Pilih eksperimen pilihan Anda untuk melihat grup yang dijalankan dan menjalankan yang terkait dengan eksperimen tersebut.

**Untuk melihat daftar berjalan dari daftar eksperimen**

1. Di bilah sisi kiri Studio Classic, pilih ikon **Beranda** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Pilih **Eksperimen** dari menu.

1. Gunakan bilah pencarian atau ikon **Filter** (![\[Funnel or filter icon representing data filtering or narrowing down options.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/jumpstart/jumpstart-filter-icon.png)) untuk memfilter daftar ke eksperimen yang dibuat oleh pipeline.

1. Buka nama eksperimen dan lihat daftar proses yang dibuat oleh pipeline.

# Lacak garis keturunan pipa
<a name="pipelines-lineage-tracking"></a>

Dalam tutorial ini, Anda menggunakan Amazon SageMaker Studio untuk melacak garis keturunan Amazon SageMaker AI MLPipeline.

[Pipeline ini dibuat oleh notebook [Orchestrating Jobs with Amazon SageMaker Model Building Pipelines](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-pipelines/tabular/abalone_build_train_deploy/sagemaker-pipelines-preprocess-train-evaluate-batch-transform.html) di repositori contoh Amazon. SageMaker GitHub ](https://github.com/awslabs/amazon-sagemaker-examples) Untuk informasi rinci tentang bagaimana pipa dibuat, lihat[Tentukan pipa](define-pipeline.md).

Pelacakan garis keturunan di Studio berpusat di sekitar grafik asiklik terarah (DAG). DAG mewakili langkah-langkah dalam pipa. Dari DAG Anda dapat melacak garis keturunan dari langkah apa pun ke langkah lain. Diagram berikut menampilkan langkah-langkah dalam pipa. Langkah-langkah ini muncul sebagai DAG di Studio.

![\[\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/yosemite/pipeline-tutorial-steps.png)


Untuk melacak garis keturunan pipeline di konsol Amazon SageMaker Studio, selesaikan langkah-langkah berikut berdasarkan apakah Anda menggunakan Studio atau Studio Classic.

------
#### [ Studio ]

**Untuk melacak garis keturunan pipa**

1. Buka konsol SageMaker Studio dengan mengikuti petunjuk di [Luncurkan Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Di panel navigasi kiri, pilih **Pipelines**.

1. (Opsional) Untuk memfilter daftar saluran pipa berdasarkan nama, masukkan nama pipa lengkap atau sebagian di bidang pencarian.

1. Di kolom **Nama**, pilih nama pipeline untuk melihat detail tentang pipeline.

1. Pilih tab **Eksekusi**.

1. Di kolom **Nama** tabel **Eksekusi**, pilih nama eksekusi pipeline yang akan dilihat.

1. Di kanan atas halaman **Eksekusi**, pilih elipsis vertikal dan pilih **Download pipeline definition (**JSON). Anda dapat melihat file untuk melihat bagaimana grafik pipeline didefinisikan. 

1. Pilih **Edit** untuk membuka Pipeline Designer.

1. Gunakan kontrol pengubahan ukuran dan zoom di sudut kanan atas kanvas untuk memperbesar dan memperkecil grafik, menyesuaikan grafik ke layar, atau memperluas grafik ke layar penuh.

1. Untuk melihat kumpulan data pelatihan, validasi, dan pengujian Anda, selesaikan langkah-langkah berikut:

   1. Pilih langkah Pemrosesan dalam grafik pipeline Anda.

   1. Di bilah sisi kanan, pilih tab **Ikhtisar**.

   1. Di bagian **File**, temukan jalur Amazon S3 ke kumpulan data pelatihan, validasi, dan pengujian.

1. Untuk melihat artefak model Anda, selesaikan langkah-langkah berikut:

   1. Pilih langkah Pelatihan dalam grafik pipeline Anda.

   1. Di bilah sisi kanan, pilih tab **Ikhtisar**.

   1. Di bagian **File**, temukan jalur Amazon S3 ke artefak model.

1. Untuk menemukan paket model ARN, selesaikan langkah-langkah berikut:

   1. Pilih langkah model Register.

   1. Di bilah sisi kanan, pilih tab **Ikhtisar**.

   1. Di bagian **File**, temukan ARN dari paket model.

------
#### [ Studio Classic ]

**Untuk melacak garis keturunan pipa**

1. Masuk ke Amazon SageMaker Studio Classic. Untuk informasi selengkapnya, lihat [Meluncurkan Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Di bilah sisi kiri Studio, pilih ikon **Beranda** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Di menu, pilih **Pipelines**.

1. Gunakan kotak **Pencarian** untuk memfilter daftar pipeline.

1. Pilih `AbalonePipeline` pipeline untuk melihat daftar eksekusi dan detail lainnya tentang pipeline.

1. Pilih ikon **Property Inspector** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/icons/gears.png)) di sidebar kanan untuk membuka panel **TABLE PROPERTIES**, di mana Anda dapat memilih properti mana yang akan dilihat.

1. Pilih tab **Pengaturan** dan kemudian pilih **Unduh file definisi saluran pipa**. Anda dapat melihat file untuk melihat bagaimana grafik pipeline didefinisikan.

1. Pada tab **Eksekusi**, pilih baris pertama dalam daftar eksekusi untuk melihat grafik eksekusi dan detail lainnya tentang eksekusi. Perhatikan bahwa grafik cocok dengan diagram yang ditampilkan di awal tutorial.

   Gunakan ikon pengubahan ukuran di sisi kanan bawah grafik untuk memperbesar dan memperkecil grafik, menyesuaikan grafik ke layar, atau memperluas grafik ke layar penuh. Untuk fokus pada bagian tertentu dari grafik, Anda dapat memilih area kosong grafik dan menyeret grafik ke tengah area itu. Sisipan di sisi kanan bawah grafik menampilkan lokasi Anda dalam grafik.  
![\[\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/yosemite/pipeline-tutorial-execution-graph.png)

1. Pada tab **Grafik**, pilih `AbaloneProcess` langkah untuk melihat detail tentang langkah tersebut.

1. **Temukan jalur Amazon S3 ke kumpulan data pelatihan, validasi, dan pengujian di tab **Output**, di bawah File.**
**catatan**  
Untuk mendapatkan jalur lengkap, klik kanan jalur dan kemudian pilih **Salin isi sel**.

   ```
   s3://sagemaker-eu-west-1-acct-id/sklearn-abalone-process-2020-12-05-17-28-28-509/output/train
   s3://sagemaker-eu-west-1-acct-id/sklearn-abalone-process-2020-12-05-17-28-28-509/output/validation
   s3://sagemaker-eu-west-1-acct-id/sklearn-abalone-process-2020-12-05-17-28-28-509/output/test
   ```

1. Pilih `AbaloneTrain` langkahnya.

1. **Temukan jalur Amazon S3 ke artefak model di tab **Output, di bawah** File:**

   ```
   s3://sagemaker-eu-west-1-acct-id/AbaloneTrain/pipelines-6locnsqz4bfu-AbaloneTrain-NtfEpI0Ahu/output/model.tar.gz
   ```

1. Pilih `AbaloneRegisterModel` langkahnya.

1. **Temukan ARN dari paket model di tab **Output**, di bawah File:**

   ```
   arn:aws:sagemaker:eu-west-1:acct-id:model-package/abalonemodelpackagegroupname/2
   ```

------

# Orkestrasi Kubernetes
<a name="kubernetes-workflows"></a>

Anda dapat mengatur pekerjaan SageMaker pelatihan dan inferensi Anda dengan Operator SageMaker AI untuk Kubernetes dan Komponen AI untuk Pipelines Kubeflow. SageMaker SageMaker Operator AI untuk Kubernetes memudahkan pengembang dan ilmuwan data yang menggunakan Kubernetes untuk melatih, menyetel, dan menerapkan model pembelajaran mesin (ML) di AI. SageMaker SageMaker AI Components for Kubeflow Pipelines memungkinkan Anda memindahkan pekerjaan pemrosesan dan pelatihan data dari klaster Kubernetes ke layanan terkelola yang dioptimalkan untuk pembelajaran mesin SageMaker AI.

**Topics**
+ [SageMaker Operator AI untuk Kubernetes](kubernetes-sagemaker-operators.md)
+ [SageMaker Komponen AI untuk Pipa Kubeflow](kubernetes-sagemaker-components-for-kubeflow-pipelines.md)

# SageMaker Operator AI untuk Kubernetes
<a name="kubernetes-sagemaker-operators"></a>

SageMaker Operator AI untuk Kubernetes memudahkan pengembang dan ilmuwan data yang menggunakan Kubernetes untuk melatih, menyetel, dan menerapkan model pembelajaran mesin (ML) di AI. SageMaker Anda dapat menginstal Operator SageMaker AI ini di cluster Kubernetes Anda di Amazon Elastic Kubernetes Service (Amazon EKS SageMaker ) untuk membuat pekerjaan AI secara native menggunakan API Kubernetes dan alat Kubernetes baris perintah seperti. `kubectl` Panduan ini menunjukkan cara mengatur dan menggunakan operator untuk menjalankan pelatihan model, tuning hyperparameter, atau inferensi (real-time dan batch) pada SageMaker AI dari cluster Kubernetes. Prosedur dan pedoman dalam Bab ini mengasumsikan bahwa Anda sudah familiar dengan Kubernetes dan perintah-perintah dasarnya.

**penting**  
Kami menghentikan pengembangan dan dukungan teknis dari versi asli [ SageMaker Operator untuk Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master).  
Jika saat ini Anda menggunakan [ SageMaker Operator untuk Kubernetes versi `v1.2.2` atau di bawah ini, kami sarankan untuk](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) memigrasikan sumber daya Anda ke [pengontrol layanan ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) untuk Amazon. SageMaker Pengontrol layanan ACK adalah generasi baru SageMaker Operator untuk Kubernetes berdasarkan [AWS Controller for Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
Untuk informasi tentang langkah-langkah migrasi, lihat[Migrasikan sumber daya ke Operator terbaru](kubernetes-sagemaker-operators-migrate.md).  
Untuk jawaban atas pertanyaan umum di akhir dukungan versi asli SageMaker Operator untuk Kubernetes, lihat [Mengumumkan Akhir Dukungan Versi Asli Operator SageMaker AI untuk Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**catatan**  
Tidak ada biaya tambahan untuk menggunakan operator ini. Anda dikenakan biaya untuk sumber daya SageMaker AI apa pun yang Anda gunakan melalui operator ini.

## Apa itu operator?
<a name="kubernetes-sagemaker-operators-overview"></a>

Operator Kubernetes adalah pengontrol aplikasi yang mengelola aplikasi atas nama pengguna Kubernetes. Pengontrol bidang kontrol mencakup berbagai loop kontrol yang mendengarkan manajer negara pusat (ETCD) untuk mengatur keadaan aplikasi yang mereka kendalikan. Contoh aplikasi tersebut termasuk [C loud-controller-manager](https://kubernetes.io/docs/concepts/architecture/cloud-controller/) dan`[kube-controller-manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)`. Operator biasanya menyediakan abstraksi tingkat yang lebih tinggi daripada API Kubernetes mentah, sehingga memudahkan pengguna untuk menerapkan dan mengelola aplikasi. Untuk menambahkan kemampuan baru ke Kubernetes, pengembang dapat memperluas API Kubernetes dengan membuat **resource kustom** yang berisi logika dan komponen khusus aplikasi atau domain. Operator di Kubernetes memungkinkan pengguna untuk memanggil sumber daya kustom ini secara native dan mengotomatiskan alur kerja terkait.

### Bagaimana cara kerja AWS Controllers for Kubernetes (ACK)?
<a name="kubernetes-sagemaker-operators-explained"></a>

Operator SageMaker AI untuk Kubernetes memungkinkan Anda mengelola pekerjaan di SageMaker AI dari cluster Kubernetes Anda. Versi terbaru dari Operator SageMaker AI untuk Kubernetes didasarkan pada AWS Controllers for Kubernetes (ACK). ACK mencakup runtime pengontrol umum, generator kode, dan satu set pengontrol AWS khusus layanan, salah satunya adalah pengontrol AI. SageMaker 

Diagram berikut menggambarkan bagaimana ACK bekerja.

![\[Operator SageMaker AI berbasis ACK untuk Kubernetes menjelaskan.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/k8s-orchestration/sagemaker-operators-for-kubernetes-ack-controller.png)


Dalam diagram ini, pengguna Kubernetes ingin menjalankan pelatihan model pada SageMaker AI dari dalam cluster Kubernetes menggunakan API Kubernetes. Pengguna mengeluarkan panggilan ke`kubectl apply`, meneruskan file yang menjelaskan sumber daya kustom Kubernetes yang menjelaskan pekerjaan pelatihan. SageMaker `kubectl apply`meneruskan file ini, yang disebut manifes, ke server API Kubernetes yang berjalan di node controller Kubernetes (Langkah *1* dalam diagram alur kerja). *Server API Kubernetes menerima manifes dengan spesifikasi tugas SageMaker pelatihan dan menentukan apakah pengguna memiliki izin untuk membuat jenis sumber daya kustom`sageMaker.services.k8s.aws/TrainingJob`, dan apakah sumber daya kustom diformat dengan benar (Langkah 2).* Jika pengguna diotorisasi dan sumber daya kustom valid, server API Kubernetes menulis (Langkah *3*) sumber daya kustom ke penyimpanan data etcd-nya dan kemudian merespons kembali (Langkah *4*) kepada pengguna bahwa sumber daya kustom telah dibuat. Pengontrol SageMaker AI, yang berjalan pada node pekerja Kubernetes dalam konteks Pod Kubernetes normal, diberi tahu (Langkah *5*) bahwa sumber daya kustom baru telah dibuat. `sageMaker.services.k8s.aws/TrainingJob` Pengontrol SageMaker AI kemudian berkomunikasi (Langkah *6*) dengan SageMaker API, memanggil SageMaker AI `CreateTrainingJob` API untuk membuat pekerjaan pelatihan. AWS Setelah berkomunikasi dengan SageMaker API, pengontrol SageMaker AI memanggil server Kubernetes API untuk memperbarui (Langkah *7*) status sumber daya kustom dengan informasi yang diterimanya dari AI. SageMaker Oleh karena itu, pengontrol SageMaker AI memberikan informasi yang sama kepada pengembang yang akan mereka terima menggunakan AWS SDK.

### Ikhtisar izin
<a name="kubernetes-sagemaker-operators-authentication"></a>

Operator mengakses sumber daya SageMaker AI atas nama Anda. Peran IAM yang diasumsikan operator untuk berinteraksi dengan AWS sumber daya berbeda dari kredensyal yang Anda gunakan untuk mengakses klaster Kubernetes. Peran ini juga berbeda dari peran yang AWS diasumsikan saat menjalankan pekerjaan pembelajaran mesin Anda. 

Gambar berikut menjelaskan berbagai lapisan otentikasi.

![\[SageMaker Operator AI untuk Kubernetes berbagai lapisan otentikasi.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/k8s-orchestration/sagemaker-operators-for-kubernetes-authentication.png)


# Operator SageMaker AI Terbaru untuk Kubernetes
<a name="kubernetes-sagemaker-operators-ack"></a>

Bagian ini didasarkan pada versi terbaru dari Operator SageMaker AI untuk Kubernetes menggunakan AWS Controllers for Kubernetes (ACK).

**penting**  
Jika saat ini Anda menggunakan [ SageMaker Operator untuk Kubernetes versi `v1.2.2` atau di bawah ini, kami sarankan untuk](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) memigrasikan sumber daya Anda ke [pengontrol layanan ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) untuk Amazon. SageMaker Pengontrol layanan ACK adalah generasi baru SageMaker Operator untuk Kubernetes berdasarkan [AWS Controller for Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
Untuk informasi tentang langkah-langkah migrasi, lihat[Migrasikan sumber daya ke Operator terbaru](kubernetes-sagemaker-operators-migrate.md).  
Untuk jawaban atas pertanyaan umum di akhir dukungan versi asli SageMaker Operator untuk Kubernetes, lihat [Mengumumkan Akhir Dukungan Versi Asli Operator SageMaker AI untuk Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Versi terbaru dari [Operator SageMaker AI untuk Kubernetes](https://github.com/aws-controllers-k8s/sagemaker-controller) didasarkan pada [AWS Controllers for Kubernetes (ACK), kerangka kerja untuk membangun kubernetes](https://aws-controllers-k8s.github.io/community/ ) kustom controller di mana setiap controller berkomunikasi dengan API layanan. AWS Pengontrol ini memungkinkan pengguna Kubernetes untuk menyediakan AWS sumber daya seperti database atau antrian pesan menggunakan Kubernetes API.

Gunakan langkah-langkah berikut untuk menginstal dan menggunakan ACK untuk melatih, menyetel, dan menerapkan model pembelajaran mesin dengan Amazon SageMaker AI.

**Topics**
+ [Instal Operator SageMaker AI untuk Kubernetes](#kubernetes-sagemaker-operators-ack-install)
+ [Gunakan Operator SageMaker AI untuk Kubernetes](#kubernetes-sagemaker-operators-ack-use)
+ [Referensi](#kubernetes-sagemaker-operators-ack-reference)

## Instal Operator SageMaker AI untuk Kubernetes
<a name="kubernetes-sagemaker-operators-ack-install"></a>

Untuk menyiapkan versi terbaru dari Operator SageMaker AI untuk Kubernetes yang tersedia, lihat bagian *Pengaturan* di [Machine Learning dengan ACK SageMaker AI Controller](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup).

## Gunakan Operator SageMaker AI untuk Kubernetes
<a name="kubernetes-sagemaker-operators-ack-use"></a>

Untuk tutorial tentang cara melatih model pembelajaran mesin dengan pengontrol layanan ACK untuk Amazon SageMaker AI menggunakan Amazon EKS, lihat [Machine Learning with the ACK SageMaker AI Controller](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/).

Untuk contoh penskalaan otomatis, lihat Menskalakan [Beban Kerja SageMaker AI dengan Application Auto Scaling](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/)

## Referensi
<a name="kubernetes-sagemaker-operators-ack-reference"></a>

Lihat juga [pengontrol layanan ACK untuk GitHub repositori Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller) atau baca [AWS Controllers for](https://aws-controllers-k8s.github.io/community/docs/community/overview/) Kubernetes Documentation. 

# Operator SageMaker AI Lama untuk Kubernetes
<a name="kubernetes-sagemaker-operators-end-of-support"></a>

Bagian ini didasarkan pada versi asli [Operator SageMaker AI untuk Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s).

**penting**  
Kami menghentikan pengembangan dan dukungan teknis dari versi asli [ SageMaker Operator untuk Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master).  
Jika saat ini Anda menggunakan [ SageMaker Operator untuk Kubernetes versi `v1.2.2` atau di bawah ini, kami sarankan untuk](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) memigrasikan sumber daya Anda ke [pengontrol layanan ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) untuk Amazon. SageMaker Pengontrol layanan ACK adalah generasi baru SageMaker Operator untuk Kubernetes berdasarkan [AWS Controller for Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
Untuk informasi tentang langkah-langkah migrasi, lihat[Migrasikan sumber daya ke Operator terbaru](kubernetes-sagemaker-operators-migrate.md).  
Untuk jawaban atas pertanyaan umum di akhir dukungan versi asli SageMaker Operator untuk Kubernetes, lihat [Mengumumkan Akhir Dukungan Versi Asli Operator SageMaker AI untuk Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**Topics**
+ [Instal Operator SageMaker AI untuk Kubernetes](#kubernetes-sagemaker-operators-eos-install)
+ [Gunakan Pekerjaan Amazon SageMaker AI](kubernetes-sagemaker-jobs.md)
+ [Migrasikan sumber daya ke Operator terbaru](kubernetes-sagemaker-operators-migrate.md)
+ [Mengumumkan Akhir Dukungan Versi Asli Operator SageMaker AI untuk Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

## Instal Operator SageMaker AI untuk Kubernetes
<a name="kubernetes-sagemaker-operators-eos-install"></a>

Gunakan langkah-langkah berikut untuk menginstal dan menggunakan Operator SageMaker AI untuk Kubernetes untuk melatih, menyetel, dan menerapkan model pembelajaran mesin dengan Amazon AI. SageMaker 

**Topics**
+ [Penyiapan berbasis peran IAM dan penyebaran operator](#iam-role-based-setup-and-operator-deployment)
+ [Pembersihan sumber daya](#cleanup-operator-resources)
+ [Hapus operator](#delete-operators)
+ [Pemecahan masalah](#troubleshooting)
+ [Gambar dan SMlogs di setiap Wilayah](#images-and-smlogs-in-each-region)

### Penyiapan berbasis peran IAM dan penyebaran operator
<a name="iam-role-based-setup-and-operator-deployment"></a>

Bagian berikut menjelaskan langkah-langkah untuk mengatur dan menyebarkan versi asli operator.

**Awas**  
**Pengingat:** Langkah-langkah berikut tidak menginstal versi terbaru Operator SageMaker AI untuk Kubernetes. Untuk menginstal Operator SageMaker AI berbasis ACK baru untuk Kubernetes, lihat. [Operator SageMaker AI Terbaru untuk Kubernetes](kubernetes-sagemaker-operators-ack.md)

#### Prasyarat
<a name="prerequisites"></a>

Panduan ini mengasumsikan bahwa Anda telah menyelesaikan prasyarat berikut: 
+ Instal alat-alat berikut pada mesin klien yang digunakan untuk mengakses klaster Kubernetes Anda: 
  + [https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)Versi 1.13 atau yang lebih baru. Gunakan `kubectl` versi yang ada dalam satu versi minor dari bidang kontrol cluster Amazon EKS Anda. Misalnya, `kubectl` klien 1,13 bekerja dengan klaster Kubernetes 1,13 dan 1,14. OpenID Connect (OIDC) tidak didukung dalam versi lebih awal dari 1.13. 
  + [https://github.com/weaveworks/eksctl](https://github.com/weaveworks/eksctl)Versi 0.7.0 atau yang lebih baru 
  + [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) Versi 1.16.232 atau yang lebih baru 
  + (opsional) [Helm](https://helm.sh/docs/intro/install/) Versi 3.0 atau yang lebih baru 
  + [aws-iam-authenticator](https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html) 
+ Memiliki izin IAM untuk membuat peran dan melampirkan kebijakan ke peran.
+ Membuat cluster Kubernetes untuk menjalankan operator. Itu harus Kubernetes versi 1.13 atau 1.14. Untuk pembuatan klaster otomatis menggunakan`eksctl`, lihat [Memulai dengan eksctl](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html). Dibutuhkan 20-30 menit untuk menyediakan cluster. 

#### Penerapan dengan cakupan cluster
<a name="cluster-scoped-deployment"></a>

Sebelum Anda dapat menerapkan operator menggunakan peran IAM, kaitkan Penyedia Identitas OpenID Connect (OIDC) (iDP) dengan peran Anda untuk mengautentikasi dengan layanan IAM.

##### Buat penyedia OIDC untuk klaster Anda
<a name="create-an-openid-connect-provider-for-your-cluster"></a>

Petunjuk berikut menunjukkan cara membuat dan mengaitkan penyedia OIDC dengan kluster Amazon EKS Anda.

1. Tetapkan variabel lokal `CLUSTER_NAME` dan `AWS_REGION` lingkungan sebagai berikut:

   ```
   # Set the Region and cluster
   export CLUSTER_NAME="<your cluster name>"
   export AWS_REGION="<your region>"
   ```

1. Gunakan perintah berikut untuk mengaitkan penyedia OIDC dengan cluster Anda. Untuk informasi selengkapnya, lihat [Mengaktifkan Peran IAM untuk Akun Layanan di Cluster Anda](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html). 

   ```
   eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \
         --region ${AWS_REGION} --approve
   ```

   Output Anda akan terlihat seperti berikut: 

   ```
   [_]  eksctl version 0.10.1
     [_]  using region us-east-1
     [_]  IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"
   ```

Sekarang klaster memiliki penyedia identitas OIDC, Anda dapat membuat peran dan memberikan ServiceAccount izin Kubernetes untuk mengambil peran tersebut.

##### Dapatkan ID OIDC
<a name="get-the-oidc-id"></a>

Untuk mengatur ServiceAccount, dapatkan URL penerbit OIDC menggunakan perintah berikut:

```
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \
      --query cluster.identity.oidc.issuer --output text
```

Perintah mengembalikan URL seperti berikut: 

```
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

Di URL ini, nilainya `D48675832CA65BD10A532F597OIDCID` adalah ID OIDC. ID OIDC untuk cluster Anda berbeda. Anda memerlukan nilai ID OIDC ini untuk membuat peran. 

 Jika output Anda`None`, itu berarti versi klien Anda sudah tua. Untuk mengatasinya, jalankan perintah berikut: 

```
aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC
```

URL OIDC dikembalikan sebagai berikut: 

```
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

##### Membuat peran IAM
<a name="create-an-iam-role"></a>

1. Buat file bernama `trust.json` dan masukkan blok kode hubungan kepercayaan berikut ke dalamnya. Pastikan untuk mengganti all`<OIDC ID>`,`<AWS account number>`, dan `<EKS Cluster region>` placeholder dengan nilai yang sesuai dengan cluster Anda. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
             "StringEquals": {
               "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:aud": "sts.amazonaws.com",
               "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:sub": "system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default"
             }
           }
         }
       ]
     }
   ```

------

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws-cn:iam::111122223333:oidc-provider/oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
             "StringEquals": {
               "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:aud": "sts.amazonaws.com",
               "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:sub": "system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default"
             }
           }
         }
       ]
     }
   ```

------

1. Jalankan perintah berikut untuk membuat peran dengan hubungan kepercayaan yang didefinisikan dalam`trust.json`. Peran ini memungkinkan kluster Amazon EKS untuk mendapatkan dan menyegarkan kredensil dari IAM. 

   ```
   aws iam create-role --region ${AWS_REGION} --role-name <role name> --assume-role-policy-document file://trust.json --output=text
   ```

   Output Anda akan terlihat seperti berikut: 

   ```
   ROLE    arn:aws:iam::123456789012:role/my-role 2019-11-22T21:46:10Z    /       ABCDEFSFODNN7EXAMPLE   my-role
   ASSUMEROLEPOLICYDOCUMENT        2012-10-17		 	 	 
   STATEMENT       sts:AssumeRoleWithWebIdentity   Allow
   STRINGEQUALS    sts.amazonaws.com       system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default
   PRINCIPAL       arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/
   ```

    Perhatikan`ROLE ARN`; Anda meneruskan nilai ini ke operator Anda. 

##### Lampirkan AmazonSageMakerFullAccess kebijakan ke peran
<a name="attach-the-amazonsagemakerfullaccess-policy-to-the-role"></a>

Untuk memberikan akses peran ke SageMaker AI, lampirkan [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)kebijakan. Jika Anda ingin membatasi izin ke operator, Anda dapat membuat kebijakan khusus Anda sendiri dan melampirkannya. 

 Untuk melampirkan`AmazonSageMakerFullAccess`, jalankan perintah berikut: 

```
aws iam attach-role-policy --role-name <role name>  --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
```

Kubernetes ServiceAccount `sagemaker-k8s-operator-default` harus memiliki izin. `AmazonSageMakerFullAccess` Konfirmasikan ini saat Anda menginstal operator. 

##### Menyebarkan operator
<a name="deploy-the-operator"></a>

Saat menerapkan operator, Anda dapat menggunakan file YAMM atau bagan Helm. 

##### Menyebarkan operator menggunakan YAMAL
<a name="deploy-the-operator-using-yaml"></a>

Ini adalah cara paling sederhana untuk menyebarkan operator Anda. Prosesnya adalah sebagai berikut: 

1. Unduh skrip penginstal menggunakan perintah berikut: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/installer.yaml
   ```

1. Edit `installer.yaml` file untuk diganti`eks.amazonaws.com/role-arn`. Ganti ARN di sini dengan Amazon Resource Name (ARN) untuk peran berbasis OIDC yang Anda buat. 

1. Gunakan perintah berikut untuk menyebarkan cluster: 

   ```
   kubectl apply -f installer.yaml
   ```

##### Menerapkan operator menggunakan Helm Charts
<a name="deploy-the-operator-using-helm-charts"></a>

Gunakan Bagan Helm yang disediakan untuk menginstal operator. 

1. Kloning direktori installer Helm menggunakan perintah berikut: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Arahkan ke `amazon-sagemaker-operator-for-k8s/hack/charts/installer` folder. Edit `rolebased/values.yaml` file, yang mencakup parameter tingkat tinggi untuk bagan. Ganti peran ARN di sini dengan Amazon Resource Name (ARN) untuk peran berbasis OIDC yang telah Anda buat. 

1. Instal Bagan Helm menggunakan perintah berikut: 

   ```
   kubectl create namespace sagemaker-k8s-operator-system
     helm install --namespace sagemaker-k8s-operator-system sagemaker-operator rolebased/
   ```

   Jika Anda memutuskan untuk menginstal operator ke namespace selain yang ditentukan, Anda perlu menyesuaikan namespace yang ditentukan dalam file peran IAM agar sesuai. `trust.json` 

1. Setelah beberapa saat, bagan diinstal dengan nama yang dihasilkan secara acak. Verifikasi bahwa instalasi berhasil dengan menjalankan perintah berikut: 

   ```
   helm ls
   ```

   Output Anda akan terlihat seperti berikut: 

   ```
   NAME                    NAMESPACE                       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
     sagemaker-operator      sagemaker-k8s-operator-system   1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
   ```

##### Verifikasi penyebaran operator
<a name="verify-the-operator-deployment"></a>

1. Anda harus dapat melihat Definisi Sumber Daya Kustom SageMaker AI (CRDs) untuk setiap operator yang diterapkan ke cluster Anda dengan menjalankan perintah berikut: 

   ```
   kubectl get crd | grep sagemaker
   ```

   Output Anda akan terlihat seperti berikut: 

   ```
   batchtransformjobs.sagemaker.aws.amazon.com         2019-11-20T17:12:34Z
   endpointconfigs.sagemaker.aws.amazon.com            2019-11-20T17:12:34Z
   hostingdeployments.sagemaker.aws.amazon.com         2019-11-20T17:12:34Z
   hyperparametertuningjobs.sagemaker.aws.amazon.com   2019-11-20T17:12:34Z
   models.sagemaker.aws.amazon.com                     2019-11-20T17:12:34Z
   trainingjobs.sagemaker.aws.amazon.com               2019-11-20T17:12:34Z
   ```

1. Pastikan pod operator berjalan dengan sukses. Gunakan perintah berikut untuk membuat daftar semua pod: 

   ```
   kubectl -n sagemaker-k8s-operator-system get pods
   ```

   Anda akan melihat sebuah pod bernama `sagemaker-k8s-operator-controller-manager-*****` di namespace `sagemaker-k8s-operator-system` sebagai berikut: 

   ```
   NAME                                                         READY   STATUS    RESTARTS   AGE
   sagemaker-k8s-operator-controller-manager-12345678-r8abc     2/2     Running   0          23s
   ```

#### Penerapan dengan cakupan ruang nama
<a name="namespace-scoped-deployment"></a>

Anda memiliki opsi untuk menginstal operator Anda dalam lingkup namespace Kubernetes individual. Dalam mode ini, pengontrol hanya memantau dan merekonsiliasi sumber daya dengan SageMaker AI jika sumber daya dibuat di dalam namespace itu. Ini memungkinkan kontrol yang lebih halus atas pengontrol mana yang mengelola sumber daya mana. Ini berguna untuk menyebarkan ke beberapa AWS akun atau mengontrol pengguna mana yang memiliki akses ke pekerjaan tertentu. 

Panduan ini menguraikan cara menginstal operator ke namespace tertentu yang telah ditentukan sebelumnya. Untuk menerapkan controller ke namespace kedua, ikuti panduan dari awal hingga akhir dan ubah namespace di setiap langkah. 

##### Buat penyedia OIDC untuk kluster Amazon EKS Anda
<a name="create-an-openid-connect-provider-for-your-eks-cluster"></a>

Petunjuk berikut menunjukkan cara membuat dan mengaitkan penyedia OIDC dengan kluster Amazon EKS Anda. 

1. Tetapkan variabel lokal `CLUSTER_NAME` dan `AWS_REGION` lingkungan sebagai berikut: 

   ```
   # Set the Region and cluster
   export CLUSTER_NAME="<your cluster name>"
   export AWS_REGION="<your region>"
   ```

1. Gunakan perintah berikut untuk mengaitkan penyedia OIDC dengan cluster Anda. Untuk informasi selengkapnya, lihat [Mengaktifkan Peran IAM untuk Akun Layanan di Cluster Anda](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html). 

   ```
   eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \
         --region ${AWS_REGION} --approve
   ```

   Output Anda akan terlihat seperti berikut: 

   ```
   [_]  eksctl version 0.10.1
     [_]  using region us-east-1
     [_]  IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"
   ```

Sekarang klaster memiliki penyedia identitas OIDC, buat peran dan berikan ServiceAccount izin Kubernetes untuk mengambil peran tersebut. 

##### Dapatkan ID OIDC Anda
<a name="get-your-oidc-id"></a>

Untuk mengatur ServiceAccount, pertama-tama dapatkan URL penerbit OpenID Connect menggunakan perintah berikut: 

```
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \
      --query cluster.identity.oidc.issuer --output text
```

Perintah mengembalikan URL seperti berikut: 

```
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

Dalam URL ini, nilai D48675832 CA65 BD10 A532F597OIDCID adalah ID OIDC. ID OIDC untuk cluster Anda berbeda. Anda memerlukan nilai ID OIDC ini untuk membuat peran. 

 Jika output Anda`None`, itu berarti versi klien Anda sudah tua. Untuk mengatasinya, jalankan perintah berikut: 

```
aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC
```

URL OIDC dikembalikan sebagai berikut: 

```
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

##### Buat peran IAM Anda
<a name="create-your-iam-role"></a>

1. Buat file bernama `trust.json` dan masukkan blok kode hubungan kepercayaan berikut ke dalamnya. Pastikan untuk mengganti semua`<OIDC ID>`,, `<AWS account number>``<EKS Cluster region>`, dan `<Namespace>` placeholder dengan nilai yang sesuai dengan cluster Anda. Untuk keperluan panduan ini, `my-namespace` digunakan untuk `<Namespace>` nilai. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
           "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
             "StringEquals": {
                 "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:aud": "sts.amazonaws.com",
                 "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:sub": "system:serviceaccount:<Namespace>:sagemaker-k8s-operator-default"
             }
           }
         }
       ]
     }
   ```

------

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws-cn:iam::111122223333:oidc-provider/oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
             "StringEquals": {
                 "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:aud": "sts.amazonaws.com",
                 "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:sub": "system:serviceaccount:<Namespace>:sagemaker-k8s-operator-default"
             }
           }
         }
       ]
     }
   ```

------

1. Jalankan perintah berikut untuk membuat peran dengan hubungan kepercayaan yang didefinisikan dalam`trust.json`. Peran ini memungkinkan kluster Amazon EKS untuk mendapatkan dan menyegarkan kredensil dari IAM. 

   ```
   aws iam create-role --region ${AWS_REGION} --role-name <role name> --assume-role-policy-document file://trust.json --output=text
   ```

   Output Anda akan terlihat seperti berikut: 

   ```
   ROLE    arn:aws:iam::123456789012:role/my-role 2019-11-22T21:46:10Z    /       ABCDEFSFODNN7EXAMPLE   my-role
     ASSUMEROLEPOLICYDOCUMENT        2012-10-17		 	 	 
     STATEMENT       sts:AssumeRoleWithWebIdentity   Allow
     STRINGEQUALS    sts.amazonaws.com       system:serviceaccount:my-namespace:sagemaker-k8s-operator-default
     PRINCIPAL       arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/
   ```

Perhatikan`ROLE ARN`. Anda meneruskan nilai ini ke operator Anda. 

##### Lampirkan AmazonSageMakerFullAccess kebijakan ke peran Anda
<a name="attach-the-amazonsagemakerfullaccess-policy-to-your-role"></a>

Untuk memberikan akses peran ke SageMaker AI, lampirkan [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)kebijakan. Jika Anda ingin membatasi izin ke operator, Anda dapat membuat kebijakan khusus Anda sendiri dan melampirkannya. 

 Untuk melampirkan`AmazonSageMakerFullAccess`, jalankan perintah berikut: 

```
aws iam attach-role-policy --role-name <role name>  --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
```

Kubernetes ServiceAccount `sagemaker-k8s-operator-default` harus memiliki izin. `AmazonSageMakerFullAccess` Konfirmasikan ini saat Anda menginstal operator. 

##### Terapkan operator ke namespace Anda
<a name="deploy-the-operator-to-your-namespace"></a>

Saat menerapkan operator, Anda dapat menggunakan file YAMM atau bagan Helm. 

##### Menerapkan operator ke namespace Anda menggunakan YAMAL
<a name="deploy-the-operator-to-your-namespace-using-yaml"></a>

Ada dua bagian untuk menerapkan operator dalam lingkup namespace. Yang pertama adalah himpunan CRDs yang dipasang pada tingkat cluster. Definisi sumber daya ini hanya perlu diinstal satu kali per klaster Kubernetes. Bagian kedua adalah izin operator dan penyebaran itu sendiri. 

 Jika Anda belum menginstal CRDs ke dalam cluster, terapkan CRD installer YAMB menggunakan perintah berikut: 

```
kubectl apply -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml
```

Untuk menginstal operator ke cluster: 

1. Unduh penginstal operator YAMM menggunakan perintah berikut: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/operator.yaml
   ```

1. Perbarui penginstal YAMM untuk menempatkan sumber daya ke dalam namespace yang Anda tentukan menggunakan perintah berikut: 

   ```
   sed -i -e 's/PLACEHOLDER-NAMESPACE/<YOUR NAMESPACE>/g' operator.yaml
   ```

1. Edit `operator.yaml` file untuk menempatkan sumber daya ke dalam file Anda`eks.amazonaws.com/role-arn`. Ganti ARN di sini dengan Amazon Resource Name (ARN) untuk peran berbasis OIDC yang Anda buat. 

1. Gunakan perintah berikut untuk menyebarkan cluster: 

   ```
   kubectl apply -f operator.yaml
   ```

##### Terapkan operator ke namespace Anda menggunakan Helm Charts
<a name="deploy-the-operator-to-your-namespace-using-helm-charts"></a>

Ada dua bagian yang diperlukan untuk menyebarkan operator dalam lingkup namespace. Yang pertama adalah himpunan CRDs yang dipasang pada tingkat cluster. Definisi sumber daya ini hanya perlu diinstal satu kali per klaster Kubernetes. Bagian kedua adalah izin operator dan penyebaran itu sendiri. Saat menggunakan Helm Charts, Anda harus terlebih dahulu membuat namespace menggunakan. `kubectl` 

1. Kloning direktori installer Helm menggunakan perintah berikut: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Arahkan ke `amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced` folder. Edit `rolebased/values.yaml` file, yang mencakup parameter tingkat tinggi untuk bagan. Ganti peran ARN di sini dengan Amazon Resource Name (ARN) untuk peran berbasis OIDC yang telah Anda buat. 

1. Instal Bagan Helm menggunakan perintah berikut: 

   ```
   helm install crds crd_chart/
   ```

1. Buat namespace yang diperlukan dan instal operator menggunakan perintah berikut: 

   ```
   kubectl create namespace <namespace>
   helm install --n <namespace> op operator_chart/
   ```

1. Setelah beberapa saat, bagan dipasang dengan nama`sagemaker-operator`. Verifikasi bahwa instalasi berhasil dengan menjalankan perintah berikut: 

   ```
   helm ls
   ```

   Output Anda akan terlihat seperti berikut: 

   ```
   NAME                    NAMESPACE                       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
   sagemaker-operator      my-namespace                    1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
   ```

##### Verifikasi penyebaran operator ke namespace Anda
<a name="verify-the-operator-deployment-to-your-namespace"></a>

1. Anda harus dapat melihat Definisi Sumber Daya Kustom SageMaker AI (CRDs) untuk setiap operator yang diterapkan ke cluster Anda dengan menjalankan perintah berikut: 

   ```
   kubectl get crd | grep sagemaker
   ```

   Output Anda akan terlihat seperti berikut: 

   ```
   batchtransformjobs.sagemaker.aws.amazon.com         2019-11-20T17:12:34Z
   endpointconfigs.sagemaker.aws.amazon.com            2019-11-20T17:12:34Z
   hostingdeployments.sagemaker.aws.amazon.com         2019-11-20T17:12:34Z
   hyperparametertuningjobs.sagemaker.aws.amazon.com   2019-11-20T17:12:34Z
   models.sagemaker.aws.amazon.com                     2019-11-20T17:12:34Z
   trainingjobs.sagemaker.aws.amazon.com               2019-11-20T17:12:34Z
   ```

1. Pastikan pod operator berjalan dengan sukses. Gunakan perintah berikut untuk membuat daftar semua pod: 

   ```
   kubectl -n my-namespace get pods
   ```

   Anda akan melihat sebuah pod bernama `sagemaker-k8s-operator-controller-manager-*****` di namespace `my-namespace` sebagai berikut: 

   ```
   NAME                                                         READY   STATUS    RESTARTS   AGE
   sagemaker-k8s-operator-controller-manager-12345678-r8abc     2/2     Running   0          23s
   ```

#### Instal `kubectl` plugin log SageMaker AI
<a name="install-the-amazon-sagemaker-logs-kubectl-plugin"></a>

 [Sebagai bagian dari Operator SageMaker AI untuk Kubernetes, Anda dapat menggunakan plugin untuk. `smlogs`](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/) `kubectl` Ini memungkinkan CloudWatch log SageMaker AI untuk dialirkan. `kubectl` `kubectl`harus diinstal ke [PATH](http://www.linfo.org/path_env_var.html) Anda. Perintah berikut menempatkan biner di `sagemaker-k8s-bin` direktori di direktori home Anda, dan menambahkan direktori itu ke direktori Anda`PATH`. 

```
export os="linux"
  
wget https://amazon-sagemaker-operator-for-k8s-us-east-1.s3.amazonaws.com/kubectl-smlogs-plugin/v1/${os}.amd64.tar.gz
tar xvzf ${os}.amd64.tar.gz
  
# Move binaries to a directory in your homedir.
mkdir ~/sagemaker-k8s-bin
cp ./kubectl-smlogs.${os}.amd64/kubectl-smlogs ~/sagemaker-k8s-bin/.
  
# This line adds the binaries to your PATH in your .bashrc.
  
echo 'export PATH=$PATH:~/sagemaker-k8s-bin' >> ~/.bashrc
  
# Source your .bashrc to update environment variables:
source ~/.bashrc
```

Gunakan perintah berikut untuk memverifikasi bahwa `kubectl` plugin diinstal dengan benar: 

```
kubectl smlogs
```

Jika `kubectl` plugin diinstal dengan benar, output Anda akan terlihat seperti berikut: 

```
View SageMaker AI logs via Kubernetes
  
Usage:
  smlogs [command]
  
Aliases:
  smlogs, SMLogs, Smlogs
  
Available Commands:
  BatchTransformJob       View BatchTransformJob logs via Kubernetes
  TrainingJob             View TrainingJob logs via Kubernetes
  help                    Help about any command
  
Flags:
   -h, --help   help for smlogs
  
Use "smlogs [command] --help" for more information about a command.
```

### Pembersihan sumber daya
<a name="cleanup-operator-resources"></a>

Untuk menghapus instalan operator dari cluster Anda, Anda harus terlebih dahulu memastikan untuk menghapus semua sumber daya SageMaker AI dari cluster. Kegagalan untuk melakukannya menyebabkan operasi penghapusan operator hang. Jalankan perintah berikut untuk menghentikan semua pekerjaan: 

```
# Delete all SageMaker AI jobs from Kubernetes
kubectl delete --all --all-namespaces hyperparametertuningjob.sagemaker.aws.amazon.com
kubectl delete --all --all-namespaces trainingjobs.sagemaker.aws.amazon.com
kubectl delete --all --all-namespaces batchtransformjob.sagemaker.aws.amazon.com
kubectl delete --all --all-namespaces hostingdeployment.sagemaker.aws.amazon.com
```

Anda akan melihat output yang serupa dengan yang berikut: 

```
$ kubectl delete --all --all-namespaces trainingjobs.sagemaker.aws.amazon.com
trainingjobs.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted
  
$ kubectl delete --all --all-namespaces hyperparametertuningjob.sagemaker.aws.amazon.com
hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted
  
$ kubectl delete --all --all-namespaces batchtransformjob.sagemaker.aws.amazon.com
batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted
  
$ kubectl delete --all --all-namespaces hostingdeployment.sagemaker.aws.amazon.com
hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted
```

Setelah Anda menghapus semua pekerjaan SageMaker AI, lihat [Hapus operator](#delete-operators) untuk menghapus operator dari cluster Anda.

### Hapus operator
<a name="delete-operators"></a>

#### Hapus operator berbasis cluster
<a name="delete-cluster-based-operators"></a>

##### Operator diinstal menggunakan YAMAL
<a name="operators-installed-using-yaml"></a>

Untuk menghapus instalan operator dari cluster Anda, pastikan semua sumber daya SageMaker AI telah dihapus dari cluster. Kegagalan untuk melakukannya menyebabkan operasi penghapusan operator hang.

**catatan**  
Sebelum menghapus cluster Anda, pastikan untuk menghapus semua sumber daya SageMaker AI dari cluster. Untuk informasi selengkapnya, lihat [Pembersihan sumber daya](#cleanup-operator-resources).

Setelah Anda menghapus semua pekerjaan SageMaker AI, gunakan `kubectl` untuk menghapus operator dari cluster:

```
# Delete the operator and its resources
kubectl delete -f /installer.yaml
```

Anda akan melihat output yang serupa dengan yang berikut: 

```
$ kubectl delete -f raw-yaml/installer.yaml
namespace "sagemaker-k8s-operator-system" deleted
customresourcedefinition.apiextensions.k8s.io "batchtransformjobs.sagemaker.aws.amazon.com" deleted
customresourcedefinition.apiextensions.k8s.io "endpointconfigs.sagemaker.aws.amazon.com" deleted
customresourcedefinition.apiextensions.k8s.io "hostingdeployments.sagemaker.aws.amazon.com" deleted
customresourcedefinition.apiextensions.k8s.io "hyperparametertuningjobs.sagemaker.aws.amazon.com" deleted
customresourcedefinition.apiextensions.k8s.io "models.sagemaker.aws.amazon.com" deleted
customresourcedefinition.apiextensions.k8s.io "trainingjobs.sagemaker.aws.amazon.com" deleted
role.rbac.authorization.k8s.io "sagemaker-k8s-operator-leader-election-role" deleted
clusterrole.rbac.authorization.k8s.io "sagemaker-k8s-operator-manager-role" deleted
clusterrole.rbac.authorization.k8s.io "sagemaker-k8s-operator-proxy-role" deleted
rolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-leader-election-rolebinding" deleted
clusterrolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-manager-rolebinding" deleted
clusterrolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-proxy-rolebinding" deleted
service "sagemaker-k8s-operator-controller-manager-metrics-service" deleted
deployment.apps "sagemaker-k8s-operator-controller-manager" deleted
secrets "sagemaker-k8s-operator-abcde" deleted
```

##### Operator diinstal menggunakan Helm Charts
<a name="operators-installed-using-helm-charts"></a>

Untuk menghapus operator CRDs, pertama-tama hapus semua pekerjaan yang sedang berjalan. Kemudian hapus Bagan Helm yang digunakan untuk menyebarkan operator menggunakan perintah berikut: 

```
# get the helm charts
helm ls
  
# delete the charts
helm delete <chart_name>
```

#### Hapus operator berbasis namespace
<a name="delete-namespace-based-operators"></a>

##### Operator yang diinstal dengan YAMB
<a name="operators-installed-with-yaml"></a>

Untuk menghapus instalan operator dari cluster Anda, pertama-tama pastikan bahwa semua sumber daya SageMaker AI telah dihapus dari cluster. Kegagalan untuk melakukannya menyebabkan operasi penghapusan operator hang.

**catatan**  
Sebelum menghapus cluster Anda, pastikan untuk menghapus semua sumber daya SageMaker AI dari cluster. Untuk informasi selengkapnya, lihat [Pembersihan sumber daya](#cleanup-operator-resources).

Setelah Anda menghapus semua pekerjaan SageMaker AI, gunakan `kubectl` untuk terlebih dahulu menghapus operator dari namespace dan kemudian CRDs dari cluster. Jalankan perintah berikut untuk menghapus operator dari cluster: 

```
# Delete the operator using the same yaml file that was used to install the operator
kubectl delete -f operator.yaml
  
# Now delete the CRDs using the CRD installer yaml
kubectl delete -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml
  
# Now you can delete the namespace if you want
kubectl delete namespace <namespace>
```

##### Operator diinstal dengan Helm Charts
<a name="operators-installed-with-helm-charts"></a>

Untuk menghapus operator CRDs, pertama-tama hapus semua pekerjaan yang sedang berjalan. Kemudian hapus Bagan Helm yang digunakan untuk menyebarkan operator menggunakan perintah berikut: 

```
# Delete the operator
helm delete <chart_name>
  
# delete the crds
helm delete crds
  
# optionally delete the namespace
kubectl delete namespace <namespace>
```

### Pemecahan masalah
<a name="troubleshooting"></a>

#### Mendebug pekerjaan yang gagal
<a name="debugging-a-failed-job"></a>

Gunakan langkah-langkah ini untuk men-debug pekerjaan yang gagal.
+ Periksa status pekerjaan dengan menjalankan yang berikut: 

  ```
  kubectl get <CRD Type> <job name>
  ```
+ Jika pekerjaan dibuat di SageMaker AI, Anda dapat menggunakan perintah berikut untuk melihat `STATUS` dan`SageMaker Job Name`: 

  ```
  kubectl get <crd type> <job name>
  ```
+ Anda dapat menggunakan `smlogs` untuk menemukan penyebab masalah menggunakan perintah berikut: 

  ```
  kubectl smlogs <crd type> <job name>
  ```
+  Anda juga dapat menggunakan `describe` perintah untuk mendapatkan detail lebih lanjut tentang pekerjaan menggunakan perintah berikut. Output memiliki `additional` bidang yang memiliki informasi lebih lanjut tentang status pekerjaan. 

  ```
  kubectl describe <crd type> <job name>
  ```
+ Jika pekerjaan tidak dibuat di SageMaker AI, gunakan log pod operator untuk menemukan penyebab masalah sebagai berikut: 

  ```
  $ kubectl get pods -A | grep sagemaker
  # Output:
  sagemaker-k8s-operator-system   sagemaker-k8s-operator-controller-manager-5cd7df4d74-wh22z   2/2     Running   0          3h33m
    
  $ kubectl logs -p <pod name> -c manager -n sagemaker-k8s-operator-system
  ```

#### Menghapus CRD operator
<a name="deleting-an-operator-crd"></a>

Jika menghapus pekerjaan tidak berfungsi, periksa apakah operator sedang berjalan. Jika operator tidak berjalan, maka Anda harus menghapus finalizer menggunakan langkah-langkah berikut: 

1. Di terminal baru, buka pekerjaan di editor menggunakan `kubectl edit` sebagai berikut: 

   ```
   kubectl edit <crd type> <job name>
   ```

1. Edit pekerjaan untuk menghapus finalizer dengan menghapus dua baris berikut dari file. Simpan file dan pekerjaan akan dihapus. 

   ```
   finalizers:
     - sagemaker-operator-finalizer
   ```

### Gambar dan SMlogs di setiap Wilayah
<a name="images-and-smlogs-in-each-region"></a>

Tabel berikut mencantumkan gambar operator yang tersedia dan SMLogs di setiap Wilayah. 


|  Region  |  Gambar Pengontrol  |  Linux SMLogs  | 
| --- | --- | --- | 
|  us-east-1  |  957583890962.dkr.ecr.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 
|  us-east-2  |  922499468684.dkr.ecr.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 
|  us-west-2  |  640106867763.dkr.ecr.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-west-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-west-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 
|  eu-west-1  |  613661167059.dkr.ecr.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-eu-west-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-eu-west-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 

# Gunakan Pekerjaan Amazon SageMaker AI
<a name="kubernetes-sagemaker-jobs"></a>

Bagian ini didasarkan pada versi asli [Operator SageMaker AI untuk Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s).

**penting**  
Kami menghentikan pengembangan dan dukungan teknis dari versi asli [ SageMaker Operator untuk Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master).  
Jika saat ini Anda menggunakan [ SageMaker Operator untuk Kubernetes versi `v1.2.2` atau di bawah ini, kami sarankan untuk](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) memigrasikan sumber daya Anda ke [pengontrol layanan ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) untuk Amazon. SageMaker Pengontrol layanan ACK adalah generasi baru SageMaker Operator untuk Kubernetes berdasarkan [AWS Controller for Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
Untuk informasi tentang langkah-langkah migrasi, lihat[Migrasikan sumber daya ke Operator terbaru](kubernetes-sagemaker-operators-migrate.md).  
Untuk jawaban atas pertanyaan umum di akhir dukungan versi asli SageMaker Operator untuk Kubernetes, lihat [Mengumumkan Akhir Dukungan Versi Asli Operator SageMaker AI untuk Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Untuk menjalankan pekerjaan Amazon SageMaker AI menggunakan Operator for Kubernetes, Anda dapat menerapkan file YAMM atau menggunakan Bagan Helm yang disediakan. 

Semua pekerjaan operator sampel dalam tutorial berikut menggunakan data sampel yang diambil dari kumpulan data MNIST publik. Untuk menjalankan sampel ini, unduh kumpulan data ke bucket Amazon S3 Anda. Anda dapat menemukan kumpulan data di [Unduh Dataset MNIST](https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-preprocess-data-pull-data.html). 

**Topics**
+ [TrainingJob Operator](#trainingjob-operator)
+ [HyperParameterTuningJob Operator](#hyperparametertuningjobs-operator)
+ [BatchTransformJob Operator](#batchtransformjobs-operator)
+ [HostingDeployment Operator](#hosting-deployment-operator)
+ [ProcessingJob Operator](#kubernetes-processing-job-operator)
+ [HostingAutoscalingPolicy (HAP) Operator](#kubernetes-hap-operator)

## TrainingJob Operator
<a name="trainingjob-operator"></a>

Operator pekerjaan pelatihan merekonsiliasi spesifikasi pekerjaan pelatihan yang Anda tentukan dengan SageMaker AI dengan meluncurkannya untuk Anda di AI. SageMaker Anda dapat mempelajari lebih lanjut tentang pekerjaan SageMaker pelatihan dalam [dokumentasi SageMaker AI CreateTrainingJob API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTrainingJob.html). 

**Topics**
+ [Membuat file TrainingJob menggunakan YAMG](#create-a-trainingjob-using-a-simple-yaml-file)
+ [Membuat TrainingJob Menggunakan Bagan Helm](#create-a-trainingjob-using-a-helm-chart)
+ [Daftar TrainingJobs](#list-training-jobs)
+ [Jelaskan TrainingJob](#describe-a-training-job)
+ [Lihat log dari TrainingJobs](#view-logs-from-training-jobs)
+ [Hapus TrainingJobs](#delete-training-jobs)

### Membuat file TrainingJob menggunakan YAMG
<a name="create-a-trainingjob-using-a-simple-yaml-file"></a>

1. Unduh file YAMAL sampel untuk pelatihan menggunakan perintah berikut: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-trainingjob.yaml
   ```

1. Edit `xgboost-mnist-trainingjob.yaml` file untuk mengganti `roleArn` parameter dengan Anda`<sagemaker-execution-role>`, dan `outputPath` dengan bucket Amazon S3 Anda yang peran eksekusi SageMaker AI memiliki akses tulis. `roleArn`Harus memiliki izin sehingga SageMaker AI dapat mengakses Amazon S3, CloudWatch Amazon, dan layanan lainnya atas nama Anda. Untuk informasi selengkapnya tentang membuat SageMaker AI ExecutionRole, lihat [Peran SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms). Terapkan file YAMAL menggunakan perintah berikut: 

   ```
   kubectl apply -f xgboost-mnist-trainingjob.yaml
   ```

### Membuat TrainingJob Menggunakan Bagan Helm
<a name="create-a-trainingjob-using-a-helm-chart"></a>

Anda dapat menggunakan Helm Charts untuk menjalankan TrainingJobs. 

1. Kloning GitHub repositori untuk mendapatkan sumber menggunakan perintah berikut: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Arahkan ke `amazon-sagemaker-operator-for-k8s/hack/charts/training-jobs/` folder dan edit `values.yaml` file untuk mengganti nilai seperti `rolearn` dan `outputpath` dengan nilai yang sesuai dengan akun Anda. RoLearn harus memiliki izin sehingga SageMaker AI dapat mengakses Amazon S3, Amazon CloudWatch, dan layanan lainnya atas nama Anda. Untuk informasi selengkapnya tentang membuat SageMaker AI ExecutionRole, lihat [Peran SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms). 

#### Buat TrainingJob
<a name="create-the-training-job"></a>

Dengan peran dan bucket Amazon S3 diganti dengan nilai yang sesuai di`values.yaml`, Anda dapat membuat pekerjaan pelatihan menggunakan perintah berikut: 

```
helm install . --generate-name
```

Output Anda akan terlihat seperti berikut: 

```
NAME: chart-12345678
LAST DEPLOYED: Wed Nov 20 23:35:49 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thanks for installing the sagemaker-k8s-trainingjob.
```

#### Verifikasi Bagan Helm pelatihan Anda
<a name="verify-your-training-helm-chart"></a>

Untuk memverifikasi bahwa Bagan Helm berhasil dibuat, jalankan: 

```
helm ls
```

Output Anda akan terlihat seperti berikut: 

```
NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
chart-12345678        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
rolebased-12345678    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
```

`helm install`membuat sumber daya `TrainingJob` Kubernetes. Operator meluncurkan pekerjaan pelatihan aktual di SageMaker AI dan memperbarui sumber daya `TrainingJob` Kubernetes untuk mencerminkan status pekerjaan di AI. SageMaker Anda dikenakan biaya untuk sumber daya SageMaker AI yang digunakan selama durasi pekerjaan Anda. Anda tidak dikenakan biaya apa pun setelah pekerjaan Anda selesai atau berhenti. 

**Catatan**: SageMaker AI tidak memungkinkan Anda memperbarui pekerjaan pelatihan yang sedang berjalan. Anda tidak dapat mengedit parameter apa pun dan menerapkan kembali file konfigurasi. Ubah nama metadata atau hapus pekerjaan yang ada dan buat yang baru. Mirip dengan operator pekerjaan pelatihan yang ada seperti TFJob di Kubeflow, tidak `update` didukung. 

### Daftar TrainingJobs
<a name="list-training-jobs"></a>

Gunakan perintah berikut untuk membuat daftar semua pekerjaan yang dibuat menggunakan operator Kubernetes: 

```
kubectl get TrainingJob
```

Daftar keluaran semua pekerjaan akan terlihat seperti berikut: 

```
kubectl get trainingjobs
NAME                        STATUS       SECONDARY-STATUS   CREATION-TIME          SAGEMAKER-JOB-NAME
xgboost-mnist-from-for-s3   InProgress   Starting           2019-11-20T23:42:35Z   xgboost-mnist-from-for-s3-examplef11eab94e0ed4671d5a8f
```

Pekerjaan pelatihan terus terdaftar setelah pekerjaan selesai atau gagal. Anda dapat menghapus `TrainingJob` pekerjaan dari daftar dengan mengikuti [Hapus TrainingJobs](#delete-training-jobs) langkah-langkahnya. Pekerjaan yang telah selesai atau dihentikan tidak dikenakan biaya apa pun untuk sumber daya SageMaker AI. 

#### TrainingJob nilai status
<a name="training-job-status-values"></a>

`STATUS`Bidang dapat berupa salah satu nilai berikut: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Status ini datang langsung dari [dokumentasi API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-TrainingJobStatus) resmi SageMaker AI. 

Selain status SageMaker AI resmi, dimungkinkan `STATUS` untuk menjadi`SynchronizingK8sJobWithSageMaker`. Ini berarti bahwa operator belum memproses pekerjaan. 

#### Nilai status sekunder
<a name="secondary-status-values"></a>

Status sekunder datang langsung dari [dokumentasi API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-SecondaryStatus) resmi SageMaker AI. Mereka berisi informasi yang lebih terperinci tentang status pekerjaan. 

### Jelaskan TrainingJob
<a name="describe-a-training-job"></a>

Anda bisa mendapatkan detail lebih lanjut tentang pekerjaan pelatihan dengan menggunakan `describe` `kubectl` perintah. Ini biasanya digunakan untuk men-debug masalah atau memeriksa parameter pekerjaan pelatihan. Untuk mendapatkan informasi tentang pekerjaan pelatihan Anda, gunakan perintah berikut: 

```
kubectl describe trainingjob xgboost-mnist-from-for-s3
```

Output untuk pekerjaan pelatihan Anda akan terlihat seperti berikut: 

```
Name:         xgboost-mnist-from-for-s3
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  sagemaker.aws.amazon.com/v1
Kind:         TrainingJob
Metadata:
  Creation Timestamp:  2019-11-20T23:42:35Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  23119
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/trainingjobs/xgboost-mnist-from-for-s3
  UID:               6d7uiui-0bef-11ea-b94e-0ed467example
Spec:
  Algorithm Specification:
    Training Image:       8256416981234.dkr.ecr.us-east-2.amazonaws.com/xgboost:1
    Training Input Mode:  File
  Hyper Parameters:
    Name:   eta
    Value:  0.2
    Name:   gamma
    Value:  4
    Name:   max_depth
    Value:  5
    Name:   min_child_weight
    Value:  6
    Name:   num_class
    Value:  10
    Name:   num_round
    Value:  10
    Name:   objective
    Value:  multi:softmax
    Name:   silent
    Value:  0
  Input Data Config:
    Channel Name:      train
    Compression Type:  None
    Content Type:      text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Distribution Type:  FullyReplicated
        S 3 Data Type:               S3Prefix
        S 3 Uri:                     https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/
    Channel Name:                    validation
    Compression Type:                None
    Content Type:                    text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Distribution Type:  FullyReplicated
        S 3 Data Type:               S3Prefix
        S 3 Uri:                     https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/
  Output Data Config:
    S 3 Output Path:  s3://amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost/
  Region:             us-east-2
  Resource Config:
    Instance Count:     1
    Instance Type:      ml.m4.xlarge
    Volume Size In GB:  5
  Role Arn:             arn:aws:iam::12345678910:role/service-role/AmazonSageMaker-ExecutionRole
  Stopping Condition:
    Max Runtime In Seconds:  86400
  Training Job Name:         xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0example
Status:
  Cloud Watch Log URL:           https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logStream:group=/aws/sagemaker/TrainingJobs;prefix=<example>;streamFilter=typeLogStreamPrefix
  Last Check Time:               2019-11-20T23:44:29Z
  Sage Maker Training Job Name:  xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94eexample
  Secondary Status:              Downloading
  Training Job Status:           InProgress
Events:                          <none>
```

### Lihat log dari TrainingJobs
<a name="view-logs-from-training-jobs"></a>

Gunakan perintah berikut untuk melihat log dari pekerjaan `kmeans-mnist` pelatihan: 

```
kubectl smlogs trainingjob xgboost-mnist-from-for-s3
```

Output-nya semestinya mirip dengan yang berikut. Log dari instance diurutkan secara kronologis. 

```
"xgboost-mnist-from-for-s3" has SageMaker TrainingJobName "xgboost-mnist-from-for-s3-123456789" in region "us-east-2", status "InProgress" and secondary status "Starting"
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC Arguments: train
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Running standalone xgboost training.
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] File size need to be processed in the node: 1122.95mb. Available memory size in the node: 8586.0mb
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Determined delimiter of CSV input is ','
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [23:45:22] S3DistributionType set as FullyReplicated
```

### Hapus TrainingJobs
<a name="delete-training-jobs"></a>

Gunakan perintah berikut untuk menghentikan pekerjaan pelatihan di Amazon SageMaker AI: 

```
kubectl delete trainingjob xgboost-mnist-from-for-s3
```

Perintah ini menghapus tugas SageMaker pelatihan dari Kubernetes. Perintah ini mengembalikan output sebagai berikut: 

```
trainingjob.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted
```

Jika pekerjaan masih berlangsung di SageMaker AI, pekerjaan berhenti. Anda tidak dikenakan biaya apa pun untuk sumber daya SageMaker AI setelah pekerjaan Anda berhenti atau selesai. 

**Catatan**: SageMaker AI tidak menghapus pekerjaan pelatihan. Pekerjaan yang dihentikan terus ditampilkan di konsol SageMaker AI. `delete`Perintah membutuhkan waktu sekitar 2 menit untuk membersihkan sumber daya dari SageMaker AI. 

## HyperParameterTuningJob Operator
<a name="hyperparametertuningjobs-operator"></a>

Operator pekerjaan tuning hyperparameter merekonsiliasi spesifikasi pekerjaan tuning hyperparameter yang Anda tentukan ke SageMaker AI dengan meluncurkannya di AI. SageMaker Anda dapat mempelajari lebih lanjut tentang pekerjaan tuning hyperparameter SageMaker AI di dokumentasi SageMaker AI [CreateHyperParameterTuningJob API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateHyperParameterTuningJob.html). 

**Topics**
+ [Membuat file HyperparameterTuningJob menggunakan YAMG](#create-a-hyperparametertuningjob-using-a-simple-yaml-file)
+ [Buat HyperparameterTuningJob menggunakan Bagan Helm](#create-a-hyperparametertuningjob-using-a-helm-chart)
+ [Daftar HyperparameterTuningJobs](#list-hyperparameter-tuning-jobs)
+ [Jelaskan HyperparameterTuningJob](#describe-a-hyperparameter-tuning-job)
+ [Lihat log dari HyperparameterTuningJobs](#view-logs-from-hyperparametertuning-jobs)
+ [Menghapus HyperparameterTuningJob](#delete-hyperparametertuning-jobs)

### Membuat file HyperparameterTuningJob menggunakan YAMG
<a name="create-a-hyperparametertuningjob-using-a-simple-yaml-file"></a>

1. Unduh file YAMAL sampel untuk pekerjaan penyetelan hyperparameter menggunakan perintah berikut: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hpo.yaml
   ```

1. Edit `xgboost-mnist-hpo.yaml` file untuk mengganti `roleArn` parameter dengan file Anda`sagemaker-execution-role`. Agar pekerjaan tuning hyperparameter berhasil, Anda juga harus mengubah `s3InputPath` dan `s3OutputPath` ke nilai yang sesuai dengan akun Anda. Terapkan pembaruan file YAMAL menggunakan perintah berikut: 

   ```
   kubectl apply -f xgboost-mnist-hpo.yaml
   ```

### Buat HyperparameterTuningJob menggunakan Bagan Helm
<a name="create-a-hyperparametertuningjob-using-a-helm-chart"></a>

Anda dapat menggunakan Helm Charts untuk menjalankan pekerjaan tuning hyperparameter. 

1. Kloning GitHub repositori untuk mendapatkan sumber menggunakan perintah berikut: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Arahkan ke `amazon-sagemaker-operator-for-k8s/hack/charts/hyperparameter-tuning-jobs/` folder. 

1. Edit `values.yaml` file untuk mengganti `roleArn` parameter dengan file Anda`sagemaker-execution-role`. Agar pekerjaan tuning hyperparameter berhasil, Anda juga harus mengubah `s3InputPath` dan `s3OutputPath` ke nilai yang sesuai dengan akun Anda. 

#### Buat HyperparameterTuningJob
<a name="create-the-hpo-job"></a>

Dengan peran dan jalur Amazon S3 diganti dengan nilai yang sesuai di`values.yaml`, Anda dapat membuat tugas penyetelan hyperparameter menggunakan perintah berikut: 

```
helm install . --generate-name
```

Output-nya semestinya mirip dengan yang berikut: 

```
NAME: chart-1574292948
LAST DEPLOYED: Wed Nov 20 23:35:49 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thanks for installing the sagemaker-k8s-hyperparametertuningjob.
```

#### Verifikasi instalasi bagan
<a name="verify-chart-installation"></a>

Untuk memverifikasi bahwa Bagan Helm berhasil dibuat, jalankan perintah berikut: 

```
helm ls
```

Output Anda akan terlihat seperti berikut: 

```
NAME                    NAMESPACE       REVISION        UPDATED
chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-hyperparametertuningjob-0.1.0                               STATUS          CHART                           APP VERSION
chart-1574292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
rolebased-1574291698    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
```

`helm install`membuat sumber daya `HyperParameterTuningJob` Kubernetes. Operator meluncurkan pekerjaan optimasi hyperparameter aktual di SageMaker AI dan memperbarui sumber daya `HyperParameterTuningJob` Kubernetes untuk mencerminkan status pekerjaan di AI. SageMaker Anda dikenakan biaya untuk sumber daya SageMaker AI yang digunakan selama durasi pekerjaan Anda. Anda tidak dikenakan biaya apa pun setelah pekerjaan Anda selesai atau berhenti. 

**Catatan**: SageMaker AI tidak mengizinkan Anda memperbarui pekerjaan penyetelan hyperparameter yang sedang berjalan. Anda tidak dapat mengedit parameter apa pun dan menerapkan kembali file konfigurasi. Anda harus mengubah nama metadata atau menghapus pekerjaan yang ada dan membuat yang baru. Mirip dengan operator pekerjaan pelatihan yang ada seperti `TFJob` di Kubeflow, tidak `update` didukung. 

### Daftar HyperparameterTuningJobs
<a name="list-hyperparameter-tuning-jobs"></a>

Gunakan perintah berikut untuk membuat daftar semua pekerjaan yang dibuat menggunakan operator Kubernetes: 

```
kubectl get hyperparametertuningjob
```

Output Anda akan terlihat seperti berikut: 

```
NAME         STATUS      CREATION-TIME          COMPLETED   INPROGRESS   ERRORS   STOPPED   BEST-TRAINING-JOB                               SAGEMAKER-JOB-NAME
xgboost-mnist-hpo   Completed   2019-10-17T01:15:52Z   10          0            0        0         xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a123   xgboostha92f5e3cf07b11e9bf6c123
```

Pekerjaan tuning hyperparameter terus terdaftar setelah pekerjaan selesai atau gagal. Anda dapat menghapus a `hyperparametertuningjob` dari daftar dengan mengikuti langkah-langkah di[Menghapus HyperparameterTuningJob](#delete-hyperparametertuning-jobs). Pekerjaan yang telah selesai atau dihentikan tidak dikenakan biaya apa pun untuk sumber daya SageMaker AI.

#### Nilai status pekerjaan tuning hyperparameter
<a name="hyperparameter-tuning-job-status-values"></a>

`STATUS`Bidang dapat berupa salah satu nilai berikut: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Status ini datang langsung dari [dokumentasi API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus) resmi SageMaker AI. 

Selain status SageMaker AI resmi, dimungkinkan `STATUS` untuk menjadi`SynchronizingK8sJobWithSageMaker`. Ini berarti bahwa operator belum memproses pekerjaan. 

#### Penghitung status
<a name="status-counters"></a>

Outputnya memiliki beberapa penghitung, seperti `COMPLETED` dan`INPROGRESS`. Ini mewakili berapa banyak pekerjaan pelatihan yang telah diselesaikan dan sedang berlangsung, masing-masing. Untuk informasi selengkapnya tentang cara penentuannya, lihat [TrainingJobStatusCounters](https://docs.aws.amazon.com/sagemaker/latest/dg/API_TrainingJobStatusCounters.html)di dokumentasi SageMaker API. 

#### Terbaik TrainingJob
<a name="best-training-job"></a>

Kolom ini berisi nama `TrainingJob` yang paling dioptimalkan metrik yang dipilih. 

Untuk melihat ringkasan hyperparameters yang disetel, jalankan: 

```
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
```

Untuk melihat informasi rinci tentang`TrainingJob`, jalankan: 

```
kubectl describe trainingjobs <job name>
```

#### Melahirkan TrainingJobs
<a name="spawned-training-jobs"></a>

Anda juga dapat melacak semua 10 pekerjaan pelatihan di Kubernetes yang diluncurkan `HyperparameterTuningJob` dengan menjalankan perintah berikut: 

```
kubectl get trainingjobs
```

### Jelaskan HyperparameterTuningJob
<a name="describe-a-hyperparameter-tuning-job"></a>

Anda dapat memperoleh detail debugging menggunakan `describe` `kubectl` perintah.

```
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
```

Selain informasi tentang pekerjaan tuning, Operator SageMaker AI untuk Kubernetes juga memaparkan [pekerjaan pelatihan terbaik yang ditemukan oleh pekerjaan](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-monitor.html#automatic-model-tuning-best-training-job) tuning hyperparameter dalam output sebagai berikut: `describe` 

```
Name:         xgboost-mnist-hpo
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HyperparameterTuningJob","metadata":{"annotations":{},"name":"xgboost-mnist-hpo","namespace":...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         HyperparameterTuningJob
Metadata:
  Creation Timestamp:  2019-10-17T01:15:52Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  8167
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hyperparametertuningjobs/xgboost-mnist-hpo
  UID:               a92f5e3c-f07b-11e9-bf6c-06d6f303uidu
Spec:
  Hyper Parameter Tuning Job Config:
    Hyper Parameter Tuning Job Objective:
      Metric Name:  validation:error
      Type:         Minimize
    Parameter Ranges:
      Integer Parameter Ranges:
        Max Value:     20
        Min Value:     10
        Name:          num_round
        Scaling Type:  Linear
    Resource Limits:
      Max Number Of Training Jobs:     10
      Max Parallel Training Jobs:      10
    Strategy:                          Bayesian
    Training Job Early Stopping Type:  Off
  Hyper Parameter Tuning Job Name:     xgboostha92f5e3cf07b11e9bf6c06d6
  Region:                              us-east-2
  Training Job Definition:
    Algorithm Specification:
      Training Image:       12345678910.dkr.ecr.us-east-2.amazonaws.com/xgboost:1
      Training Input Mode:  File
    Input Data Config:
      Channel Name:  train
      Content Type:  text/csv
      Data Source:
        s3DataSource:
          s3DataDistributionType:  FullyReplicated
          s3DataType:              S3Prefix
          s3Uri:                   https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/
      Channel Name:                validation
      Content Type:                text/csv
      Data Source:
        s3DataSource:
          s3DataDistributionType:  FullyReplicated
          s3DataType:              S3Prefix
          s3Uri:                   https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/
    Output Data Config:
      s3OutputPath:  https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost
    Resource Config:
      Instance Count:     1
      Instance Type:      ml.m4.xlarge
      Volume Size In GB:  5
    Role Arn:             arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
    Static Hyper Parameters:
      Name:   base_score
      Value:  0.5
      Name:   booster
      Value:  gbtree
      Name:   csv_weights
      Value:  0
      Name:   dsplit
      Value:  row
      Name:   grow_policy
      Value:  depthwise
      Name:   lambda_bias
      Value:  0.0
      Name:   max_bin
      Value:  256
      Name:   max_leaves
      Value:  0
      Name:   normalize_type
      Value:  tree
      Name:   objective
      Value:  reg:linear
      Name:   one_drop
      Value:  0
      Name:   prob_buffer_row
      Value:  1.0
      Name:   process_type
      Value:  default
      Name:   rate_drop
      Value:  0.0
      Name:   refresh_leaf
      Value:  1
      Name:   sample_type
      Value:  uniform
      Name:   scale_pos_weight
      Value:  1.0
      Name:   silent
      Value:  0
      Name:   sketch_eps
      Value:  0.03
      Name:   skip_drop
      Value:  0.0
      Name:   tree_method
      Value:  auto
      Name:   tweedie_variance_power
      Value:  1.5
    Stopping Condition:
      Max Runtime In Seconds:  86400
Status:
  Best Training Job:
    Creation Time:  2019-10-17T01:16:14Z
    Final Hyper Parameter Tuning Job Objective Metric:
      Metric Name:        validation:error
      Value:
    Objective Status:     Succeeded
    Training End Time:    2019-10-17T01:20:24Z
    Training Job Arn:     arn:aws:sagemaker:us-east-2:123456789012:training-job/xgboostha92f5e3cf07b11e9bf6c06d6-009-4sample
    Training Job Name:    xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a3059
    Training Job Status:  Completed
    Training Start Time:  2019-10-17T01:18:35Z
    Tuned Hyper Parameters:
      Name:                                    num_round
      Value:                                   18
  Hyper Parameter Tuning Job Status:           Completed
  Last Check Time:                             2019-10-17T01:21:01Z
  Sage Maker Hyper Parameter Tuning Job Name:  xgboostha92f5e3cf07b11e9bf6c06d6
  Training Job Status Counters:
    Completed:            10
    In Progress:          0
    Non Retryable Error:  0
    Retryable Error:      0
    Stopped:              0
    Total Error:          0
Events:                   <none>
```

### Lihat log dari HyperparameterTuningJobs
<a name="view-logs-from-hyperparametertuning-jobs"></a>

Pekerjaan tuning hyperparameter tidak memiliki log, tetapi semua pekerjaan pelatihan yang diluncurkan oleh mereka memang memiliki log. Log ini dapat diakses seolah-olah itu adalah pekerjaan pelatihan normal. Untuk informasi selengkapnya, lihat [Lihat log dari TrainingJobs](#view-logs-from-training-jobs).

### Menghapus HyperparameterTuningJob
<a name="delete-hyperparametertuning-jobs"></a>

Gunakan perintah berikut untuk menghentikan pekerjaan hyperparameter di SageMaker AI. 

```
kubectl delete hyperparametertuningjob xgboost-mnist-hpo
```

Perintah ini menghapus tugas tuning hyperparameter dan pekerjaan pelatihan terkait dari cluster Kubernetes Anda dan menghentikannya di AI. SageMaker Pekerjaan yang telah berhenti atau selesai tidak dikenakan biaya apa pun untuk sumber daya SageMaker AI. SageMaker AI tidak menghapus pekerjaan penyetelan hyperparameter. Pekerjaan yang dihentikan terus ditampilkan di konsol SageMaker AI. 

Output Anda akan terlihat seperti berikut: 

```
hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted
```

**Catatan**: Perintah delete membutuhkan waktu sekitar 2 menit untuk membersihkan sumber daya dari SageMaker AI. 

## BatchTransformJob Operator
<a name="batchtransformjobs-operator"></a>

Operator pekerjaan transformasi Batch merekonsiliasi spesifikasi pekerjaan transformasi batch yang Anda tentukan ke SageMaker AI dengan meluncurkannya di AI. SageMaker Anda dapat mempelajari lebih lanjut tentang pekerjaan transformasi batch SageMaker AI di [dokumentasi SageMaker AI CreateTransformJob API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTransformJob.html). 

**Topics**
+ [Membuat BatchTransformJob menggunakan File YAMM](#create-a-batchtransformjob-using-a-simple-yaml-file)
+ [Buat BatchTransformJob menggunakan Bagan Helm](#create-a-batchtransformjob-using-a-helm-chart)
+ [Daftar BatchTransformJobs](#list-batch-transform-jobs)
+ [Jelaskan BatchTransformJob](#describe-a-batch-transform-job)
+ [Lihat log dari BatchTransformJobs](#view-logs-from-batch-transform-jobs)
+ [Menghapus BatchTransformJob](#delete-a-batch-transform-job)

### Membuat BatchTransformJob menggunakan File YAMM
<a name="create-a-batchtransformjob-using-a-simple-yaml-file"></a>

1. Unduh contoh file YAMM untuk pekerjaan transformasi batch menggunakan perintah berikut: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-batchtransform.yaml
   ```

1. Edit file `xgboost-mnist-batchtransform.yaml` untuk mengubah parameter yang diperlukan untuk mengganti `inputdataconfig` dengan data input Anda dan `s3OutputPath` dengan bucket Amazon S3 Anda yang memiliki akses tulis peran eksekusi SageMaker AI. 

1. Terapkan file YAMAL menggunakan perintah berikut: 

   ```
   kubectl apply -f xgboost-mnist-batchtransform.yaml
   ```

### Buat BatchTransformJob menggunakan Bagan Helm
<a name="create-a-batchtransformjob-using-a-helm-chart"></a>

Anda dapat menggunakan Helm Charts untuk menjalankan pekerjaan transformasi batch. 

#### Dapatkan direktori installer Helm
<a name="get-the-helm-installer-directory"></a>

Kloning GitHub repositori untuk mendapatkan sumber menggunakan perintah berikut: 

```
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
```

#### Konfigurasikan Bagan Helm
<a name="configure-the-helm-chart"></a>

Arahkan ke `amazon-sagemaker-operator-for-k8s/hack/charts/batch-transform-jobs/` folder. 

Edit `values.yaml` file untuk mengganti `inputdataconfig` dengan data input dan outputPath Anda dengan bucket S3 Anda yang peran eksekusi SageMaker AI memiliki akses tulis. 

#### Buat BatchTransformJob
<a name="create-a-batch-transform-job"></a>

1. Gunakan perintah berikut untuk membuat pekerjaan transformasi batch: 

   ```
   helm install . --generate-name
   ```

   Output Anda akan terlihat seperti berikut: 

   ```
   NAME: chart-1574292948
   LAST DEPLOYED: Wed Nov 20 23:35:49 2019
   NAMESPACE: default
   STATUS: deployed
   REVISION: 1
   TEST SUITE: None
   NOTES:
   Thanks for installing the sagemaker-k8s-batch-transform-job.
   ```

1. Untuk memverifikasi bahwa Bagan Helm berhasil dibuat, jalankan perintah berikut: 

   ```
   helm ls
   NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
   chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-batchtransformjob-0.1.0
   chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-hyperparametertuningjob-0.1.0
   chart-1574292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
   rolebased-1574291698    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
   ```

   Perintah ini membuat sumber daya `BatchTransformJob` Kubernetes. Operator meluncurkan pekerjaan transformasi aktual di SageMaker AI dan memperbarui sumber daya `BatchTransformJob` Kubernetes untuk mencerminkan status pekerjaan di AI. SageMaker Anda dikenakan biaya untuk sumber daya SageMaker AI yang digunakan selama durasi pekerjaan Anda. Anda tidak dikenakan biaya apa pun setelah pekerjaan Anda selesai atau berhenti. 

**Catatan**: SageMaker AI tidak mengizinkan Anda memperbarui pekerjaan transformasi batch yang sedang berjalan. Anda tidak dapat mengedit parameter apa pun dan menerapkan kembali file konfigurasi. Anda harus mengubah nama metadata atau menghapus pekerjaan yang ada dan membuat yang baru. Mirip dengan operator pekerjaan pelatihan yang ada seperti `TFJob` di Kubeflow, tidak `update` didukung. 

### Daftar BatchTransformJobs
<a name="list-batch-transform-jobs"></a>

Gunakan perintah berikut untuk membuat daftar semua pekerjaan yang dibuat menggunakan operator Kubernetes: 

```
kubectl get batchtransformjob
```

Output Anda akan terlihat seperti berikut: 

```
NAME                                STATUS      CREATION-TIME          SAGEMAKER-JOB-NAME
xgboost-mnist-batch-transform       Completed   2019-11-18T03:44:00Z   xgboost-mnist-a88fb19809b511eaac440aa8axgboost
```

Pekerjaan transformasi batch terus terdaftar setelah pekerjaan selesai atau gagal. Anda dapat menghapus a `hyperparametertuningjob` dari daftar dengan mengikuti [Menghapus BatchTransformJob](#delete-a-batch-transform-job) langkah-langkahnya. Pekerjaan yang telah selesai atau dihentikan tidak dikenakan biaya apa pun untuk sumber daya SageMaker AI. 

#### Nilai status transformasi Batch
<a name="batch-transform-status-values"></a>

`STATUS`Bidang dapat berupa salah satu nilai berikut: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Status ini datang langsung dari [dokumentasi API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus) resmi SageMaker AI. 

Selain status SageMaker AI resmi, dimungkinkan `STATUS` untuk menjadi`SynchronizingK8sJobWithSageMaker`. Ini berarti bahwa operator belum memproses pekerjaan.

### Jelaskan BatchTransformJob
<a name="describe-a-batch-transform-job"></a>

Anda dapat memperoleh detail debugging menggunakan `describe` `kubectl` perintah.

```
kubectl describe batchtransformjob xgboost-mnist-batch-transform
```

Output Anda akan terlihat seperti berikut: 

```
Name:         xgboost-mnist-batch-transform
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"BatchTransformJob","metadata":{"annotations":{},"name":"xgboost-mnist","namespace"...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         BatchTransformJob
Metadata:
  Creation Timestamp:  2019-11-18T03:44:00Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  21990924
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/batchtransformjobs/xgboost-mnist
  UID:               a88fb198-09b5-11ea-ac44-0aa8a9UIDNUM
Spec:
  Model Name:  TrainingJob-20190814SMJOb-IKEB
  Region:      us-east-1
  Transform Input:
    Content Type:  text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Type:  S3Prefix
        S 3 Uri:        s3://amzn-s3-demo-bucket/mnist_kmeans_example/input
  Transform Job Name:   xgboost-mnist-a88fb19809b511eaac440aa8a9SMJOB
  Transform Output:
    S 3 Output Path:  s3://amzn-s3-demo-bucket/mnist_kmeans_example/output
  Transform Resources:
    Instance Count:  1
    Instance Type:   ml.m4.xlarge
Status:
  Last Check Time:                2019-11-19T22:50:40Z
  Sage Maker Transform Job Name:  xgboost-mnist-a88fb19809b511eaac440aaSMJOB
  Transform Job Status:           Completed
Events:                           <none>
```

### Lihat log dari BatchTransformJobs
<a name="view-logs-from-batch-transform-jobs"></a>

Gunakan perintah berikut untuk melihat log dari pekerjaan transformasi `xgboost-mnist` batch: 

```
kubectl smlogs batchtransformjob xgboost-mnist-batch-transform
```

### Menghapus BatchTransformJob
<a name="delete-a-batch-transform-job"></a>

Gunakan perintah berikut untuk menghentikan pekerjaan transformasi batch di SageMaker AI. 

```
kubectl delete batchTransformJob xgboost-mnist-batch-transform
```

Output Anda akan terlihat seperti berikut: 

```
batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted
```

Perintah ini menghapus tugas transformasi batch dari cluster Kubernetes Anda, serta menghentikannya di AI. SageMaker Pekerjaan yang telah berhenti atau selesai tidak dikenakan biaya apa pun untuk sumber daya SageMaker AI. Hapus membutuhkan waktu sekitar 2 menit untuk membersihkan sumber daya dari SageMaker AI. 

**Catatan**: SageMaker AI tidak menghapus pekerjaan transformasi batch. Pekerjaan yang dihentikan terus ditampilkan di konsol SageMaker AI. 

## HostingDeployment Operator
<a name="hosting-deployment-operator"></a>

HostingDeployment operator mendukung pembuatan dan penghapusan titik akhir, serta memperbarui titik akhir yang ada, untuk inferensi waktu nyata. Operator penerapan hosting merekonsiliasi spesifikasi pekerjaan penerapan hosting yang Anda tentukan ke SageMaker AI dengan membuat model, konfigurasi titik akhir, dan titik akhir di AI. SageMaker Anda dapat mempelajari lebih lanjut tentang inferensi SageMaker AI dalam [dokumentasi SageMaker AI CreateEndpoint API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html). 

**Topics**
+ [Konfigurasikan HostingDeployment sumber daya](#configure-a-hostingdeployment-resource)
+ [Buat HostingDeployment](#create-a-hostingdeployment)
+ [Daftar HostingDeployments](#list-hostingdeployments)
+ [Jelaskan HostingDeployment](#describe-a-hostingdeployment)
+ [Memanggil titik akhir](#invoking-the-endpoint)
+ [Perbarui HostingDeployment](#update-hostingdeployment)
+ [Hapus HostingDeployment](#delete-the-hostingdeployment)

### Konfigurasikan HostingDeployment sumber daya
<a name="configure-a-hostingdeployment-resource"></a>

Unduh file YAMM sampel untuk pekerjaan penyebaran hosting menggunakan perintah berikut: 

```
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hostingdeployment.yaml
```

`xgboost-mnist-hostingdeployment.yaml`File memiliki komponen berikut yang dapat diedit sesuai kebutuhan: 
+ *ProductionVariants*. Varian produksi adalah serangkaian contoh yang melayani satu model. SageMaker AI load-balance antara semua varian produksi sesuai dengan bobot yang ditetapkan. 
+ *Model*. Model adalah wadah dan peran eksekusi ARN yang diperlukan untuk melayani model. Ini membutuhkan setidaknya satu wadah. 
+ *Wadah*. Sebuah wadah menentukan dataset dan melayani gambar. Jika Anda menggunakan algoritme kustom Anda sendiri alih-alih algoritme yang disediakan oleh SageMaker AI, kode inferensi harus memenuhi persyaratan SageMaker AI. Untuk informasi selengkapnya, lihat [Menggunakan Algoritma Anda Sendiri dengan SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). 

### Buat HostingDeployment
<a name="create-a-hostingdeployment"></a>

Untuk membuat HostingDeployment, gunakan `kubectl` untuk menerapkan file `hosting.yaml` dengan perintah berikut: 

```
kubectl apply -f hosting.yaml
```

SageMaker AI membuat titik akhir dengan konfigurasi yang ditentukan. Anda dikenakan biaya untuk sumber daya SageMaker AI yang digunakan selama masa hidup titik akhir Anda. Anda tidak dikenakan biaya apa pun setelah titik akhir Anda dihapus. 

Proses pembuatan memakan waktu sekitar 10 menit. 

### Daftar HostingDeployments
<a name="list-hostingdeployments"></a>

Untuk memverifikasi bahwa HostingDeployment telah dibuat, gunakan perintah berikut: 

```
kubectl get hostingdeployments
```

Output Anda akan terlihat seperti berikut: 

```
NAME           STATUS     SAGEMAKER-ENDPOINT-NAME
host-xgboost   Creating   host-xgboost-def0e83e0d5f11eaaa450aSMLOGS
```

#### HostingDeployment nilai status
<a name="hostingdeployment-status-values"></a>

Bidang status dapat berupa salah satu dari beberapa nilai: 
+ `SynchronizingK8sJobWithSageMaker`: Operator sedang mempersiapkan untuk membuat titik akhir. 
+ `ReconcilingEndpoint`: Operator membuat, memperbarui, atau menghapus sumber daya titik akhir. Jika HostingDeployment sisa-sisa dalam keadaan ini, gunakan `kubectl describe` untuk melihat alasannya di `Additional` lapangan. 
+ `OutOfService`: Titik akhir tidak tersedia untuk menerima permintaan yang masuk. 
+ `Creating`: [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html)sedang berjalan. 
+ `Updating`: [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpoint.html)atau [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)sedang berjalan. 
+ `SystemUpdating`: Titik akhir sedang menjalani pemeliharaan dan tidak dapat diperbarui atau dihapus atau diskalakan ulang sampai selesai. Operasi pemeliharaan ini tidak mengubah nilai yang ditentukan pelanggan seperti konfigurasi VPC, AWS KMS enkripsi, model, jenis instans, atau jumlah instance. 
+ `RollingBack`: Titik akhir gagal menaikkan atau menurunkan atau mengubah bobot variannya dan sedang dalam proses memutar kembali ke konfigurasi sebelumnya. Setelah rollback selesai, titik akhir kembali ke status. `InService` Status transisi ini hanya berlaku untuk titik akhir yang mengaktifkan penskalaan otomatis dan mengalami perubahan bobot atau kapasitas varian sebagai bagian dari [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)panggilan atau ketika operasi dipanggil secara eksplisit. [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html) 
+ `InService`: Titik akhir tersedia untuk memproses permintaan yang masuk. 
+ `Deleting`: [DeleteEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DeleteEndpoint.html)sedang berjalan. 
+ `Failed`: Titik akhir tidak dapat dibuat, diperbarui, atau diskalakan ulang. Gunakan [DescribeEndpoint: FailureReason](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeEndpoint.html#SageMaker-DescribeEndpoint-response-FailureReason) untuk informasi tentang kegagalan. [DeleteEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DeleteEndpoint.html)adalah satu-satunya operasi yang dapat dilakukan pada titik akhir yang gagal. 

### Jelaskan HostingDeployment
<a name="describe-a-hostingdeployment"></a>

Anda dapat memperoleh detail debugging menggunakan `describe` `kubectl` perintah.

```
kubectl describe hostingdeployment
```

Output Anda akan terlihat seperti berikut: 

```
Name:         host-xgboost
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HostingDeployment","metadata":{"annotations":{},"name":"host-xgboost","namespace":"def..."
API Version:  sagemaker.aws.amazon.com/v1
Kind:         HostingDeployment
Metadata:
  Creation Timestamp:  2019-11-22T19:40:00Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        1
  Resource Version:  4258134
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hostingdeployments/host-xgboost
  UID:               def0e83e-0d5f-11ea-aa45-0a3507uiduid
Spec:
  Containers:
    Container Hostname:  xgboost
    Image:               123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest
    Model Data URL:      s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz
  Models:
    Containers:
      xgboost
    Execution Role Arn:  arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
    Name:                xgboost-model
    Primary Container:   xgboost
  Production Variants:
    Initial Instance Count:  1
    Instance Type:           ml.c5.large
    Model Name:              xgboost-model
    Variant Name:            all-traffic
  Region:                    us-east-2
Status:
  Creation Time:         2019-11-22T19:40:04Z
  Endpoint Arn:          arn:aws:sagemaker:us-east-2:123456789012:endpoint/host-xgboost-def0e83e0d5f11eaaaexample
  Endpoint Config Name:  host-xgboost-1-def0e83e0d5f11e-e08f6c510d5f11eaaa450aexample
  Endpoint Name:         host-xgboost-def0e83e0d5f11eaaa450a350733ba06
  Endpoint Status:       Creating
  Endpoint URL:          https://runtime.sagemaker.us-east-2.amazonaws.com/endpoints/host-xgboost-def0e83e0d5f11eaaaexample/invocations
  Last Check Time:       2019-11-22T19:43:57Z
  Last Modified Time:    2019-11-22T19:40:04Z
  Model Names:
    Name:   xgboost-model
    Value:  xgboost-model-1-def0e83e0d5f11-df5cc9fd0d5f11eaaa450aexample
Events:     <none>
```

Bidang status memberikan informasi lebih lanjut menggunakan bidang berikut: 
+ `Additional`: Informasi tambahan tentang status penyebaran hosting. Bidang ini opsional dan hanya diisi jika terjadi kesalahan. 
+ `Creation Time`: Saat titik akhir dibuat di SageMaker AI. 
+ `Endpoint ARN`: Titik akhir SageMaker AI ARN. 
+ `Endpoint Config Name`: Nama SageMaker AI dari konfigurasi titik akhir. 
+ `Endpoint Name`: Nama SageMaker AI dari titik akhir. 
+ `Endpoint Status`: Status titik akhir. 
+ `Endpoint URL`URL HTTPS yang dapat digunakan untuk mengakses endpoint. Untuk informasi selengkapnya, lihat [Menerapkan Model pada Layanan Hosting SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html). 
+ `FailureReason`: Jika perintah buat, perbarui, atau hapus gagal, penyebabnya ditampilkan di sini. 
+ `Last Check Time`: Terakhir kali operator memeriksa status titik akhir. 
+ `Last Modified Time`: Terakhir kali endpoint diubah. 
+ `Model Names`: Sepasang nama model nilai kunci untuk nama HostingDeployment model SageMaker AI. 

### Memanggil titik akhir
<a name="invoking-the-endpoint"></a>

Setelah status endpoint`InService`, Anda dapat memanggil endpoint dengan dua cara: menggunakan AWS CLI, yang melakukan otentikasi dan penandatanganan permintaan URL, atau menggunakan klien HTTP seperti cURL. Jika Anda menggunakan klien Anda sendiri, Anda perlu melakukan penandatanganan dan otentikasi URL AWS v4 sendiri. 

Untuk memanggil endpoint menggunakan AWS CLI, jalankan perintah berikut. Pastikan untuk mengganti nama Region dan endpoint dengan nama titik akhir Region dan SageMaker AI endpoint Anda. Informasi ini dapat diperoleh dari output`kubectl describe`. 

```
# Invoke the endpoint with mock input data.
aws sagemaker-runtime invoke-endpoint \
  --region us-east-2 \
  --endpoint-name <endpoint name> \
  --body $(seq 784 | xargs echo | sed 's/ /,/g') \
  >(cat) \
  --content-type text/csv > /dev/null
```

Misalnya, jika Region Anda `us-east-2` dan nama konfigurasi titik akhir Anda adalah`host-xgboost-f56b6b280d7511ea824b129926example`, maka perintah berikut akan memanggil titik akhir: 

```
aws sagemaker-runtime invoke-endpoint \
  --region us-east-2 \
  --endpoint-name host-xgboost-f56b6b280d7511ea824b1299example \
  --body $(seq 784 | xargs echo | sed 's/ /,/g') \
  >(cat) \
  --content-type text/csv > /dev/null
4.95847082138
```

Di sini, `4.95847082138` adalah prediksi dari model untuk data tiruan. 

### Perbarui HostingDeployment
<a name="update-hostingdeployment"></a>

1. Setelah HostingDeployment memiliki status`InService`, itu dapat diperbarui. Mungkin butuh waktu sekitar 10 menit HostingDeployment untuk bisa beroperasi. Untuk memverifikasi bahwa statusnya`InService`, gunakan perintah berikut: 

   ```
   kubectl get hostingdeployments
   ```

1.  HostingDeployment Dapat diperbarui sebelum statusnya`InService`. Operator menunggu hingga titik akhir SageMaker AI `InService` sebelum menerapkan pembaruan. 

   Untuk menerapkan pembaruan, ubah `hosting.yaml` file. Misalnya, ubah `initialInstanceCount` bidang dari 1 menjadi 2 sebagai berikut: 

   ```
   apiVersion: sagemaker.aws.amazon.com/v1
   kind: HostingDeployment
   metadata:
     name: host-xgboost
   spec:
       region: us-east-2
       productionVariants:
           - variantName: all-traffic
             modelName: xgboost-model
             initialInstanceCount: 2
             instanceType: ml.c5.large
       models:
           - name: xgboost-model
             executionRoleArn: arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
             primaryContainer: xgboost
             containers:
               - xgboost
       containers:
           - containerHostname: xgboost
             modelDataUrl: s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz
             image: 123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest
   ```

1. Simpan file, lalu gunakan `kubectl` untuk menerapkan pembaruan Anda sebagai berikut. Anda akan melihat perubahan status dari `InService` ke`ReconcilingEndpoint`, kemudian`Updating`. 

   ```
   $ kubectl apply -f hosting.yaml
   hostingdeployment.sagemaker.aws.amazon.com/host-xgboost configured
   
   $ kubectl get hostingdeployments
   NAME           STATUS                SAGEMAKER-ENDPOINT-NAME
   host-xgboost   ReconcilingEndpoint   host-xgboost-def0e83e0d5f11eaaa450a350abcdef
   
   $ kubectl get hostingdeployments
   NAME           STATUS     SAGEMAKER-ENDPOINT-NAME
   host-xgboost   Updating   host-xgboost-def0e83e0d5f11eaaa450a3507abcdef
   ```

SageMaker AI menyebarkan serangkaian instance baru dengan model Anda, mengalihkan lalu lintas untuk menggunakan instance baru, dan menguras instance lama. Begitu proses ini dimulai, statusnya menjadi`Updating`. Setelah pembaruan selesai, titik akhir Anda menjadi`InService`. Proses ini memakan waktu sekitar 10 menit. 

### Hapus HostingDeployment
<a name="delete-the-hostingdeployment"></a>

1. Gunakan `kubectl` untuk menghapus HostingDeployment dengan perintah berikut: 

   ```
   kubectl delete hostingdeployments host-xgboost
   ```

   Output Anda akan terlihat seperti berikut: 

   ```
   hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted
   ```

1. Untuk memverifikasi bahwa penyebaran hosting telah dihapus, gunakan perintah berikut: 

   ```
   kubectl get hostingdeployments
   No resources found.
   ```

Titik akhir yang telah dihapus tidak dikenakan biaya apa pun untuk sumber daya SageMaker AI. 

## ProcessingJob Operator
<a name="kubernetes-processing-job-operator"></a>

ProcessingJob operator digunakan untuk meluncurkan pekerjaan SageMaker pemrosesan Amazon. Untuk informasi lebih lanjut tentang SageMaker Memproses pekerjaan, lihat [CreateProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html). 

**Topics**
+ [Membuat file ProcessingJob menggunakan YAMG](#kubernetes-processing-job-yaml)
+ [Daftar ProcessingJobs](#kubernetes-processing-job-list)
+ [Jelaskan ProcessingJob](#kubernetes-processing-job-description)
+ [Menghapus ProcessingJob](#kubernetes-processing-job-delete)

### Membuat file ProcessingJob menggunakan YAMG
<a name="kubernetes-processing-job-yaml"></a>

Ikuti langkah-langkah berikut untuk membuat pekerjaan SageMaker pemrosesan Amazon dengan menggunakan file YAMAL:

1. Unduh skrip `kmeans_preprocessing.py` pra-pemrosesan.

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans_preprocessing.py
   ```

1. Di salah satu bucket Amazon Simple Storage Service (Amazon S3) Anda, buat `mnist_kmeans_example/processing_code` folder dan unggah skrip ke folder.

1. Unduh `kmeans-mnist-processingjob.yaml` filenya.

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans-mnist-processingjob.yaml
   ```

1. Edit file YAMM untuk menentukan `sagemaker-execution-role` dan mengganti semua instance `amzn-s3-demo-bucket` dengan bucket S3 Anda.

   ```
   ...
   metadata:
     name: kmeans-mnist-processing
   ...
     roleArn: arn:aws:iam::<acct-id>:role/service-role/<sagemaker-execution-role>
     ...
     processingOutputConfig:
       outputs:
         ...
             s3Output:
               s3Uri: s3://<amzn-s3-demo-bucket>/mnist_kmeans_example/output/
     ...
     processingInputs:
       ...
           s3Input:
             s3Uri: s3://<amzn-s3-demo-bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py
   ```

   `sagemaker-execution-role`Harus memiliki izin agar SageMaker AI dapat mengakses bucket S3 CloudWatch, Amazon, dan layanan lainnya atas nama Anda. Untuk informasi selengkapnya tentang membuat peran eksekusi, lihat [Peran SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms).

1. Terapkan file YAMG menggunakan salah satu perintah berikut.

   Untuk instalasi dengan cakupan cluster:

   ```
   kubectl apply -f kmeans-mnist-processingjob.yaml
   ```

   Untuk instalasi dengan cakupan ruang nama:

   ```
   kubectl apply -f kmeans-mnist-processingjob.yaml -n <NAMESPACE>
   ```

### Daftar ProcessingJobs
<a name="kubernetes-processing-job-list"></a>

Gunakan salah satu perintah berikut untuk membuat daftar semua pekerjaan yang dibuat menggunakan ProcessingJob operator. `SAGEMAKER-JOB-NAME `berasal dari `metadata` bagian file YAMM.

Untuk instalasi dengan cakupan cluster:

```
kubectl get ProcessingJob kmeans-mnist-processing
```

Untuk instalasi dengan cakupan ruang nama:

```
kubectl get ProcessingJob -n <NAMESPACE> kmeans-mnist-processing
```

Output-nya semestinya mirip dengan yang berikut:

```
NAME                    STATUS     CREATION-TIME        SAGEMAKER-JOB-NAME
kmeans-mnist-processing InProgress 2020-09-22T21:13:25Z kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385
```

Output mencantumkan semua pekerjaan terlepas dari statusnya. Untuk menghapus pekerjaan dari daftar, lihat [Menghapus Pekerjaan Pemrosesan](https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-processing-job-operator.html#kubernetes-processing-job-delete).

**ProcessingJob Status**
+ `SynchronizingK8sJobWithSageMaker`— Pekerjaan pertama kali diserahkan ke cluster. Operator telah menerima permintaan dan sedang bersiap untuk membuat pekerjaan pemrosesan.
+ `Reconciling`— Operator menginisialisasi atau memulihkan dari kesalahan sementara, bersama dengan yang lain. Jika pekerjaan pemrosesan tetap dalam keadaan ini, gunakan `kubectl` `describe` perintah untuk melihat alasannya di `Additional` lapangan.
+ `InProgress | Completed | Failed | Stopping | Stopped`— Status pekerjaan SageMaker Pemrosesan. Untuk informasi selengkapnya, lihat [DescribeProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html#sagemaker-DescribeProcessingJob-response-ProcessingJobStatus).
+ `Error`— Operator tidak dapat memulihkan dengan rekonsiliasi.

Pekerjaan yang telah selesai, berhenti, atau gagal tidak dikenakan biaya lebih lanjut untuk sumber daya SageMaker AI.

### Jelaskan ProcessingJob
<a name="kubernetes-processing-job-description"></a>

Gunakan salah satu perintah berikut untuk mendapatkan detail lebih lanjut tentang pekerjaan pemrosesan. Perintah ini biasanya digunakan untuk men-debug masalah atau memeriksa parameter pekerjaan pemrosesan.

Untuk instalasi dengan cakupan cluster:

```
kubectl describe processingjob kmeans-mnist-processing
```

Untuk instalasi dengan cakupan ruang nama:

```
kubectl describe processingjob kmeans-mnist-processing -n <NAMESPACE>
```

Output untuk pekerjaan pemrosesan Anda akan terlihat mirip dengan yang berikut ini.

```
$ kubectl describe ProcessingJob kmeans-mnist-processing
Name:         kmeans-mnist-processing
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"ProcessingJob","metadata":{"annotations":{},"name":"kmeans-mnist-processing",...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         ProcessingJob
Metadata:
  Creation Timestamp:  2020-09-22T21:13:25Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  21746658
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/processingjobs/kmeans-mnist-processing
  UID:               7410ed52-fd18-11ea-b19a-165ae9f9e385
Spec:
  App Specification:
    Container Entrypoint:
      python
      /opt/ml/processing/code/kmeans_preprocessing.py
    Image Uri:  763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:1.5.0-cpu-py36-ubuntu16.04
  Environment:
    Name:   MYVAR
    Value:  my_value
    Name:   MYVAR2
    Value:  my_value2
  Network Config:
  Processing Inputs:
    Input Name:  mnist_tar
    s3Input:
      Local Path:   /opt/ml/processing/input
      s3DataType:   S3Prefix
      s3InputMode:  File
      s3Uri:        s3://<s3bucket>-us-west-2/algorithms/kmeans/mnist/mnist.pkl.gz
    Input Name:     source_code
    s3Input:
      Local Path:   /opt/ml/processing/code
      s3DataType:   S3Prefix
      s3InputMode:  File
      s3Uri:        s3://<s3bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py
  Processing Output Config:
    Outputs:
      Output Name:  train_data
      s3Output:
        Local Path:    /opt/ml/processing/output_train/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
      Output Name:     test_data
      s3Output:
        Local Path:    /opt/ml/processing/output_test/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
      Output Name:     valid_data
      s3Output:
        Local Path:    /opt/ml/processing/output_valid/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
  Processing Resources:
    Cluster Config:
      Instance Count:     1
      Instance Type:      ml.m5.xlarge
      Volume Size In GB:  20
  Region:                 us-west-2
  Role Arn:               arn:aws:iam::<acct-id>:role/m-sagemaker-role
  Stopping Condition:
    Max Runtime In Seconds:  1800
  Tags:
    Key:    tagKey
    Value:  tagValue
Status:
  Cloud Watch Log URL:             https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#logStream:group=/aws/sagemaker/ProcessingJobs;prefix=kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385;streamFilter=typeLogStreamPrefix
  Last Check Time:                 2020-09-22T21:14:29Z
  Processing Job Status:           InProgress
  Sage Maker Processing Job Name:  kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385
Events:                            <none>
```

### Menghapus ProcessingJob
<a name="kubernetes-processing-job-delete"></a>

Saat Anda menghapus pekerjaan pemrosesan, pekerjaan SageMaker Pemrosesan dihapus dari Kubernetes tetapi pekerjaan tersebut tidak dihapus dari AI. SageMaker Jika status pekerjaan di SageMaker AI `InProgress` adalah pekerjaan dihentikan. Memproses pekerjaan yang dihentikan tidak dikenakan biaya apa pun untuk sumber daya SageMaker AI. Gunakan salah satu perintah berikut untuk menghapus pekerjaan pemrosesan. 

Untuk instalasi dengan cakupan cluster:

```
kubectl delete processingjob kmeans-mnist-processing
```

Untuk instalasi dengan cakupan ruang nama:

```
kubectl delete processingjob kmeans-mnist-processing -n <NAMESPACE>
```

Output untuk pekerjaan pemrosesan Anda akan terlihat mirip dengan yang berikut ini.

```
processingjob.sagemaker.aws.amazon.com "kmeans-mnist-processing" deleted
```



**catatan**  
SageMaker AI tidak menghapus pekerjaan pemrosesan. Pekerjaan yang dihentikan terus ditampilkan di konsol SageMaker AI. `delete`Perintah membutuhkan beberapa menit untuk membersihkan sumber daya dari SageMaker AI.

## HostingAutoscalingPolicy (HAP) Operator
<a name="kubernetes-hap-operator"></a>

Operator HostingAutoscalingPolicy (HAP) mengambil daftar sumber daya IDs sebagai input dan menerapkan kebijakan yang sama untuk masing-masing sumber daya. Setiap ID sumber daya adalah kombinasi dari nama endpoint dan nama varian. Operator HAP melakukan dua langkah: ia mendaftarkan sumber daya IDs dan kemudian menerapkan kebijakan penskalaan ke setiap ID sumber daya. `Delete`membatalkan kedua tindakan tersebut. [Anda dapat menerapkan HAP ke titik akhir SageMaker AI yang ada atau Anda dapat membuat titik akhir SageMaker AI baru menggunakan operator. HostingDeployment ](https://docs.aws.amazon.com/sagemaker/latest/dg/hosting-deployment-operator.html#create-a-hostingdeployment) Anda dapat membaca selengkapnya tentang penskalaan otomatis SageMaker AI dalam dokumentasi Kebijakan Penskalaan [Otomatis Aplikasi](https://docs.aws.amazon.com/sagemaker/latest/dg/endpoint-auto-scaling.html).

**catatan**  
Dalam `kubectl` perintah Anda, Anda dapat menggunakan formulir pendek`hap`,, sebagai pengganti`hostingautoscalingpolicy`.

**Topics**
+ [Membuat file HostingAutoscalingPolicy menggunakan YAMG](#kubernetes-hap-job-yaml)
+ [Daftar HostingAutoscalingPolicies](#kubernetes-hap-list)
+ [Jelaskan HostingAutoscalingPolicy](#kubernetes-hap-describe)
+ [Perbarui HostingAutoscalingPolicy](#kubernetes-hap-update)
+ [Menghapus HostingAutoscalingPolicy](#kubernetes-hap-delete)
+ [Memperbarui atau menghapus titik akhir dengan HostingAutoscalingPolicy](#kubernetes-hap-update-delete-endpoint)

### Membuat file HostingAutoscalingPolicy menggunakan YAMG
<a name="kubernetes-hap-job-yaml"></a>

Gunakan file YAMM untuk membuat HostingAutoscalingPolicy (HAP) yang menerapkan metrik yang telah ditentukan atau kustom ke satu atau beberapa SageMaker titik akhir AI.

Amazon SageMaker AI memerlukan nilai khusus untuk menerapkan penskalaan otomatis ke varian Anda. Jika nilai-nilai ini tidak ditentukan dalam spesifikasi YAMB, operator HAP menerapkan nilai default berikut.

```
# Do not change
Namespace                    = "sagemaker"
# Do not change
ScalableDimension            = "sagemaker:variant:DesiredInstanceCount"
# Only one supported
PolicyType                   = "TargetTrackingScaling"
# This is the default policy name but can be changed to apply a custom policy
DefaultAutoscalingPolicyName = "SageMakerEndpointInvocationScalingPolicy"
```

Gunakan sampel berikut untuk membuat HAP yang menerapkan metrik yang telah ditentukan atau kustom ke satu atau beberapa titik akhir.

#### Contoh 1: Menerapkan metrik yang telah ditentukan ke varian titik akhir tunggal
<a name="kubernetes-hap-predefined-metric"></a>

1. Unduh file YAMM sampel untuk metrik yang telah ditentukan menggunakan perintah berikut:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
   ```

1. Edit file YAMG untuk menentukan file Anda`endpointName`,`variantName`, dan`Region`.

1. Gunakan salah satu perintah berikut untuk menerapkan metrik yang telah ditentukan ke ID sumber daya tunggal (nama titik akhir dan kombinasi nama varian).

   Untuk instalasi dengan cakupan cluster:

   ```
   kubectl apply -f hap-predefined-metric.yaml
   ```

   Untuk instalasi dengan cakupan ruang nama:

   ```
   kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>
   ```

#### Contoh 2: Menerapkan metrik khusus ke varian titik akhir tunggal
<a name="kubernetes-hap-custom-metric"></a>

1. Unduh contoh file YAMAL untuk metrik kustom menggunakan perintah berikut:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-custom-metric.yaml
   ```

1. Edit file YAMG untuk menentukan file Anda`endpointName`,`variantName`, dan`Region`.

1. Gunakan salah satu perintah berikut untuk menerapkan metrik kustom ke ID sumber daya tunggal (nama titik akhir dan kombinasi nama varian) sebagai pengganti yang direkomendasikan`SageMakerVariantInvocationsPerInstance`.
**catatan**  
Amazon SageMaker AI tidak memeriksa validitas spesifikasi YAMM Anda.

   Untuk instalasi dengan cakupan cluster:

   ```
   kubectl apply -f hap-custom-metric.yaml
   ```

   Untuk instalasi dengan cakupan ruang nama:

   ```
   kubectl apply -f hap-custom-metric.yaml -n <NAMESPACE>
   ```

#### Contoh 3: Menerapkan kebijakan penskalaan ke beberapa titik akhir dan varian
<a name="kubernetes-hap-scaling-policy"></a>

Anda dapat menggunakan operator HAP untuk menerapkan kebijakan penskalaan yang sama ke beberapa sumber daya. IDs `scaling_policy`Permintaan terpisah dibuat untuk setiap ID sumber daya (nama titik akhir dan kombinasi nama varian).

1. Unduh file YAMM sampel untuk metrik yang telah ditentukan menggunakan perintah berikut:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
   ```

1. Edit file YAMM untuk menentukan Anda `Region` `endpointName` dan beberapa serta `variantName` nilai.

1. Gunakan salah satu perintah berikut untuk menerapkan metrik yang telah ditentukan ke beberapa sumber daya IDs (nama titik akhir dan kombinasi nama varian).

   Untuk instalasi dengan cakupan cluster:

   ```
   kubectl apply -f hap-predefined-metric.yaml
   ```

   Untuk instalasi dengan cakupan ruang nama:

   ```
   kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>
   ```

#### Pertimbangan HostingAutoscalingPolicies untuk beberapa titik akhir dan varian
<a name="kubernetes-hap-scaling-considerations"></a>

Pertimbangan berikut berlaku saat Anda menggunakan beberapa sumber daya IDs:
+ Jika Anda menerapkan satu kebijakan di beberapa sumber daya IDs, satu PolicYarn dibuat per ID sumber daya. Lima titik akhir memiliki lima KebijakanARNs. Saat Anda menjalankan `describe` perintah pada kebijakan, respons akan muncul sebagai satu pekerjaan dan menyertakan satu status pekerjaan.
+ Jika Anda menerapkan metrik kustom ke beberapa sumber daya IDs, dimensi atau nilai yang sama akan digunakan untuk semua nilai ID sumber daya (varian). Misalnya, jika Anda menerapkan metrik pelanggan untuk instance 1-5, dan dimensi varian titik akhir dipetakan ke varian 1, ketika varian 1 melebihi metrik, semua titik akhir diskalakan ke atas atau ke bawah.
+ Operator HAP mendukung pembaruan daftar sumber daya IDs. Jika Anda mengubah, menambah, atau menghapus sumber daya IDs ke spesifikasi, kebijakan penskalaan otomatis akan dihapus dari daftar varian sebelumnya dan diterapkan ke kombinasi ID sumber daya yang baru ditentukan. Gunakan [https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-hap-operator.html#kubernetes-hap-describe](https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-hap-operator.html#kubernetes-hap-describe)perintah untuk membuat daftar sumber daya IDs yang saat ini diterapkan kebijakan.

### Daftar HostingAutoscalingPolicies
<a name="kubernetes-hap-list"></a>

Gunakan salah satu perintah berikut untuk daftar all HostingAutoscalingPolicies (HAPs) yang dibuat menggunakan operator HAP.

Untuk instalasi dengan cakupan cluster:

```
kubectl get hap
```

Untuk instalasi dengan cakupan ruang nama:

```
kubectl get hap -n <NAMESPACE>
```

Output-nya semestinya mirip dengan yang berikut:

```
NAME             STATUS   CREATION-TIME
hap-predefined   Created  2021-07-13T21:32:21Z
```

Gunakan perintah berikut untuk memeriksa status HostingAutoscalingPolicy (HAP) Anda.

```
kubectl get hap <job-name>
```

Salah satu nilai berikut dikembalikan:
+ `Reconciling`— Jenis kesalahan tertentu menunjukkan status sebagai `Reconciling` pengganti`Error`. Beberapa contoh adalah kesalahan sisi server dan titik akhir di negara bagian atau. `Creating` `Updating` Periksa `Additional` bidang di status atau log operator untuk detail selengkapnya.
+ `Created`
+ `Error`

**Untuk melihat titik akhir penskalaan otomatis tempat Anda menerapkan kebijakan**

1. Buka konsol Amazon SageMaker AI di [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Di panel sisi kiri, perluas **Inferensi**.

1. Pilih **Titik akhir**.

1. Pilih nama titik akhir yang diminati.

1. Gulir ke bagian **Pengaturan runtime Endpoint**.

### Jelaskan HostingAutoscalingPolicy
<a name="kubernetes-hap-describe"></a>

Gunakan perintah berikut untuk mendapatkan rincian lebih lanjut tentang HostingAutoscalingPolicy (HAP). Perintah ini biasanya digunakan untuk men-debug masalah atau memeriksa sumber daya IDs (nama endpoint dan kombinasi nama varian) dari HAP.

```
kubectl describe hap <job-name>
```

### Perbarui HostingAutoscalingPolicy
<a name="kubernetes-hap-update"></a>

Operator HostingAutoscalingPolicy (HAP) mendukung pembaruan. Anda dapat mengedit spesifikasi YAMAL untuk mengubah nilai, lalu menerapkan kembali kebijakan tersebut. Operator HAP menghapus kebijakan yang ada dan menerapkan kebijakan baru.

### Menghapus HostingAutoscalingPolicy
<a name="kubernetes-hap-delete"></a>

Gunakan salah satu perintah berikut untuk menghapus kebijakan HostingAutoscalingPolicy (HAP).

Untuk instalasi dengan cakupan cluster:

```
kubectl delete hap hap-predefined
```

Untuk instalasi dengan cakupan ruang nama:

```
kubectl delete hap hap-predefined -n <NAMESPACE>
```

Perintah ini menghapus kebijakan penskalaan dan membatalkan pendaftaran target penskalaan dari Kubernetes. Perintah ini mengembalikan output sebagai berikut:

```
hostingautoscalingpolicies.sagemaker.aws.amazon.com "hap-predefined" deleted
```

### Memperbarui atau menghapus titik akhir dengan HostingAutoscalingPolicy
<a name="kubernetes-hap-update-delete-endpoint"></a>

Untuk memperbarui titik akhir yang memiliki HostingAutoscalingPolicy (HAP), gunakan `kubectl` `delete` perintah untuk menghapus HAP, memperbarui titik akhir, dan kemudian menerapkan kembali HAP.

Untuk menghapus titik akhir yang memiliki HAP, gunakan `kubectl` `delete` perintah untuk menghapus HAP sebelum Anda menghapus titik akhir.

# Migrasikan sumber daya ke Operator terbaru
<a name="kubernetes-sagemaker-operators-migrate"></a>

Kami menghentikan pengembangan dan dukungan teknis dari versi asli [ SageMaker Operator untuk Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master).

Jika saat ini Anda menggunakan [ SageMaker Operator untuk Kubernetes versi `v1.2.2` atau di bawah ini, kami sarankan untuk](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) memigrasikan sumber daya Anda ke [pengontrol layanan ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) untuk Amazon. SageMaker Pengontrol layanan ACK adalah generasi baru SageMaker Operator untuk Kubernetes berdasarkan [AWS Controller for Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).

Untuk jawaban atas pertanyaan umum di akhir dukungan versi asli SageMaker Operator untuk Kubernetes, lihat [Mengumumkan Akhir Dukungan Versi Asli Operator SageMaker AI untuk Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Gunakan langkah-langkah berikut untuk memigrasikan sumber daya Anda dan menggunakan ACK untuk melatih, menyetel, dan menerapkan model pembelajaran mesin dengan Amazon SageMaker AI.

**catatan**  
Operator SageMaker AI terbaru untuk Kubernetes tidak kompatibel ke belakang.

**Topics**
+ [Prasyarat](#migrate-resources-to-new-operators-prerequisites)
+ [Mengadopsi sumber daya](#migrate-resources-to-new-operators-steps)
+ [Bersihkan sumber daya lama](#migrate-resources-to-new-operators-cleanup)
+ [Gunakan Operator SageMaker AI baru untuk Kubernetes](#migrate-resources-to-new-operators-tutorials)

## Prasyarat
<a name="migrate-resources-to-new-operators-prerequisites"></a>

Agar berhasil memigrasikan sumber daya ke Operator SageMaker AI terbaru untuk Kubernetes, Anda harus melakukan hal berikut:

1. Instal Operator SageMaker AI terbaru untuk Kubernetes. Lihat [Pengaturan](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup) di *Machine Learning dengan ACK SageMaker AI Controller* untuk step-by-step petunjuk.

1. Jika Anda menggunakan[HostingAutoscalingPolicy sumber daya](#migrate-resources-to-new-operators-hap), instal Application Auto Scaling Operator yang baru. Lihat [Penyiapan](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/#setup) di *Beban Kerja SageMaker AI Skala dengan Application Auto* Scaling untuk petunjuk. step-by-step Langkah ini opsional jika Anda tidak menggunakan HostingAutoScalingPolicy sumber daya.

Jika izin dikonfigurasi dengan benar, maka pengontrol layanan ACK SageMaker AI dapat menentukan spesifikasi dan status AWS sumber daya dan merekonsiliasi sumber daya seolah-olah pengontrol ACK awalnya membuatnya.

## Mengadopsi sumber daya
<a name="migrate-resources-to-new-operators-steps"></a>

Operator SageMaker AI baru untuk Kubernetes menyediakan kemampuan untuk mengadopsi sumber daya yang awalnya tidak dibuat oleh pengontrol layanan ACK. Untuk informasi selengkapnya, lihat [Mengadopsi Sumber AWS Daya yang Ada](https://aws-controllers-k8s.github.io/community/docs/user-docs/adopted-resource/) di dokumentasi ACK.

Langkah-langkah berikut menunjukkan bagaimana Operator SageMaker AI baru untuk Kubernetes dapat mengadopsi titik akhir AI yang ada SageMaker . Simpan sampel berikut ke file bernama`adopt-endpoint-sample.yaml`. 

```
apiVersion: services.k8s.aws/v1alpha1
kind: AdoptedResource
metadata:
  name: adopt-endpoint-sample
spec:  
  aws:
    # resource to adopt, not created by ACK
    nameOrID: xgboost-endpoint
  kubernetes:
    group: sagemaker.services.k8s.aws
    kind: Endpoint
    metadata:
      # target K8s CR name
      name: xgboost-endpoint
```

Kirim sumber daya kustom (CR) menggunakan`kubectl apply`:

```
kubectl apply -f adopt-endpoint-sample.yaml
```

Gunakan `kubectl describe` untuk memeriksa kondisi status sumber daya yang Anda adopsi.

```
kubectl describe adoptedresource adopt-endpoint-sample
```

Verifikasi bahwa `ACK.Adopted` kondisinya`True`. Outputnya akan terlihat mirip dengan contoh berikut:

```
---
kind: AdoptedResource
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: '{"apiVersion":"services.k8s.aws/v1alpha1","kind":"AdoptedResource","metadata":{"annotations":{},"name":"xgboost-endpoint","namespace":"default"},"spec":{"aws":{"nameOrID":"xgboost-endpoint"},"kubernetes":{"group":"sagemaker.services.k8s.aws","kind":"Endpoint","metadata":{"name":"xgboost-endpoint"}}}}'
  creationTimestamp: '2021-04-27T02:49:14Z'
  finalizers:
  - finalizers.services.k8s.aws/AdoptedResource
  generation: 1
  name: adopt-endpoint-sample
  namespace: default
  resourceVersion: '12669876'
  selfLink: "/apis/services.k8s.aws/v1alpha1/namespaces/default/adoptedresources/adopt-endpoint-sample"
  uid: 35f8fa92-29dd-4040-9d0d-0b07bbd7ca0b
spec:
  aws:
    nameOrID: xgboost-endpoint
  kubernetes:
    group: sagemaker.services.k8s.aws
    kind: Endpoint
    metadata:
      name: xgboost-endpoint
status:
  conditions:
  - status: 'True'
    type: ACK.Adopted
```

Periksa apakah sumber daya Anda ada di klaster Anda:

```
kubectl describe endpoints.sagemaker xgboost-endpoint
```

### HostingAutoscalingPolicy sumber daya
<a name="migrate-resources-to-new-operators-hap"></a>

Sumber daya `HostingAutoscalingPolicy` (HAP) terdiri dari beberapa sumber daya Application Auto Scaling: dan. `ScalableTarget` `ScalingPolicy` Saat mengadopsi sumber daya HAP dengan ACK, pertama-tama instal pengontrol [Application Auto](https://github.com/aws-controllers-k8s/applicationautoscaling-controller) Scaling. Untuk mengadopsi sumber daya HAP, Anda perlu mengadopsi keduanya `ScalableTarget` dan `ScalingPolicy` sumber daya. Anda dapat menemukan pengindentifikasi sumber daya untuk sumber daya ini dalam status `HostingAutoscalingPolicy` resource ()`status.ResourceIDList`.

### HostingDeployment sumber daya
<a name="migrate-resources-to-new-operators-hosting-deployment"></a>

Sumber `HostingDeployment` daya terdiri dari beberapa sumber daya SageMaker AI:`Endpoint`,`EndpointConfig`, dan masing-masing`Model`. Jika Anda mengadopsi titik akhir SageMaker AI di ACK, Anda perlu mengadopsi`Endpoint`,`EndpointConfig`, dan masing-masing `Model` secara terpisah. `Model`Nama`Endpoint`,`EndpointConfig`, dan dapat ditemukan dalam status `HostingDeployment` sumber daya (`status.endpointName`,`status.endpointConfigName`, dan`status.modelNames`).

Untuk daftar semua sumber daya SageMaker AI yang didukung, lihat [Referensi ACK API](https://aws-controllers-k8s.github.io/community/reference/).

## Bersihkan sumber daya lama
<a name="migrate-resources-to-new-operators-cleanup"></a>

Setelah Operator SageMaker AI baru untuk Kubernetes mengadopsi sumber daya Anda, Anda dapat menghapus instalan operator lama dan membersihkan sumber daya lama.

### Langkah 1: Copot pemasangan operator lama
<a name="migrate-resources-to-new-operators-uninstall"></a>

Untuk menghapus instalan operator lama, lihat[Hapus operator](kubernetes-sagemaker-operators-end-of-support.md#delete-operators).

**Awas**  
Copot pemasangan operator lama sebelum menghapus sumber daya lama.

### Langkah 2: Hapus finalizer dan hapus sumber daya lama
<a name="migrate-resources-to-new-operators-delete-resources"></a>

**Awas**  
Sebelum menghapus sumber daya lama, pastikan Anda telah menghapus instalan operator lama.

Setelah menghapus instalan operator lama, Anda harus secara eksplisit menghapus finalizer untuk menghapus sumber daya operator lama. Contoh skrip berikut menunjukkan cara menghapus semua pekerjaan pelatihan yang dikelola oleh operator lama di namespace tertentu. Anda dapat menggunakan pola serupa untuk menghapus sumber daya tambahan setelah diadopsi oleh operator baru.

**catatan**  
Anda harus menggunakan nama sumber daya lengkap untuk mendapatkan sumber daya. Misalnya, gunakan `kubectl get trainingjobs.sagemaker.aws.amazon.com` sebagai ganti dari `kubectl get trainingjob`.

```
namespace=sagemaker_namespace
training_jobs=$(kubectl get trainingjobs.sagemaker.aws.amazon.com -n $namespace -ojson | jq -r '.items | .[] | .metadata.name')
 
for job in $training_jobs
do
    echo "Deleting $job resource in $namespace namespace"
    kubectl patch trainingjobs.sagemaker.aws.amazon.com $job -n $namespace -p '{"metadata":{"finalizers":null}}' --type=merge
    kubectl delete trainingjobs.sagemaker.aws.amazon.com $job -n $namespace
done
```

## Gunakan Operator SageMaker AI baru untuk Kubernetes
<a name="migrate-resources-to-new-operators-tutorials"></a>

Untuk panduan mendalam tentang penggunaan Operator SageMaker AI baru untuk Kubernetes, lihat [Gunakan Operator SageMaker AI untuk Kubernetes](kubernetes-sagemaker-operators-ack.md#kubernetes-sagemaker-operators-ack-use)

# Mengumumkan Akhir Dukungan Versi Asli Operator SageMaker AI untuk Kubernetes
<a name="kubernetes-sagemaker-operators-eos-announcement"></a>

Halaman ini mengumumkan akhir dukungan untuk versi asli [Operator SageMaker AI untuk Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s) dan memberikan jawaban atas pertanyaan umum serta informasi migrasi tentang [pengontrol layanan ACK untuk Amazon SageMaker AI, generasi baru Operator AI](https://github.com/aws-controllers-k8s/sagemaker-controller) yang didukung SageMaker penuh untuk Kubernetes. Untuk informasi umum tentang Operator SageMaker AI baru untuk Kubernetes, lihat. [Operator SageMaker AI Terbaru untuk Kubernetes](kubernetes-sagemaker-operators-ack.md) 

## Akhir dari Support Pertanyaan yang Sering Diajukan
<a name="kubernetes-sagemaker-operators-eos-faq"></a>

**Topics**
+ [Mengapa kami mengakhiri dukungan untuk versi asli Operator SageMaker AI untuk Kubernetes?](#kubernetes-sagemaker-operators-eos-faq-why)
+ [Di mana saya dapat menemukan informasi lebih lanjut tentang Operator SageMaker AI baru untuk Kubernetes dan ACK?](#kubernetes-sagemaker-operators-eos-faq-more)
+ [Apa arti akhir dukungan (EOS)?](#kubernetes-sagemaker-operators-eos-faq-definition)
+ [Bagaimana saya bisa memigrasikan beban kerja saya ke Operator SageMaker AI baru untuk Kubernetes untuk pelatihan dan inferensi?](#kubernetes-sagemaker-operators-eos-faq-how)
+ [Versi ACK mana yang harus saya migrasi?](#kubernetes-sagemaker-operators-eos-faq-version)
+ [Apakah Operator SageMaker AI awal untuk Kubernetes dan Operator baru (ACK service controller untuk Amazon SageMaker AI) secara fungsional setara?](#kubernetes-sagemaker-operators-eos-faq-parity)

### Mengapa kami mengakhiri dukungan untuk versi asli Operator SageMaker AI untuk Kubernetes?
<a name="kubernetes-sagemaker-operators-eos-faq-why"></a>

Pengguna sekarang dapat memanfaatkan [pengontrol layanan ACK untuk Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller). Pengontrol layanan ACK adalah generasi baru Operator SageMaker AI untuk Kubernetes berdasarkan [AWS Controllers for Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK), sebuah proyek berbasis komunitas yang dioptimalkan untuk produksi, menstandarisasi cara untuk mengekspos layanan melalui operator Kubernetes. AWS Oleh karena itu kami mengumumkan akhir dukungan (EOS) untuk versi asli (bukan berbasis ACK) dari [Operator SageMaker AI](https://github.com/aws/amazon-sagemaker-operator-for-k8s) untuk Kubernetes. Dukungan berakhir pada **15 Februari 2023** bersama dengan [Amazon Elastic Kubernetes Service Kubernetes 1.21](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar). 

Untuk informasi lebih lanjut tentang ACK, lihat [sejarah dan prinsip ACK](https://aws-controllers-k8s.github.io/community/docs/community/background/).

### Di mana saya dapat menemukan informasi lebih lanjut tentang Operator SageMaker AI baru untuk Kubernetes dan ACK?
<a name="kubernetes-sagemaker-operators-eos-faq-more"></a>
+ [Untuk informasi selengkapnya tentang Operator SageMaker AI baru untuk Kubernetes, lihat pengontrol [layanan ACK untuk GitHub repositori Amazon SageMaker AI atau baca AWS Controllers for](https://github.com/aws-controllers-k8s/sagemaker-controller) Kubernetes Documentation.](https://aws-controllers-k8s.github.io/community/docs/community/overview/)
+ Untuk tutorial tentang cara melatih model pembelajaran mesin dengan pengontrol layanan ACK untuk Amazon SageMaker AI menggunakan Amazon EKS, lihat [contoh SageMaker AI](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/) ini.

  Untuk contoh penskalaan otomatis, lihat [Menskalakan Beban Kerja SageMaker AI dengan Application Auto Scaling](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/).
+ Untuk informasi tentang AWS Controller for Kubernetes (ACK), lihat dokumentasi [AWS Controllers for Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).
+ Untuk daftar sumber daya SageMaker AI yang didukung, lihat [Referensi ACK API](https://aws-controllers-k8s.github.io/community/reference/).

### Apa arti akhir dukungan (EOS)?
<a name="kubernetes-sagemaker-operators-eos-faq-definition"></a>

Meskipun pengguna dapat terus menggunakan operator mereka saat ini, kami tidak lagi mengembangkan fitur baru untuk operator, kami juga tidak akan merilis patch atau pembaruan keamanan untuk masalah apa pun yang ditemukan. `v1.2.2`adalah rilis terakhir dari [Operator SageMaker AI untuk Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master). Pengguna harus memigrasikan beban kerja mereka untuk menggunakan [pengontrol layanan ACK untuk Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller).

### Bagaimana saya bisa memigrasikan beban kerja saya ke Operator SageMaker AI baru untuk Kubernetes untuk pelatihan dan inferensi?
<a name="kubernetes-sagemaker-operators-eos-faq-how"></a>

Untuk informasi tentang migrasi sumber daya dari yang lama ke Operator SageMaker AI baru untuk Kubernetes, ikuti. [Migrasikan sumber daya ke Operator terbaru](kubernetes-sagemaker-operators-migrate.md)

### Versi ACK mana yang harus saya migrasi?
<a name="kubernetes-sagemaker-operators-eos-faq-version"></a>

Pengguna harus bermigrasi ke versi terbaru dari [pengontrol layanan ACK untuk Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller/tags).

### Apakah Operator SageMaker AI awal untuk Kubernetes dan Operator baru (ACK service controller untuk Amazon SageMaker AI) secara fungsional setara?
<a name="kubernetes-sagemaker-operators-eos-faq-parity"></a>

Ya, mereka berada pada paritas fitur.

Beberapa sorotan dari perbedaan penting utama antara kedua versi meliputi:
+ Definisi Sumber Daya Kustom (CRD) yang digunakan oleh Operator SageMaker AI berbasis ACK untuk Kubernetes mengikuti definisi AWS API sehingga tidak kompatibel dengan spesifikasi sumber daya khusus dari Operator SageMaker AI untuk Kubernetes dalam versi aslinya. Lihat [CRDs](https://github.com/aws-controllers-k8s/sagemaker-controller/tree/main/helm/crds)di pengontrol baru atau gunakan panduan migrasi untuk mengadopsi sumber daya dan menggunakan pengontrol baru. 
+ `Hosting Autoscaling`Kebijakan ini tidak lagi menjadi bagian dari Operator SageMaker AI baru untuk Kubernetes dan telah dimigrasikan ke [Application](https://github.com/aws-controllers-k8s/applicationautoscaling-controller) autoscaling ACK controller. [Untuk mempelajari cara menggunakan pengontrol penskalaan otomatis aplikasi untuk mengonfigurasi penskalaan otomatis pada titik akhir SageMaker AI, ikuti contoh penskalaan otomatis ini.](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/) 
+ `HostingDeployment`Sumber daya digunakan untuk membuat Model, Konfigurasi Titik Akhir, dan Titik Akhir dalam satu CRD. Operator SageMaker AI baru untuk Kubernetes memiliki CRD terpisah untuk masing-masing sumber daya ini. 

# SageMaker Komponen AI untuk Pipa Kubeflow
<a name="kubernetes-sagemaker-components-for-kubeflow-pipelines"></a>

Dengan komponen SageMaker AI untuk Pipelines Kubeflow, Anda dapat membuat dan memantau pelatihan SageMaker AI asli, penyetelan, penerapan titik akhir, dan pekerjaan transformasi batch dari Pipelines Kubeflow Anda. Dengan menjalankan pekerjaan Kubeflow Pipeline di SageMaker AI, Anda memindahkan pekerjaan pemrosesan dan pelatihan data dari klaster Kubernetes ke layanan terkelola yang dioptimalkan untuk pembelajaran SageMaker mesin AI. Dokumen ini mengasumsikan pengetahuan sebelumnya tentang Kubernetes dan Kubeflow. 

**Topics**
+ [Apa itu Pipelines Kubeflow?](#what-is-kubeflow-pipelines)
+ [Apa saja komponen Pipeline Kubeflow?](#kubeflow-pipeline-components)
+ [Mengapa menggunakan Komponen SageMaker AI untuk Pipelines Kubeflow?](#why-use-sagemaker-components)
+ [SageMaker Komponen AI untuk versi Pipelines Kubeflow](#sagemaker-components-versions)
+ [Daftar Komponen SageMaker AI untuk Pipelines Kubeflow](#sagemaker-components-list)
+ [Izin IAM](#iam-permissions)
+ [Mengonversi saluran pipa untuk menggunakan AI SageMaker](#converting-pipelines-to-use-amazon-sagemaker)
+ [Instal Pipeline Kubeflow](kubernetes-sagemaker-components-install.md)
+ [Gunakan komponen SageMaker AI](kubernetes-sagemaker-components-tutorials.md)

## Apa itu Pipelines Kubeflow?
<a name="what-is-kubeflow-pipelines"></a>

Kubeflow Pipelines (KFP) adalah platform untuk membangun dan menerapkan alur kerja machine learning (ML) portabel yang dapat diskalakan berdasarkan kontainer Docker. Platform Pipelines Kubeflow terdiri dari:
+ Antarmuka pengguna (UI) untuk mengelola dan melacak eksperimen, pekerjaan, dan proses. 
+ Mesin (Argo) untuk penjadwalan alur kerja ML-langkah.
+ SDK untuk mendefinisikan dan memanipulasi jaringan pipa dan komponen.
+ Notebook untuk berinteraksi dengan sistem menggunakan SDK.

Pipeline adalah deskripsi alur kerja ML yang dinyatakan sebagai grafik [asiklik terarah](https://www.kubeflow.org/docs/pipelines/concepts/graph/). Setiap langkah dalam alur kerja dinyatakan sebagai [komponen](https://www.kubeflow.org/docs/pipelines/overview/concepts/component/) Pipeline Kubeflow, yang merupakan modul. AWS SDK untuk Python (Boto3) 

Untuk informasi selengkapnya tentang Pipelines Kubeflow, lihat dokumentasi Pipelines [Kubeflow](https://www.kubeflow.org/docs/pipelines/). 

## Apa saja komponen Pipeline Kubeflow?
<a name="kubeflow-pipeline-components"></a>

Komponen Pipeline Kubeflow adalah sekumpulan kode yang digunakan untuk mengeksekusi satu langkah dari pipeline Kubeflow. Komponen diwakili oleh modul Python yang dibangun ke dalam gambar Docker. Ketika pipeline berjalan, container komponen akan dipakai pada salah satu node worker di klaster Kubernetes yang menjalankan Kubeflow, dan logika Anda dieksekusi. Komponen pipeline dapat membaca output dari komponen sebelumnya dan membuat output yang dapat dikonsumsi oleh komponen berikutnya dalam pipeline. Komponen-komponen ini membuatnya cepat dan mudah untuk menulis pipeline untuk lingkungan eksperimen dan produksi tanpa harus berinteraksi dengan infrastruktur Kubernetes yang mendasarinya.

Anda dapat menggunakan Komponen SageMaker AI di pipeline Kubeflow Anda. Daripada merangkum logika Anda dalam wadah khusus, Anda cukup memuat komponen dan mendeskripsikan pipeline Anda menggunakan Kubeflow Pipelines SDK. Saat pipeline berjalan, instruksi Anda diterjemahkan ke dalam pekerjaan atau penerapan SageMaker AI. Beban kerja kemudian berjalan pada infrastruktur SageMaker AI yang dikelola sepenuhnya. 

## Mengapa menggunakan Komponen SageMaker AI untuk Pipelines Kubeflow?
<a name="why-use-sagemaker-components"></a>

SageMaker Komponen AI untuk Pipelines Kubeflow menawarkan alternatif untuk meluncurkan pekerjaan intensif komputasi Anda dari AI. SageMaker Komponen mengintegrasikan SageMaker AI dengan portabilitas dan orkestrasi Pipelines Kubeflow. Menggunakan Komponen SageMaker AI untuk Pipelines Kubeflow, Anda dapat membuat dan memantau sumber daya SageMaker AI Anda sebagai bagian dari alur kerja Pipelines Kubeflow. Setiap pekerjaan di pipeline Anda berjalan pada SageMaker AI, bukan klaster Kubernetes lokal yang memungkinkan Anda memanfaatkan fitur SageMaker AI utama seperti pelabelan data, penyetelan hiperparameter skala besar, dan pekerjaan pelatihan terdistribusi, atau penerapan model aman dan skalabel sekali klik. Parameter pekerjaan, status, log, dan output dari SageMaker AI masih dapat diakses dari UI Pipelines Kubeflow. 

Komponen SageMaker AI mengintegrasikan fitur SageMaker AI utama ke dalam alur kerja ML Anda mulai dari menyiapkan data, membangun, melatih, dan menerapkan model ML. Anda dapat membuat Pipeline Kubeflow yang dibangun seluruhnya menggunakan komponen-komponen ini, atau mengintegrasikan komponen individual ke dalam alur kerja Anda sesuai kebutuhan. Komponen tersedia dalam satu atau dua versi. Setiap versi komponen memanfaatkan backend yang berbeda. Untuk informasi lebih lanjut tentang versi tersebut, lihat[SageMaker Komponen AI untuk versi Pipelines Kubeflow](#sagemaker-components-versions).

Tidak ada biaya tambahan untuk menggunakan Komponen SageMaker AI untuk Pipelines Kubeflow. Anda dikenakan biaya untuk sumber daya SageMaker AI apa pun yang Anda gunakan melalui komponen ini.

## SageMaker Komponen AI untuk versi Pipelines Kubeflow
<a name="sagemaker-components-versions"></a>

SageMaker Komponen AI untuk Pipelines Kubeflow hadir dalam dua versi. Setiap versi memanfaatkan backend yang berbeda untuk membuat dan mengelola sumber daya di AI. SageMaker 
+ Komponen SageMaker AI untuk Kubeflow Pipelines versi 1 (v1.x atau lebih rendah) menggunakan **[Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html)** () sebagai backend.AWS SDK untuk Python (Boto3)
+ [Versi 2 (v2.0.0-alpha2 ke atas) Komponen SageMaker AI untuk Pipelines Kubeflow menggunakan Operator AI untuk Kubernetes (ACK). SageMaker ](https://github.com/aws-controllers-k8s/sagemaker-controller) 

  AWS memperkenalkan [ACK](https://aws-controllers-k8s.github.io/community/) untuk memfasilitasi cara asli Kubernetes dalam mengelola sumber daya Cloud. AWS ACK mencakup satu set pengontrol AWS khusus layanan, salah satunya adalah pengontrol AI. SageMaker Pengontrol SageMaker AI memudahkan pengembang pembelajaran mesin dan ilmuwan data menggunakan Kubernetes sebagai pesawat kontrol mereka untuk melatih, menyetel, dan menerapkan model pembelajaran mesin (ML) di AI. SageMaker Untuk informasi selengkapnya, lihat [Operator SageMaker AI untuk Kubernetes](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/) 

Kedua versi Komponen SageMaker AI untuk Pipelines Kubeflow didukung. Namun, versi 2 memberikan beberapa keuntungan tambahan. Secara khusus, ia menawarkan: 

1. Pengalaman yang konsisten untuk mengelola sumber daya SageMaker AI Anda dari aplikasi apa pun; apakah Anda menggunakan pipeline Kubeflow, atau Kubernetes CLI (`kubectl`) atau aplikasi Kubeflow lainnya seperti Notebook. 

1. Fleksibilitas untuk mengelola dan memantau sumber daya SageMaker AI Anda di luar alur kerja pipeline Kubeflow. 

1. Tidak ada waktu penyiapan untuk menggunakan komponen SageMaker AI jika Anda menerapkan [Kubeflow](https://awslabs.github.io/kubeflow-manifests/docs/about/) penuh saat AWS rilis karena Operator SageMaker AI adalah bagian dari penerapannya. 

## Daftar Komponen SageMaker AI untuk Pipelines Kubeflow
<a name="sagemaker-components-list"></a>

Berikut ini adalah daftar semua Komponen SageMaker AI untuk Pipelines Kubeflow dan versinya yang tersedia. Atau, Anda dapat menemukan semua [Komponen SageMaker AI untuk Pipelines Kubeflow](https://github.com/kubeflow/pipelines/tree/master/components/aws/sagemaker#versioning) di. GitHub

**catatan**  
Kami mendorong pengguna untuk menggunakan Versi 2 dari komponen SageMaker AI di mana pun tersedia.

### Komponen Ground Truth
<a name="ground-truth-components"></a>
+ **Ground Truth**

  Komponen Ground Truth memungkinkan Anda mengirimkan pekerjaan pelabelan SageMaker AI Ground Truth langsung dari alur kerja Pipelines Kubeflow.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)
+ **Tim kerja**

  Komponen Workteam memungkinkan Anda membuat pekerjaan tim kerja pribadi SageMaker AI langsung dari alur kerja Kubeflow Pipelines.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)

### Komponen pemrosesan data
<a name="data-processing-components"></a>
+ **Pengolahan**

  Komponen Processing memungkinkan Anda mengirimkan pekerjaan pemrosesan ke SageMaker AI langsung dari alur kerja Pipelines Kubeflow.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)

### Komponen pelatihan
<a name="training-components"></a>
+ **Pelatihan**

  Komponen Pelatihan memungkinkan Anda mengirimkan pekerjaan SageMaker Pelatihan langsung dari alur kerja Pipelines Kubeflow.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)
+ **Optimasi Hyperparameter**

  Komponen Hyperparameter Optimization memungkinkan Anda mengirimkan pekerjaan tuning hyperparameter ke SageMaker AI langsung dari alur kerja Pipelines Kubeflow.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)

### Komponen inferensi
<a name="inference-components-kfp"></a>
+ **Menyebarkan Hosting**

  Komponen Hosting memungkinkan Anda untuk menerapkan model menggunakan layanan hosting SageMaker AI dari alur kerja Pipelines Kubeflow.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)
+ **Transformasi Batch**

  Komponen Batch Transform memungkinkan Anda menjalankan pekerjaan inferensi untuk seluruh kumpulan data di SageMaker AI dari alur kerja Kubeflow Pipelines.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)
+ **Model Monitor**

  Komponen Model Monitor memungkinkan Anda memantau kualitas model pembelajaran mesin SageMaker AI dalam produksi dari alur kerja Pipelines Kubeflow.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)

## Izin IAM
<a name="iam-permissions"></a>

Menyebarkan Pipelines Kubeflow dengan komponen SageMaker AI memerlukan tiga lapisan otentikasi berikut: 
+ Peran IAM yang memberikan akses node gateway (yang bisa berupa mesin lokal atau instans jarak jauh) ke cluster Amazon Elastic Kubernetes Service (Amazon EKS).

  Pengguna yang mengakses node gateway mengasumsikan peran ini untuk:
  + Buat klaster Amazon EKS dan instal KFP
  + Buat peran IAM
  + Buat bucket Amazon S3 untuk data input sampel Anda

  Peran tersebut memerlukan izin berikut:
  + CloudWatchLogsFullAccess 
  + [https://console.aws.amazon.com/iam/home?region=us-east-1#/policies/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAWSCloudFormationFullAccess](https://console.aws.amazon.com/iam/home?region=us-east-1#/policies/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAWSCloudFormationFullAccess) 
  + IAMFullAkses
  + AmazonS3 FullAccess
  + Amazon EC2 FullAccess
  + EKSAdminKebijakan Amazon (Buat kebijakan ini menggunakan skema dari Contoh Kebijakan Berbasis [Identitas Amazon EKS)](https://docs.aws.amazon.com/eks/latest/userguide/security_iam_id-based-policy-examples.html) 
+ Peran eksekusi IAM Kubernetes yang diasumsikan oleh Kubernetes pipeline pods (**kfp-example-pod-role**) atau Operator SageMaker AI untuk pod pengontrol Kubernetes untuk mengakses AI. SageMaker Peran ini digunakan untuk membuat dan memantau pekerjaan SageMaker AI dari Kubernetes.

  Peran tersebut membutuhkan izin berikut:
  + AmazonSageMakerFullAccess 

  Anda dapat membatasi izin ke KFP dan pod pengontrol dengan membuat dan melampirkan kebijakan kustom Anda sendiri.
+ **Peran eksekusi SageMaker AI IAM yang diasumsikan oleh pekerjaan SageMaker AI untuk mengakses AWS sumber daya seperti Amazon S3 atau Amazon ECR kfp-example-sagemaker-execution (-role).**

  SageMaker Pekerjaan AI menggunakan peran ini untuk:
  + Akses sumber daya SageMaker AI
  + Masukan Data dari Amazon S3
  + Simpan model keluaran Anda ke Amazon S3

  Peran tersebut memerlukan izin berikut:
  + AmazonSageMakerFullAccess 
  + AmazonS3 FullAccess 

## Mengonversi saluran pipa untuk menggunakan AI SageMaker
<a name="converting-pipelines-to-use-amazon-sagemaker"></a>

[Anda dapat mengonversi pipeline yang ada untuk menggunakan SageMaker AI dengan mem-porting [kontainer pemrosesan Python generik dan wadah pelatihan](https://docs.aws.amazon.com/sagemaker/latest/dg/amazon-sagemaker-containers.html) Anda.](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo.html) Jika Anda menggunakan SageMaker AI untuk inferensi, Anda juga perlu melampirkan izin IAM ke cluster Anda dan mengonversi artefak menjadi model.

# Instal Pipeline Kubeflow
<a name="kubernetes-sagemaker-components-install"></a>

[Kubeflow Pipelines (KFP)](https://www.kubeflow.org/docs/components/pipelines/v2/introduction/) adalah komponen orkestrasi pipa dari Kubeflow.

Anda dapat menerapkan Pipelines Kubeflow (KFP) di Amazon Elastic Kubernetes Service (Amazon EKS) yang sudah ada atau membuat cluster Amazon EKS baru. Gunakan node gateway untuk berinteraksi dengan cluster Anda. Node gateway dapat berupa mesin lokal Anda atau instans Amazon EC2.

Bagian berikut memandu Anda melalui langkah-langkah untuk mengatur dan mengonfigurasi sumber daya ini.

**Topics**
+ [Pilih opsi instalasi](#choose-install-option)
+ [Konfigurasikan izin pipeline Anda untuk mengakses AI SageMaker](#configure-permissions-for-pipeline)
+ [Akses UI KFP (Dasbor Kubeflow)](#access-the-kfp-ui)

## Pilih opsi instalasi
<a name="choose-install-option"></a>

Pipelines Kubeflow tersedia sebagai komponen inti dari distribusi penuh Kubeflow pada AWS atau sebagai instalasi mandiri.

Pilih opsi yang berlaku untuk kasus penggunaan Anda:

1. [Kubeflow Penuh pada Deployment AWS](#full-kubeflow-deployment)

   [Untuk menggunakan komponen Kubeflow lainnya selain Pipelines Kubeflow, pilih distribusi penuh AWS penerapan Kubeflow.](https://awslabs.github.io/kubeflow-manifests) 

1. [Penyebaran Pipa Kubeflow Mandiri](#kubeflow-pipelines-standalone)

   Untuk menggunakan Pipelines Kubeflow tanpa komponen lain dari Kubeflow, instal pipeline Kubeflow secara mandiri. 

### Kubeflow Penuh pada Deployment AWS
<a name="full-kubeflow-deployment"></a>

Untuk menginstal rilis lengkap Kubeflow aktif AWS, pilih opsi penyebaran vanilla dari [Kubeflow pada panduan penerapan atau opsi AWS penerapan](https://awslabs.github.io/kubeflow-manifests/docs/deployment/) lainnya yang mendukung integrasi dengan berbagai layanan ( AWS Amazon S3, Amazon RDS, Amazon Cognito).

### Penyebaran Pipa Kubeflow Mandiri
<a name="kubeflow-pipelines-standalone"></a>

Bagian ini mengasumsikan bahwa pengguna Anda memiliki izin untuk membuat peran dan menentukan kebijakan untuk peran tersebut.

#### Siapkan node gateway
<a name="set-up-a-gateway-node"></a>

Anda dapat menggunakan mesin lokal atau instans Amazon EC2 sebagai node gateway Anda. Node gateway digunakan untuk membuat klaster Amazon EKS dan mengakses UI Kubeflow Pipelines. 

Selesaikan langkah-langkah berikut untuk mengatur node Anda. 

1. 

**Buat node gateway.**

   [Anda dapat menggunakan instans Amazon EC2 yang sudah ada atau membuat instance baru dengan versi DLAMI Ubuntu 18.04 terbaru menggunakan langkah-langkah dalam Meluncurkan dan Mengonfigurasi DLAMI.](https://docs.aws.amazon.com/dlami/latest/devguide/launch-config.html)

1. 

**Buat peran IAM untuk memberikan akses node gateway Anda ke AWS sumber daya.**

   Buat peran IAM dengan izin ke sumber daya berikut: CloudWatch,, IAM CloudFormation, Amazon EC2, Amazon S3, Amazon EKS.

   Lampirkan kebijakan berikut ke peran IAM:
   + CloudWatchLogsFullAccess 
   + [https://console.aws.amazon.com/iam/home?region=us-east-1#/policies/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAWSCloudFormationFullAccess](https://console.aws.amazon.com/iam/home?region=us-east-1#/policies/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAWSCloudFormationFullAccess)
   + IAMFullAkses 
   + AmazonS3 FullAccess 
   + Amazon EC2 FullAccess 
   + EKSAdminKebijakan Amazon (Buat kebijakan ini menggunakan skema dari Contoh Kebijakan Berbasis [Identitas Amazon EKS)](https://docs.aws.amazon.com/eks/latest/userguide/security_iam_id-based-policy-examples.html) 

   Untuk informasi tentang menambahkan izin IAM ke peran IAM, lihat [Menambahkan dan menghapus izin identitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

1. 

**Instal alat dan klien berikut**

   Instal dan konfigurasikan alat dan sumber daya berikut di node gateway Anda untuk mengakses kluster Amazon EKS dan Antarmuka Pengguna KFP (UI). 
   + [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html): Alat baris perintah untuk bekerja dengan AWS layanan. Untuk informasi AWS CLI konfigurasi, lihat [Mengonfigurasi. AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 
   + [aws-iam-authenticator](https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html)versi 0.1.31 dan yang lebih baru: Alat untuk menggunakan kredensil AWS IAM untuk mengautentikasi ke klaster Kubernetes.
   + [https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html)versi di atas 0,15: Alat baris perintah untuk bekerja dengan cluster Amazon EKS.
   + [https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl): Alat baris perintah untuk bekerja dengan cluster Kubernetes. Versi harus cocok dengan versi Kubernetes Anda dalam satu versi minor.
   + [https://aws.amazon.com/sdk-for-python/](https://aws.amazon.com/sdk-for-python/).

     ```
     pip install boto3
     ```

#### Atur klaster Amazon EKS
<a name="set-up-anamazon-eks-cluster"></a>

1. Jika Anda tidak memiliki kluster Amazon EKS yang ada, jalankan langkah-langkah berikut dari baris perintah node gateway Anda, lewati langkah ini jika tidak.

   1. Jalankan perintah berikut untuk membuat cluster Amazon EKS dengan versi 1.17 atau lebih tinggi. Ganti `<clustername>` dengan nama apa pun untuk cluster Anda. 

      ```
      eksctl create cluster --name <clustername> --region us-east-1 --auto-kubeconfig --timeout=50m --managed --nodes=1
      ```

   1. Saat pembuatan klaster selesai, pastikan Anda memiliki akses ke klaster dengan mencantumkan node cluster. 

      ```
      kubectl get nodes
      ```

1. Pastikan bahwa `kubectl` konteks saat ini menunjuk ke cluster Anda dengan perintah berikut. Konteks saat ini ditandai dengan tanda bintang (\$1) dalam output.

   ```
   kubectl config get-contexts
   
   CURRENT NAME     CLUSTER
   *   <username>@<clustername>.us-east-1.eksctl.io   <clustername>.us-east-1.eksctl.io
   ```

1. Jika cluster yang diinginkan tidak dikonfigurasi sebagai default Anda saat ini, perbarui default dengan perintah berikut. 

   ```
   aws eks update-kubeconfig --name <clustername> --region us-east-1
   ```

#### Instal Pipeline Kubeflow
<a name="install-kubeflow-pipelines"></a>

Jalankan langkah-langkah berikut dari terminal node gateway Anda untuk menginstal Pipelines Kubeflow di cluster Anda.

1. Instal semua komponen [cert-manager](https://cert-manager.io/docs/installation/kubectl/).

   ```
   kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.9.1/cert-manager.yaml
   ```

1. Instal Pipelines Kubeflow.

   ```
   export PIPELINE_VERSION=2.0.0-alpha.5
   kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/env/cert-manager/cluster-scoped-resources?ref=$KFP_VERSION"
   kubectl wait --for condition=established --timeout=60s crd/applications.app.k8s.io
   kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/env/cert-manager/dev?ref=$KFP_VERSION"
   ```

1. Pastikan layanan Pipelines Kubeflow dan sumber daya terkait lainnya berjalan.

   ```
   kubectl -n kubeflow get all | grep pipeline
   ```

   Output Anda akan terlihat seperti berikut ini.

   ```
   pod/ml-pipeline-6b88c67994-kdtjv                      1/1     Running            0          2d
   pod/ml-pipeline-persistenceagent-64d74dfdbf-66stk     1/1     Running            0          2d
   pod/ml-pipeline-scheduledworkflow-65bdf46db7-5x9qj    1/1     Running            0          2d
   pod/ml-pipeline-ui-66cc4cffb6-cmsdb                   1/1     Running            0          2d
   pod/ml-pipeline-viewer-crd-6db65ccc4-wqlzj            1/1     Running            0          2d
   pod/ml-pipeline-visualizationserver-9c47576f4-bqmx4   1/1     Running            0          2d
   service/ml-pipeline                       ClusterIP   10.100.170.170   <none>        8888/TCP,8887/TCP   2d
   service/ml-pipeline-ui                    ClusterIP   10.100.38.71     <none>        80/TCP              2d
   service/ml-pipeline-visualizationserver   ClusterIP   10.100.61.47     <none>        8888/TCP            2d
   deployment.apps/ml-pipeline                       1/1     1            1           2d
   deployment.apps/ml-pipeline-persistenceagent      1/1     1            1           2d
   deployment.apps/ml-pipeline-scheduledworkflow     1/1     1            1           2d
   deployment.apps/ml-pipeline-ui                    1/1     1            1           2d
   deployment.apps/ml-pipeline-viewer-crd            1/1     1            1           2d
   deployment.apps/ml-pipeline-visualizationserver   1/1     1            1           2d
   replicaset.apps/ml-pipeline-6b88c67994                      1         1         1       2d
   replicaset.apps/ml-pipeline-persistenceagent-64d74dfdbf     1         1         1       2d
   replicaset.apps/ml-pipeline-scheduledworkflow-65bdf46db7    1         1         1       2d
   replicaset.apps/ml-pipeline-ui-66cc4cffb6                   1         1         1       2d
   replicaset.apps/ml-pipeline-viewer-crd-6db65ccc4            1         1         1       2d
   replicaset.apps/ml-pipeline-visualizationserver-9c47576f4   1         1         1       2d
   ```

## Konfigurasikan izin pipeline Anda untuk mengakses AI SageMaker
<a name="configure-permissions-for-pipeline"></a>

Di bagian ini, Anda membuat peran eksekusi IAM yang memberikan akses pod Kubeflow Pipeline ke layanan AI. SageMaker 

### Konfigurasi untuk komponen SageMaker AI versi 2
<a name="permissions-for-SM-v2"></a>

Untuk menjalankan SageMaker AI Components versi 2 untuk Kubeflow Pipelines, Anda perlu menginstal [Operator SageMaker AI untuk Kubernetes](https://github.com/aws-controllers-k8s/sagemaker-controller) dan mengonfigurasi Role-Based Access Control (RBAC) yang memungkinkan pod Kubeflow Pipelines membuat sumber daya kustom AI di cluster Kubernetes Anda. SageMaker 

**penting**  
Ikuti bagian ini jika Anda menggunakan penerapan mandiri pipeline Kubeflow. Jika Anda menggunakan AWS distribusi Kubeflow versi 1.6.0-aws-b1.0.0 atau lebih tinggi, komponen AI versi 2 sudah disiapkan. SageMaker 

1. Instal Operator SageMaker AI untuk Kubernetes untuk menggunakan komponen SageMaker AI versi 2.

   Ikuti bagian *Pengaturan* [Machine Learning with ACK SageMaker AI Controller tutorial](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup).

1. Konfigurasikan izin RBAC untuk peran eksekusi (akun layanan) yang digunakan oleh pod Kubeflow Pipelines. Dalam penerapan mandiri Kubeflow Pipelines, pipeline run dijalankan di `kubeflow` namespace menggunakan akun layanan. `pipeline-runner`

   1. Buat [RoleBinding](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#rolebinding-example)yang memberikan izin akun layanan untuk mengelola sumber daya khusus SageMaker AI.

      ```
      cat > manage_sagemaker_cr.yaml <<EOF
      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
      name: manage-sagemaker-cr  
      namespace: kubeflow
      subjects:
      - kind: ServiceAccount
      name: pipeline-runner
      namespace: kubeflow
      roleRef:
      kind: ClusterRole
      name: ack-sagemaker-controller 
      apiGroup: rbac.authorization.k8s.io
      EOF
      ```

      ```
      kubectl apply -f manage_sagemaker_cr.yaml
      ```

   1. Pastikan rolebinding dibuat dengan menjalankan:

      ```
      kubectl get rolebinding manage-sagemaker-cr -n kubeflow -o yaml
      ```

### Konfigurasi untuk komponen SageMaker AI versi 1
<a name="permissions-for-SM-v1"></a>

Untuk menjalankan SageMaker AI Components versi 1 untuk Pipelines Kubeflow, pod Pipeline Kubeflow memerlukan akses ke AI. SageMaker 

**penting**  
Ikuti bagian ini apakah Anda menggunakan Kubeflow penuh saat AWS penerapan atau Kubeflow Pilepines mandiri.

Untuk membuat peran eksekusi IAM yang memberikan akses pod pipeline Kubeflow ke SageMaker AI, ikuti langkah-langkah berikut:

1. Ekspor nama cluster Anda (misalnya, *my-cluster-name*) dan wilayah cluster (misalnya, *us-east-1*).

   ```
   export CLUSTER_NAME=my-cluster-name
   export CLUSTER_REGION=us-east-1
   ```

1. Ekspor namespace dan nama akun layanan sesuai dengan instalasi Anda.
   + Untuk Kubeflow lengkap saat AWS instalasi, ekspor profil Anda `namespace` (mis., *kubeflow-user-example-com*) dan *default-editor* sebagai akun layanan.

     ```
     export NAMESPACE=kubeflow-user-example-com
     export KUBEFLOW_PIPELINE_POD_SERVICE_ACCOUNT=default-editor
     ```
   + Untuk penerapan Pipelines mandiri, ekspor *kubeflow sebagai `namespace` dan *pipeline-runner** sebagai akun layanan.

     ```
     export NAMESPACE=kubeflow
     export KUBEFLOW_PIPELINE_POD_SERVICE_ACCOUNT=pipeline-runner
     ```

1. Buat [penyedia IAM OIDC untuk cluster Amazon EKS dengan perintah](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) berikut.

   ```
   eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \
               --region ${CLUSTER_REGION} --approve
   ```

1. Buat peran eksekusi IAM untuk pod KFP untuk mengakses AWS layanan (SageMaker AI,). CloudWatch

   ```
   eksctl create iamserviceaccount \
   --name ${KUBEFLOW_PIPELINE_POD_SERVICE_ACCOUNT} \
   --namespace ${NAMESPACE} --cluster ${CLUSTER_NAME} \
   --region ${CLUSTER_REGION} \
   --attach-policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess \
   --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess \
   --override-existing-serviceaccounts \
   --approve
   ```

[Setelah izin pipeline Anda dikonfigurasi untuk mengakses Komponen SageMaker AI versi 1, ikuti panduan komponen SageMaker AI untuk pipeline Kubeflow pada dokumentasi Kubeflow. AWS](https://awslabs.github.io/kubeflow-manifests/docs/amazon-sagemaker-integration/sagemaker-components-for-kubeflow-pipelines/)

## Akses UI KFP (Dasbor Kubeflow)
<a name="access-the-kfp-ui"></a>

Kubeflow Pipelines UI digunakan untuk mengelola dan melacak eksperimen, pekerjaan, dan berjalan di klaster Anda. Untuk petunjuk tentang cara mengakses UI Pipelines Kubeflow dari node gateway Anda, ikuti langkah-langkah yang berlaku untuk opsi penerapan Anda di bagian ini.

### Kubeflow Penuh pada Deployment AWS
<a name="access-kfp-ui-full-kubeflow-deployment"></a>

Ikuti petunjuk di [AWS situs web Kubeflow](https://awslabs.github.io/kubeflow-manifests/docs/deployment/connect-kubeflow-dashboard/) untuk terhubung ke dasbor Kubeflow dan menavigasi ke tab pipelines.

### Penyebaran Pipa Kubeflow Mandiri
<a name="access-kfp-ui-standalone-kubeflow-pipelines-deployment"></a>

Gunakan port forwarding untuk mengakses Kubeflow Pipelines UI dari node gateway Anda dengan mengikuti langkah-langkah tersebut.

#### Mengatur penerusan port ke layanan KFP UI
<a name="set-up-port-forwarding-to-the-kfp-ui-service"></a>

Jalankan perintah berikut dari baris perintah node gateway Anda.

1. Verifikasi bahwa layanan UI KFP berjalan menggunakan perintah berikut.

   ```
   kubectl -n kubeflow get service ml-pipeline-ui
   
   NAME             TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
   ml-pipeline-ui   ClusterIP   10.100.38.71   <none>        80/TCP    2d22h
   ```

1. Jalankan perintah berikut untuk mengatur penerusan port ke layanan UI KFP. Ini meneruskan UI KFP ke port 8080 pada node gateway Anda dan memungkinkan Anda untuk mengakses UI KFP dari browser Anda. 

   ```
   kubectl port-forward -n kubeflow service/ml-pipeline-ui 8080:80
   ```

   Port maju dari mesin jarak jauh Anda turun jika tidak ada aktivitas. Jalankan perintah ini lagi jika dasbor Anda tidak bisa mendapatkan log atau pembaruan. Jika perintah mengembalikan kesalahan, pastikan tidak ada proses yang sudah berjalan pada port yang Anda coba gunakan. 

#### Akses layanan UI KFP
<a name="set-up-port-forwarding-to-the-kfp-ui-service-access"></a>

Metode Anda mengakses UI KFP bergantung pada jenis node gateway Anda.
+ Mesin lokal sebagai node gateway:

  1. Akses dasbor di browser Anda sebagai berikut: 

     ```
     http://localhost:8080
     ```

  1. Pilih **Pipelines** untuk mengakses UI pipelines. 
+ Instans Amazon EC2 sebagai node gateway:

  1. Anda perlu menyiapkan terowongan SSH di instans Amazon EC2 Anda untuk mengakses dasbor Kubeflow dari browser mesin lokal Anda. 

     Dari sesi terminal baru di mesin lokal Anda, jalankan yang berikut ini. Ganti `<public-DNS-of-gateway-node>` dengan alamat IP instans Anda yang ditemukan di konsol Amazon EC2. Anda juga dapat menggunakan DNS publik. Ganti `<path_to_key>` dengan jalur ke kunci pem yang digunakan untuk mengakses node gateway. 

     ```
     public_DNS_address=<public-DNS-of-gateway-node>
     key=<path_to_key>
     
     on Ubuntu:
     ssh -i ${key} -L 9000:localhost:8080 ubuntu@${public_DNS_address}
     
     or on Amazon Linux:
     ssh -i ${key} -L 9000:localhost:8080 ec2-user@${public_DNS_address}
     ```

  1. Akses dasbor di browser Anda. 

     ```
     http://localhost:9000
     ```

  1. Pilih **Pipelines** untuk mengakses UI KFP. 

#### (Opsional) Berikan instans notebook SageMaker AI akses ke Amazon EKS, dan jalankan pipeline KFP dari notebook Anda.
<a name="add-access-to-additional-iam-users-or-roles"></a>

Instans SageMaker notebook adalah instans komputasi Amazon EC2 yang dikelola sepenuhnya yang menjalankan Aplikasi Notebook Jupyter. Anda dapat menggunakan instance notebook untuk membuat dan mengelola notebook Jupyter lalu menentukan, mengkompilasi, menyebarkan, dan menjalankan pipeline KFP Anda menggunakan atau KFP CLI. AWS SDK untuk Python (Boto3) 

1. Ikuti langkah-langkah dalam [Membuat Instance SageMaker Notebook](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-setup-working-env.html) untuk membuat instance notebook, lalu lampirkan `S3FullAccess` kebijakan tersebut ke peran eksekusi IAM-nya.

1. Dari baris perintah node gateway Anda, jalankan perintah berikut untuk mengambil ARN peran IAM dari instance notebook yang Anda buat. Ganti `<instance-name>` dengan nama instance Anda.

   ```
   aws sagemaker describe-notebook-instance --notebook-instance-name <instance-name> --region <region> --output text --query 'RoleArn'
   ```

   Perintah ini menampilkan peran IAM ARN dalam format. `arn:aws:iam::<account-id>:role/<role-name>` Perhatikan ARN ini.

1. Jalankan perintah ini untuk melampirkan kebijakan berikut (AmazonSageMakerFullAccess, Amazon EKSWorkerNodePolicy, AmazonS3FullAccess) ke peran IAM ini. Ganti `<role-name>` dengan `<role-name>` di ARN Anda. 

   ```
   aws iam attach-role-policy --role-name <role-name> --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
   aws iam attach-role-policy --role-name <role-name> --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
   aws iam attach-role-policy --role-name <role-name> --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
   ```

1. Cluster Amazon EKS menggunakan peran IAM untuk mengontrol akses ke cluster. Aturan diimplementasikan dalam peta konfigurasi bernama`aws-auth`. `eksctl`menyediakan perintah untuk membaca dan mengedit peta `aws-auth` konfigurasi. Hanya pengguna yang memiliki akses ke cluster yang dapat mengedit peta konfigurasi ini.

   `system:masters`adalah salah satu grup pengguna default dengan izin pengguna super ke cluster. Tambahkan pengguna Anda ke grup ini atau buat grup dengan izin yang lebih ketat.

1. Ikat peran ke cluster Anda dengan menjalankan perintah berikut. Ganti `<IAM-Role-arn>` dengan ARN dari peran IAM. `<your_username>`dapat berupa nama pengguna yang unik.

   ```
   eksctl create iamidentitymapping \
   --cluster <cluster-name> \
   --arn <IAM-Role-arn> \
   --group system:masters \
   --username <your-username> \
   --region <region>
   ```

1. Buka notebook Jupyter pada instance SageMaker AI Anda dan jalankan perintah berikut untuk memastikan bahwa ia memiliki akses ke cluster.

   ```
   aws eks --region <region> update-kubeconfig --name <cluster-name>
   kubectl -n kubeflow get all | grep pipeline
   ```

# Gunakan komponen SageMaker AI
<a name="kubernetes-sagemaker-components-tutorials"></a>

Dalam tutorial ini, Anda menjalankan pipeline menggunakan SageMaker AI Components for Kubeflow Pipelines untuk melatih model klasifikasi menggunakan Kmeans dengan dataset MNIST pada AI. SageMaker Alur kerja menggunakan Pipelines Kubeflow sebagai orkestrator dan SageMaker AI untuk mengeksekusi setiap langkah alur kerja. Contoh diambil dari [contoh SageMaker AI](https://github.com/aws/amazon-sagemaker-examples/blob/8279abfcc78bad091608a4a7135e50a0bd0ec8bb/sagemaker-python-sdk/1P_kmeans_highlevel/kmeans_mnist.ipynb) yang ada dan dimodifikasi untuk bekerja dengan Komponen SageMaker AI untuk Pipelines Kubeflow.

Anda dapat menentukan pipeline Anda dengan Python menggunakan AWS SDK untuk Python (Boto3) kemudian menggunakan dasbor KFP, KFP CLI, atau Boto3 untuk mengkompilasi, menyebarkan, dan menjalankan alur kerja Anda. Kode lengkap untuk contoh pipeline klasifikasi MNIST tersedia di repositori [Kubeflow](https://github.com/kubeflow/pipelines/tree/master/samples/contrib/aws-samples/mnist-kmeans-sagemaker#mnist-classification-with-kmeans) Github. Untuk menggunakannya, kloning file Python ke node gateway Anda.

Anda dapat menemukan contoh [ SageMaker AI Kubeflow Pipelines](https://github.com/kubeflow/pipelines/tree/master/samples/contrib/aws-samples) tambahan di. GitHub Untuk informasi tentang komponen yang digunakan, lihat [ GitHub repositori KubeFlow Pipelines](https://github.com/kubeflow/pipelines/tree/master/components/aws/sagemaker).

Untuk menjalankan contoh pipeline klasifikasi, buat peran eksekusi SageMaker AI IAM yang memberikan izin kepada pekerjaan pelatihan Anda untuk mengakses AWS sumber daya, lalu lanjutkan dengan langkah-langkah yang sesuai dengan opsi penerapan Anda.

## Buat peran eksekusi SageMaker AI
<a name="create-an-amazonsagemaker-execution-role"></a>

Peran `kfp-example-sagemaker-execution-role` IAM adalah peran runtime yang diasumsikan oleh pekerjaan SageMaker AI untuk mengakses AWS sumber daya. Dalam perintah berikut, Anda membuat peran eksekusi IAM bernama`kfp-example-sagemaker-execution-role`, melampirkan dua kebijakan terkelola (AmazonSageMakerFullAccess, AmazonS3FullAccess), dan membuat hubungan kepercayaan dengan SageMaker AI untuk memberikan akses pekerjaan SageMaker AI ke sumber daya tersebut. AWS 

Anda memberikan peran ini sebagai parameter input saat menjalankan pipeline.

Jalankan perintah berikut untuk membuat peran. Perhatikan ARN yang dikembalikan dalam output Anda.

```
SAGEMAKER_EXECUTION_ROLE_NAME=kfp-example-sagemaker-execution-role

TRUST="{ \"Version\": \"2012-10-17		 	 	 \", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"sagemaker.amazonaws.com\" }, \"Action\": \"sts:AssumeRole\" } ] }"
aws iam create-role --role-name ${SAGEMAKER_EXECUTION_ROLE_NAME} --assume-role-policy-document "$TRUST"
aws iam attach-role-policy --role-name ${SAGEMAKER_EXECUTION_ROLE_NAME} --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
aws iam attach-role-policy --role-name ${SAGEMAKER_EXECUTION_ROLE_NAME} --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess

aws iam get-role --role-name ${SAGEMAKER_EXECUTION_ROLE_NAME} --output text --query 'Role.Arn'
```

## Kubeflow Penuh pada Deployment AWS
<a name="run-pipelines-on-full-kubeflow-deployment"></a>

Ikuti instruksi [tutorial Pipeline SageMaker Pelatihan untuk Klasifikasi MNIST dengan](https://awslabs.github.io/kubeflow-manifests/docs/amazon-sagemaker-integration/sagemaker-components-for-kubeflow-pipelines/) K-Means.

## Penyebaran Pipa Kubeflow Mandiri
<a name="run-pipelines-on-standalone-kubeflow-pipelines-deployment"></a>

### Siapkan kumpulan data
<a name="prepare-datasets"></a>

Untuk menjalankan pipeline, Anda perlu mengunggah skrip pra-pemrosesan ekstraksi data ke bucket Amazon S3. Bucket ini dan semua sumber daya untuk contoh ini harus berada di `us-east-1` wilayah tersebut. Untuk informasi tentang membuat bucket, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html).

Dari `mnist-kmeans-sagemaker` folder repositori Kubeflow yang Anda kloning di node gateway, jalankan perintah berikut untuk mengunggah file ke bucket Amazon S3 `kmeans_preprocessing.py` Anda. Ubah `<bucket-name>` ke nama bucket Amazon S3 Anda.

```
aws s3 cp mnist-kmeans-sagemaker/kmeans_preprocessing.py s3://<bucket-name>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py
```

### Kompilasi dan terapkan pipeline Anda
<a name="compile-and-deploy-your-pipeline"></a>

Setelah mendefinisikan pipeline, Anda harus mengompilasinya ke representasi perantara sebelum Anda mengirimkannya ke layanan Pipelines Kubeflow di klaster Anda. Representasi perantara adalah spesifikasi alur kerja dalam bentuk file YAMAL yang dikompresi menjadi file tar.gz. Anda memerlukan SDK KFP untuk mengkompilasi pipeline Anda.

#### Instal KFP SDK
<a name="install-kfp-sdk"></a>

Jalankan yang berikut ini dari baris perintah node gateway Anda:

1. Instal SDK KFP mengikuti petunjuk dalam dokumentasi pipeline [Kubeflow](https://www.kubeflow.org/docs/pipelines/sdk/install-sdk/).

1. Verifikasi bahwa KFP SDK diinstal dengan perintah berikut:

   ```
   pip show kfp
   ```

1. Verifikasi bahwa `dsl-compile` telah diinstal dengan benar sebagai berikut:

   ```
   which dsl-compile
   ```

#### Kompilasi pipeline Anda
<a name="compile-your-pipeline"></a>

Anda memiliki tiga opsi untuk berinteraksi dengan Pipelines Kubeflow: KFP UI, KFP CLI, atau KFP SDK. Bagian berikut menggambarkan alur kerja menggunakan UI KFP dan CLI.

Selesaikan langkah-langkah berikut dari node gateway Anda.

1. Ubah file Python Anda dengan nama bucket Amazon S3 dan ARN peran IAM.

1. Gunakan `dsl-compile` perintah dari baris perintah untuk mengkompilasi pipeline Anda sebagai berikut. Ganti `<path-to-python-file>` dengan jalur ke pipeline Anda dan `<path-to-output>` dengan lokasi di mana Anda ingin file tar.gz Anda berada.

   ```
   dsl-compile --py <path-to-python-file> --output <path-to-output>
   ```

#### Unggah dan jalankan pipeline menggunakan KFP CLI
<a name="upload-and-run-the-pipeline-using-the-kfp-cli"></a>

Selesaikan langkah-langkah berikut dari baris perintah node gateway Anda. KFP mengatur proses pipa Anda sebagai eksperimen. Anda memiliki opsi untuk menentukan nama eksperimen. Jika Anda tidak menentukannya, proses akan terdaftar di bawah Eksperimen **default**.

1. Unggah pipeline Anda sebagai berikut:

   ```
   kfp pipeline upload --pipeline-name <pipeline-name> <path-to-output-tar.gz>
   ```

   Output Anda akan terlihat seperti berikut ini. Catat pipa`ID`.

   ```
   Pipeline 29c3ff21-49f5-4dfe-94f6-618c0e2420fe has been submitted
   
   Pipeline Details
   ------------------
   ID           29c3ff21-49f5-4dfe-94f6-618c0e2420fe
   Name         sm-pipeline
   Description
   Uploaded at  2020-04-30T20:22:39+00:00
   ...
   ...
   ```

1. Buat run menggunakan perintah berikut. Perintah KFP CLI run saat ini tidak mendukung menentukan parameter input saat membuat run. Anda perlu memperbarui parameter Anda di file AWS SDK untuk Python (Boto3) pipeline sebelum dikompilasi. Ganti `<experiment-name>` dan `<job-name>` dengan nama apa pun. Ganti `<pipeline-id>` dengan ID pipeline yang Anda kirimkan. Ganti `<your-role-arn>` dengan ARN dari. `kfp-example-pod-role` Ganti `<your-bucket-name>` dengan nama bucket Amazon S3 yang Anda buat. 

   ```
   kfp run submit --experiment-name <experiment-name> --run-name <job-name> --pipeline-id <pipeline-id> role_arn="<your-role-arn>" bucket_name="<your-bucket-name>"
   ```

   Anda juga dapat langsung mengirimkan run menggunakan paket pipeline yang dikompilasi yang dibuat sebagai output dari `dsl-compile` perintah.

   ```
   kfp run submit --experiment-name <experiment-name> --run-name <job-name> --package-file <path-to-output> role_arn="<your-role-arn>" bucket_name="<your-bucket-name>"
   ```

   Output Anda akan terlihat seperti berikut:

   ```
   Creating experiment aws.
   Run 95084a2c-f18d-4b77-a9da-eba00bf01e63 is submitted
   +--------------------------------------+--------+----------+---------------------------+
   | run id                               | name   | status   | created at                |
   +======================================+========+==========+===========================+
   | 95084a2c-f18d-4b77-a9da-eba00bf01e63 | sm-job |          | 2020-04-30T20:36:41+00:00 |
   +--------------------------------------+--------+----------+---------------------------+
   ```

1. Arahkan ke UI untuk memeriksa kemajuan pekerjaan.

#### Unggah dan jalankan pipeline menggunakan UI KFP
<a name="upload-and-run-the-pipeline-using-the-kfp-ui"></a>

1. Di panel kiri, pilih tab **Pipelines**. 

1. **Di sudut kanan atas, pilih \$1. UploadPipeline** 

1. Masukkan nama dan deskripsi pipa. 

1. Pilih **Unggah file** dan masukkan path ke file tar.gz yang Anda buat menggunakan CLI atau dengan. AWS SDK untuk Python (Boto3)

1. Di panel kiri, pilih tab **Pipelines**.

1. Temukan pipeline yang Anda buat.

1. Pilih **\$1 CreateRun**.

1. Masukkan parameter input Anda.

1. Pilih **Jalankan**.

### Jalankan prediksi
<a name="running-predictions"></a>

Setelah pipeline klasifikasi diterapkan, Anda dapat menjalankan prediksi klasifikasi terhadap titik akhir yang dibuat oleh komponen Deploy. Gunakan UI KFP untuk memeriksa artefak keluaran. `sagemaker-deploy-model-endpoint_name` Unduh file.tgz untuk mengekstrak nama titik akhir atau periksa konsol SageMaker AI di wilayah yang Anda gunakan.

#### Konfigurasikan izin untuk menjalankan prediksi
<a name="configure-permissions-to-run-predictions"></a>

Jika Anda ingin menjalankan prediksi dari node gateway Anda, lewati bagian ini.

**Untuk menggunakan mesin lain untuk menjalankan prediksi, tetapkan `sagemaker:InvokeEndpoint` izin ke peran IAM yang digunakan oleh mesin klien.**

1. Di node gateway Anda, jalankan yang berikut ini untuk membuat file kebijakan IAM:

   ```
   cat <<EoF > ./sagemaker-invoke.json
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:InvokeEndpoint"
               ],
               "Resource": "*"
           }
       ]
   }
   EoF
   ```

1. Lampirkan kebijakan ke peran IAM dari node klien.

   Jalankan perintah berikut. Ganti `<your-instance-IAM-role>` dengan nama peran IAM. Ganti `<path-to-sagemaker-invoke-json>` dengan jalur ke file kebijakan yang Anda buat.

   ```
   aws iam put-role-policy --role-name <your-instance-IAM-role> --policy-name sagemaker-invoke-for-worker --policy-document file://<path-to-sagemaker-invoke-json>
   ```

#### Jalankan prediksi
<a name="run-predictions"></a>

1. Buat AWS SDK untuk Python (Boto3) file dari mesin klien Anda bernama `mnist-predictions.py` dengan konten berikut. Ganti `ENDPOINT_NAME` variabelnya. Skrip memuat dataset MNIST, membuat CSV dari digit tersebut, lalu mengirimkan CSV ke titik akhir untuk prediksi dan mencetak hasilnya.

   ```
   import boto3
   import gzip
   import io
   import json
   import numpy
   import pickle
   
   ENDPOINT_NAME='<endpoint-name>'
   region = boto3.Session().region_name
   
   # S3 bucket where the original mnist data is downloaded and stored
   downloaded_data_bucket = f"jumpstart-cache-prod-{region}"
   downloaded_data_prefix = "1p-notebooks-datasets/mnist"
   
   # Download the dataset
   s3 = boto3.client("s3")
   s3.download_file(downloaded_data_bucket, f"{downloaded_data_prefix}/mnist.pkl.gz", "mnist.pkl.gz")
   
   # Load the dataset
   with gzip.open('mnist.pkl.gz', 'rb') as f:
       train_set, valid_set, test_set = pickle.load(f, encoding='latin1')
   
   # Simple function to create a csv from our numpy array
   def np2csv(arr):
       csv = io.BytesIO()
       numpy.savetxt(csv, arr, delimiter=',', fmt='%g')
       return csv.getvalue().decode().rstrip()
   
   runtime = boto3.Session(region).client('sagemaker-runtime')
   
   payload = np2csv(train_set[0][30:31])
   
   response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME,
                                      ContentType='text/csv',
                                      Body=payload)
   result = json.loads(response['Body'].read().decode())
   print(result)
   ```

1. Jalankan AWS SDK untuk Python (Boto3) file sebagai berikut:

   ```
   python mnist-predictions.py
   ```

### Lihat hasil dan log
<a name="view-results-and-logs"></a>

Saat pipeline berjalan, Anda dapat memilih komponen apa pun untuk memeriksa detail eksekusi, seperti input dan output. Ini mencantumkan nama-nama sumber daya yang dibuat.

Jika permintaan KFP berhasil diproses dan pekerjaan SageMaker AI dibuat, log komponen di UI KFP memberikan tautan ke pekerjaan yang dibuat di AI. SageMaker CloudWatch Log juga disediakan jika pekerjaan berhasil dibuat. 

Jika Anda menjalankan terlalu banyak pekerjaan pipeline pada klaster yang sama, Anda mungkin akan melihat pesan kesalahan yang menunjukkan bahwa Anda tidak memiliki cukup Pod yang tersedia. Untuk memperbaikinya, masuk ke node gateway Anda dan hapus pod yang dibuat oleh pipeline yang tidak Anda gunakan:

```
kubectl get pods -n kubeflow
kubectl delete pods -n kubeflow <name-of-pipeline-pod>
```

### Pembersihan
<a name="cleanup"></a>

Ketika Anda selesai dengan pipa Anda, Anda perlu membersihkan sumber daya Anda.

1. **Dari dasbor KFP, hentikan proses pipeline Anda jika tidak keluar dengan benar dengan memilih Terminate.**

1. Jika opsi **Terminate** tidak berfungsi, masuk ke node gateway Anda dan hentikan secara manual semua pod yang dibuat oleh pipeline Anda yang dijalankan sebagai berikut: 

   ```
   kubectl get pods -n kubeflow
   kubectl delete pods -n kubeflow <name-of-pipeline-pod>
   ```

1. Menggunakan AWS akun Anda, masuk ke layanan SageMaker AI. Hentikan semua pelatihan, transformasi batch, dan pekerjaan HPO secara manual. Hapus model, bucket data, dan titik akhir untuk menghindari biaya tambahan. Mengakhiri proses pipa tidak menghentikan pekerjaan di SageMaker AI.

# SageMaker Lowongan Notebook
<a name="notebook-auto-run"></a>

Anda dapat menggunakan Amazon SageMaker AI untuk membuat, melatih, dan menerapkan model pembelajaran mesin secara interaktif dari notebook Jupyter Anda di lingkungan apa pun. JupyterLab Namun, ada berbagai skenario di mana Anda mungkin ingin menjalankan notebook Anda sebagai pekerjaan terjadwal yang tidak interaktif. Misalnya, Anda mungkin ingin membuat laporan audit reguler yang menganalisis semua pekerjaan pelatihan yang dijalankan selama jangka waktu tertentu dan menganalisis nilai bisnis dari penerapan model tersebut ke dalam produksi. Atau Anda mungkin ingin meningkatkan pekerjaan rekayasa fitur setelah menguji logika transformasi data pada sebagian kecil data. Kasus penggunaan umum lainnya meliputi:
+ Penjadwalan pekerjaan untuk pemantauan drift model
+ Menjelajahi ruang parameter untuk model yang lebih baik

Dalam skenario ini, Anda dapat menggunakan Pekerjaan SageMaker Notebook untuk membuat pekerjaan noninteraktif (yang dijalankan SageMaker AI sebagai pekerjaan pelatihan yang mendasarinya) untuk dijalankan sesuai permintaan atau sesuai jadwal. SageMaker Pekerjaan Notebook menyediakan antarmuka pengguna yang intuitif sehingga Anda dapat menjadwalkan pekerjaan langsung JupyterLab dengan memilih widget Pekerjaan Notebook (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/icons/notebook-schedule.png)) di buku catatan Anda. Anda juga dapat menjadwalkan pekerjaan Anda menggunakan SageMaker AI Python SDK, yang menawarkan fleksibilitas penjadwalan beberapa pekerjaan notebook dalam alur kerja pipeline. Anda dapat menjalankan beberapa notebook secara paralel, dan membuat parameter sel di notebook Anda untuk menyesuaikan parameter input.

Fitur ini memanfaatkan layanan Amazon EventBridge, SageMaker Training, dan Pipelines dan tersedia untuk digunakan di notebook Jupyter Anda di salah satu lingkungan berikut:
+ Studio, Studio Lab, Studio Klasik, atau Instans Notebook
+ Pengaturan lokal, seperti mesin lokal Anda, tempat Anda menjalankan JupyterLab

**Prasyarat**

Untuk menjadwalkan pekerjaan notebook, pastikan Anda memenuhi kriteria berikut:
+ Pastikan notebook Jupyter Anda dan skrip inisialisasi atau startup apa pun bersifat mandiri sehubungan dengan kode dan paket perangkat lunak. Jika tidak, pekerjaan noninteraktif Anda dapat menimbulkan kesalahan.
+ Tinjau [Kendala dan pertimbangan](notebook-auto-run-constraints.md) untuk memastikan Anda mengonfigurasi notebook Jupyter, pengaturan jaringan, dan pengaturan wadah dengan benar.
+ Pastikan notebook Anda dapat mengakses sumber daya eksternal yang diperlukan, seperti klaster EMR Amazon.
+ Jika Anda menyiapkan Pekerjaan Notebook di notebook Jupyter lokal, selesaikan penginstalan. Untuk petunjuk, lihat [Panduan instalasi](scheduled-notebook-installation.md). 
+ Jika Anda terhubung ke klaster EMR Amazon di notebook dan ingin membuat parameter perintah koneksi EMR Amazon, Anda harus menerapkan solusi menggunakan variabel lingkungan untuk meneruskan parameter. Lihat perinciannya di [Connect ke kluster EMR Amazon dari notebook](scheduled-notebook-connect-emr.md).
+ Jika Anda terhubung ke kluster EMR Amazon menggunakan otentikasi Kerberos, LDAP, atau HTTP Basic Auth, Anda harus menggunakan untuk meneruskan kredensyal keamanan Anda AWS Secrets Manager ke perintah koneksi Amazon EMR Anda. Lihat perinciannya di [Connect ke kluster EMR Amazon dari notebook](scheduled-notebook-connect-emr.md).
+ (opsional) Jika Anda ingin UI memuat skrip untuk dijalankan saat startup notebook, admin Anda harus menginstalnya dengan Lifecycle Configuration (LCC). Untuk informasi tentang cara menggunakan skrip LCC, lihat [Menyesuaikan Instans Notebook Menggunakan Skrip Konfigurasi Siklus Hidup](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).

# Panduan instalasi
<a name="scheduled-notebook-installation"></a>

Berikut ini memberikan informasi tentang apa yang perlu Anda instal untuk menggunakan Pekerjaan Notebook di JupyterLab lingkungan Anda.

**Untuk Amazon SageMaker Studio dan Amazon SageMaker Studio Lab**

Jika notebook Anda ada di Amazon SageMaker Studio atau Amazon SageMaker Studio Lab, Anda tidak perlu melakukan penginstalan tambahan— Pekerjaan SageMaker Notebook dibangun ke dalam platform. Untuk menyiapkan izin yang diperlukan untuk Studio, lihat[Menyiapkan kebijakan dan izin untuk Studio](scheduled-notebook-policies-studio.md).

**Untuk notebook Jupyter lokal**

Jika Anda ingin menggunakan Pekerjaan SageMaker Notebook untuk JupyterLab lingkungan lokal Anda, Anda perlu melakukan instalasi tambahan.

Untuk menginstal Pekerjaan SageMaker Notebook, selesaikan langkah-langkah berikut:

1. Instal Python 3. Untuk detailnya, lihat [Menginstal Paket Python 3 dan Python](https://www.codecademy.com/article/install-python3).

1. Instal JupyterLab versi 4 atau lebih tinggi. Untuk detailnya, lihat [dokumentasi JupyterLab SDK](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html).

1. Instal AWS CLI. Untuk detailnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Instal dua set izin. Pengguna IAM membutuhkan izin untuk mengirimkan pekerjaan ke SageMaker AI, dan setelah dikirimkan, pekerjaan notebook itu sendiri mengasumsikan peran IAM yang memerlukan izin untuk mengakses sumber daya tergantung pada tugas pekerjaan.

   1. Jika Anda belum membuat pengguna IAM, lihat [Membuat pengguna IAM di akun Anda AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html).

   1. Jika Anda belum membuat peran pekerjaan notebook, lihat [Membuat peran untuk mendelegasikan izin ke pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

   1. Lampirkan izin dan kebijakan kepercayaan yang diperlukan untuk dilampirkan ke pengguna dan peran Anda. Untuk step-by-step instruksi dan detail izin, lihat[Menginstal kebijakan dan izin untuk lingkungan Jupyter lokal](scheduled-notebook-policies-other.md).

1. Hasilkan AWS kredensyal untuk pengguna IAM Anda yang baru dibuat dan simpan di file kredensyal (\$1/.aws/credentials) lingkungan Anda. JupyterLab Anda dapat melakukan ini dengan perintah CLI. `aws configure` Untuk petunjuknya, lihat bagian *Mengatur dan melihat pengaturan konfigurasi menggunakan perintah* di [Pengaturan file konfigurasi dan kredensi](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).

1. (opsional) Secara default, ekstensi penjadwal menggunakan gambar SageMaker AI Docker yang sudah dibuat sebelumnya dengan Python 2.0. Kernel non-default apa pun yang digunakan dalam notebook harus dipasang di wadah. Jika Anda ingin menjalankan notebook Anda dalam wadah atau gambar Docker, Anda perlu membuat gambar Amazon Elastic Container Registry (Amazon ECR). Untuk informasi tentang cara mendorong image Docker ke Amazon ECR, lihat [Mendorong Gambar Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).

1. Tambahkan JupyterLab ekstensi untuk Pekerjaan SageMaker Notebook. Anda dapat menambahkannya ke JupyterLab lingkungan Anda dengan perintah:`pip install amazon_sagemaker_jupyter_scheduler`. Anda mungkin perlu me-restart server Jupyter Anda dengan perintah:. `sudo systemctl restart jupyter-server`

1. Mulailah JupyterLab dengan perintah:`jupyter lab`.

1. Verifikasi bahwa widget (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/icons/notebook-schedule.png)) Pekerjaan Notebook muncul di bilah tugas notebook Jupyter Anda.

# Menyiapkan kebijakan dan izin untuk Studio
<a name="scheduled-notebook-policies-studio"></a>

Anda harus menginstal kebijakan dan izin yang tepat sebelum menjadwalkan proses notebook pertama Anda. Berikut ini memberikan petunjuk tentang pengaturan izin berikut:
+ Hubungan kepercayaan peran eksekusi pekerjaan
+ Izin IAM tambahan yang dilampirkan pada peran eksekusi pekerjaan
+ (opsional) Kebijakan AWS KMS izin untuk menggunakan kunci KMS kustom

**penting**  
Jika AWS akun Anda milik organisasi dengan kebijakan kontrol layanan (SCP), izin efektif Anda adalah persimpangan logis antara apa yang diizinkan oleh dan apa yang diizinkan oleh peran IAM SCPs dan kebijakan pengguna Anda. Misalnya, jika SCP organisasi Anda menetapkan bahwa Anda hanya dapat mengakses sumber daya di `us-east-1` dan`us-west-1`, dan kebijakan Anda hanya memungkinkan Anda untuk mengakses sumber daya di `us-west-1` dan`us-west-2`, pada akhirnya Anda hanya dapat mengakses sumber daya di. `us-west-1` Jika Anda ingin menggunakan semua izin yang diizinkan dalam peran dan kebijakan pengguna, organisasi Anda SCPs harus memberikan kumpulan izin yang sama dengan kebijakan pengguna dan peran IAM Anda sendiri. Untuk detail tentang cara menentukan permintaan yang diizinkan, lihat [Menentukan apakah permintaan diizinkan atau ditolak dalam akun](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow).

**Hubungan kepercayaan**

Untuk mengubah hubungan kepercayaan, selesaikan langkah-langkah berikut:

1. Buka [konsol IAM](https://console.aws.amazon.com/iam/).

1. Pilih **Peran** di panel kiri.

1. Temukan peran eksekusi pekerjaan untuk pekerjaan notebook Anda dan pilih nama peran. 

1. Pilih tab **Trust relationship**.

1. Pilih **Edit kebijakan kepercayaan**.

1. Salin dan tempel kebijakan berikut:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "sagemaker.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "events.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Pilih **Kebijakan Perbarui**.

## Izin IAM tambahan
<a name="scheduled-notebook-policies-add"></a>

Anda mungkin perlu menyertakan izin IAM tambahan dalam situasi berikut:
+ Eksekusi Studio dan peran pekerjaan notebook Anda berbeda
+ Anda perlu mengakses sumber daya Amazon S3 melalui titik akhir VPC S3
+ Anda ingin menggunakan kunci KMS khusus untuk mengenkripsi bucket Amazon S3 masukan dan output Anda

Diskusi berikut memberikan kebijakan yang Anda butuhkan untuk setiap kasus.

### Izin diperlukan jika eksekusi Studio dan peran pekerjaan notebook Anda berbeda
<a name="scheduled-notebook-policies-add-diffrole"></a>

Cuplikan JSON berikut adalah contoh kebijakan yang harus ditambahkan ke eksekusi Studio dan peran pekerjaan notebook jika Anda tidak menggunakan peran eksekusi Studio sebagai peran pekerjaan notebook. Tinjau dan ubah kebijakan ini jika Anda perlu membatasi hak istimewa lebih lanjut.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"iam:PassRole",
         "Resource":"arn:aws:iam::*:role/*",
         "Condition":{
            "StringLike":{
               "iam:PassedToService":[
                  "sagemaker.amazonaws.com",
                  "events.amazonaws.com"
               ]
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "events:TagResource",
            "events:DeleteRule",
            "events:PutTargets",
            "events:DescribeRule",
            "events:PutRule",
            "events:RemoveTargets",
            "events:DisableRule",
            "events:EnableRule"
         ],
         "Resource":"*",
         "Condition":{
            "StringEquals":{
               "aws:ResourceTag/sagemaker:is-scheduling-notebook-job":"true"
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:CreateBucket",
            "s3:PutBucketVersioning",
            "s3:PutEncryptionConfiguration"
         ],
         "Resource":"arn:aws:s3:::sagemaker-automated-execution-*"
      },
      {
            "Sid": "S3DriverAccess",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::sagemakerheadlessexecution-*"
            ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "sagemaker:ListTags"
         ],
         "Resource":[
            "arn:aws:sagemaker:*:*:user-profile/*",
            "arn:aws:sagemaker:*:*:space/*",
            "arn:aws:sagemaker:*:*:training-job/*",
            "arn:aws:sagemaker:*:*:pipeline/*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "sagemaker:AddTags"
         ],
         "Resource":[
            "arn:aws:sagemaker:*:*:training-job/*",
            "arn:aws:sagemaker:*:*:pipeline/*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "ec2:DescribeDhcpOptions",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeRouteTables",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcEndpoints",
            "ec2:DescribeVpcs",
            "ecr:BatchCheckLayerAvailability",
            "ecr:BatchGetImage",
            "ecr:GetDownloadUrlForLayer",
            "ecr:GetAuthorizationToken",
            "s3:ListBucket",
            "s3:GetBucketLocation",
            "s3:GetEncryptionConfiguration",
            "s3:PutObject",
            "s3:DeleteObject",
            "s3:GetObject",
            "sagemaker:DescribeApp",
            "sagemaker:DescribeDomain",
            "sagemaker:DescribeUserProfile",
            "sagemaker:DescribeSpace",
            "sagemaker:DescribeStudioLifecycleConfig",
            "sagemaker:DescribeImageVersion",
            "sagemaker:DescribeAppImageConfig",
            "sagemaker:CreateTrainingJob",
            "sagemaker:DescribeTrainingJob",
            "sagemaker:StopTrainingJob",
            "sagemaker:Search",
            "sagemaker:CreatePipeline",
            "sagemaker:DescribePipeline",
            "sagemaker:DeletePipeline",
            "sagemaker:StartPipelineExecution"
         ],
         "Resource":"*"
      }
   ]
}
```

------

### Izin yang diperlukan untuk mengakses sumber daya Amazon S3 melalui titik akhir VPC S3
<a name="scheduled-notebook-policies-add-vpc"></a>

Jika Anda menjalankan SageMaker Studio dalam mode VPC pribadi dan mengakses S3 melalui titik akhir VPC S3, Anda dapat menambahkan izin ke kebijakan titik akhir VPC untuk mengontrol sumber daya S3 mana yang dapat diakses melalui titik akhir VPC. Tambahkan izin berikut ke kebijakan titik akhir VPC Anda. Anda dapat mengubah kebijakan jika perlu membatasi izin lebih lanjut—misalnya, Anda dapat memberikan spesifikasi yang lebih sempit untuk bidang tersebut. `Principal`

```
{
    "Sid": "S3DriverAccess",
    "Effect": "Allow",
    "Principal": "*",
    "Action": [
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:ListBucket"
    ],
    "Resource": "arn:aws:s3:::sagemakerheadlessexecution-*"
}
```

Untuk detail tentang cara menyiapkan kebijakan titik akhir VPC S3, lihat [Mengedit kebijakan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#edit-vpc-endpoint-policy-s3).

### Izin yang diperlukan untuk menggunakan kunci KMS kustom (opsional)
<a name="scheduled-notebook-policies-add-kms"></a>

Secara default, bucket input dan output Amazon S3 dienkripsi menggunakan enkripsi sisi server, tetapi Anda dapat menentukan kunci KMS khusus untuk mengenkripsi data Anda di bucket Amazon S3 keluaran dan volume penyimpanan yang dilampirkan ke pekerjaan notebook.

Jika Anda ingin menggunakan kunci KMS kustom, lampirkan kebijakan berikut dan berikan ARN kunci KMS Anda sendiri.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
         "Effect":"Allow",
         "Action":[
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:DescribeKey",
            "kms:CreateGrant"
         ],
         "Resource":"arn:aws:kms:us-east-1:111122223333:key/key-id"
      }
   ]
}
```

------

# Menginstal kebijakan dan izin untuk lingkungan Jupyter lokal
<a name="scheduled-notebook-policies-other"></a>

Anda perlu menyiapkan izin dan kebijakan yang diperlukan untuk menjadwalkan pekerjaan buku catatan di lingkungan Jupyter lokal. Pengguna IAM memerlukan izin untuk mengirimkan pekerjaan ke SageMaker AI dan peran IAM yang diasumsikan oleh pekerjaan notebook itu sendiri membutuhkan izin untuk mengakses sumber daya, tergantung pada tugas pekerjaan. Berikut ini akan memberikan petunjuk tentang cara mengatur izin dan kebijakan yang diperlukan.

Anda harus menginstal dua set izin. Diagram berikut menunjukkan struktur izin bagi Anda untuk menjadwalkan pekerjaan notebook di lingkungan Jupyter lokal. Pengguna IAM perlu mengatur izin IAM untuk mengirimkan pekerjaan ke AI. SageMaker Setelah pengguna mengirimkan pekerjaan notebook, pekerjaan itu sendiri mengasumsikan peran IAM yang memiliki izin untuk mengakses sumber daya tergantung pada tugas pekerjaan.

![\[\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/notebook-jobs-permissions.png)


Bagian berikut membantu Anda menginstal kebijakan dan izin yang diperlukan untuk pengguna IAM dan peran eksekusi pekerjaan.

## Izin pengguna IAM
<a name="scheduled-notebook-policies-other-user"></a>

**Izin untuk mengirimkan pekerjaan ke AI SageMaker **

Untuk menambahkan izin untuk mengirimkan pekerjaan, selesaikan langkah-langkah berikut:

1. Buka [konsol IAM](https://console.aws.amazon.com/iam/).

1. Pilih **Pengguna** di panel kiri.

1. Temukan pengguna IAM untuk pekerjaan notebook Anda dan pilih nama pengguna.

1. Pilih **Tambahkan Izin**, dan pilih **Buat kebijakan sebaris** dari menu tarik-turun.

1. Pilih tab **JSON**.

1. Salin dan tempel kebijakan berikut:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EventBridgeSchedule",
               "Effect": "Allow",
               "Action": [
                   "events:TagResource",
                   "events:DeleteRule",
                   "events:PutTargets",
                   "events:DescribeRule",
                   "events:EnableRule",
                   "events:PutRule",
                   "events:RemoveTargets",
                   "events:DisableRule"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
                   }
               }
           },
           {
               "Sid": "IAMPassrole",
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/*",
               "Condition": {
                   "StringLike": {
                       "iam:PassedToService": [
                           "sagemaker.amazonaws.com",
                           "events.amazonaws.com"
                       ]
                   }
               }
           },
           {
               "Sid": "IAMListRoles",
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "*"
           },
           {
               "Sid": "S3ArtifactsAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:PutEncryptionConfiguration",
                   "s3:CreateBucket",
                   "s3:PutBucketVersioning",
                   "s3:ListBucket",
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:GetEncryptionConfiguration",
                   "s3:DeleteObject",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::sagemaker-automated-execution-*"
               ]
           },
           {
               "Sid": "S3DriverAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::sagemakerheadlessexecution-*"
               ]
           },
           {
               "Sid": "SagemakerJobs",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeTrainingJob",
                   "sagemaker:StopTrainingJob",
                   "sagemaker:DescribePipeline",
                   "sagemaker:CreateTrainingJob",
                   "sagemaker:DeletePipeline",
                   "sagemaker:CreatePipeline"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
                   }
               }
           },
           {
               "Sid": "AllowSearch",
               "Effect": "Allow",
               "Action": "sagemaker:Search",
               "Resource": "*"
           },
           {
               "Sid": "SagemakerTags",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:ListTags",
                   "sagemaker:AddTags"
               ],
               "Resource": [
                   "arn:aws:sagemaker:*:*:pipeline/*",
                   "arn:aws:sagemaker:*:*:space/*",
                   "arn:aws:sagemaker:*:*:training-job/*",
                   "arn:aws:sagemaker:*:*:user-profile/*"
               ]
           },
           {
               "Sid": "ECRImage",
               "Effect": "Allow",
               "Action": [
                   "ecr:GetAuthorizationToken",
                   "ecr:BatchGetImage"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

**AWS KMS kebijakan izin (opsional)**

Secara default, bucket input dan output Amazon S3 dienkripsi menggunakan enkripsi sisi server, tetapi Anda dapat menentukan kunci KMS khusus untuk mengenkripsi data Anda di bucket Amazon S3 keluaran dan volume penyimpanan yang dilampirkan ke pekerjaan notebook.

Jika Anda ingin menggunakan kunci KMS kustom, ulangi instruksi sebelumnya, lampirkan kebijakan berikut, dan berikan ARN kunci KMS Anda sendiri.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
         "Effect":"Allow",
         "Action":[
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:DescribeKey",
            "kms:CreateGrant"
         ],
         "Resource":"arn:aws:kms:us-east-1:111122223333:key/key-id"
      }
   ]
}
```

------

## Izin peran eksekusi Job
<a name="scheduled-notebook-policies-other-job"></a>

**Hubungan kepercayaan**

Untuk mengubah hubungan kepercayaan peran eksekusi pekerjaan, selesaikan langkah-langkah berikut:

1. Buka [konsol IAM](https://console.aws.amazon.com/iam/).

1. Pilih **Peran** di panel kiri.

1. Temukan peran eksekusi pekerjaan untuk pekerjaan notebook Anda dan pilih nama peran.

1. Pilih tab **Trust relationship**.

1. Pilih **Edit kebijakan kepercayaan**.

1. Salin dan tempel kebijakan berikut:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "sagemaker.amazonaws.com",
                       "events.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

**Izin tambahan**

Setelah dikirimkan, pekerjaan notebook membutuhkan izin untuk mengakses sumber daya. Petunjuk berikut menunjukkan cara menambahkan seperangkat izin minimal. Jika perlu, tambahkan lebih banyak izin berdasarkan kebutuhan pekerjaan notebook Anda. Untuk menambahkan izin ke peran eksekusi pekerjaan Anda, selesaikan langkah-langkah berikut:

1. Buka [konsol IAM](https://console.aws.amazon.com/iam/).

1. Pilih **Peran** di panel kiri.

1. Temukan peran eksekusi pekerjaan untuk pekerjaan notebook Anda dan pilih nama peran.

1. Pilih **Tambahkan Izin**, dan pilih **Buat kebijakan sebaris** dari menu tarik-turun.

1. Pilih tab **JSON**.

1. Salin dan tempel kebijakan berikut:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PassroleForJobCreation",
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/*",
               "Condition": {
                   "StringLike": {
                       "iam:PassedToService": "sagemaker.amazonaws.com"
                   }
               }
           },
           {
               "Sid": "S3ForStoringArtifacts",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::sagemaker-automated-execution-*"
           },
           {
               "Sid": "S3DriverAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::sagemakerheadlessexecution-*"
               ]
           },
           {
               "Sid": "SagemakerJobs",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:StartPipelineExecution",
                   "sagemaker:CreateTrainingJob"
               ],
               "Resource": "*"
           },
           {
               "Sid": "ECRImage",
               "Effect": "Allow",
               "Action": [
                   "ecr:GetDownloadUrlForLayer",
                   "ecr:BatchGetImage",
                   "ecr:GetAuthorizationToken",
                   "ecr:BatchCheckLayerAvailability"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Tambahkan izin ke sumber daya lain yang diakses pekerjaan buku catatan Anda.

1. Pilih **Tinjau kebijakan**.

1. Masukkan nama untuk kebijakan Anda.

1. Pilih **Buat kebijakan**.

# Di mana Anda dapat membuat pekerjaan notebook
<a name="create-notebook-auto-run"></a>

Jika Anda ingin membuat pekerjaan notebook, Anda memiliki beberapa opsi. Berikut ini menyediakan opsi SageMaker AI bagi Anda untuk membuat pekerjaan notebook.

Anda dapat membuat pekerjaan di JupyterLab buku catatan di UI Studio, atau Anda dapat membuat pekerjaan secara terprogram dengan Python SageMaker SDK:
+ Jika Anda membuat pekerjaan notebook di UI Studio, Anda memberikan detail tentang gambar dan kernel, konfigurasi keamanan, dan variabel atau skrip kustom apa pun, dan pekerjaan Anda dijadwalkan. Untuk detail tentang cara menjadwalkan pekerjaan Anda menggunakan Pekerjaan SageMaker Notebook, lihat[Buat pekerjaan notebook di Studio](create-notebook-auto-run-studio.md).
+ Untuk membuat pekerjaan notebook dengan SageMaker Python SDK, Anda membuat pipeline dengan langkah Pekerjaan Notebook dan memulai proses sesuai permintaan atau secara opsional menggunakan fitur penjadwalan pipeline untuk menjadwalkan proses di masa mendatang. SageMaker SDK memberi Anda fleksibilitas untuk menyesuaikan pipeline Anda—Anda dapat memperluas pipeline ke alur kerja dengan beberapa langkah pekerjaan notebook. Karena Anda membuat langkah Job SageMaker Notebook dan pipeline, Anda dapat melacak status eksekusi pipeline di dasbor pekerjaan Pekerjaan SageMaker Notebook dan juga melihat grafik pipeline di Studio. Untuk detail tentang cara menjadwalkan pekerjaan Anda dengan SageMaker Python SDK dan tautan ke notebook contoh, lihat. [Buat pekerjaan notebook dengan contoh SageMaker AI Python SDK](create-notebook-auto-run-sdk.md)

# Buat pekerjaan notebook dengan contoh SageMaker AI Python SDK
<a name="create-notebook-auto-run-sdk"></a>

Untuk menjalankan notebook mandiri menggunakan SageMaker Python SDK, Anda perlu membuat langkah Job Notebook, melampirkannya ke pipeline, dan menggunakan utilitas yang disediakan oleh Pipelines untuk menjalankan pekerjaan sesuai permintaan atau secara opsional menjadwalkan satu atau beberapa pekerjaan masa depan. Bagian berikut menjelaskan langkah-langkah dasar untuk membuat pekerjaan notebook sesuai permintaan atau terjadwal dan melacak jalannya. Selain itu, lihat diskusi berikut jika Anda perlu meneruskan parameter ke pekerjaan notebook Anda atau terhubung ke Amazon EMR di buku catatan Anda—persiapan tambahan notebook Jupyter Anda diperlukan dalam kasus ini. Anda juga dapat menerapkan default untuk subset argumen `NotebookJobStep` sehingga Anda tidak perlu menentukannya setiap kali Anda membuat langkah Job Notebook.

Untuk melihat contoh buku catatan yang menunjukkan cara menjadwalkan pekerjaan notebook dengan SageMaker AI Python SDK, [lihat buku catatan contoh pekerjaan notebook](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-pipelines/notebook-job-step).

**Topics**
+ [Langkah-langkah untuk membuat pekerjaan notebook](#create-notebook-auto-run-overall)
+ [Melihat pekerjaan notebook Anda di dasbor Studio UI](#create-notebook-auto-run-dash)
+ [Lihat grafik pipeline Anda di Studio](#create-notebook-auto-run-graph)
+ [Meneruskan parameter ke notebook Anda](#create-notebook-auto-run-passparam)
+ [Menyambung ke klaster EMR Amazon di notebook masukan Anda](#create-notebook-auto-run-emr)
+ [Siapkan opsi default](#create-notebook-auto-run-intdefaults)

## Langkah-langkah untuk membuat pekerjaan notebook
<a name="create-notebook-auto-run-overall"></a>

Anda dapat membuat pekerjaan notebook yang berjalan segera atau sesuai jadwal. Instruksi berikut menjelaskan kedua metode.

**Untuk menjadwalkan pekerjaan notebook, selesaikan langkah-langkah dasar berikut:**

1. Buat sebuah `NotebookJobStep` instance. Untuk detail tentang `NotebookJobStep` parameter, lihat [sagemaker.workflow.steps. NotebookJobStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.notebook_job_step.NotebookJobStep). Minimal, Anda dapat memberikan argumen berikut seperti yang ditunjukkan dalam cuplikan kode berikut:
**penting**  
Jika Anda menjadwalkan pekerjaan notebook menggunakan SageMaker Python SDK, Anda hanya dapat menentukan gambar tertentu untuk menjalankan pekerjaan notebook Anda. Untuk informasi selengkapnya, lihat [Kendala gambar untuk pekerjaan notebook AI SageMaker Python SDK](notebook-auto-run-constraints.md#notebook-auto-run-constraints-image-sdk).

   ```
   notebook_job_step = NotebookJobStep(
       input_notebook=input-notebook,
       image_uri=image-uri,
       kernel_name=kernel-name
   )
   ```

1. Buat pipeline dengan langkah Anda `NotebookJobStep` sebagai satu langkah, seperti yang ditunjukkan pada cuplikan berikut:

   ```
   pipeline = Pipeline(
       name=pipeline-name,
       steps=[notebook_job_step],
       sagemaker_session=sagemaker-session,
   )
   ```

1. Jalankan pipeline sesuai permintaan atau secara opsional menjadwalkan pipeline future run. Untuk memulai proses langsung, gunakan perintah berikut:

   ```
   execution = pipeline.start(
       parameters={...}
   )
   ```

   Secara opsional, Anda dapat menjadwalkan single future pipeline run atau beberapa run pada interval yang telah ditentukan. Anda menentukan jadwal Anda `PipelineSchedule` dan kemudian meneruskan objek jadwal ke pipeline Anda`put_triggers`. Untuk informasi selengkapnya tentang penjadwalan saluran pipa, lihat[Jadwalkan pipeline dengan SageMaker Python SDK](pipeline-eventbridge.md#build-and-manage-scheduling).

   Contoh berikut menjadwalkan pipeline Anda untuk berjalan sekali pada 12 Desember 2023 pukul 10:31:32 UTC.

   ```
   my_schedule = PipelineSchedule(  
       name="my-schedule“,  
       at=datetime(year=2023, month=12, date=25, hour=10, minute=31, second=32) 
   )  
   pipeline.put_triggers(triggers=[my_schedule])
   ```

   Contoh berikut menjadwalkan pipeline Anda untuk berjalan pada pukul 10:15 UTC pada hari Jumat terakhir setiap bulan selama tahun 2022 hingga 2023. [Untuk detail tentang penjadwalan berbasis cron, lihat Jadwal berbasis cron.](https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html#cron-based)

   ```
   my_schedule = PipelineSchedule(  
       name="my-schedule“,  
       cron="15 10 ? * 6L 2022-2023"
   )  
   pipeline.put_triggers(triggers=[my_schedule])
   ```

1. (Opsional) Lihat pekerjaan notebook Anda di dasbor Pekerjaan SageMaker Notebook. Nilai yang Anda berikan untuk `tags` argumen langkah Job Notebook mengontrol cara UI Studio menangkap dan menampilkan pekerjaan. Untuk informasi selengkapnya, lihat [Melihat pekerjaan notebook Anda di dasbor Studio UI](#create-notebook-auto-run-dash).

## Melihat pekerjaan notebook Anda di dasbor Studio UI
<a name="create-notebook-auto-run-dash"></a>

Pekerjaan buku catatan yang Anda buat sebagai langkah pipeline akan muncul di dasbor Pekerjaan Notebook Studio jika Anda menentukan tag tertentu.

**catatan**  
Hanya pekerjaan notebook yang dibuat di Studio atau JupyterLab lingkungan lokal yang membuat definisi pekerjaan. Oleh karena itu, jika Anda membuat pekerjaan notebook dengan SageMaker Python SDK, Anda tidak akan melihat definisi pekerjaan di dasbor Pekerjaan Notebook. Namun, Anda dapat melihat pekerjaan notebook Anda seperti yang dijelaskan dalam[Lihat pekerjaan notebook](view-notebook-jobs.md). 

Anda dapat mengontrol anggota tim mana yang dapat melihat pekerjaan buku catatan Anda dengan tag berikut:
+ Untuk menampilkan buku catatan ke semua profil pengguna atau [spasi](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl-user-guide.html) di domain, tambahkan tag domain dengan nama domain Anda. Contoh ditunjukkan sebagai berikut:
  + kunci:`sagemaker:domain-name`, nilai: `d-abcdefghij5k`
+ Untuk menampilkan pekerjaan notebook ke profil pengguna tertentu di domain, tambahkan profil pengguna dan tag domain. Contoh tag profil pengguna ditampilkan sebagai berikut:
  + kunci:`sagemaker:user-profile-name`, nilai: `studio-user`
+ Untuk menampilkan pekerjaan notebook ke [spasi](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl-user-guide.html), tambahkan spasi dan tag domain. Contoh tag spasi ditampilkan sebagai berikut:
  + kunci:`sagemaker:shared-space-name`, nilai: `my-space-name`
+ Jika Anda tidak melampirkan domain atau profil pengguna atau tag spasi apa pun, UI Studio tidak menampilkan tugas buku catatan yang dibuat berdasarkan langkah pipeline. Dalam hal ini, Anda dapat melihat pekerjaan pelatihan yang mendasarinya di konsol pekerjaan pelatihan atau Anda dapat melihat status dalam [daftar eksekusi pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-studio-view-execution.html).

Setelah Anda menyiapkan tag yang diperlukan untuk melihat pekerjaan Anda di dasbor, lihat [Lihat pekerjaan notebook](view-notebook-jobs.md) petunjuk tentang cara melihat pekerjaan Anda dan mengunduh output.

## Lihat grafik pipeline Anda di Studio
<a name="create-notebook-auto-run-graph"></a>

Karena langkah pekerjaan notebook Anda adalah bagian dari pipeline, Anda dapat melihat grafik pipeline (DAG) di Studio. Dalam grafik pipeline, Anda dapat melihat status jalur pipa dan melacak garis keturunan. Lihat perinciannya di [Lihat detail proses pipeline](pipelines-studio-view-execution.md).

## Meneruskan parameter ke notebook Anda
<a name="create-notebook-auto-run-passparam"></a>

Jika Anda ingin meneruskan parameter ke pekerjaan notebook Anda (menggunakan `parameters` argumen`NotebookJobStep`), Anda perlu menyiapkan notebook input Anda untuk menerima parameter. 

Pelaksana pekerjaan notebook berbasis Papermill mencari sel Jupyter yang ditandai dengan `parameters` tag dan menerapkan parameter baru atau penggantian parameter segera setelah sel ini. Lihat perinciannya di [Parameterisasi notebook Anda](notebook-auto-run-troubleshoot-override.md). 

Setelah Anda melakukan langkah ini, berikan parameter Anda ke Anda`NotebookJobStep`, seperti yang ditunjukkan pada contoh berikut:

```
notebook_job_parameters = {
    "company": "Amazon"
}

notebook_job_step = NotebookJobStep(
    image_uri=image-uri,
    kernel_name=kernel-name,
    role=role-name,
    input_notebook=input-notebook,
    parameters=notebook_job_parameters,
    ...
)
```

## Menyambung ke klaster EMR Amazon di notebook masukan Anda
<a name="create-notebook-auto-run-emr"></a>

Jika Anda terhubung ke klaster EMR Amazon dari notebook Jupyter di Studio, Anda mungkin perlu memodifikasi notebook Jupyter lebih lanjut. Lihat [Connect ke kluster EMR Amazon dari notebook](scheduled-notebook-connect-emr.md) apakah Anda perlu melakukan salah satu tugas berikut di buku catatan Anda:
+ **Masukkan parameter ke perintah koneksi EMR Amazon Anda.** Studio menggunakan Papermill untuk menjalankan notebook. Dalam SparkMagic kernel, parameter yang Anda berikan ke perintah koneksi EMR Amazon Anda mungkin tidak berfungsi seperti yang diharapkan karena cara Papermill meneruskan informasi. SparkMagic
+ **Meneruskan kredensyal pengguna ke cluster EMR Amazon yang diautentikasi oleh Kerberos, LDAP, atau HTTP Basic Auth-autentikasi.** Anda harus meneruskan kredensi pengguna melalui file. AWS Secrets Manager

## Siapkan opsi default
<a name="create-notebook-auto-run-intdefaults"></a>

 SageMaker SDK memberi Anda opsi untuk mengatur default untuk subset parameter sehingga Anda tidak perlu menentukan parameter ini setiap kali Anda membuat instance. `NotebookJobStep` Parameter ini adalah`role`,`s3_root_uri`,`s3_kms_key`,`volume_kms_key`,`subnets`, dan`security_group_ids`. Gunakan file konfigurasi SageMaker AI untuk mengatur default untuk langkah tersebut. Untuk informasi tentang file konfigurasi SageMaker AI, lihat [Mengonfigurasi dan menggunakan default dengan Python SDK](https://sagemaker.readthedocs.io/en/stable/overview.html#configuring-and-using-defaults-with-the-sagemaker-python-sdk). SageMaker .

Untuk menyiapkan default pekerjaan notebook, terapkan default baru Anda ke bagian pekerjaan buku catatan dari file konfigurasi seperti yang ditunjukkan pada cuplikan berikut:

```
SageMaker:
  PythonSDK:
    Modules:
      NotebookJob:
        RoleArn: 'arn:aws:iam::555555555555:role/IMRole'
        S3RootUri: 's3://amzn-s3-demo-bucket/my-project'
        S3KmsKeyId: 's3kmskeyid'
        VolumeKmsKeyId: 'volumekmskeyid1'
        VpcConfig:
          SecurityGroupIds:
            - 'sg123'
          Subnets:
            - 'subnet-1234'
```

# Buat pekerjaan notebook di Studio
<a name="create-notebook-auto-run-studio"></a>

**catatan**  
Penjadwal notebook dibuat dari layanan Amazon EventBridge, SageMaker Training, dan Pipelines. Jika pekerjaan notebook Anda gagal, Anda mungkin melihat kesalahan yang terkait dengan layanan ini. Berikut ini memberikan informasi tentang cara membuat pekerjaan notebook di UI Studio.

SageMaker Pekerjaan Notebook memberi Anda alat untuk membuat dan mengelola pekerjaan notebook noninteraktif Anda menggunakan widget Pekerjaan Notebook. Anda dapat membuat pekerjaan, melihat pekerjaan yang Anda buat, dan menjeda, menghentikan, atau melanjutkan pekerjaan yang ada. Anda juga dapat memodifikasi jadwal buku catatan.

Saat Anda membuat pekerjaan buku catatan terjadwal dengan widget, penjadwal mencoba menyimpulkan pilihan opsi default dan secara otomatis mengisi formulir untuk membantu Anda memulai dengan cepat. Jika Anda menggunakan Studio, setidaknya Anda dapat mengirimkan pekerjaan sesuai permintaan tanpa menetapkan opsi apa pun. Anda juga dapat mengirimkan definisi pekerjaan buku catatan (terjadwal) yang hanya menyediakan informasi jadwal khusus waktu. Namun, Anda dapat menyesuaikan bidang lain jika pekerjaan terjadwal Anda memerlukan pengaturan khusus. Jika Anda menjalankan buku catatan Jupyter lokal, ekstensi penjadwal menyediakan fitur bagi Anda untuk menentukan default Anda sendiri (untuk subset opsi) sehingga Anda tidak perlu memasukkan nilai yang sama secara manual setiap saat.

Saat membuat pekerjaan buku catatan, Anda dapat menyertakan file tambahan seperti kumpulan data, gambar, dan skrip lokal. Untuk melakukannya, pilih **Jalankan pekerjaan dengan folder input**. Notebook Job sekarang akan memiliki akses ke semua file di bawah folder file input. Sementara pekerjaan notebook berjalan, struktur file direktori tetap tidak berubah.

Untuk menjadwalkan pekerjaan notebook, selesaikan langkah-langkah berikut.

1. Buka formulir **Create Job**.

   Di JupyterLab lingkungan lokal, pilih ikon **Buat pekerjaan buku catatan** (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/icons/notebook-schedule.png)) di bilah tugas. Jika Anda tidak melihat ikonnya, ikuti petunjuk [Panduan instalasi](scheduled-notebook-installation.md) untuk menginstalnya.

   Di Studio, buka formulir dengan salah satu dari dua cara:
   + Menggunakan **File Browser**

     1. Di **File Browser** di panel kiri, klik kanan pada notebook yang ingin Anda jalankan sebagai pekerjaan terjadwal.

     1. Pilih **Create Notebook Job**.
   + Di dalam notebook Studio
     + Di dalam buku catatan Studio yang ingin Anda jalankan sebagai pekerjaan terjadwal, pilih ikon **Buat pekerjaan notebook** (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/icons/notebook-schedule.png)) di toolbar Studio.

1. Lengkapi formulir popup. Formulir menampilkan bidang-bidang berikut:
   + **Nama Job: Nama** deskriptif yang Anda tentukan untuk pekerjaan Anda.
   + **File input**: Nama buku catatan yang Anda jadwalkan untuk dijalankan dalam mode noninteraktif.
   + **Jenis komputasi**: Jenis instans Amazon EC2 di mana Anda ingin menjalankan notebook Anda.
   + **Parameter**: Parameter khusus yang dapat Anda tentukan secara opsional sebagai input ke buku catatan Anda. Untuk menggunakan fitur ini, Anda mungkin secara opsional ingin menandai sel tertentu di buku catatan Jupyter Anda dengan **parameters** tag untuk mengontrol di mana parameter Anda diterapkan. Untuk detail selengkapnya, lihat [Parameterisasi notebook Anda](notebook-auto-run-troubleshoot-override.md).
   + (Opsional) **Jalankan pekerjaan dengan folder input**: Jika dipilih, pekerjaan terjadwal akan memiliki akses ke semua file yang ditemukan di folder yang sama dengan **file Input**.
   + **Opsi Tambahan**: Anda dapat menentukan penyesuaian tambahan untuk pekerjaan Anda. Misalnya, Anda dapat menentukan gambar atau kernel, folder input dan output, opsi coba ulang pekerjaan dan batas waktu, detail enkripsi, dan skrip inisialisasi kustom. Untuk daftar lengkap penyesuaian yang dapat Anda terapkan, lihat. [Pilihan yang tersedia](create-notebook-auto-execution-advanced.md)

1. Jadwalkan pekerjaan Anda. Anda dapat menjalankan notebook Anda sesuai permintaan atau pada jadwal tetap.
   + Untuk menjalankan notebook sesuai permintaan, selesaikan langkah-langkah berikut:
     + Pilih **Jalankan Sekarang**.
     + Pilih **Buat**.
     + Tab **Pekerjaan Notebook** akan muncul. Pilih **Muat Ulang** untuk memuat pekerjaan Anda ke dasbor.
   + Untuk menjalankan notebook pada jadwal tetap, selesaikan langkah-langkah berikut:
     + Pilih **Jalankan sesuai jadwal**.
     + Pilih daftar dropdown **Interval** dan pilih interval. Intervalnya berkisar dari setiap menit hingga bulanan. Anda juga dapat memilih **Jadwal khusus**.
     + Berdasarkan interval yang Anda pilih, bidang tambahan muncul untuk membantu Anda menentukan lebih lanjut hari dan waktu lari yang Anda inginkan. Misalnya, jika Anda memilih **Hari** untuk menjalankan harian, bidang tambahan akan muncul bagi Anda untuk menentukan waktu yang diinginkan. Perhatikan bahwa setiap kali Anda menentukan dalam format UTC. Perhatikan juga bahwa jika Anda memilih interval kecil, seperti satu menit, pekerjaan Anda tumpang tindih jika pekerjaan sebelumnya tidak selesai ketika pekerjaan berikutnya dimulai.

       Jika Anda memilih jadwal kustom, Anda menggunakan sintaks cron di kotak ekspresi untuk menentukan tanggal dan waktu berjalan yang tepat. Sintaks cron adalah daftar digit yang dipisahkan ruang, yang masing-masing mewakili satuan waktu dari detik ke tahun. Untuk bantuan dengan sintaks cron, Anda dapat memilih **Dapatkan bantuan dengan sintaks cron di** bawah kotak ekspresi.
     + Pilih **Buat**.
     + Tab **Notebook Job Definitions** muncul. Pilih **Muat Ulang** untuk memuat definisi pekerjaan Anda ke dasbor.

# Menyiapkan opsi default untuk buku catatan lokal
<a name="create-notebook-auto-execution-advanced-default"></a>

**penting**  
Pada 30 November 2023, pengalaman Amazon SageMaker Studio sebelumnya sekarang bernama Amazon SageMaker Studio Classic. Bagian berikut ini khusus untuk menggunakan aplikasi Studio Classic. Untuk informasi tentang menggunakan pengalaman Studio yang diperbarui, lihat[SageMaker Studio Amazon](studio-updated.md).  
Studio Classic masih dipertahankan untuk beban kerja yang ada tetapi tidak lagi tersedia untuk orientasi. Anda hanya dapat menghentikan atau menghapus aplikasi Studio Classic yang ada dan tidak dapat membuat yang baru. Kami menyarankan Anda [memigrasikan beban kerja Anda ke pengalaman Studio yang baru](studio-updated-migrate.md).

Anda dapat mengatur opsi default saat membuat pekerjaan buku catatan. Ini dapat menghemat waktu Anda jika Anda berencana untuk membuat beberapa pekerjaan notebook dengan opsi berbeda dari default yang disediakan. Berikut ini memberikan informasi tentang cara mengatur opsi default untuk notebook lokal.

Jika Anda harus mengetik (atau menempelkan) nilai kustom secara manual di formulir **Buat Job**, Anda dapat menyimpan nilai default baru dan ekstensi penjadwal menyisipkan nilai baru Anda setiap kali Anda membuat definisi pekerjaan baru. Fitur ini tersedia untuk opsi berikut:
+ **Peran ARN**
+ **Folder Masukan S3**
+ **Folder Keluaran S3**
+ **Kunci KMS enkripsi keluaran** (jika Anda mengaktifkan **Configure Job Encryption**)
+ **Kunci KMS enkripsi volume instance Job** (jika Anda mengaktifkan **Configure Job Encryption**)

Fitur ini menghemat waktu Anda jika Anda memasukkan nilai yang berbeda dari default yang disediakan dan terus menggunakan nilai-nilai tersebut untuk menjalankan pekerjaan di masa depan. Pengaturan pengguna yang Anda pilih disimpan di mesin yang menjalankan JupyterLab server Anda dan diambil dengan bantuan API asli. Jika Anda memberikan nilai default baru untuk satu atau lebih tetapi tidak semua lima opsi, default sebelumnya diambil untuk yang tidak Anda sesuaikan.

Petunjuk berikut menunjukkan cara melihat pratinjau nilai default yang ada, menetapkan nilai default baru, dan mengatur ulang nilai default untuk pekerjaan buku catatan Anda.

**Untuk melihat pratinjau nilai default yang ada untuk pekerjaan buku catatan Anda, selesaikan langkah-langkah berikut:**

1. Buka konsol Amazon SageMaker Studio Classic dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio Classic](studio-launch.md).

1. Di **File Browser** di panel kiri, klik kanan pada notebook yang ingin Anda jalankan sebagai pekerjaan terjadwal.

1. Pilih **Create Notebook Job**.

1. Pilih **Opsi tambahan** untuk memperluas tab pengaturan pekerjaan notebook. Anda dapat melihat pengaturan default di sini. 

**Untuk menetapkan nilai default baru untuk pekerjaan notebook masa depan Anda, selesaikan langkah-langkah berikut:**

1. Buka konsol Amazon SageMaker Studio Classic dengan mengikuti petunjuk di[Luncurkan Amazon SageMaker Studio Classic](studio-launch.md).

1. Dari menu atas di Studio Classic, pilih **Settings**, lalu pilih **Advanced Settings Editor**.

1. Pilih **Amazon SageMaker Scheduler** dari daftar di bawah **Pengaturan**. Ini mungkin sudah terbuka secara default.

1. Anda dapat memperbarui pengaturan default langsung di halaman UI ini atau dengan menggunakan editor JSON.
   + Di UI Anda dapat menyisipkan nilai baru untuk **ARN Peran**, Folder Input **S3, Folder Output** **S3**, kunci KMS **enkripsi Output, atau kunci KMS** enkripsi volume **Job instance**. **Jika Anda mengubah nilai-nilai ini, Anda akan melihat default baru untuk bidang ini saat Anda membuat pekerjaan buku catatan berikutnya di bawah Opsi tambahan.**
   + (Opsional) Untuk memperbarui default pengguna menggunakan **Editor Pengaturan JSON**, selesaikan langkah-langkah berikut:

     1. Di pojok kanan atas, pilih **Editor Pengaturan JSON**.

     1. Di bilah sisi kiri **Pengaturan**, pilih **Amazon SageMaker AI Scheduler**. Ini mungkin sudah terbuka secara default.

        Anda dapat melihat nilai default Anda saat ini di panel **Preferensi Pengguna**.

        Anda dapat melihat nilai default sistem di panel **System Defaults**.

     1. Untuk memperbarui nilai default Anda, salin dan tempel cuplikan JSON dari panel **Default Sistem** ke panel **Preferensi Pengguna**, dan perbarui bidangnya.

     1. Jika Anda memperbarui nilai default, pilih ikon **Simpan Pengaturan Pengguna** (![\[Icon of a cloud with an arrow pointing upward, representing cloud upload functionality.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/icons/Notebook_save.png)) di sudut kanan atas. Menutup editor tidak menyimpan perubahan.

**Jika sebelumnya Anda berubah dan sekarang ingin mengatur ulang nilai default yang ditentukan pengguna, selesaikan langkah-langkah berikut:**

1. Dari menu atas di Studio Classic, pilih **Settings**, lalu pilih **Advanced Settings Editor**.

1. Pilih **Amazon SageMaker Scheduler** dari daftar di bawah **Pengaturan**. Ini mungkin sudah terbuka secara default.

1. Anda dapat mengembalikan default dengan langsung menggunakan halaman UI ini atau menggunakan editor JSON.
   + Di UI Anda dapat memilih **Restore to Defaults** di pojok kanan atas. Default Anda dikembalikan ke string kosong. Anda hanya melihat opsi ini jika sebelumnya Anda mengubah nilai default Anda.
   + (Opsional) Untuk memulai ulang pengaturan default menggunakan **Editor Pengaturan JSON**, selesaikan langkah-langkah berikut:

     1. Di pojok kanan atas, pilih **Editor Pengaturan JSON**.

     1. Di bilah sisi kiri **Pengaturan**, pilih **Amazon SageMaker AI Scheduler**. Ini mungkin sudah terbuka secara default.

        Anda dapat melihat nilai default Anda saat ini di panel **Preferensi Pengguna**.

        Anda dapat melihat nilai default sistem di panel **System Defaults**.

     1. Untuk memulihkan pengaturan default Anda saat ini, salin konten dari panel **Default Sistem ke panel Preferensi** **Pengguna**.

     1. Pilih ikon **Simpan Pengaturan Pengguna** (![\[Icon of a cloud with an arrow pointing upward, representing cloud upload functionality.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/icons/Notebook_save.png)) di sudut kanan atas. Menutup editor tidak menyimpan perubahan.

# Alur kerja pekerjaan notebook
<a name="create-notebook-auto-run-dag"></a>

Karena pekerjaan notebook menjalankan kode kustom, Anda dapat membuat pipeline yang menyertakan satu atau beberapa langkah pekerjaan notebook. Alur kerja ML sering berisi beberapa langkah, seperti langkah pemrosesan untuk memproses data sebelumnya, langkah pelatihan untuk membangun model Anda, dan langkah evaluasi model, antara lain. Salah satu kemungkinan penggunaan pekerjaan notebook adalah untuk menangani pra-pemrosesan — Anda mungkin memiliki buku catatan yang melakukan transformasi atau konsumsi data, langkah EMR yang melakukan pembersihan data, dan pekerjaan notebook lain yang melakukan featurisasi input Anda sebelum memulai langkah pelatihan. Pekerjaan notebook mungkin memerlukan informasi dari langkah sebelumnya dalam pipeline atau dari kustomisasi yang ditentukan pengguna sebagai parameter di notebook input. Untuk contoh yang menunjukkan cara meneruskan variabel dan parameter lingkungan ke buku catatan Anda dan mengambil informasi dari langkah sebelumnya, lihat[Berikan informasi ke dan dari langkah buku catatan Anda](create-notebook-auto-run-dag-seq.md).

Dalam kasus penggunaan lain, salah satu pekerjaan notebook Anda mungkin memanggil buku catatan lain untuk melakukan beberapa tugas selama menjalankan notebook Anda—dalam skenario ini Anda perlu menentukan buku catatan bersumber ini sebagai dependensi dengan langkah pekerjaan notebook Anda. Untuk informasi tentang cara memanggil buku catatan lain, lihat[Panggil buku catatan lain di pekerjaan notebook Anda](create-notebook-auto-run-dag-call.md).

Untuk melihat contoh buku catatan yang menunjukkan cara menjadwalkan pekerjaan notebook dengan SageMaker AI Python SDK, [lihat buku catatan contoh pekerjaan notebook](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-pipelines/notebook-job-step).

# Berikan informasi ke dan dari langkah buku catatan Anda
<a name="create-notebook-auto-run-dag-seq"></a>

Bagian berikut menjelaskan cara untuk meneruskan informasi ke buku catatan Anda sebagai variabel dan parameter lingkungan.

## Lulus variabel lingkungan
<a name="create-notebook-auto-run-dag-seq-env-var"></a>

Lulus variabel lingkungan sebagai kamus ke `environment_variable` argumen Anda`NotebookJobStep`, seperti yang ditunjukkan pada contoh berikut:

```
environment_variables = {"RATE": 0.0001, "BATCH_SIZE": 1000}

notebook_job_step = NotebookJobStep(
    ...
    environment_variables=environment_variables,
    ...
)
```

Anda dapat menggunakan variabel lingkungan di buku catatan menggunakan`os.getenv()`, seperti yang ditunjukkan pada contoh berikut:

```
# inside your notebook
import os
print(f"ParentNotebook: env_key={os.getenv('env_key')}")
```

## Parameter lulus
<a name="create-notebook-auto-run-dag-seq-param"></a>

Saat meneruskan parameter ke langkah Job Notebook pertama dalam `NotebookJobStep` instans, Anda mungkin ingin menandai sel di buku catatan Jupyter untuk menunjukkan tempat menerapkan parameter baru atau penggantian parameter. Untuk petunjuk tentang cara menandai sel di buku catatan Jupyter Anda, lihat. [Parameterisasi notebook Anda](notebook-auto-run-troubleshoot-override.md)

Anda meneruskan parameter melalui parameter langkah Notebook Job, seperti yang ditunjukkan pada cuplikan berikut: `parameters`

```
notebook_job_parameters = {
    "company": "Amazon",
}

notebook_job_step = NotebookJobStep(
    ...
    parameters=notebook_job_parameters,
    ...
)
```

Di dalam buku catatan input Anda, parameter Anda diterapkan setelah sel ditandai dengan `parameters` atau di awal buku catatan jika Anda tidak memiliki sel yang ditandai.

```
# this cell is in your input notebook and is tagged with 'parameters'
# your parameters and parameter overrides are applied after this cell
company='default'
```

```
# in this cell, your parameters are applied
# prints "company is Amazon"
print(f'company is {company}')
```

## Mengambil informasi dari langkah sebelumnya
<a name="create-notebook-auto-run-dag-seq-interstep"></a>

Diskusi berikut menjelaskan bagaimana Anda dapat mengekstrak data dari langkah sebelumnya untuk diteruskan ke langkah Job Notebook Anda.

**Gunakan `properties` atribut**

Anda dapat menggunakan properti berikut dengan `properties` atribut langkah sebelumnya:
+ `ComputingJobName`—Nama pekerjaan pelatihan
+ `ComputingJobStatus`—Status pekerjaan pelatihan
+ `NotebookJobInputLocation`—Masukan lokasi Amazon S3
+ `NotebookJobOutputLocationPrefix`—Jalan menuju output pekerjaan pelatihan Anda, lebih `{NotebookJobOutputLocationPrefix}/{training-job-name}/output/output.tar.gz` spesifik. berisi output
+ `InputNotebookName`—Nama file notebook masukan
+ `OutputNotebookName`—Nama file notebook keluaran (yang mungkin tidak ada di folder keluaran pekerjaan pelatihan jika pekerjaan gagal)

Cuplikan kode berikut menunjukkan cara mengekstrak parameter dari atribut properti.

```
notebook_job_step2 = NotebookJobStep(
    ....
    parameters={
        "step1_JobName": notebook_job_step1.properties.ComputingJobName,
        "step1_JobStatus": notebook_job_step1.properties.ComputingJobStatus,
        "step1_NotebookJobInput": notebook_job_step1.properties.NotebookJobInputLocation,
        "step1_NotebookJobOutput": notebook_job_step1.properties.NotebookJobOutputLocationPrefix,
    }
```

**Gunakan JsonGet**

Jika Anda ingin meneruskan parameter selain yang disebutkan sebelumnya dan output JSON dari langkah Anda sebelumnya berada di Amazon S3, gunakan. `JsonGet` `JsonGet`adalah mekanisme umum yang dapat langsung mengekstrak data dari file JSON di Amazon S3.

Untuk mengekstrak file JSON di Amazon S3 `JsonGet` dengan, selesaikan langkah-langkah berikut:

1. Unggah file JSON Anda ke Amazon S3. Jika data Anda sudah diunggah ke Amazon S3, lewati langkah ini. Contoh berikut menunjukkan mengunggah file JSON ke Amazon S3.

   ```
   import json
   from sagemaker.s3 import S3Uploader
   
   output = {
       "key1": "value1", 
       "key2": [0,5,10]
   }
               
   json_output = json.dumps(output)
   
   with open("notebook_job_params.json", "w") as file:
       file.write(json_output)
   
   S3Uploader.upload(
       local_path="notebook_job_params.json",
       desired_s3_uri="s3://path/to/bucket"
   )
   ```

1. Berikan URI S3 Anda dan jalur JSON ke nilai yang ingin Anda ekstrak. Dalam contoh berikut, `JsonGet` mengembalikan sebuah objek yang mewakili indeks 2 dari nilai yang terkait dengan key `key2` (`10`).

   ```
   NotebookJobStep(
       ....
       parameters={
           # the key job_key1 returns an object representing the value 10
           "job_key1": JsonGet(
               s3_uri=Join(on="/", values=["s3:/", ..]),
               json_path="key2[2]" # value to reference in that json file
           ), 
           "job_key2": "Amazon" 
       }
   )
   ```

# Panggil buku catatan lain di pekerjaan notebook Anda
<a name="create-notebook-auto-run-dag-call"></a>

Anda dapat mengatur pipa di mana satu pekerjaan notebook memanggil notebook lain. Berikut ini menyiapkan contoh pipeline dengan langkah Notebook Job di mana notebook memanggil dua notebook lainnya. Notebook input berisi baris berikut:

```
%run 'subfolder/notebook_to_call_in_subfolder.ipynb'
%run 'notebook_to_call.ipynb'
```

Masukkan buku catatan ini ke `NotebookJobStep` instans Anda`additional_dependencies`, seperti yang ditunjukkan pada cuplikan berikut. Perhatikan bahwa jalur yang disediakan untuk buku catatan `additional_dependencies` disediakan dari lokasi root. Untuk informasi tentang cara SageMaker AI mengunggah file dan folder dependen Anda ke Amazon S3 sehingga Anda dapat memberikan jalur ke dependensi dengan benar, lihat deskripsi untuk di. `additional_dependencies` [NotebookJobStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.notebook_job_step.NotebookJobStep)

```
input_notebook = "inputs/input_notebook.ipynb"
simple_notebook_path = "inputs/notebook_to_call.ipynb"
folder_with_sub_notebook = "inputs/subfolder"

notebook_job_step = NotebookJobStep(
    image_uri=image-uri,
    kernel_name=kernel-name,
    role=role-name,
    input_notebook=input_notebook,
    additional_dependencies=[simple_notebook_path, folder_with_sub_notebook],
    tags=tags,
)
```

# Pilihan yang tersedia
<a name="create-notebook-auto-execution-advanced"></a>

Tabel berikut menampilkan semua opsi yang tersedia yang dapat Anda gunakan untuk menyesuaikan pekerjaan notebook, baik Anda menjalankan Job Notebook di Studio, lingkungan Jupyter lokal, atau menggunakan Python SageMaker SDK. Tabel ini mencakup jenis opsi kustom, deskripsi, pedoman tambahan tentang cara menggunakan opsi, nama bidang untuk opsi di Studio (jika tersedia) dan nama parameter untuk langkah pekerjaan notebook di SDK SageMaker Python (jika tersedia).

Untuk beberapa opsi, Anda juga dapat mengatur nilai default kustom sehingga Anda tidak perlu menentukannya setiap kali Anda menyiapkan pekerjaan buku catatan. Untuk Studio, opsi ini adalah **Peran**, **folder Input**, **folder Output**, dan **ID Kunci KMS**, dan ditentukan dalam tabel berikut. Jika Anda menetapkan default kustom untuk opsi ini, bidang ini akan diisi sebelumnya dalam formulir Buat Job saat Anda **membuat pekerjaan** buku catatan. Untuk detail tentang cara membuat default kustom di Studio dan lingkungan Jupyter lokal, lihat. [Menyiapkan opsi default untuk buku catatan lokal](create-notebook-auto-execution-advanced-default.md)

 SageMaker SDK juga memberi Anda opsi untuk mengatur default cerdas sehingga Anda tidak perlu menentukan parameter ini saat membuat file. `NotebookJobStep` Parameter ini adalah `role``s3_root_uri`,`s3_kms_key`,`volume_kms_key`, `subnets``security_group_ids`,,, dan ditentukan dalam tabel berikut. Untuk informasi tentang cara mengatur default cerdas, lihat. [Siapkan opsi default](create-notebook-auto-run-sdk.md#create-notebook-auto-run-intdefaults)


| Opsi kustom | Deskripsi | Pedoman khusus studio | Pedoman lingkungan Jupyter lokal | SageMaker Pedoman Python SDK | 
| --- | --- | --- | --- | --- | 
| Nama Tugas | Nama pekerjaan Anda seperti yang akan muncul di dasbor Pekerjaan Notebook. | Nama Field Job. | Sama seperti studio. | Parameternotebook\$1job\$1name. Default ke None. | 
| Citra | Gambar kontainer yang digunakan untuk menjalankan notebook secara noninteraktif pada jenis komputasi yang dipilih. | Gambar Bidang. Bidang ini default ke gambar notebook Anda saat ini. Ubah bidang ini dari default ke nilai kustom jika diperlukan. Jika Studio tidak dapat menyimpulkan nilai ini, formulir akan menampilkan kesalahan validasi yang mengharuskan Anda untuk menentukannya. Gambar ini dapat berupa kustom, [bring-your-own gambar, atau SageMaker gambar](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html) Amazon yang tersedia. Untuk daftar SageMaker gambar yang tersedia yang didukung oleh penjadwal buku catatan, lihat[SageMaker Gambar Amazon Tersedia untuk Digunakan Dengan Notebook Studio Classic](notebooks-available-images.md). | Gambar Bidang. Bidang ini memerlukan URI ECR dari image Docker yang dapat menjalankan notebook yang disediakan pada jenis komputasi yang dipilih. Secara default, ekstensi penjadwal menggunakan gambar SageMaker AI Docker yang sudah dibuat sebelumnya — dasar Python 2.0. Ini adalah gambar resmi Python 3.8 dari DockerHub dengan boto3,, AWS CLI dan kernel Python 3. Anda juga dapat memberikan URI ECR apa pun yang memenuhi spesifikasi gambar kustom notebook. Lihat perinciannya di [Spesifikasi SageMaker Gambar Kustom untuk Amazon SageMaker Studio Classic](studio-byoi-specs.md). Gambar ini harus memiliki semua kernel dan pustaka yang diperlukan untuk menjalankan notebook. | Diperlukan. Parameterimage\$1uri. Lokasi URI dari gambar Docker di ECR. Anda dapat menggunakan Gambar SageMaker Distribusi tertentu atau gambar kustom berdasarkan gambar tersebut, atau gambar Anda sendiri yang telah diinstal sebelumnya dengan dependensi pekerjaan notebook yang memenuhi persyaratan tambahan. Lihat perinciannya di [Kendala gambar untuk pekerjaan notebook AI SageMaker Python SDK](notebook-auto-run-constraints.md#notebook-auto-run-constraints-image-sdk). | 
| Tipe instans | Jenis instans EC2 yang digunakan untuk menjalankan pekerjaan notebook. Pekerjaan notebook menggunakan SageMaker Training Job sebagai lapisan komputasi, jadi tipe instance yang ditentukan harus berupa tipe instans yang didukung SageMaker Pelatihan. | Tipe Komputasi Bidang. Default ke ml.m5.large. | Sama seperti studio. | Parameterinstance\$1type. Default ke ml.m5.large. | 
| Kernel | Kernel Jupyter digunakan untuk menjalankan pekerjaan notebook. | Kernel Lapangan. Bidang ini default ke kernel notebook Anda saat ini. Ubah bidang ini dari default ke nilai kustom jika diperlukan. Jika Studio tidak dapat menyimpulkan nilai ini, formulir akan menampilkan kesalahan validasi yang mengharuskan Anda untuk menentukannya. | Kernel Lapangan. Kernel ini harus ada dalam gambar dan mengikuti spesifikasi kernel Jupyter. Bidang ini default ke kernel Python3 yang ditemukan di gambar dasar Python 2.0. SageMaker Ubah bidang ini menjadi nilai kustom jika diperlukan. | Diperlukan. Parameterkernel\$1name. Kernel ini harus ada dalam gambar dan mengikuti spesifikasi kernel Jupyter. Untuk melihat pengidentifikasi kernel untuk gambar Anda, lihat (LINK). | 
| SageMaker Sesi AI | Sesi SageMaker AI yang mendasari panggilan layanan SageMaker AI didelegasikan. | N/A | N/A | Parametersagemaker\$1session. Jika tidak ditentukan, satu dibuat menggunakan rantai konfigurasi default. | 
| Peran ARN | Nama Sumber Daya Amazon (ARN) peran yang digunakan dengan pekerjaan notebook. | Peran Lapangan ARN. Bidang ini default ke peran eksekusi Studio. Ubah bidang ini menjadi nilai kustom jika diperlukan.  Jika Studio tidak dapat menyimpulkan nilai ini, bidang **ARN Peran** kosong. Dalam hal ini, masukkan ARN yang ingin Anda gunakan.  | Peran Lapangan ARN. Bidang ini default ke peran apa pun yang diawali dengan. SagemakerJupyterScheduler Jika Anda memiliki beberapa peran dengan awalan, ekstensi memilih satu. Ubah bidang ini menjadi nilai kustom jika diperlukan. Untuk bidang ini, Anda dapat mengatur default pengguna Anda sendiri yang telah terisi sebelumnya setiap kali Anda membuat definisi pekerjaan baru. Lihat perinciannya di [Menyiapkan opsi default untuk buku catatan lokal](create-notebook-auto-execution-advanced-default.md). | Parameterrole. Default ke peran IAM default SageMaker AI jika SDK berjalan di Notebook atau Notebook Studio. SageMaker SageMaker Kalau tidak, itu melempar a. ValueError Memungkinkan default cerdas. | 
| Notebook masukan | Nama notebook yang Anda jadwalkan untuk dijalankan. | Diperlukan. Berkas Masukan Bidang. | Sama seperti studio. | Diperlukan .Parameterinput\$1notebook. | 
| Folder masukan | Folder yang berisi input Anda. Input pekerjaan, termasuk notebook input dan skrip start-up atau inisialisasi opsional apa pun, dimasukkan ke dalam folder ini. | Folder Masukan Bidang. Jika Anda tidak menyediakan folder, penjadwal akan membuat bucket Amazon S3 default untuk input Anda. | Sama seperti studio. Untuk bidang ini, Anda dapat mengatur default pengguna Anda sendiri yang telah terisi sebelumnya setiap kali Anda membuat definisi pekerjaan baru. Lihat perinciannya di [Menyiapkan opsi default untuk buku catatan lokal](create-notebook-auto-execution-advanced-default.md). | N/A. Folder input ditempatkan di dalam lokasi yang ditentukan oleh parameters3\$1root\$1uri. | 
| Folder keluaran | Folder yang berisi output Anda. Output pekerjaan, termasuk notebook keluaran dan log, dimasukkan ke dalam folder ini. | Folder Keluaran Bidang. Jika Anda tidak menentukan folder, penjadwal akan membuat bucket Amazon S3 default untuk output Anda. | Sama seperti studio. Untuk bidang ini, Anda dapat mengatur default pengguna Anda sendiri yang telah terisi sebelumnya setiap kali Anda membuat definisi pekerjaan baru. Lihat perinciannya di [Menyiapkan opsi default untuk buku catatan lokal](create-notebook-auto-execution-advanced-default.md). | N/A. Folder output ditempatkan di dalam lokasi yang ditentukan oleh parameters3\$1root\$1uri. | 
| Parameter | Kamus variabel dan nilai untuk diteruskan ke pekerjaan notebook Anda. | Parameter Bidang. Anda perlu membuat [parameter notebook Anda](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-auto-run-troubleshoot-override.html) untuk menerima parameter. | Sama seperti studio. | Parameterparameters. Anda perlu membuat [parameter notebook Anda](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-auto-run-troubleshoot-override.html) untuk menerima parameter. | 
| Dependensi tambahan (file atau folder) | Daftar dependensi file atau folder yang diunggah oleh pekerjaan notebook ke folder bertahap s3. | Tidak didukung. | Tidak didukung. | Parameteradditional\$1dependencies. Pekerjaan notebook mengunggah dependensi ini ke folder bertahap S3 sehingga dapat dikonsumsi selama eksekusi. | 
| URI akar S3 | Folder yang berisi input Anda. Input pekerjaan, termasuk notebook input dan skrip start-up atau inisialisasi opsional apa pun, dimasukkan ke dalam folder ini. Bucket S3 ini harus sama dengan Akun AWS yang Anda gunakan untuk menjalankan pekerjaan notebook Anda. | N/A. Gunakan Folder Input dan folder Output. | Sama seperti studio. | Parameters3\$1root\$1uri. Default ke bucket S3 default. Memungkinkan default cerdas. | 
| Variabel-variabel lingkungan | Setiap variabel lingkungan yang ada yang ingin Anda timpa, atau variabel lingkungan baru yang ingin Anda perkenalkan dan gunakan di buku catatan Anda. | Variabel Lingkungan Lapangan. | Sama seperti studio. | Parameterenvironment\$1variables. Default ke None. | 
| Tag | Daftar tag yang dilampirkan pada pekerjaan. | N/A | N/A | Parametertags. Default ke None. Tag Anda mengontrol cara UI Studio menangkap dan menampilkan pekerjaan yang dibuat oleh pipeline. Lihat perinciannya di [Melihat pekerjaan notebook Anda di dasbor Studio UI](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash). | 
| Skrip start-up | Skrip yang dimuat sebelumnya di menu startup notebook yang dapat Anda pilih untuk dijalankan sebelum menjalankan notebook. | Skrip Start-up bidang. Pilih skrip Lifecycle Configuration (LCC) yang berjalan pada gambar saat start-up. Skrip start-up berjalan di shell di luar lingkungan Studio. Oleh karena itu, skrip ini tidak dapat bergantung pada penyimpanan lokal Studio, variabel lingkungan, atau metadata aplikasi (in`/opt/ml/metadata`). Juga, jika Anda menggunakan skrip start-up dan skrip inisialisasi, skrip start-up berjalan terlebih dahulu.   | Tidak didukung. | Tidak didukung. | 
| Skrip inisialisasi | Jalur ke skrip lokal yang dapat Anda jalankan saat notebook Anda dimulai. | Skrip Inisialisasi Bidang. Masukkan jalur file EFS tempat skrip lokal atau skrip Lifecycle Configuration (LCC) berada. Jika Anda menggunakan skrip start-up dan skrip inisialisasi, skrip start-up berjalan terlebih dahulu. Skrip inisialisasi bersumber dari shell yang sama dengan pekerjaan notebook. Ini tidak berlaku untuk skrip start-up yang dijelaskan sebelumnya. Juga, jika Anda menggunakan skrip start-up dan skrip inisialisasi, skrip start-up berjalan terlebih dahulu.    | Skrip Inisialisasi Bidang. Masukkan jalur file lokal tempat skrip lokal atau skrip Konfigurasi Siklus Hidup (LCC) berada.  | Parameterinitialization\$1script. Default ke None. | 
| Upaya coba lagi maksimal | Berapa kali Studio mencoba menjalankan kembali pekerjaan yang gagal. | Upaya coba lagi Field Max. Default ke 1. | Sama seperti studio. | Parametermax\$1retry\$1attempts. Default ke 1. | 
| Waktu lari maks (dalam detik) | Panjang waktu maksimum, dalam hitungan detik, pekerjaan notebook dapat dijalankan sebelum dihentikan. Jika Anda mengonfigurasi upaya Max run time dan Max retry, waktu berjalan berlaku untuk setiap percobaan ulang. Jika pekerjaan tidak selesai saat ini, statusnya diatur keFailed. | Field Max run time (dalam detik). Default ke 172800 seconds (2 days). | Sama seperti studio. | Parametermax\$1runtime\$1in\$1seconds. Default ke 172800 seconds (2 days). | 
| Coba lagi kebijakan | Daftar kebijakan coba lagi, yang mengatur tindakan yang harus diambil jika terjadi kegagalan. | Tidak didukung. | Tidak didukung. | Parameterretry\$1policies. Default ke None. | 
| Tambah Step atau StepCollection dependensi | Daftar Step atau StepCollection nama atau contoh di mana pekerjaan tergantung. | Tidak didukung. | Tidak didukung. | Parameterdepends\$1on. Default ke None. Gunakan ini untuk menentukan dependensi eksplisit di antara langkah-langkah dalam grafik pipeline Anda. | 
| Ukuran volume | Ukuran dalam GB volume penyimpanan untuk menyimpan data input dan output selama pelatihan. | Tidak didukung. | Tidak didukung. | Parametervolume\$1size. Default ke 30GB. | 
| Enkripsi lalu lintas antar kontainer | Bendera yang menentukan apakah lalu lintas antar wadah pelatihan dienkripsi untuk pekerjaan pelatihan. | N/A. Diaktifkan secara default. | N/A. Diaktifkan secara default. | Parameterencrypt\$1inter\$1container\$1traffic. Default ke True. | 
| Konfigurasikan enkripsi pekerjaan | Indikator bahwa Anda ingin mengenkripsi output pekerjaan notebook, volume instans pekerjaan, atau keduanya. | Bidang Konfigurasi enkripsi pekerjaan. Centang kotak ini untuk memilih enkripsi. Jika dibiarkan tidak dicentang, output pekerjaan dienkripsi dengan kunci KMS default akun dan volume instance pekerjaan tidak dienkripsi. | Sama seperti studio. | Tidak didukung. | 
| Kunci KMS enkripsi keluaran | Kunci KMS untuk digunakan jika Anda ingin menyesuaikan kunci enkripsi yang digunakan untuk output pekerjaan notebook Anda. Bidang ini hanya berlaku jika Anda memeriksa Konfigurasi enkripsi pekerjaan. | Kunci KMS enkripsi Keluaran Bidang. Jika Anda tidak menentukan bidang ini, output pekerjaan notebook Anda dienkripsi dengan SSE-KMS menggunakan kunci Amazon S3 KMS default. Selain itu, jika Anda membuat bucket Amazon S3 sendiri dan menggunakan enkripsi, metode enkripsi Anda akan dipertahankan. | Sama seperti studio. Untuk bidang ini, Anda dapat mengatur default pengguna Anda sendiri yang telah terisi sebelumnya setiap kali Anda membuat definisi pekerjaan baru. Lihat perinciannya di [Menyiapkan opsi default untuk buku catatan lokal](create-notebook-auto-execution-advanced-default.md). | Parameters3\$1kms\$1key. Default ke None. Memungkinkan default cerdas. | 
| Kunci KMS enkripsi volume contoh Job | Kunci KMS untuk digunakan jika Anda ingin mengenkripsi volume instance pekerjaan Anda. Bidang ini hanya berlaku jika Anda memeriksa Konfigurasi enkripsi pekerjaan. | Kunci KMS enkripsi volume instance Field Job. | Kunci KMS enkripsi volume instance Field Job. Untuk bidang ini, Anda dapat mengatur default pengguna Anda sendiri yang telah terisi sebelumnya setiap kali Anda membuat definisi pekerjaan baru. Lihat perinciannya di [Menyiapkan opsi default untuk buku catatan lokal](create-notebook-auto-execution-advanced-default.md). | Parametervolume\$1kms\$1key. Default ke None. Memungkinkan default cerdas. | 
| Gunakan Virtual Private Cloud untuk menjalankan pekerjaan ini (untuk pengguna VPC) | Indikator bahwa Anda ingin menjalankan pekerjaan ini di Virtual Private Cloud (VPC). Untuk keamanan yang lebih baik, Anda disarankan untuk menggunakan VPC pribadi. | Bidang Gunakan Virtual Private Cloud untuk menjalankan pekerjaan ini. Centang kotak ini jika Anda ingin menggunakan VPC. Minimal, buat titik akhir VPC berikut untuk memungkinkan pekerjaan notebook Anda terhubung secara pribadi ke sumber daya tersebut: AWS [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/create-notebook-auto-execution-advanced.html)Jika Anda memilih untuk menggunakan VPC, Anda perlu menentukan setidaknya satu subnet pribadi dan setidaknya satu grup keamanan dalam opsi berikut. Jika Anda tidak menggunakan subnet pribadi apa pun, Anda perlu mempertimbangkan opsi konfigurasi lainnya. Untuk detailnya, lihat Subnet VPC Publik yang tidak didukung. [Kendala dan pertimbangan](notebook-auto-run-constraints.md) | Sama seperti studio. | N/A | 
| Subnet (untuk pengguna VPC) | Subnet Anda. Bidang ini harus berisi setidaknya satu dan paling banyak lima, dan semua subnet yang Anda berikan harus bersifat pribadi. Untuk detailnya, lihat Subnet VPC Publik yang tidak didukung. [Kendala dan pertimbangan](notebook-auto-run-constraints.md) | Subnet Bidang. Bidang ini default ke subnet yang terkait dengan domain Studio, tetapi Anda dapat mengubah bidang ini jika diperlukan. | Subnet Bidang. Penjadwal tidak dapat mendeteksi subnet Anda, jadi Anda harus memasukkan subnet apa pun yang Anda konfigurasi untuk VPC Anda. | Parametersubnets. Default ke None. Memungkinkan default cerdas. | 
| Grup keamanan (untuk pengguna VPC) | Grup keamanan Anda. Bidang ini harus berisi setidaknya satu dan paling banyak 15. Untuk detailnya, lihat Subnet VPC Publik yang tidak didukung. [Kendala dan pertimbangan](notebook-auto-run-constraints.md) | Kelompok Keamanan Lapangan. Bidang ini default ke grup keamanan yang terkait dengan VPC domain, tetapi Anda dapat mengubah bidang ini jika diperlukan. | Kelompok Keamanan Lapangan. Penjadwal tidak dapat mendeteksi grup keamanan Anda, jadi Anda harus memasukkan grup keamanan apa pun yang Anda konfigurasikan untuk VPC Anda. | Parametersecurity\$1group\$1ids. Default ke None. Memungkinkan default cerdas. | 
| Nama | Nama langkah pekerjaan notebook. | N/A | N/A | Parametername. Jika tidak ditentukan, itu berasal dari nama file notebook. | 
| Nama tampilan | Nama pekerjaan Anda seperti yang akan muncul dalam daftar eksekusi pipeline Anda. | N/A | N/A | Parameterdisplay\$1name. Default ke None. | 
| Deskripsi | Deskripsi pekerjaan Anda. | N/A | N/A | Parameterdescription. | 

# Parameterisasi notebook Anda
<a name="notebook-auto-run-troubleshoot-override"></a>

Untuk meneruskan parameter baru atau penggantian parameter ke pekerjaan buku catatan terjadwal, Anda mungkin ingin memodifikasi buku catatan Jupyter jika Anda ingin nilai parameter baru diterapkan setelah sel. Saat Anda melewati parameter, pelaksana pekerjaan notebook menggunakan metodologi yang diberlakukan oleh Papermill. Pelaksana pekerjaan notebook mencari sel Jupyter yang ditandai dengan `parameters` tag dan menerapkan parameter baru atau penggantian parameter segera setelah sel ini. Jika Anda tidak memiliki sel yang ditandai`parameters`, parameter diterapkan di awal buku catatan. Jika Anda memiliki lebih dari satu sel yang ditandai`parameters`, parameter diterapkan setelah sel pertama ditandai dengan. `parameters`

Untuk menandai sel di buku catatan Anda dengan `parameters` tag, selesaikan langkah-langkah berikut:

1. Pilih sel untuk membuat parameter.

1. Pilih ikon **Property Inspector** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/studio/icons/gears.png)) di sidebar kanan.

1. Ketik **parameters** di kotak **Tambah Tag**.

1. Pilih tanda **\$1**.

1. `parameters`Tag muncul di bawah **Tag Sel** dengan tanda centang, yang berarti tag diterapkan ke sel.

# Connect ke kluster EMR Amazon dari notebook
<a name="scheduled-notebook-connect-emr"></a>

Jika Anda terhubung ke kluster EMR Amazon dari notebook Jupyter di Studio, Anda mungkin perlu melakukan penyiapan tambahan. Secara khusus, diskusi berikut membahas dua masalah:
+ **Meneruskan parameter ke perintah koneksi EMR Amazon Anda**. Dalam SparkMagic kernel, parameter yang Anda berikan ke perintah koneksi EMR Amazon mungkin tidak berfungsi seperti yang diharapkan karena perbedaan cara Papermill melewati parameter dan SparkMagic cara menerima parameter. Solusi untuk mengatasi batasan ini adalah dengan meneruskan parameter sebagai variabel lingkungan. Untuk detail selengkapnya tentang masalah dan solusinya, lihat. [Lulus parameter ke perintah koneksi EMR Anda](#scheduled-notebook-connect-emr-pass-param)
+ **Meneruskan kredensyal pengguna ke cluster EMR Amazon yang diautentikasi oleh Kerberos, LDAP, atau HTTP Basic Auth-autentikasi**. Dalam mode interaktif, Studio meminta kredensil dalam bentuk popup tempat Anda dapat memasukkan kredenal masuk Anda. Dalam buku catatan terjadwal noninteraktif Anda, Anda harus melewati mereka melalui. AWS Secrets Manager Untuk detail selengkapnya tentang cara menggunakan pekerjaan buku catatan terjadwal Anda, lihat[Teruskan kredensyal pengguna ke cluster EMR Amazon yang diautentikasi Auth-Kerberos, LDAP, atau HTTP Basic Auth-Anda](#scheduled-notebook-connect-emr-credentials). AWS Secrets Manager 

## Lulus parameter ke perintah koneksi EMR Anda
<a name="scheduled-notebook-connect-emr-pass-param"></a>

**Jika Anda menggunakan gambar dengan kernel SparkMagic PySpark dan Spark dan ingin membuat parameter perintah koneksi EMR Anda, berikan parameter Anda di bidang variabel **Lingkungan** alih-alih bidang Parameter dalam formulir Buat Job (di menu tarik-turun Opsi Tambahan).** Pastikan perintah koneksi EMR Anda di notebook Jupyter melewati parameter ini sebagai variabel lingkungan. Misalnya, Anda lulus `cluster-id` sebagai variabel lingkungan saat Anda membuat pekerjaan Anda. Perintah koneksi EMR Anda akan terlihat seperti berikut:

```
%%local
import os
```

```
%sm_analytics emr connect —cluster-id {os.getenv('cluster_id')} --auth-type None
```

Anda memerlukan solusi ini untuk memenuhi persyaratan oleh SparkMagic dan Papermill. Untuk konteks latar belakang, SparkMagic kernel mengharapkan bahwa perintah `%%local` ajaib menyertai variabel lokal apa pun yang Anda tentukan. Namun, Papermill tidak lulus perintah `%%local` ajaib dengan penggantian Anda. Untuk mengatasi batasan Papermill ini, Anda harus menyediakan parameter Anda sebagai variabel lingkungan di bidang **variabel Lingkungan**.

## Teruskan kredensyal pengguna ke cluster EMR Amazon yang diautentikasi Auth-Kerberos, LDAP, atau HTTP Basic Auth-Anda
<a name="scheduled-notebook-connect-emr-credentials"></a>

Untuk membuat koneksi aman ke kluster EMR Amazon yang menggunakan otentikasi Kerberos, LDAP, atau HTTP Basic Auth, Anda menggunakan AWS Secrets Manager untuk meneruskan kredensyal pengguna ke perintah koneksi Anda. Untuk informasi tentang cara membuat rahasia Secrets Manager, lihat [Membuat AWS Secrets Manager rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). Rahasia Anda harus berisi nama pengguna dan kata sandi Anda. Anda meneruskan rahasia dengan `--secrets` argumen, seperti yang ditunjukkan pada contoh berikut:

```
%sm_analytics emr connect --cluster-id j_abcde12345 
    --auth Kerberos 
    --secret aws_secret_id_123
```

Administrator Anda dapat menyiapkan kebijakan akses fleksibel menggunakan metode attribute-based-access-control (ABAC), yang menetapkan akses berdasarkan tag khusus. Anda dapat mengatur akses fleksibel untuk membuat satu rahasia untuk semua pengguna di akun atau rahasia untuk setiap pengguna. Contoh kode berikut menunjukkan skenario ini:

**Buat satu rahasia untuk semua pengguna di akun**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"
            },
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes123-1a2b3c",
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes456-4d5e6f",
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes789-7g8h9i"
            ]
        }
    ]
}
```

------

**Buat rahasia yang berbeda untuk setiap pengguna**

Anda dapat membuat rahasia yang berbeda untuk setiap pengguna menggunakan `PrincipleTag` tag, seperti yang ditunjukkan pada contoh berikut:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"
            },
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/user-identity": "${aws:PrincipalTag/user-identity}"
                }
            },
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes123-1a2b3c",
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes456-4d5e6f",
                "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes789-7g8h9i"
            ]
        }
    ]
}
```

------

# Detail pekerjaan notebook di Amazon SageMaker Studio
<a name="track-jobs-jobdefs"></a>

SageMaker Dasbor Pekerjaan Notebook membantu mengatur definisi pekerjaan yang Anda jadwalkan, dan juga melacak pekerjaan aktual yang dijalankan dari definisi pekerjaan Anda. Ada dua konsep penting yang harus dipahami saat menjadwalkan pekerjaan notebook: *definisi pekerjaan* dan *pekerjaan berjalan*. Definisi Job adalah jadwal yang Anda tetapkan untuk menjalankan buku catatan tertentu. Misalnya, Anda dapat membuat definisi pekerjaan yang menjalankan notebook XYZ.IpyNB setiap hari Rabu. Definisi pekerjaan ini meluncurkan pekerjaan aktual yang terjadi Rabu mendatang, Rabu depan, Rabu setelah itu, dan seterusnya. 

**catatan**  
Langkah pekerjaan notebook SDK SageMaker Python tidak membuat definisi pekerjaan. Namun, Anda dapat melihat pekerjaan Anda di dasbor Pekerjaan Notebook. Baik pekerjaan dan definisi pekerjaan tersedia jika Anda menjadwalkan pekerjaan Anda di suatu JupyterLab lingkungan.

Antarmuka menyediakan dua tab utama yang membantu Anda melacak definisi pekerjaan yang ada dan menjalankan pekerjaan:
+ Tab **Pekerjaan Notebook**: Tab ini menampilkan daftar semua pekerjaan Anda berjalan dari pekerjaan sesuai permintaan dan definisi pekerjaan Anda. Dari tab ini, Anda dapat langsung mengakses detail untuk satu pekerjaan yang dijalankan. Misalnya, Anda dapat melihat satu pekerjaan berjalan yang terjadi dua hari Rabu lalu.
+ **Notebook Job Definitions** tab: Tab ini menampilkan daftar semua definisi pekerjaan Anda. Dari tab ini, Anda dapat langsung mengakses detail untuk satu definisi pekerjaan. Misalnya, Anda dapat melihat jadwal yang Anda buat untuk menjalankan XYZ.ipynb setiap hari Rabu.

Untuk detail tentang tab **Pekerjaan Notebook**, lihat[Lihat pekerjaan notebook](view-notebook-jobs.md).

Untuk detail tentang tab **Definisi Pekerjaan Notebook**, lihat[Lihat definisi pekerjaan notebook](view-def-detail-notebook-auto-run.md).

# Lihat pekerjaan notebook
<a name="view-notebook-jobs"></a>

**catatan**  
Anda dapat melihat pekerjaan notebook secara otomatis jika menjadwalkan pekerjaan notebook dari UI Studio. Jika Anda menggunakan SageMaker Python SDK untuk menjadwalkan pekerjaan notebook Anda, Anda perlu menyediakan tag tambahan saat membuat langkah pekerjaan notebook. Lihat perinciannya di [Melihat pekerjaan notebook Anda di dasbor Studio UI](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash).

Topik berikut memberikan informasi tentang tab **Pekerjaan Notebook** dan cara melihat detail pekerjaan notebook tunggal. Tab **Pekerjaan Notebook** (yang Anda akses dengan memilih ikon **Buat pekerjaan buku catatan** (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/icons/notebook-schedule.png)) di toolbar Studio) menampilkan riwayat pekerjaan sesuai permintaan Anda dan semua pekerjaan yang dijalankan dari definisi pekerjaan yang Anda buat. Tab ini terbuka setelah Anda membuat pekerjaan sesuai permintaan, atau Anda dapat melihat sendiri tab ini untuk melihat riwayat pekerjaan masa lalu dan saat ini. Jika Anda memilih **nama Job** untuk pekerjaan apa pun, Anda dapat melihat detail untuk satu pekerjaan di halaman **Job Detail**. Untuk informasi selengkapnya tentang halaman **Detail Pekerjaan**, lihat bagian berikut[Lihat satu pekerjaan](#view-jobs-detail-notebook-auto-run).

Tab **Pekerjaan Notebook** menyertakan informasi berikut untuk setiap pekerjaan:
+ **File keluaran**: Menampilkan ketersediaan file output. Kolom ini dapat berisi salah satu dari berikut ini:
  + Ikon unduhan (![\[Cloud icon with downward arrow, representing download or cloud storage functionality.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/icons/File_download.png)): Notebook keluaran dan log tersedia untuk diunduh; pilih tombol ini untuk mengunduhnya. Perhatikan bahwa pekerjaan yang gagal masih dapat menghasilkan file keluaran jika kegagalan terjadi setelah file dibuat. Dalam hal ini, akan sangat membantu untuk melihat notebook keluaran untuk mengidentifikasi titik kegagalan.
  + Tautan ke **log **Notebook** dan Output**: Notebook dan log keluaran diunduh. Pilih tautan untuk melihat isinya.
  + (blank): Pekerjaan dihentikan oleh pengguna, atau terjadi kegagalan dalam pekerjaan yang dijalankan sebelum dapat menghasilkan file keluaran. Misalnya, kegagalan jaringan dapat mencegah pekerjaan dimulai.

  Notebook keluaran adalah hasil dari menjalankan semua sel di notebook, dan juga menggabungkan parameter atau variabel lingkungan baru atau utama yang Anda sertakan. Log keluaran menangkap detail pekerjaan yang dijalankan untuk membantu Anda memecahkan masalah pekerjaan yang gagal.
+ **Dibuat di**: Waktu pekerjaan sesuai permintaan atau pekerjaan terjadwal dibuat.
+ **Status**: Status pekerjaan saat ini, yang merupakan salah satu dari nilai berikut:
  + **Sedang berlangsung**: Pekerjaan sedang berjalan
  + **Gagal**: Pekerjaan gagal karena kesalahan konfigurasi atau logika notebook
  + **Berhenti**: Pekerjaan dihentikan oleh pengguna
  + **Selesai**: Pekerjaan selesai
+ **Tindakan**: Kolom ini menyediakan pintasan untuk membantu Anda menghentikan atau menghapus pekerjaan apa pun secara langsung di antarmuka.

## Lihat satu pekerjaan
<a name="view-jobs-detail-notebook-auto-run"></a>

Dari tab **Pekerjaan Notebook**, Anda dapat memilih nama pekerjaan untuk melihat halaman **Detail Pekerjaan** untuk pekerjaan tertentu. Halaman **Job Detail** mencakup semua detail yang Anda berikan dalam formulir **Create Job**. Gunakan halaman ini untuk mengonfirmasi pengaturan yang Anda tentukan saat Anda membuat definisi pekerjaan. 

Selain itu, Anda dapat mengakses pintasan untuk membantu Anda melakukan tindakan berikut di halaman itu sendiri:
+ **Hapus Job**: Hapus pekerjaan dari tab **Pekerjaan Notebook**.
+ **Stop Job**: Hentikan pekerjaan Anda.

# Lihat definisi pekerjaan notebook
<a name="view-def-detail-notebook-auto-run"></a>

**catatan**  
Jika Anda menjadwalkan pekerjaan notebook Anda dengan SageMaker Python SDK, lewati bagian ini. Hanya pekerjaan notebook yang dibuat di Studio atau JupyterLab lingkungan lokal yang membuat definisi pekerjaan. Oleh karena itu, jika Anda membuat pekerjaan notebook dengan SageMaker Python SDK, Anda tidak akan melihat definisi pekerjaan di dasbor Pekerjaan Notebook. Namun, Anda dapat melihat pekerjaan notebook Anda seperti yang dijelaskan dalam[Lihat pekerjaan notebook](view-notebook-jobs.md). 

Saat Anda membuat definisi pekerjaan, Anda membuat jadwal untuk suatu pekerjaan. Tab **Notebook Job Definitions** mencantumkan jadwal ini, serta informasi tentang definisi pekerjaan notebook tertentu. Misalnya, Anda dapat membuat definisi pekerjaan yang menjalankan buku catatan tertentu setiap menit. Setelah definisi pekerjaan ini aktif, Anda melihat pekerjaan baru setiap menit di tab **Pekerjaan Notebook**. Halaman berikut memberikan informasi tentang tab **Definisi Job Notebook**, serta cara melihat definisi pekerjaan notebook.

Tab **Definisi Job Notebook** menampilkan dasbor dengan semua definisi pekerjaan Anda dan menyertakan buku catatan masukan, waktu pembuatan, jadwal, dan status untuk setiap definisi pekerjaan. Nilai di kolom **Status** adalah salah satu nilai berikut:
+ **Dijeda**: Anda menghentikan sementara definisi pekerjaan. Studio tidak memulai pekerjaan apa pun sampai Anda melanjutkan definisi.
+ **Aktif**: Jadwal aktif dan Studio dapat menjalankan notebook sesuai dengan jadwal yang Anda tentukan.

Selain itu, kolom **Tindakan** menyediakan pintasan untuk membantu Anda melakukan tugas berikut secara langsung di antarmuka:
+ Jeda: Menjeda definisi pekerjaan. Studio tidak akan membuat pekerjaan apa pun sampai Anda melanjutkan definisi.
+ Hapus: Menghapus definisi pekerjaan dari tab **Definisi Job Notebook**.
+ Resume: Melanjutkan definisi pekerjaan yang dijeda sehingga dapat memulai pekerjaan.

Jika Anda membuat definisi pekerjaan tetapi tidak memulai pekerjaan, lihat [Definisi Job tidak menciptakan pekerjaan](notebook-auto-run-troubleshoot.md#notebook-auto-run-troubleshoot-no-jobs) di. [Panduan pemecahan masalah](notebook-auto-run-troubleshoot.md)

## Lihat definisi pekerjaan tunggal
<a name="view-job-definition-detail-page"></a>

Jika Anda memilih nama definisi pekerjaan di tab **Definisi Pekerjaan Buku Catatan**, Anda akan melihat halaman **Definisi Pekerjaan** tempat Anda dapat melihat detail spesifik untuk definisi pekerjaan. Gunakan halaman ini untuk mengonfirmasi pengaturan yang Anda tentukan saat Anda membuat definisi pekerjaan. Jika Anda tidak melihat pekerjaan apa pun yang dibuat dari definisi pekerjaan Anda, lihat [Definisi Job tidak menciptakan pekerjaan](notebook-auto-run-troubleshoot.md#notebook-auto-run-troubleshoot-no-jobs) di[Panduan pemecahan masalah](notebook-auto-run-troubleshoot.md).

Halaman ini juga berisi bagian yang mencantumkan pekerjaan yang dijalankan dari definisi pekerjaan ini. Melihat pekerjaan Anda di halaman **Definisi Pekerjaan** mungkin merupakan cara yang lebih produktif untuk membantu Anda mengatur pekerjaan Anda daripada melihat pekerjaan di tab **Pekerjaan Notebook**, yang menggabungkan semua pekerjaan dari semua definisi pekerjaan Anda.

Selain itu, halaman ini menyediakan pintasan untuk tindakan berikut:
+ **Jeda/Lanjutkan: Jeda** definisi pekerjaan Anda, atau lanjutkan definisi yang dijeda. Perhatikan bahwa jika pekerjaan sedang berjalan untuk definisi ini, Studio tidak menghentikannya.
+ **Jalankan**: Jalankan satu pekerjaan sesuai permintaan dari definisi pekerjaan ini. Opsi ini juga memungkinkan Anda menentukan parameter input yang berbeda ke buku catatan Anda sebelum memulai pekerjaan.
+ **Edit Definisi Job**: Ubah jadwal definisi pekerjaan Anda. Anda dapat memilih interval waktu yang berbeda, atau Anda dapat memilih jadwal khusus menggunakan sintaks cron.
+ **Hapus Definisi Pekerjaan**: Hapus definisi pekerjaan dari tab **Definisi Pekerjaan Notebook**. Perhatikan bahwa jika pekerjaan sedang berjalan untuk definisi ini, Studio tidak menghentikannya.

# Panduan pemecahan masalah
<a name="notebook-auto-run-troubleshoot"></a>

Lihat panduan pemecahan masalah ini untuk membantu Anda men-debug kegagalan yang mungkin Anda alami saat pekerjaan notebook terjadwal berjalan.

## Definisi Job tidak menciptakan pekerjaan
<a name="notebook-auto-run-troubleshoot-no-jobs"></a>

Jika definisi pekerjaan Anda tidak memulai pekerjaan apa pun, buku catatan atau pekerjaan pelatihan mungkin tidak ditampilkan di bagian **Pekerjaan** di bilah navigasi kiri di Amazon SageMaker Studio. Jika ini masalahnya, Anda dapat menemukan pesan kesalahan di bagian **Pipelines** di bilah navigasi kiri di Studio. Setiap notebook atau definisi pekerjaan pelatihan termasuk dalam pipeline eksekusi. Berikut ini adalah penyebab umum kegagalan untuk memulai pekerjaan notebook.

**Izin tidak ada**
+ Peran yang ditetapkan untuk definisi pekerjaan tidak memiliki hubungan kepercayaan dengan Amazon EventBridge. Artinya, EventBridge tidak bisa mengambil peran.
+ Peran yang ditetapkan ke definisi pekerjaan tidak memiliki izin untuk menelepon`SageMaker AI:StartPipelineExecution`.
+ Peran yang ditetapkan ke definisi pekerjaan tidak memiliki izin untuk menelepon`SageMaker AI:CreateTrainingJob`.

**EventBridge kuota terlampaui**

Jika Anda melihat `Put*` kesalahan seperti contoh berikut, Anda melebihi EventBridge kuota. Untuk mengatasi ini, Anda dapat membersihkan proses yang tidak terpakai EventBridge , atau meminta AWS Dukungan untuk menambah kuota Anda.

```
LimitExceededException) when calling the PutRule operation: 
The requested resource exceeds the maximum number allowed
```

Untuk informasi selengkapnya tentang EventBridge kuota, lihat [ EventBridge Kuota Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html).

**Batas kuota pipa terlampaui**

Jika Anda melihat kesalahan seperti contoh berikut, Anda melebihi jumlah pipeline yang dapat Anda jalankan. Untuk mengatasi ini, Anda dapat membersihkan saluran pipa yang tidak terpakai di akun Anda, atau meminta AWS Dukungan untuk menambah kuota Anda.

```
ResourceLimitExceeded: The account-level service limit 
'Maximum number of pipelines allowed per account' is XXX Pipelines, 
with current utilization of XXX Pipelines and a request delta of 1 Pipelines.
```

Untuk informasi selengkapnya tentang kuota pipeline, lihat [titik akhir dan kuota Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

**Batas pekerjaan pelatihan terlampaui**

Jika Anda melihat kesalahan seperti contoh berikut, Anda melebihi jumlah pekerjaan pelatihan yang dapat Anda jalankan. Untuk mengatasi ini, kurangi jumlah pekerjaan pelatihan di akun Anda, atau minta AWS Dukungan untuk menambah kuota Anda.

```
ResourceLimitExceeded: The account-level service limit 
'ml.m5.2xlarge for training job usage' is 0 Instances, with current 
utilization of 0 Instances and a request delta of 1 Instances. 
Please contact AWS support to request an increase for this limit.
```

Untuk informasi selengkapnya tentang kuota pekerjaan pelatihan, lihat [titik akhir dan kuota Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

## Visualisasi otomatis dinonaktifkan di notebook SparkMagic
<a name="notebook-auto-run-troubleshoot-visualization"></a>

Jika notebook Anda menggunakan SparkMagic PySpark kernel dan Anda menjalankan notebook sebagai Job Notebook, Anda mungkin melihat bahwa visualisasi otomatis Anda dinonaktifkan dalam output. Mengaktifkan visualisasi otomatis menyebabkan kernel macet, sehingga pelaksana pekerjaan notebook saat ini menonaktifkan visualisasi otomatis sebagai solusinya.

# Kendala dan pertimbangan
<a name="notebook-auto-run-constraints"></a>

Tinjau kendala berikut untuk memastikan pekerjaan notebook Anda berhasil diselesaikan. Studio menggunakan Papermill untuk menjalankan notebook. Anda mungkin perlu memperbarui notebook Jupyter untuk menyelaraskan dengan persyaratan Papermill. Ada juga batasan pada konten skrip LCC dan detail penting untuk dipahami mengenai konfigurasi VPC.

## JupyterLab versi
<a name="notebook-auto-run-constraints-jpt"></a>

JupyterLab versi 4.0 didukung.

## Instalasi paket yang memerlukan kernel restart
<a name="notebook-auto-run-constraints-pmill-pkg"></a>

Papermill tidak mendukung panggilan `pip install` untuk menginstal paket yang memerlukan kernel restart. Dalam situasi ini, gunakan `pip install` dalam skrip inisialisasi. Untuk instalasi paket yang tidak memerlukan kernel restart, Anda masih dapat memasukkan `pip install` dalam notebook. 

## Kernel dan nama bahasa yang terdaftar di Jupyter
<a name="notebook-auto-run-constraints-pmill-names"></a>

Papermill mendaftarkan penerjemah untuk kernel dan bahasa tertentu. Jika Anda membawa instance Anda sendiri (BYOI), gunakan nama kernel standar seperti yang ditunjukkan pada cuplikan berikut:

```
papermill_translators.register("python", PythonTranslator)
papermill_translators.register("R", RTranslator)
papermill_translators.register("scala", ScalaTranslator)
papermill_translators.register("julia", JuliaTranslator)
papermill_translators.register("matlab", MatlabTranslator)
papermill_translators.register(".net-csharp", CSharpTranslator)
papermill_translators.register(".net-fsharp", FSharpTranslator)
papermill_translators.register(".net-powershell", PowershellTranslator)
papermill_translators.register("pysparkkernel", PythonTranslator)
papermill_translators.register("sparkkernel", ScalaTranslator)
papermill_translators.register("sparkrkernel", RTranslator)
papermill_translators.register("bash", BashTranslator)
```

## Parameter dan batas variabel lingkungan
<a name="notebook-auto-run-constraints-var-limits"></a>

**Parameter dan batas variabel lingkungan.** Saat Anda membuat pekerjaan notebook Anda, ia menerima parameter dan variabel lingkungan yang Anda tentukan. Anda dapat melewati hingga 100 parameter. Setiap nama parameter dapat mencapai 256 karakter, dan nilai yang terkait dapat mencapai 2500 karakter. Jika Anda melewati variabel lingkungan, Anda dapat melewatkan hingga 28 variabel. Nama variabel dan nilai terkait dapat mencapai 512 karakter. Jika Anda membutuhkan lebih dari 28 variabel lingkungan, gunakan variabel lingkungan tambahan dalam skrip inisialisasi yang tidak memiliki batasan jumlah variabel lingkungan yang dapat Anda gunakan.

## Melihat pekerjaan dan definisi pekerjaan
<a name="notebook-auto-run-constraints-view-job"></a>

**Melihat pekerjaan dan definisi pekerjaan.** Jika Anda menjadwalkan pekerjaan buku catatan di UI Studio di JupyterLab buku catatan, Anda dapat [melihat pekerjaan buku catatan](https://docs.aws.amazon.com/sagemaker/latest/dg/view-notebook-jobs.html) dan [definisi pekerjaan buku catatan](https://docs.aws.amazon.com/sagemaker/latest/dg/view-def-detail-notebook-auto-run.html) Anda di UI Studio. Jika Anda menjadwalkan pekerjaan notebook Anda dengan SageMaker Python SDK, Anda hanya dapat melihat pekerjaan Anda—langkah pekerjaan notebook SDK SageMaker Python tidak membuat definisi pekerjaan. Untuk melihat pekerjaan Anda, Anda juga perlu memberikan tag tambahan ke instance langkah pekerjaan notebook Anda. Lihat perinciannya di [Melihat pekerjaan notebook Anda di dasbor Studio UI](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash).

## Citra
<a name="notebook-auto-run-constraints-image"></a>

Anda perlu mengelola batasan gambar tergantung pada apakah Anda menjalankan pekerjaan notebook di Studio atau langkah pekerjaan notebook SDK SageMaker Python dalam pipeline.

### Kendala gambar untuk Pekerjaan Notebook SageMaker AI (Studio)
<a name="notebook-auto-run-constraints-image-studio"></a>

**Dukungan gambar dan kernel.** Driver yang meluncurkan pekerjaan notebook Anda mengasumsikan hal berikut:
+ Lingkungan runtime Python dasar dipasang di gambar Studio atau bring-your-own (BYO) dan merupakan default di shell.
+ Lingkungan runtime Python dasar mencakup klien Jupyter dengan spesifikasi kernel yang dikonfigurasi dengan benar.
+ Lingkungan runtime Python dasar menyertakan `pip` fungsi sehingga pekerjaan notebook dapat menginstal dependensi sistem.
+ Untuk gambar dengan beberapa lingkungan, skrip inisialisasi Anda harus beralih ke lingkungan khusus kernel yang tepat sebelum menginstal paket khusus notebook. Anda harus beralih kembali ke lingkungan runtime Python default, jika berbeda dari lingkungan runtime kernel, setelah mengonfigurasi lingkungan runtime Python kernel.

Driver yang meluncurkan pekerjaan notebook Anda adalah skrip bash, dan Bash v4 harus tersedia di /bin/bash. 

**Hak akses root pada bring-your-own-images (BYOI).** Anda harus memiliki hak akses root pada gambar Studio Anda sendiri, baik sebagai pengguna root atau melalui `sudo` akses. Jika Anda bukan pengguna root tetapi mengakses hak akses root melalui`sudo`, gunakan **1000/100** sebagai. `UID/GID`

### Kendala gambar untuk pekerjaan notebook AI SageMaker Python SDK
<a name="notebook-auto-run-constraints-image-sdk"></a>

Langkah pekerjaan notebook mendukung gambar-gambar berikut:
+ SageMaker Gambar Distribusi tercantum dalam[SageMaker Gambar Amazon Tersedia untuk Digunakan Dengan Notebook Studio Classic](notebooks-available-images.md).
+ Gambar kustom berdasarkan gambar SageMaker Distribusi dalam daftar sebelumnya. Gunakan [gambar SageMaker Distribusi](https://github.com/aws/sagemaker-distribution) sebagai basis.
+ Gambar kustom (BYOI) yang sudah diinstal sebelumnya dengan dependensi pekerjaan notebook (yaitu,. [sagemaker-headless-execution-driver](https://pypi.org/project/sagemaker-headless-execution-driver/) Gambar Anda harus memenuhi persyaratan berikut:
  + Gambar sudah diinstal sebelumnya dengan dependensi pekerjaan notebook.
  + Lingkungan runtime Python dasar diinstal dan default di lingkungan shell.
  + Lingkungan runtime Python dasar mencakup klien Jupyter dengan spesifikasi kernel yang dikonfigurasi dengan benar.
  + Anda memiliki hak akses root, baik sebagai pengguna root atau melalui `sudo` akses. Jika Anda bukan pengguna root tetapi mengakses hak akses root melalui`sudo`, gunakan **1000/100** sebagai. `UID/GID`

## Subnet VPC yang digunakan selama penciptaan lapangan kerja
<a name="notebook-auto-run-constraints-vpc"></a>

Jika Anda menggunakan VPC, Studio menggunakan subnet pribadi Anda untuk membuat pekerjaan Anda. Tentukan satu hingga lima subnet pribadi (dan 1-15 grup keamanan).

Jika Anda menggunakan VPC dengan subnet pribadi, Anda harus memilih salah satu opsi berikut untuk memastikan pekerjaan notebook dapat terhubung ke layanan atau sumber daya yang bergantung:
+ Jika pekerjaan membutuhkan akses ke AWS layanan yang mendukung titik akhir VPC antarmuka, buat titik akhir untuk terhubung ke layanan. Untuk daftar layanan yang mendukung titik akhir antarmuka, lihat [AWS layanan yang terintegrasi dengannya AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html). Untuk informasi tentang membuat titik akhir VPC antarmuka, lihat [Mengakses AWS layanan menggunakan titik akhir VPC antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html). Minimal, gateway titik akhir VPC Amazon S3 harus disediakan.
+ Jika pekerjaan notebook memerlukan akses ke AWS layanan yang tidak mendukung titik akhir VPC antarmuka atau sumber daya di luar AWS, buat gateway NAT dan konfigurasikan grup keamanan Anda untuk mengizinkan koneksi keluar. Untuk informasi tentang menyiapkan gateway NAT untuk VPC Anda, lihat *VPC dengan Subnet publik dan pribadi (NAT) di* Panduan Pengguna Amazon Virtual Private [Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html).

## Batas layanan
<a name="notebook-auto-run-constraints-service-limit"></a>

Karena penjadwal pekerjaan notebook dibuat dari Pipelines, SageMaker Training, dan EventBridge layanan Amazon, pekerjaan notebook Anda tunduk pada kuota khusus layanan mereka. Jika Anda melebihi kuota ini, Anda mungkin melihat pesan kesalahan yang terkait dengan layanan ini. Misalnya, ada batasan untuk berapa banyak pipa yang dapat Anda jalankan pada satu waktu, dan berapa banyak aturan yang dapat Anda atur untuk satu bus acara. Untuk informasi selengkapnya tentang kuota SageMaker AI, lihat [Titik Akhir dan Kuota Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html). Untuk informasi selengkapnya tentang EventBridge kuota, lihat [ EventBridge Kuota Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html).

# Harga untuk Pekerjaan SageMaker Notebook
<a name="notebook-auto-run-pricing"></a>

Saat Anda menjadwalkan pekerjaan buku catatan, buku catatan Jupyter Anda berjalan pada SageMaker instance pelatihan. Setelah Anda memilih **Image** dan **Kernel** di formulir **Create Job**, formulir tersebut menyediakan daftar jenis komputasi yang tersedia. Anda dikenakan biaya untuk jenis komputasi yang Anda pilih, berdasarkan durasi penggunaan gabungan untuk semua pekerjaan notebook yang dijalankan dari definisi pekerjaan. Jika Anda tidak menentukan jenis komputasi, SageMaker AI akan memberi Anda jenis instans Amazon EC2 default. `ml.m5.large` Untuk rincian harga SageMaker AI berdasarkan jenis komputasi, lihat [Harga Amazon SageMaker AI](https://aws.amazon.com/sagemaker/pricing).

# Jadwalkan alur kerja ML Anda
<a name="workflow-scheduling"></a>

Dengan Amazon SageMaker AI, Anda dapat mengelola seluruh alur kerja ML saat membuat kumpulan data, melakukan transformasi data, membuat model dari data, dan menerapkan model Anda ke titik akhir untuk inferensi. Jika Anda melakukan subset langkah apa pun dari alur kerja Anda secara berkala, Anda juga dapat memilih untuk menjalankan langkah-langkah ini sesuai jadwal. Misalnya, Anda mungkin ingin menjadwalkan pekerjaan di SageMaker Canvas untuk menjalankan transformasi pada data baru setiap jam. Dalam skenario lain, Anda mungkin ingin menjadwalkan pekerjaan mingguan untuk memantau penyimpangan model model yang Anda gunakan. Anda dapat menentukan jadwal berulang setiap interval waktu—Anda dapat mengulangi setiap detik, menit, harian, mingguan, bulanan, atau Jumat ke-3 setiap bulan pada jam 3 sore.

**Skenario berikut merangkum opsi yang tersedia untuk Anda tergantung pada kasus penggunaan Anda.**
+ Kasus penggunaan 1: **Buat dan jadwalkan alur kerja ML Anda di lingkungan tanpa kode**. Untuk pemula atau mereka yang baru mengenal SageMaker AI, Anda dapat menggunakan Amazon SageMaker Canvas untuk membangun alur kerja ML dan membuat jadwal berjalan menggunakan penjadwal berbasis Canvas UI.
+ Kasus penggunaan 2: **Bangun alur kerja Anda dalam satu buku catatan Jupyter dan gunakan** penjadwal tanpa kode. Praktisi ML berpengalaman dapat menggunakan kode untuk membangun alur kerja ML mereka di buku catatan Jupyter dan menggunakan opsi penjadwalan tanpa kode yang tersedia dengan widget Pekerjaan Notebook. Jika alur kerja ML Anda terdiri dari beberapa notebook Jupyter, Anda dapat menggunakan fitur penjadwalan di Pipelines Python SDK yang dijelaskan dalam kasus penggunaan 3.
+ Kasus penggunaan 3: **Buat dan jadwalkan alur kerja ML Anda menggunakan Pipelines**. Pengguna tingkat lanjut dapat menggunakan [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable), editor visual Amazon SageMaker Pipelines, atau opsi EventBridge penjadwalan Amazon yang tersedia dengan Pipelines. Anda dapat membuat alur kerja ML yang terdiri dari langkah-langkah yang mencakup operasi dengan berbagai fitur dan AWS layanan SageMaker AI, seperti Amazon EMR.


| Deskriptor | Kasus penggunaan 1 | Kasus penggunaan 2 | Kasus penggunaan 3 | 
| --- | --- | --- | --- | 
| SageMaker Fitur AI | Pemrosesan data Amazon SageMaker Canvas dan penjadwalan alur kerja ML | Widget jadwal Pekerjaan Notebook (UI) | Opsi penjadwalan Pipelines Python SDK | 
| Deskripsi | Dengan Amazon SageMaker Canvas, Anda dapat menjadwalkan langkah pemrosesan data secara otomatis dan, dalam prosedur terpisah, pembaruan kumpulan data otomatis. Anda juga dapat secara tidak langsung menjadwalkan seluruh alur kerja ML Anda dengan menyiapkan konfigurasi yang menjalankan prediksi batch setiap kali kumpulan data tertentu diperbarui. Untuk pemrosesan data otomatis dan pembaruan kumpulan data, SageMaker Canvas menyediakan formulir dasar tempat Anda memilih waktu dan tanggal mulai dan interval waktu antara proses (atau ekspresi cron jika Anda menjadwalkan langkah pemrosesan data). Untuk informasi selengkapnya tentang cara menjadwalkan langkah pemrosesan data, lihat[Buat jadwal untuk memproses data baru secara otomatis](canvas-data-export-schedule-job.md). Untuk informasi selengkapnya tentang cara menjadwalkan dataset dan pembaruan prediksi batch, lihat. [Cara mengelola otomatisasi](canvas-manage-automations.md) | Jika Anda membuat alur kerja pemrosesan data dan pipeline dalam satu buku catatan Jupyter, Anda dapat menggunakan widget Pekerjaan Notebook untuk menjalankan buku catatan sesuai permintaan atau sesuai jadwal. Widget Pekerjaan Notebook menampilkan formulir dasar tempat Anda menentukan jenis komputasi, jadwal lari, dan setelan kustom opsional. Anda menentukan jadwal lari Anda dengan memilih interval berbasis waktu atau dengan memasukkan ekspresi cron. Widget secara otomatis diinstal di Studio, atau Anda dapat melakukan instalasi tambahan untuk menggunakan fitur ini di JupyterLab lingkungan lokal Anda. Untuk informasi selengkapnya tentang Pekerjaan Notebook, lihat[SageMaker Lowongan Notebook](notebook-auto-run.md). | Anda dapat menggunakan fitur penjadwalan di SageMaker SDK jika Anda menerapkan alur kerja ML dengan Pipelines. Pipeline Anda dapat mencakup langkah-langkah seperti fine-tuning, pemrosesan data, dan penerapan. Pipelines mendukung dua cara untuk menjadwalkan pipeline Anda. Anda dapat membuat EventBridge aturan Amazon atau menggunakan [PipelineSchedule](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.triggers.PipelineSchedule)konstruktor SageMaker SDK atau editor visual Amazon SageMaker Pipelines untuk menentukan jadwal. Untuk informasi selengkapnya tentang opsi penjadwalan yang tersedia di Pipelines, lihat. [Jadwalkan Pipeline Runs](pipeline-eventbridge.md) | 
| Dioptimalkan untuk | Menyediakan opsi penjadwalan untuk alur kerja SageMaker Canvas ML. | Menyediakan opsi penjadwalan berbasis UI untuk alur kerja MLberbasis notebook Jupyter | Menyediakan opsi SageMaker SDK atau EventBridge penjadwalan untuk alur kerja ML | 
| Pertimbangan-pertimbangan | Anda dapat menjadwalkan alur kerja Anda dengan kerangka kerja tanpa kode Canvas, tetapi pembaruan kumpulan data dan pembaruan transformasi batch dapat menangani hingga 5GB data. | Anda dapat menjadwalkan satu buku catatan menggunakan formulir penjadwalan berbasis UI, tetapi tidak beberapa buku catatan, dalam pekerjaan yang sama. Untuk menjadwalkan beberapa buku catatan, gunakan solusi berbasis kode Pipelines SDK yang dijelaskan dalam kasus penggunaan 3. | Anda dapat menggunakan kemampuan penjadwalan yang lebih canggih (berbasis SDK) yang disediakan oleh Pipelines, tetapi Anda perlu mereferensikan dokumentasi API untuk menentukan opsi yang benar daripada memilih dari menu opsi berbasis UI. | 
| Lingkungan yang direkomendasikan |  SageMaker Kanvas Amazon | Studio, JupyterLab lingkungan lokal | Studio, JupyterLab lingkungan lokal, editor kode apa pun | 

## Sumber daya tambahan
<a name="workflow-scheduling-addit"></a>

**SageMaker AI menawarkan opsi tambahan berikut untuk menjadwalkan alur kerja Anda.**
+ [Apa itu Amazon EventBridge Scheduler?](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html) . Opsi penjadwalan yang dibahas di bagian ini mencakup opsi pra-bangun yang tersedia di SageMaker Canvas, Studio, dan AI SageMaker Python SDK. Semua opsi memperluas fitur Amazon EventBridge, dan Anda juga dapat membuat solusi penjadwalan khusus Anda sendiri. EventBridge
+ [Eksekusi terjadwal dan berbasis acara untuk pipeline Prosesor Fitur](feature-store-feature-processor-schedule-pipeline.md). Dengan Amazon SageMaker Feature Store Feature Processing, Anda dapat mengonfigurasi pipeline Pemrosesan Fitur agar berjalan sesuai jadwal atau sebagai hasil dari peristiwa AWS layanan lainnya.

# AWS Batch dukungan untuk pekerjaan pelatihan SageMaker AI
<a name="training-job-queues"></a>

[Antrian AWS Batch pekerjaan](https://docs.aws.amazon.com/batch/latest/userguide/job_queues.html) menyimpan dan memprioritaskan pekerjaan yang dikirimkan sebelum dijalankan pada sumber daya komputasi. Anda dapat mengirimkan pekerjaan pelatihan SageMaker AI ke antrian pekerjaan untuk memanfaatkan penjadwalan pekerjaan tanpa server dan alat prioritas yang disediakan oleh. AWS Batch

## Cara kerjanya
<a name="training-job-queues-how-it-works"></a>

Langkah-langkah berikut menjelaskan alur kerja tentang cara menggunakan antrian AWS Batch pekerjaan dengan pekerjaan pelatihan SageMaker AI. Untuk tutorial lebih rinci dan contoh buku catatan, lihat [Memulai](#training-job-queues-get-started) bagian.
+ Siapkan AWS Batch dan izin apa pun yang diperlukan. Untuk informasi selengkapnya, lihat [Menyiapkan AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/get-set-up-for-aws-batch.html) di *Panduan AWS Batch Pengguna*.
+ Buat AWS Batch sumber daya berikut di konsol atau gunakan AWS CLI:
  + [Lingkungan layanan](https://docs.aws.amazon.com/batch/latest/userguide/service-environments.html) - Berisi parameter konfigurasi untuk diintegrasikan dengan SageMaker AI.
  + [SageMaker Antrian pekerjaan pelatihan AI](https://docs.aws.amazon.com/batch/latest/userguide/create-sagemaker-job-queue.html) - Terintegrasi dengan SageMaker AI untuk mengirimkan pekerjaan pelatihan.
+ Konfigurasikan detail Anda dan minta pekerjaan pelatihan SageMaker AI, seperti gambar wadah pelatihan Anda. Untuk mengirimkan pekerjaan pelatihan ke AWS Batch antrian, Anda dapat menggunakan, SDK AWS CLI AWS SDK untuk Python (Boto3), atau SageMaker AI Python.
+ Kirimkan pekerjaan pelatihan Anda ke antrian pekerjaan. Anda dapat menggunakan opsi berikut untuk mengirimkan pekerjaan:
  + Gunakan AWS Batch [SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)API.
  + Gunakan [`aws_batch`modul](https://github.com/aws/sagemaker-python-sdk/tree/master/src/sagemaker/aws_batch) dari SageMaker AI Python SDK. Setelah membuat TrainingQueue objek dan objek pelatihan model (seperti Estimator atau ModelTrainer), Anda dapat mengirimkan pekerjaan pelatihan ke TrainingQueue menggunakan `queue.submit()` metode ini.
+ Setelah mengirimkan pekerjaan, lihat antrian pekerjaan dan status pekerjaan Anda dengan AWS Batch konsol, AWS Batch [DescribeServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html)API, atau AI API. SageMaker [DescribeTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html)

## Biaya dan ketersediaan
<a name="training-job-queues-cost-availability"></a>

Untuk informasi harga terperinci tentang lowongan pelatihan, lihat [harga Amazon SageMaker AI](https://aws.amazon.com/sagemaker-ai/pricing/). Dengan AWS Batch, Anda hanya membayar untuk AWS sumber daya apa pun yang digunakan, seperti instans Amazon EC2. Untuk informasi selengkapnya, lihat [harga AWS Batch](https://aws.amazon.com/batch/pricing/).

Anda dapat menggunakan AWS Batch untuk pekerjaan pelatihan SageMaker AI di Wilayah AWS mana pun pekerjaan pelatihan tersedia. Untuk informasi selengkapnya, lihat [titik akhir dan kuota Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

Untuk memastikan Anda memiliki kapasitas yang dibutuhkan saat membutuhkannya, Anda dapat menggunakan SageMaker AI Flexible Training Plans (FTP). Rencana ini memungkinkan Anda untuk memesan kapasitas untuk pekerjaan pelatihan Anda. Ketika dikombinasikan dengan AWS Batch kemampuan antrian, Anda dapat memaksimalkan pemanfaatan selama durasi paket Anda. Untuk informasi selengkapnya, lihat [Reservasi rencana pelatihan untuk pekerjaan atau HyperPod klaster pelatihan Anda](https://docs.aws.amazon.com/sagemaker/latest/dg/reserve-capacity-with-training-plans.html).

## Memulai
<a name="training-job-queues-get-started"></a>

Untuk tutorial tentang cara mengatur antrian AWS Batch pekerjaan dan mengirimkan pekerjaan pelatihan SageMaker AI, lihat [Memulai SageMaker AI AWS Batch di](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-sagemaker.html) *Panduan AWS Batch Pengguna*.

Untuk notebook Jupyter yang menunjukkan cara menggunakan `aws_batch` modul di AI SageMaker Python SDK, lihat [AWS Batch contoh notebook pekerjaan Pelatihan SageMaker AI](https://github.com/aws/amazon-sagemaker-examples/tree/default/%20%20%20%20%20%20build_and_train_models/sm-training-queues) di repositori. amazon-sagemaker-examples GitHub 