

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Aktionen zu Regeln mit Amazon CloudWatch und AWS Lambda
<a name="debugger-cloudwatch-lambda"></a>

Amazon CloudWatch sammelt Trainingsauftragsprotokolle für Amazon SageMaker AI-Modelle und Auftragsprotokolle zur Verarbeitung von Amazon SageMaker Debugger-Regeln. Konfigurieren Sie den Debugger mit Amazon CloudWatch Events und AWS Lambda ergreifen Sie Maßnahmen auf der Grundlage des Evaluierungsstatus der Debugger-Regel. 

## Beispiel-Notebooks
<a name="debugger-test-stop-training"></a>

Sie können die folgenden Beispiel-Notebooks ausführen, die darauf vorbereitet sind, mit dem Beenden eines Trainingsjobs zu experimentieren, indem Sie Aktionen für die integrierten Regeln von Debugger mithilfe von Amazon CloudWatch und verwenden. AWS Lambda
+ [Amazon SageMaker Debugger — Auf CloudWatch Ereignisse anhand von Regeln reagieren](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_action_on_rule/tf-mnist-stop-training-job.html)

  In diesem Beispiel-Notebook wird ein Trainingsjob ausgeführt, bei dem ein Problem mit verschwindendem Farbverlauf auftritt. Die [VanishingGradient](debugger-built-in-rules.md#vanishing-gradient) integrierte Debuger-Regel wird bei der Erstellung des AI-Estimators verwendet. SageMaker TensorFlow Wenn die Debugger-Regel das Problem erkennt, wird der Trainingsjob beendet.
+ [Erkennen Sie blockiertes Training und rufen Sie Aktionen mithilfe der Debugger-Regel auf SageMaker ](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_action_on_rule/detect_stalled_training_job_and_actions.html)

  In diesem Beispiel-Notebook wird ein Trainingsskript mit einer Codezeile ausgeführt, die es zwingt, für 10 Minuten in den Ruhemodus zu wechseln. Die [StalledTrainingRule](debugger-built-in-rules.md#stalled-training) integrierte Debuger-Regel löst Probleme aus und beendet den Trainingsjob.

**Topics**
+ [Beispiel-Notebooks](#debugger-test-stop-training)
+ [CloudWatch Zugriffsprotokolle für Debugger-Regeln und Trainingsjobs](debugger-cloudwatch-metric.md)
+ [Richten Sie den Debugger für die automatische Beendigung von Trainingsjobs mithilfe von Lambda CloudWatch ein](debugger-stop-training.md)
+ [Deaktivieren Sie die Regel „ CloudWatch Ereignisse“, um die automatische Beendigung von Trainingsjobs nicht mehr zu verwenden](debugger-disable-cw.md)

# CloudWatch Zugriffsprotokolle für Debugger-Regeln und Trainingsjobs
<a name="debugger-cloudwatch-metric"></a>

Sie können den Trainingsstatus und den Status der Debugger-Regel in den CloudWatch Protokollen verwenden, um weitere Maßnahmen zu ergreifen, falls Trainingsprobleme auftreten. Das folgende Verfahren zeigt, wie Sie auf die zugehörigen CloudWatch Protokolle zugreifen können. Weitere Informationen zur Überwachung von Trainingsaufträgen mithilfe von CloudWatch Amazon AI finden Sie unter [Monitor Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-overview.html).

**So greifen Sie auf die Protokolle für Trainingsjobs und die Jobprotokolle für Debugger-Regeln zu**

1. Öffnen Sie die CloudWatch Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Wählen Sie im linken Navigationsbereich unter dem **Protokoll**-Knoten die Option **Protokollgruppen**.

1. Führen Sie in der Liste Protokollgruppen die folgenden Schritte aus:
   + Wählen Sie**/aws/sagemaker/TrainingJobs**für die Protokolle von Trainingsaufträgen.
   + Wählen Sie**/aws/sagemaker/ProcessingJobs**für die Jobprotokolle der Debugger-Regel.

# Richten Sie den Debugger für die automatische Beendigung von Trainingsjobs mithilfe von Lambda CloudWatch ein
<a name="debugger-stop-training"></a>

Die Debugger-Regeln überwachen den Status des Trainingsauftrags, und eine CloudWatch Ereignisregel überwacht den Bewertungsstatus des Trainingsauftrags der Debugger-Regel. In den folgenden Abschnitten wird der Prozess beschrieben, der zur Automatisierung der Beendigung von Schulungsjobs mithilfe von Using CloudWatch und Lambda erforderlich ist.

**Topics**
+ [Schritt 1: Erstellen einer Lambda-Funktion](#debugger-lambda-function-create)
+ [Schritt 2: Konfigurieren der Lambda-Funktion](#debugger-lambda-function-configure)
+ [Schritt 3: Erstellen Sie eine CloudWatch Ereignisregel und verknüpfen Sie sie mit der Lambda-Funktion für den Debugger](#debugger-cloudwatch-events)

## Schritt 1: Erstellen einer Lambda-Funktion
<a name="debugger-lambda-function-create"></a>

**So erstellen Sie eine Lambda-Funktion**

1. Öffnen Sie die AWS Lambda Konsole unter. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Wählen Sie im linken Navigationsbereich **Funktionen** und dann **Funktion anlegen**.

1. Wählen Sie auf der Seite **Funktion erstellen** die Option **Autor von Grund auf neu**.

1. Geben Sie im Abschnitt **Grundinformationen** einen **Funktionsnamen** ein (z. B. **debugger-rule-stop-training-job**).

1. Wählen Sie für **Runtime (Laufzeit)** die Option **Python 3.7** aus.

1. Erweitern Sie für **Berechtigungen** die Dropdownoption und wählen Sie **Standardausführungsrolle ändern aus.**

1. Wählen Sie für **Ausführungsrolle** die **Option Bestehende Rolle verwenden** und wählen Sie die IAM-Rolle aus, die Sie für Schulungsaufgaben auf SageMaker KI verwenden.
**Anmerkung**  
Stellen Sie sicher, dass Sie die Ausführungsrolle zusammen mit `AmazonSageMakerFullAccess` und `AWSLambdaBasicExecutionRole` angehängt verwenden. Andernfalls reagiert die Lambda-Funktion nicht richtig auf die Statusänderungen der Debugger-Regel des Trainingsjobs. Wenn Sie sich nicht sicher sind, welche Ausführungsrolle verwendet wird, führen Sie den folgenden Code in einer Jupyter-Notebook-Zelle aus, um die Ausgabe der Ausführungsrolle abzurufen:  

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

1. Klicken Sie unten auf der Seite auf **Create function**.

Die folgende Abbildung zeigt ein Beispiel für die Seite **Funktion erstellen**, auf der die Eingabefelder und Auswahlen abgeschlossen sind.

![\[Seite Funktion erstellen.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/debugger/debugger-lambda-create.png)


## Schritt 2: Konfigurieren der Lambda-Funktion
<a name="debugger-lambda-function-configure"></a>

**Um die Lambda-Funktion zu konfigurieren**

1. Fügen Sie im Abschnitt **Funktionscode** der Konfigurationsseite das folgende Python-Skript in den Bereich des Lambda-Code-Editors ein. Die `lambda_handler` Funktion überwacht den Evaluierungsstatus der Debugger-Regel, der von der API-Operation erfasst wurde, CloudWatch und löst den `StopTrainingJob` API-Vorgang aus. Die AWS SDK für Python (Boto3) `client` for SageMaker AI bietet eine Methode auf hoher Ebene`stop_training_job`, die den `StopTrainingJob` API-Vorgang auslöst.

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

   Weitere Informationen zur Lambda-Code-Editor-Oberfläche finden Sie unter [Funktionen mit dem AWS Lambda-Konsoleneditor erstellen](https://docs.aws.amazon.com/lambda/latest/dg/code-editor.html).

1. Überspringen Sie alle anderen Einstellungen und wählen Sie oben auf der Konfigurationsseite **Speichern**.

## Schritt 3: Erstellen Sie eine CloudWatch Ereignisregel und verknüpfen Sie sie mit der Lambda-Funktion für den Debugger
<a name="debugger-cloudwatch-events"></a>

**Um eine CloudWatch Ereignisregel und einen Link zur Lambda-Funktion für Debugger zu erstellen**

1. Öffnen Sie die CloudWatch Konsole unter. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. Wählen Sie im linken Navigationsbereich unter dem Knoten **Ereignisse** die Option **Regeln**.

1. Wählen Sie **Regel erstellen** aus.

1. Wählen Sie auf der Seite „**Schritt 1: Regel erstellen**“ im Abschnitt „**Ereignisquelle**“ die Option **SageMaker AI** als **Dienstname** und als **Ereignistyp** die Option „**SageMaker AI Training Job State Change**“ aus. Die Event-Pattern-Vorschau sollte wie in den folgenden JSON-Beispielzeichenfolgen aussehen: 

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

1. Wählen Sie im Abschnitt **Ziele** die Option **Ziel hinzufügen\$1** und wählen Sie die Lambda-Funktion **debugger-rule-stop-training-job** aus, die Sie erstellt haben. In diesem Schritt wird die CloudWatch Events-Regel mit der Lambda-Funktion verknüpft.

1. Wählen Sie **Details konfigurieren** und gehen Sie zur Seite **Schritt 2: Regeldetails konfigurieren**.

1. Geben Sie den Namen der CloudWatch Regeldefinition an. Beispiel, **debugger-cw-event-rule**.

1. Wählen Sie **Rolle erstellen** aus, um den Vorgang abzuschließen.

1. Gehen Sie zurück zur Konfigurationsseite der Lambda-Funktion und aktualisieren Sie die Seite. Vergewissern Sie sich, dass es im **Designer-Bereich** korrekt konfiguriert ist. Die CloudWatch Events-Regel sollte als Trigger für die Lambda-Funktion registriert werden. Das Konfigurationsdesign sollte wie das folgende Beispiel aussehen:  
<a name="lambda-designer-example"></a>![\[Designer-Panel für die CloudWatch Konfiguration.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/debugger/debugger-lambda-designer.png)

# Deaktivieren Sie die Regel „ CloudWatch Ereignisse“, um die automatische Beendigung von Trainingsjobs nicht mehr zu verwenden
<a name="debugger-disable-cw"></a>

Wenn Sie die automatische Beendigung von Trainingsjobs deaktivieren möchten, müssen Sie die Regel „ CloudWatch Ereignisse“ deaktivieren. Wählen Sie im Lambda **Designer-Bereich** den Block **EventBridge (CloudWatch Events)** aus, der mit der Lambda-Funktion verknüpft ist. Daraufhin wird ein **EventBridge**Bereich unter dem **Designer-Bereich** angezeigt (siehe z. B. den vorherigen Screenshot). Aktivieren Sie das Kontrollkästchen neben **EventBridge (CloudWatch Ereignisse): debugger-cw-event-rule** und wählen Sie dann **Deaktivieren**. Wenn Sie die automatische Kündigungsfunktion später verwenden möchten, können Sie die CloudWatch Ereignisregel erneut aktivieren.