

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.

# Zeitplan für Überwachungsaufgaben
<a name="model-monitor-scheduling"></a>

Amazon SageMaker Model Monitor bietet Ihnen die Möglichkeit, die von Ihren Echtzeit-Endpunkten gesammelten Daten zu überwachen. Sie können Ihre Daten nach einem wiederkehrenden Zeitplan oder einmalig sofort überwachen. Sie können mit der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html) API einen Überwachungsplan erstellen.

Mit einem Überwachungsplan kann SageMaker KI mit der Verarbeitung von Jobs beginnen, um die in einem bestimmten Zeitraum gesammelten Daten zu analysieren. Im Verarbeitungsjob vergleicht SageMaker KI den Datensatz für die aktuelle Analyse mit den von Ihnen bereitgestellten Basisstatistiken und Einschränkungen. Anschließend generiert SageMaker KI einen Bericht über Verstöße. Darüber hinaus werden CloudWatch Metriken für jedes zu analysierende Merkmal ausgegeben.

SageMaker AI bietet einen vorgefertigten Container für die Durchführung von Analysen von tabellarischen Datensätzen. Alternativ können Sie, wie im Thema [Support für Ihre eigenen Container mit Amazon SageMaker Model Monitor](model-monitor-byoc-containers.md) beschrieben, Ihren eigenen Container bereitstellen.

Sie können einen Zeitplan für die Modellüberwachung für Ihren Echtzeit-Endpunkt- oder Batch-Transformationsauftrag erstellen. Verwenden Sie die Basisressourcen (Beschränkungen und Statistiken) zum Vergleich mit dem Echtzeitverkehr oder den Batch-Auftrag-Eingaben. 

**Example Basiszuweisungen**  
Im folgenden Beispiel wurde der Trainingsdatensatz, der zum Trainieren des Modells verwendet wurde, auf Amazon S3 hochgeladen. Wenn es bereits in Amazon S3 vorhanden ist, können Sie direkt darauf verweisen.  

```
# copy over the training dataset to Amazon S3 (if you already have it in Amazon S3, you could reuse it)
baseline_prefix = prefix + '/baselining'
baseline_data_prefix = baseline_prefix + '/data'
baseline_results_prefix = baseline_prefix + '/results'

baseline_data_uri = 's3://{}/{}'.format(bucket,baseline_data_prefix)
baseline_results_uri = 's3://{}/{}'.format(bucket, baseline_results_prefix)
print('Baseline data uri: {}'.format(baseline_data_uri))
print('Baseline results uri: {}'.format(baseline_results_uri))
```

```
training_data_file = open("test_data/training-dataset-with-header.csv", 'rb')
s3_key = os.path.join(baseline_prefix, 'data', 'training-dataset-with-header.csv')
boto3.Session().resource('s3').Bucket(bucket).Object(s3_key).upload_fileobj(training_data_file)
```

**Example Zeitplan für wiederkehrende Analysen**  
Wenn Sie einen Modellmonitor für einen Echtzeit-Endpunkt planen, verwenden Sie die Baseline-Beschränkungen und -Statistiken zum Vergleich mit dem Echtzeitverkehr. Der folgende Codeausschnitt zeigt das allgemeine Format, das Sie verwenden, um einen Modellmonitor für einen Echtzeit-Endpunkt zu planen. In diesem Beispiel wird der Modellmonitor so geplant, dass er stündlich ausgeführt wird.  

```
from sagemaker.model_monitor import CronExpressionGenerator
from time import gmtime, strftime

mon_schedule_name = 'my-model-monitor-schedule-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
my_default_monitor.create_monitoring_schedule(
    monitor_schedule_name=mon_schedule_name,
    endpoint_input=EndpointInput(
        endpoint_name=endpoint_name,
        destination="/opt/ml/processing/input/endpoint"
    ),
    post_analytics_processor_script=s3_code_postprocessor_uri,
    output_s3_uri=s3_report_path,
    statistics=my_default_monitor.baseline_statistics(),
    constraints=my_default_monitor.suggested_constraints(),
    schedule_cron_expression=CronExpressionGenerator.hourly(),
    enable_cloudwatch_metrics=True,
)
```

**Example Zeitplan für eine einmalige Analyse**  
Sie können die Analyse auch so planen, dass sie einmal ohne Wiederholung ausgeführt wird, indem Sie Argumente wie die folgenden an die `create_monitoring_schedule` Methode übergeben:  

```
    schedule_cron_expression=CronExpressionGenerator.now(),
    data_analysis_start_time="-PT1H",
    data_analysis_end_time="-PT0H",
```
In diesen Argumenten plant der `schedule_cron_expression` Parameter, dass die Analyse einmal und sofort mit dem Wert `CronExpressionGenerator.now()` ausgeführt wird. Für jeden Zeitplan mit dieser Einstellung sind `data_analysis_start_time` und `data_analysis_end_time` Parameter erforderlich. Diese Parameter legen die Start- und Endzeit eines Analysefensters fest. Definieren Sie diese Zeiten als Offsets, die sich auf die aktuelle Uhrzeit beziehen, und verwenden Sie das ISO 8601-Dauerformat. In diesem Beispiel werden die Zeiten `-PT1H` und `-PT0H` angegeben, in Fenster zwischen einer Stunde in der Vergangenheit und der aktuellen Uhrzeit definiert. Bei diesem Zeitplan werden bei der Analyse nur die Daten ausgewertet, die während des angegebenen Zeitfensters gesammelt wurden.

**Example Zeitplan für einen Batch-Transformationsauftrag**  
Der folgende Codeausschnitt zeigt das allgemeine Format, das Sie verwenden, um einen Modellmonitor für einen Batch-Transformationsauftrag zu planen.  

```
from sagemaker.model_monitor import (
    CronExpressionGenerator,
    BatchTransformInput, 
    MonitoringDatasetFormat, 
)
from time import gmtime, strftime

mon_schedule_name = 'my-model-monitor-schedule-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
my_default_monitor.create_monitoring_schedule(
    monitor_schedule_name=mon_schedule_name,
    batch_transform_input=BatchTransformInput(
        destination="opt/ml/processing/input",
        data_captured_destination_s3_uri=s3_capture_upload_path,
        dataset_format=MonitoringDatasetFormat.csv(header=False),
    ),
    post_analytics_processor_script=s3_code_postprocessor_uri,
    output_s3_uri=s3_report_path,
    statistics=my_default_monitor.baseline_statistics(),
    constraints=my_default_monitor.suggested_constraints(),
    schedule_cron_expression=CronExpressionGenerator.hourly(),
    enable_cloudwatch_metrics=True,
)
```

```
desc_schedule_result = my_default_monitor.describe_schedule()
print('Schedule status: {}'.format(desc_schedule_result['MonitoringScheduleStatus']))
```

# Der cron-Ausdruck für die Überwachung des Zeitplans
<a name="model-monitor-schedule-expression"></a>

Um Details für den Überwachungsplan bereitzustellen, verwenden Sie [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ScheduleConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ScheduleConfig.html). Dabei handelt es sich um einen `cron`-Ausdruck, der Details zum Überwachungsplan beschreibt.

Amazon SageMaker Model Monitor unterstützt die folgenden `cron` Ausdrücke:
+ Wenn die Aufgabe stündlich gestartet werden soll, verwenden Sie bitte Folgendes:

  `Hourly: cron(0 * ? * * *)`
+ Verwenden Sie Folgendes, um den Auftrag täglich auszuführen:

  `cron(0 [00-23] ? * * *)`
+ Um den Auftrag einmal und sofort auszuführen, verwenden Sie das folgende Schlüsselwort:

  `NOW`

Beispielsweise sind folgende gültige `cron` Ausdrücke:
+ Täglich um 24 Uhr UTC: `cron(0 12 ? * * *)`
+ Täglich um 12 Uhr UTC: `cron(0 0 ? * * *)`

Um den Betrieb alle 6 oder 12 Stunden zu unterstützen, unterstützt Model Monitor den folgenden Ausdruck:

`cron(0 [00-23]/[01-24] ? * * *)`

Beispielsweise sind folgende gültige `cron`-Ausdrücke:
+ Alle 12 Stunden ab 17 Uhr UTC: `cron(0 17/12 ? * * *)`
+ Alle zwei Stunden ab 12 Uhr UTC: `cron(0 0/2 ? * * *)`

**Hinweise**  
Obwohl der `cron`-Ausdruck so eingestellt ist, dass er um 17 Uhr UTC beginnt, beachten Sie, dass sich die Ausführung um 0–20 Minuten von der tatsächlich angeforderten Zeit verzögern kann.
Wenn Sie nach einem täglichen Zeitplan arbeiten möchten, geben Sie diesen Parameter nicht an. SageMaker KI wählt jeden Tag eine Uhrzeit für den Lauf aus.
Derzeit unterstützt SageMaker KI nur ganzzahlige Stundensätze zwischen 1 Stunde und 24 Stunden.

# Konfiguration von Dienststeuerungsrichtlinien für die Überwachung von Zeitplänen
<a name="model-monitor-scp-rules"></a>

 Sie müssen die Parameter eines Überwachungsjobs angeben, wenn Sie einen Zeitplan dafür mit der [CreateMonitoringSchedule](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html)API bzw. der API erstellen oder aktualisieren. [UpdateMonitoringSchedule](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateMonitoringSchedule.html) Abhängig von Ihrem Anwendungsfall kann auf eine der folgenden Arten verwendet werden: 
+  Sie können das [MonitoringJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MonitoringJobDefinition.html)Feld angeben [MonitoringScheduleConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MonitoringScheduleConfig.html), wenn Sie `CreateMonitoringSchedule` oder `UpdateMonitoringSchedule` aufrufen. Sie können dies nur verwenden, um einen Zeitplan für einen Job zur Überwachung der Datenqualität zu erstellen oder zu aktualisieren. 
+  Sie können den Namen einer Überwachungsauftragsdefinition, die Sie bereits erstellt haben, für das `MonitoringJobDefinitionName` Feld von `MonitoringScheduleConfig` angeben, wenn Sie `CreateMonitoringSchedule` oder `UpdateMonitoringSchedule` aufrufen. Sie können dies für jede Jobdefinition verwenden, die Sie mit einer der folgenden APIs Optionen erstellen: 
  +  [CreateDataQualityJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDataQualityJobDefinition.html) 
  +  [CreateModelQualityJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelQualityJobDefinition.html) 
  +  [CreateModelBiasJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelBiasJobDefinition.html) 
  +  [CreateModelExplainabilityJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelExplainabilityJobDefinition.html) 

   Wenn Sie das SageMaker Python-SDK verwenden möchten, um Zeitpläne zu erstellen oder zu aktualisieren, müssen Sie diesen Prozess verwenden. 

 Die oben genannten Prozesse schließen sich gegenseitig aus, d. h. Sie können entweder das `MonitoringJobDefinition` Feld oder das `MonitoringJobDefinitionName` Feld angeben, wenn Sie Überwachungspläne erstellen oder aktualisieren. 

 Wenn Sie eine Definition für einen Überwachungsauftrag erstellen oder eine Definition in dem `MonitoringJobDefinition` Feld angeben, können Sie Sicherheitsparameter wie `NetworkConfig` und `VolumeKmsKeyId` festlegen. Als Administrator möchten Sie möglicherweise, dass diese Parameter immer auf bestimmte Werte festgelegt sind, sodass die Überwachungsaufträge immer in einer sicheren Umgebung ausgeführt werden. Um dies sicherzustellen, richten Sie entsprechende [Richtlinien zur Dienststeuerung](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) ein (SCPs). SCPs sind eine Art von Organisationsrichtlinie, mit der Sie Berechtigungen in Ihrer Organisation verwalten können. 

 Das folgende Beispiel zeigt einen SCP, mit dem Sie sicherstellen können, dass die Infrastrukturparameter bei der Erstellung oder Aktualisierung von Zeitplänen für die Überwachung von Aufträgen korrekt festgelegt sind. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateDataQualityJobDefinition",
                "sagemaker:CreateModelBiasJobDefinition",
                "sagemaker:CreateModelExplainabilityJobDefinition",
                "sagemaker:CreateModelQualityJobDefinition"
            ],
            "Resource": "arn:*:sagemaker:*:*:*",
            "Condition": {
                "Null": {
                    "sagemaker:VolumeKmsKey":"true",
                    "sagemaker:VpcSubnets": "true",
                    "sagemaker:VpcSecurityGroupIds": "true"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateDataQualityJobDefinition",
                "sagemaker:CreateModelBiasJobDefinition",
                "sagemaker:CreateModelExplainabilityJobDefinition",
                "sagemaker:CreateModelQualityJobDefinition"
            ],
            "Resource": "arn:*:sagemaker:*:*:*",
            "Condition": {
                "Bool": {
                    "sagemaker:InterContainerTrafficEncryption": "false"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateMonitoringSchedule",
                "sagemaker:UpdateMonitoringSchedule"
            ],
            "Resource": "arn:*:sagemaker:*:*:monitoring-schedule/*",
            "Condition": {
                "Null": {
                    "sagemaker:ModelMonitorJobDefinitionName": "true"
                }
            }
        }
    ]
}
```

------

 Die ersten beiden Regeln im Beispiel stellen sicher, dass die Sicherheitsparameter für die Überwachung von Auftragsdefinitionen immer festgelegt sind. Die letzte Regel verlangt, dass jeder in Ihrer Organisation, der einen Zeitplan erstellt oder aktualisiert, das `MonitoringJobDefinitionName` Feld immer angeben muss. Dadurch wird sichergestellt, dass niemand in Ihrer Organisation beim Erstellen oder Aktualisieren von Zeitplänen unsichere Werte für die Sicherheitsparameter festlegen kann, indem er das `MonitoringJobDefinition` Feld angibt. 