Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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.
Topik
Langkah 1: Membuat fungsi Lambda
Untuk membuat fungsi Lambda
Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/
. -
Di panel navigasi kiri, pilih Fungsi dan kemudian pilih Buat fungsi.
-
Pada halaman Create function, pilih Author from scratch option.
-
Di bagian Informasi dasar, masukkan nama Fungsi (misalnya, debugger-rule-stop-training-job).
-
Untuk Waktu pengoperasian, pilih Python 3.7.
-
Untuk Izin, perluas opsi drop-down, dan pilih Ubah peran eksekusi default.
-
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
danAWSLambdaBasicExecutionRole
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()
-
Di bagian bawah halaman, pilih Buat Fungsi.
Gambar berikut menunjukkan contoh halaman fungsi Buat dengan bidang input dan pilihan selesai.

Langkah 2: Konfigurasikan fungsi Lambda
Untuk mengonfigurasi fungsi Lambda
-
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 for Python (Boto3)client
for SageMaker AI menyediakan metode tingkat tinggistop_training_job
, yang memicu operasiStopTrainingJob
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.
-
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
Untuk membuat aturan CloudWatch Acara dan menautkan ke fungsi Lambda untuk Debugger
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di panel navigasi kiri, pilih Aturan di bawah simpul Acara.
-
Pilih Buat aturan.
-
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" ] }
-
Di bagian Target, pilih Tambahkan target*, dan pilih fungsi debugger-rule-stop-trainingLambda -job yang Anda buat. Langkah ini menautkan aturan CloudWatch Peristiwa dengan fungsi Lambda.
-
Pilih Konfigurasikan detail dan buka halaman Langkah 2: Konfigurasikan detail aturan.
-
Tentukan nama definisi CloudWatch aturan. Misalnya, debugger-cw-event-rule.
-
Pilih Buat aturan untuk menyelesaikan.
-
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: