

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

# Siapkan Debugger untuk penghentian pekerjaan pelatihan otomatis menggunakan CloudWatch dan Lambda
<a name="debugger-stop-training"></a>

Aturan Debugger memantau status pekerjaan pelatihan, dan aturan CloudWatch Acara mengawasi status evaluasi pekerjaan pelatihan aturan Debugger. Bagian berikut menguraikan proses yang diperlukan untuk mengotomatiskan pemutusan hubungan kerja pelatihan menggunakan using dan CloudWatch Lambda.

**Topics**
+ [Langkah 1: Membuat fungsi Lambda](#debugger-lambda-function-create)
+ [Langkah 2: Konfigurasikan fungsi Lambda](#debugger-lambda-function-configure)
+ [Langkah 3: Buat aturan CloudWatch acara dan tautkan ke fungsi Lambda untuk Debugger](#debugger-cloudwatch-events)

## Langkah 1: Membuat fungsi Lambda
<a name="debugger-lambda-function-create"></a>

**Untuk membuat fungsi Lambda**

1. Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Di panel navigasi kiri, pilih **Fungsi** dan kemudian pilih **Buat fungsi**.

1. Pada halaman **Create function**, pilih **Author from scratch** option.

1. Di bagian **Informasi dasar**, masukkan **nama Fungsi** (misalnya, **debugger-rule-stop-training-job**).

1. Untuk **Waktu pengoperasian**, pilih **Python 3.7**.

1. Untuk **Izin, perluas** opsi drop-down, dan pilih **Ubah peran eksekusi default**.

1. Untuk **peran Eksekusi**, pilih **Gunakan peran yang ada** dan pilih peran IAM yang Anda gunakan untuk melatih pekerjaan di SageMaker AI.
**catatan**  
Pastikan Anda menggunakan peran eksekusi dengan `AmazonSageMakerFullAccess` dan `AWSLambdaBasicExecutionRole` dilampirkan. Jika tidak, fungsi Lambda tidak akan bereaksi dengan benar terhadap perubahan status aturan Debugger dari pekerjaan pelatihan. Jika Anda tidak yakin peran eksekusi mana yang digunakan, jalankan kode berikut di sel notebook Jupyter untuk mengambil output peran eksekusi:  

   ```
   import sagemaker
   sagemaker.get_execution_role()
   ```

1. Di bagian bawah halaman, pilih **Buat Fungsi**.

Gambar berikut menunjukkan contoh halaman **fungsi Buat** dengan bidang input dan pilihan selesai.

![\[Buat halaman Fungsi.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/debugger/debugger-lambda-create.png)


## Langkah 2: Konfigurasikan fungsi Lambda
<a name="debugger-lambda-function-configure"></a>

**Untuk mengonfigurasi fungsi Lambda**

1. Di bagian **Kode fungsi** pada halaman konfigurasi, tempel skrip Python berikut di panel editor kode Lambda. `lambda_handler`Fungsi ini memantau status evaluasi aturan Debugger yang dikumpulkan oleh CloudWatch dan memicu operasi API. `StopTrainingJob` The AWS SDK untuk Python (Boto3) `client` for SageMaker AI menyediakan metode tingkat tinggi`stop_training_job`, yang memicu operasi `StopTrainingJob` API.

   ```
   import json
   import boto3
   import logging
   
   logger = logging.getLogger()
   logger.setLevel(logging.INFO)
   
   def lambda_handler(event, context):
       training_job_name = event.get("detail").get("TrainingJobName")
       logging.info(f'Evaluating Debugger rules for training job: {training_job_name}')
       eval_statuses = event.get("detail").get("DebugRuleEvaluationStatuses", None)
   
       if eval_statuses is None or len(eval_statuses) == 0:
           logging.info("Couldn't find any debug rule statuses, skipping...")
           return {
               'statusCode': 200,
               'body': json.dumps('Nothing to do')
           }
   
       # should only attempt stopping jobs with InProgress status
       training_job_status = event.get("detail").get("TrainingJobStatus", None)
       if training_job_status != 'InProgress':
           logging.debug(f"Current Training job status({training_job_status}) is not 'InProgress'. Exiting")
           return {
               'statusCode': 200,
               'body': json.dumps('Nothing to do')
           }
   
       client = boto3.client('sagemaker')
   
       for status in eval_statuses:
           logging.info(status.get("RuleEvaluationStatus") + ', RuleEvaluationStatus=' + str(status))
           if status.get("RuleEvaluationStatus") == "IssuesFound":
               secondary_status = event.get("detail").get("SecondaryStatus", None)
               logging.info(
                   f'About to stop training job, since evaluation of rule configuration {status.get("RuleConfigurationName")} resulted in "IssuesFound". ' +
                   f'\ntraining job "{training_job_name}" status is "{training_job_status}", secondary status is "{secondary_status}"' +
                   f'\nAttempting to stop training job "{training_job_name}"'
               )
               try:
                   client.stop_training_job(
                       TrainingJobName=training_job_name
                   )
               except Exception as e:
                   logging.error(
                       "Encountered error while trying to "
                       "stop training job {}: {}".format(
                           training_job_name, str(e)
                       )
                   )
                   raise e
       return None
   ```

   Untuk informasi selengkapnya tentang antarmuka editor kode Lambda, lihat [Membuat fungsi menggunakan editor konsol AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/code-editor.html).

1. Lewati semua pengaturan lainnya dan pilih **Simpan** di bagian atas halaman konfigurasi.

## Langkah 3: Buat aturan CloudWatch acara dan tautkan ke fungsi Lambda untuk Debugger
<a name="debugger-cloudwatch-events"></a>

**Untuk membuat aturan CloudWatch Acara dan menautkan ke fungsi Lambda untuk Debugger**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Di panel navigasi kiri, pilih **Aturan** di bawah simpul **Acara**.

1. Pilih **Buat aturan**.

1. Di bagian **Sumber Peristiwa** pada halaman **Langkah 1: Buat aturan**, pilih **SageMaker AI** untuk **Nama Layanan**, dan pilih **Perubahan Status Pekerjaan Pelatihan SageMaker AI** untuk **Jenis Acara**. Pratinjau Pola Peristiwa akan terlihat seperti contoh string JSON berikut: 

   ```
   {
       "source": [
           "aws.sagemaker"
       ],
       "detail-type": [
           "SageMaker Training Job State Change"
       ]
   }
   ```

1. Di bagian **Target**, pilih **Tambahkan target\$1**, dan pilih fungsi **debugger-rule-stop-trainingLambda -job** yang Anda buat. Langkah ini menautkan aturan CloudWatch Peristiwa dengan fungsi Lambda.

1. Pilih **Konfigurasikan detail** dan buka halaman **Langkah 2: Konfigurasikan detail aturan**.

1. Tentukan nama definisi CloudWatch aturan. Misalnya, **debugger-cw-event-rule**.

1. Pilih **Buat aturan** untuk menyelesaikan.

1. Kembali ke halaman konfigurasi fungsi Lambda dan segarkan halaman. Konfirmasikan bahwa itu dikonfigurasi dengan benar di panel **Designer**. Aturan CloudWatch Peristiwa harus didaftarkan sebagai pemicu fungsi Lambda. Desain konfigurasi akan terlihat seperti contoh berikut:  
<a name="lambda-designer-example"></a>![\[Panel desainer untuk CloudWatch konfigurasi.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/debugger/debugger-lambda-designer.png)