

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.

# Implementieren MLOps
<a name="mlops"></a>

Amazon SageMaker AI unterstützt Funktionen zur Implementierung von Modellen für maschinelles Lernen in Produktionsumgebungen mit kontinuierlicher Integration und Bereitstellung. Die folgenden Themen enthalten Informationen zum Einrichten der MLOps Infrastruktur bei Verwendung von SageMaker KI.

**Topics**
+ [Warum sollten Sie verwenden MLOps?](sagemaker-projects-why.md)
+ [SageMaker Experimente](experiments-mlops.md)
+ [SageMaker KI-Workflows](workflows.md)
+ [Amazon SageMaker ML Lineage Tracking](lineage-tracking.md)
+ [Bereitstellung von Modellregistrierung mit Model Registry](model-registry.md)
+ [Modellbereitstellung in SageMaker KI](model-deploy-mlops.md)
+ [SageMaker Modellmonitor](model-monitor-mlops.md)
+ [MLOps Automatisierung mit SageMaker Projekten](sagemaker-projects.md)
+ [Amazon SageMaker MLOps AI-Fehlerbehebung](mlopsfaq.md)

# Warum sollten Sie verwenden MLOps?
<a name="sagemaker-projects-why"></a>

Wenn Sie nicht mehr individuell arbeitenAI/ML) projects to using AI/ML to transform your business at scale, the discipline of ML Operations (MLOps) can help. MLOps accounts for the unique aspects of AI/ML projects in project management, CI/CD, künstliche Intelligenz und maschinelles Lernen (und Qualitätssicherung) einsetzen, können Sie die Lieferzeiten verbessern, Fehler reduzieren und die Datenwissenschaft produktiver gestalten. MLOps bezieht sich auf eine Methodik, die auf der Anwendung von DevOps Methoden auf Workloads für maschinelles Lernen basiert. Eine Erläuterung der DevOps Prinzipien finden Sie im Whitepaper [Introduction to DevOps on AWS](https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/welcome.html?did=wp_card). Weitere Informationen zur Implementierung mithilfe von AWS Services finden Sie unter [Practicing CI/CD on AWS](https://d1.awsstatic.com/whitepapers/DevOps/practicing-continuous-integration-continuous-delivery-on-AWS.pdf) and [Infrastructure as Code](https://d1.awsstatic.com/whitepapers/DevOps/infrastructure-as-code.pdf).

Like DevOps MLOps setzt auf einen kooperativen und optimierten Ansatz für den Entwicklungszyklus des maschinellen Lernens, bei dem die Schnittstelle von Menschen, Prozessen und Technologie die end-to-end Aktivitäten optimiert, die für die Entwicklung, den Aufbau und den Betrieb von Workloads für maschinelles Lernen erforderlich sind.

MLOps konzentriert sich auf die Schnittstelle von Datenwissenschaft und Datentechnik in Kombination mit bestehenden DevOps Verfahren, um die Modellbereitstellung während des gesamten Entwicklungszyklus des maschinellen Lernens zu optimieren. MLOps ist die Disziplin der Integration von ML-Workloads in Release-Management, CI/CD und Betriebsabläufe. MLOps erfordert die Integration von Softwareentwicklung, Betrieb, Datentechnik und Datenwissenschaft.

## Herausforderungen mit MLOps
<a name="sagemaker-projects-why-challenges"></a>

Sie MLOps können zwar wertvolle Tools zur Skalierung Ihres Unternehmens bereitstellen, bei der MLOps Integration in Ihre Workloads für maschinelles Lernen können Sie jedoch mit bestimmten Problemen konfrontiert werden.

**Projektmanagement**
+ An ML-Projekten sind Datenwissenschaftler beteiligt, eine relativ neue Rolle, die nicht oft in funktionsübergreifende Teams integriert wird. Diese neuen Teammitglieder sprechen oft eine ganz andere Fachsprache als Produktbesitzer und Softwareingenieure, was das übliche Problem der Übersetzung von Geschäftsanforderungen in technische Anforderungen noch verschärft. 

**Kommunikation und Zusammenarbeit**
+  DevOps Es wird immer wichtiger, ML-Projekte transparenter zu machen und die Zusammenarbeit zwischen verschiedenen Interessengruppen wie Dateningenieuren, Datenwissenschaftlern und ML-Ingenieuren zu ermöglichen, um erfolgreiche Ergebnisse zu erzielen.



**Alles ist Code**
+ Verwendung von Produktionsdaten für Entwicklungsaktivitäten, längere Lebenszyklen von Experimenten, Abhängigkeiten von Daten-Pipelines, Neutraining von Bereitstellungspipelines und einzigartige Kennzahlen zur Bewertung der Leistung eines Modells.
+ Modelle haben oft einen Lebenszyklus, der unabhängig von den Anwendungen und Systemen ist, die in diese Modelle integriert werden. 
+ Das gesamte end-to-end System ist durch versionierten Code und Artefakte reproduzierbar. DevOps Projekte verwenden Infrastructure-as-Code (IaC) und Configuration-as-Code (CaC), um Umgebungen zu erstellen, und Pipelines-as-Code (PaC), um konsistente Muster sicherzustellen. CI/CD Die Pipelines müssen in Big Data- und ML-Trainingsworkflows integriert werden. Das bedeutet oft, dass die Pipeline eine Kombination aus einem herkömmlichen CI/CD Tool und einer anderen Workflow-Engine ist. Bei vielen ML-Projekten gibt es wichtige politische Bedenken, weshalb die Pipeline diese Richtlinien möglicherweise auch durchsetzen muss. Verzerrte Eingabedaten führen zu verzerrten Ergebnissen, was die Interessengruppen in der Wirtschaft zunehmend beunruhigt.

**CI/CD**
+ Dabei MLOps sind die Quelldaten zusammen mit dem Quellcode eine erstklassige Eingabe. Aus diesem Grund MLOps ist die Versionierung der Quelldaten und die Initiierung von Pipeline-Läufen erforderlich, wenn sich die Quell- oder Inferenzdaten ändern. 
+ Pipelines müssen auch die ML-Modelle zusammen mit Eingaben und anderen Ausgaben versionieren, um die Rückverfolgbarkeit zu gewährleisten. 
+ Automatisierte Tests müssen eine ordnungsgemäße Validierung des ML-Modells während der Erstellungsphasen und während der Produktion des Modells beinhalten.
+ Die Entwicklungsphasen können Modelltraining und Neutraining beinhalten, was ein zeitaufwändiger und ressourcenintensiver Prozess ist. Pipelines müssen so detailliert sein, dass sie nur dann einen vollständigen Trainingszyklus durchführen können, wenn sich die Quelldaten oder der ML-Code ändern, und nicht, wenn sich zugehörige Komponenten ändern.
+ Da Machine-Learning-Code in der Regel nur ein kleiner Teil einer Gesamtlösung ist, kann eine Bereitstellungspipeline auch die zusätzlichen Schritte beinhalten, die erforderlich sind, um ein Modell so zu verpacken, dass es von anderen Anwendungen und Systemen als API genutzt werden kann.

**Überwachung und Protokollierung**
+ Die Phasen Feature-Engineering und Modelltraining, die zur Erfassung von Modelltrainingsmetriken und Modellexperimenten erforderlich sind. Die Optimierung eines ML-Modells erfordert die Manipulation der Form der Eingabedaten sowie der Algorithmus-Hyperparameter und die systematische Erfassung dieser Experimente. Die Nachverfolgung von Experimenten hilft Datenwissenschaftlern dabei, effektiver zu arbeiten, und bietet eine reproduzierbare Momentaufnahme ihrer Arbeit.
+ Implementierte ML-Modelle erfordern die Überwachung der Daten, die zur Inferenz an das Modell übergeben werden, zusammen mit den standardmäßigen Stabilitäts- und Leistungsmetriken für Endgeräte. Das Überwachungssystem muss auch die Qualität der Modellausgabe erfassen, die anhand einer geeigneten ML-Metrik bewertet wird. 

## Vorteile von MLOps
<a name="sagemaker-projects-benefits"></a>

Durch die Einführung von MLOps Methoden können Sie ML-Projekte schneller time-to-market durchführen, da sie die folgenden Vorteile bieten.
+ **Produktivität**: Durch die Bereitstellung von Self-Service-Umgebungen mit Zugriff auf kuratierte Datensätze können Dateningenieure und Datenwissenschaftler schneller arbeiten und weniger Zeit mit fehlenden oder ungültigen Daten verschwenden.
+ **Wiederholbarkeit**: Durch die Automatisierung aller Schritte im MLDC können Sie einen wiederholbaren Prozess sicherstellen, einschließlich der Art und Weise, wie das Modell trainiert, bewertet, versioniert und bereitgestellt wird. 
+ **Zuverlässigkeit**: Die Integration von CI/CD-Praktiken ermöglicht nicht nur eine schnelle Implementierung, sondern auch eine höhere Qualität und Konsistenz. 
+ **Überprüfbarkeit**: Durch die Versionierung aller Eingaben und Ausgaben, von datenwissenschaftlichen Experimenten über Quelldaten bis hin zu trainierten Modellen, können wir genau nachweisen, wie das Modell erstellt und wo es eingesetzt wurde.
+ **Daten- und Modellqualität**: MLOps ermöglicht es uns, Richtlinien durchzusetzen, die vor Modellverzerrungen schützen und Änderungen an den statistischen Eigenschaften und der Modellqualität von Daten im Laufe der Zeit verfolgen. 

# SageMaker Experimente
<a name="experiments-mlops"></a>

Die Erstellung von ML-Modellen erfordert viele Trainingswiederholungen, bei denen Sie den Algorithmus, die Modellarchitektur und die Parameter anpassen müssen, um eine hohe Vorhersagegenauigkeit zu erreichen. Mithilfe von Amazon Experiments können Sie die Eingaben und Ergebnisse dieser Trainingsiterationen verfolgen, um die Wiederholbarkeit von Studien und die Zusammenarbeit innerhalb Ihres Teams zu verbessern. SageMaker Sie können auch Parameter, Metriken, Datensätze und andere Artefakte im Zusammenhang mit Ihren Modelltrainingsjobs verfolgen. SageMaker Experiments bietet eine einzige Oberfläche, über die Sie Ihre laufenden Trainingsjobs visualisieren, Experimente mit Ihrem Team teilen und Modelle direkt aus einem Experiment bereitstellen können.

Weitere Informationen zu SageMaker Experimenten finden Sie unter[SageMaker Amazon-Experimente in Studio Classic](experiments.md).

# SageMaker KI-Workflows
<a name="workflows"></a>

Wenn Sie Ihre Machine-Learning-Operationen (ML) skalieren, können Sie die vollständig verwalteten Workflow-Services von Amazon SageMaker AI verwenden, um Methoden der kontinuierlichen Integration und Bereitstellung (CI/CD) für Ihren ML-Lebenszyklus zu implementieren. Mit dem Pipelines SDK wählen und integrieren Sie Pipeline-Schritte in eine einheitliche Lösung, die den Modellerstellungsprozess von der Datenvorbereitung bis zur Modellbereitstellung automatisiert. Für Kubernetes-basierte Architekturen können Sie SageMaker KI-Operatoren auf Ihrem Kubernetes-Cluster installieren, um SageMaker KI-Jobs nativ mithilfe der Kubernetes-API und Kubernetes-Befehlszeilentools wie z. B. zu erstellen. `kubectl` Mit SageMaker KI-Komponenten für Kubeflow-Pipelines können Sie native KI-Jobs von Ihren Kubeflow-Pipelines aus erstellen und überwachen. SageMaker Auf die Jobparameter, den Status und die Ausgaben von SageMaker AI kann über die Benutzeroberfläche von Kubeflow Pipelines zugegriffen werden. Wenn Sie Batch-Jobs planen möchten, können Sie schließlich entweder die AWS Batch Job-Queue-Integration oder den Jupyter-Workflow-Service auf Notebook-Basis verwenden, um eigenständige oder reguläre Läufe nach einem von Ihnen definierten Zeitplan zu initiieren.

Zusammenfassend bietet SageMaker KI die folgenden Workflow-Technologien:
+ [Pipelines](pipelines.md): Tool zum Erstellen und Verwalten von ML-Pipelines.
+ [Kubernetes-Orchestrierung](kubernetes-workflows.md): Benutzerdefinierte SageMaker KI-Operatoren für Ihren Kubernetes-Cluster und Komponenten für Kubeflow-Pipelines.
+ [SageMaker Notizbuch-Jobs](notebook-auto-run.md): Bedarfsgesteuerte oder geplante, nicht interaktive Batchausführungen Ihres Jupyter Notebooks.

Sie können auch andere Dienste nutzen, die in SageMaker KI integriert sind, um Ihren Workflow zu erstellen. Es gibt die folgenden Optionen:
+ [Airflow-Workflows](https://sagemaker.readthedocs.io/en/stable/workflows/airflow/index.html): SageMaker APIs zum Exportieren von Konfigurationen für die Erstellung und Verwaltung von Airflow-Workflows.
+ [AWS Step Functions](https://sagemaker.readthedocs.io/en/stable/workflows/step_functions/index.html): Mehrstufige ML-Workflows in Python, die die SageMaker KI-Infrastruktur orchestrieren, ohne Ihre Ressourcen separat bereitstellen zu müssen.
+ [AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-sagemaker.html): Senden Sie SageMaker KI-Schulungsjobs an eine AWS Batch Job-Warteschlange, in der Sie Jobs für die Ausführung in einer Computerumgebung priorisieren und planen können.

Weitere Informationen zur Verwaltung von SageMaker Schulungen und Inferenzen finden Sie unter [Amazon SageMaker Python SDK-Workflows](https://sagemaker.readthedocs.io/en/stable/workflows/index.html).

**Topics**
+ [Pipelines](pipelines.md)
+ [Kubernetes-Orchestrierung](kubernetes-workflows.md)
+ [SageMaker Notizbuch-Jobs](notebook-auto-run.md)
+ [Planen Sie Ihre ML-Workflows](workflow-scheduling.md)
+ [AWS Batch Unterstützung für SageMaker KI-Ausbildungsjobs](training-job-queues.md)

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

Amazon SageMaker Pipelines ist ein speziell entwickelter Workflow-Orchestrierungsservice zur Automatisierung der Entwicklung von maschinellem Lernen (ML).

Pipelines bieten die folgenden Vorteile gegenüber anderen Workflow-Angeboten: AWS 

**Automatische Skalierung der serverlosen Infrastruktur** Sie müssen die zugrunde liegende Orchestrierungsinfrastruktur nicht verwalten, um Pipelines auszuführen, sodass Sie sich auf die wichtigsten ML-Aufgaben konzentrieren können. SageMaker KI stellt die Rechenressourcen für die Pipeline-Orchestrierung automatisch bereit, skaliert und heruntergefahren, je nachdem, was Ihr ML-Workload benötigt.

Pipelines für ein **intuitives Benutzererlebnis** können über die Benutzeroberfläche Ihrer Wahl erstellt und verwaltet werden: Visual Editor APIs, SDK oder JSON. Sie können drag-and-drop die verschiedenen ML-Schritte zum Erstellen Ihrer Pipelines in der visuellen Oberfläche von Amazon SageMaker Studio ausführen. Der folgende Screenshot zeigt den Visual Editor für Pipelines in Studio.

![\[Screenshot der visuellen drag-and-drop Oberfläche für Pipelines in Studio.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/pipelines/pipelines-studio-overview.png)


Wenn Sie es vorziehen, Ihre ML-Workflows programmgesteuert zu verwalten, bietet das SageMaker Python-SDK erweiterte Orchestrierungsfunktionen. Weitere Informationen finden Sie unter [Amazon SageMaker Pipelines](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html) in der SageMaker Python SDK-Dokumentation.

**AWS Integrationen** Pipelines bieten eine nahtlose Integration mit allen SageMaker KI-Funktionen und anderen AWS Services zur Automatisierung von Datenverarbeitungs-, Modelltraining-, Feinabstimmungs-, Evaluierungs-, Bereitstellungs- und Überwachungsaufgaben. Sie können die SageMaker KI-Funktionen in Ihre Pipelines integrieren und mithilfe von Deep-Links zwischen ihnen navigieren, um Ihre ML-Workflows in großem Umfang zu erstellen, zu überwachen und zu debuggen.

**Geringere Kosten** Mit Pipelines zahlen Sie nur für die SageMaker Studio-Umgebung und die zugrunde liegenden Jobs, die von Pipelines orchestriert werden (z. B. SageMaker Training, SageMaker Verarbeitung, SageMaker KI Inference und Amazon S3 S3-Datenspeicher).

**Überprüfbarkeit und Herkunftsverfolgung Mit Pipelines können Sie mithilfe der integrierten Versionierung** den Verlauf von Pipeline-Updates und -Ausführungen verfolgen. Amazon SageMaker ML Lineage Tracking hilft Ihnen bei der Analyse der Datenquellen und Datenverbraucher im end-to-end ML-Entwicklungszyklus.

**Topics**
+ [Übersicht über die Pipelines](pipelines-overview.md)
+ [Pipeline-Aktionen](pipelines-build.md)

# Übersicht über die Pipelines
<a name="pipelines-overview"></a>

Eine Amazon SageMaker AI-Pipeline besteht aus einer Reihe miteinander verbundener Schritte in einem gerichteten azyklischen Graph (DAG), die mithilfe der drag-and-drop Benutzeroberfläche oder des [Pipelines](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html) SDK definiert werden. Sie können Ihre Pipeline erstellen, indem Sie das [JSON-Schema der Pipeline-Definition](https://aws-sagemaker-mlops.github.io/sagemaker-model-building-pipeline-definition-JSON-schema/) verwenden. Diese DAG-JSON-Definition enthält Informationen zu den Anforderungen und Beziehungen zwischen den einzelnen Schritten Ihrer Pipeline. Die Struktur der DAG einer Pipeline wird durch die Datenabhängigkeiten zwischen den Schritten bestimmt. Diese Datenabhängigkeiten entstehen, wenn die Eigenschaften der Ausgabe eines Schritts als Eingabe an einen anderen Schritt übergeben werden. Die folgende Abbildung ist ein Beispiel für eine Pipeline-DAG:

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


**In diesem DAG-Beispiel werden folgende Schritte beschrieben:**

1. `AbaloneProcess`, eine Instance des [Verarbeitungsschritts, führt ein Vorverarbeitungsskript](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-processing) für die für das Training verwendeten Daten aus. Das Skript könnte beispielsweise fehlende Werte ausfüllen, numerische Daten normalisieren oder Daten in die Datensätze „Train“, „Validation“ und „Test“ aufteilen.

1. `AbaloneTrain`, eine Instance des [Trainingsschritts](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-training), konfiguriert Hyperparameter und trainiert ein Modell anhand der vorverarbeiteten Eingabedaten.

1. `AbaloneEval`, eine weitere Instance des [Verarbeitungsschritts](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-processing), bewertet das Modell auf seine Genauigkeit. Dieser Schritt veranschaulicht ein Beispiel für eine Datenabhängigkeit – dieser Schritt verwendet die Testdatensatzausgabe von `AbaloneProcess`.

1. `AbaloneMSECond`ist eine Instanz eines [Bedingungsschritts](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-condition), der in diesem Beispiel überprüft, ob das mean-square-error Ergebnis der Modellevaluierung unter einem bestimmten Grenzwert liegt. Wenn das Modell die Kriterien nicht erfüllt, wird der Pipelineverlauf beendet.

1. Der Pipeline-Lauf wird mit den folgenden Schritten fortgesetzt:

   1. `AbaloneRegisterModel`, wo SageMaker KI einen [RegisterModel](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-register-model)Schritt aufruft, um das Modell als versionierte Modellpaketgruppe in der Amazon SageMaker Model Registry zu registrieren.

   1. `AbaloneCreateModel`, wobei SageMaker KI einen [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-create-model)Schritt zur Erstellung des Modells zur Vorbereitung der Batch-Transformation aufruft. In ruft SageMaker KI einen [Transformationsschritt](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-transform) auf`AbaloneTransform`, um Modellvorhersagen für einen von Ihnen angegebenen Datensatz zu generieren.

In den folgenden Themen werden die grundlegenden Konzepte von Pipelines beschrieben. Ein Tutorial, das die Implementierung dieser Konzepte beschreibt, finden Sie unter [Pipeline-Aktionen](pipelines-build.md).

**Topics**
+ [Struktur und Ausführung der Pipeline](build-and-manage-pipeline.md)
+ [IAM-Zugriffsverwaltung](build-and-manage-access.md)
+ [Einrichten von kontoübergreifendem Support für Pipelines](build-and-manage-xaccount.md)
+ [Pipeline-Parameter](build-and-manage-parameters.md)
+ [Pipelines-Schritte](build-and-manage-steps.md)
+ [Lift-and-shift Python-Code mit dem @step -Decorator](pipelines-step-decorator.md)
+ [Daten zwischen Schritten weitergeben](build-and-manage-propertyfile.md)
+ [Zwischenspeichern von Pipeline-Schritten](pipelines-caching.md)
+ [Richtlinie für Pipeline-Schritte erneut versuchen](pipelines-retry-policy.md)
+ [Selektive Ausführung von Pipeline-Schritten](pipelines-selective-ex.md)
+ [Basisberechnung, Drifterkennung und Lebenszyklus mit ClarifyCheck und QualityCheck Schritte in Amazon SageMaker Pipelines](pipelines-quality-clarify-baseline-lifecycle.md)
+ [Planen von Pipeline-Läufen](pipeline-eventbridge.md)
+ [Integration von Amazon SageMaker Experiments](pipelines-experiments.md)
+ [Führen Sie Pipelines im lokalen Modus aus](pipelines-local-mode.md)
+ [Fehlerbehebung bei Amazon SageMaker Pipelines](pipelines-troubleshooting.md)

# Struktur und Ausführung der Pipeline
<a name="build-and-manage-pipeline"></a>

**Topics**
+ [Pipeline-Struktur](#build-and-manage-pipeline-structure)
+ [Pipeline-Ausführung mithilfe der Parallelismus-Konfiguration](#build-and-manage-pipeline-execution)

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

Eine Amazon SageMaker Pipelines-Instance besteht aus einem `name``parameters`, und`steps`. Phasennamen müssen innerhalb eines `(account, region)`-Paares eindeutig sein. Alle in den Schrittdefinitionen verwendeten Parameter müssen in der Pipeline definiert werden. Die aufgelisteten Pipeline-Schritte bestimmen automatisch ihre Ausführungsreihenfolge anhand ihrer Datenabhängigkeiten voneinander. Der Pipelines-Service löst die Beziehungen zwischen Schritten in der Datenabhängigkeits-DAG auf, um eine Reihe von Schritten zu erstellen, die durch die Ausführung abgeschlossen werden. Im Folgenden finden Sie ein Beispiel für eine Pipeline-Struktur.

**Warnung**  
Wenn Sie eine Pipeline mit dem Visual Editor oder dem SageMaker AI Python SDK erstellen, sollten Sie keine vertraulichen Informationen in Pipeline-Parameter oder Schrittdefinitionsfelder (wie Umgebungsvariablen) aufnehmen. Diese Felder werden in future sichtbar sein, wenn sie in einer `DescribePipeline` Anfrage zurückgegeben werden.

```
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],
  )
```

## Pipeline-Ausführung mithilfe der Parallelismus-Konfiguration
<a name="build-and-manage-pipeline-execution"></a>

Standardmäßig führt eine Pipeline alle Schritte aus, die parallel ausgeführt werden können. Sie können dieses Verhalten mithilfe der `ParallelismConfiguration` Eigenschaft steuern, wenn Sie eine Pipeline erstellen oder aktualisieren oder wenn Sie eine Pipeline-Ausführung starten oder erneut versuchen. 

Parallelitätskonfigurationen werden pro Ausführung angewendet. Wenn beispielsweise zwei Ausführungen gestartet werden, können sie jeweils maximal 50 Schritte gleichzeitig ausführen, was insgesamt 100 gleichzeitig ausgeführten Schritten entspricht. Außerdem haben beim Starten, Wiederholen oder Aktualisieren einer Ausführung angegebene `ParallelismConfiguration`(n) Vorrang vor Parallelitätskonfigurationen, die in der Pipeline definiert wurden.

**Example Erstellen einer Pipeline-Ausführung mit `ParallelismConfiguration`**  

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

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

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

In den folgenden Abschnitten werden die AWS Identity and Access Management (IAM-) Anforderungen für Amazon SageMaker Pipelines beschrieben. Ein Beispiel dafür, wie Sie diese Berechtigungen implementieren können, finden Sie unter [Voraussetzungen](define-pipeline.md#define-pipeline-prereq).

**Topics**
+ [Berechtigungen für Pipeline-Rollen](#build-and-manage-role-permissions)
+ [Berechtigungen für Pipeline-Schritte](#build-and-manage-step-permissions)
+ [CORS-Konfiguration mit Amazon-S3-Buckets](#build-and-manage-cors-s3)
+ [Anpassen der Zugriffsverwaltung für Pipelines-Aufträge](#build-and-manage-step-permissions-prefix)
+ [Passen Sie den Zugriff auf Pipeline-Versionen an](#build-and-manage-step-permissions-version)
+ [Service-Kontrollrichtlinien mit Pipelines](#build-and-manage-scp)

## Berechtigungen für Pipeline-Rollen
<a name="build-and-manage-role-permissions"></a>

Ihre Pipeline erfordert eine IAM-Pipeline-Ausführungsrolle, die an Pipelines übergeben wird, wenn Sie eine Pipeline erstellen. Die Rolle für die SageMaker AI-Instanz, die Sie zum Erstellen der Pipeline verwenden, muss über eine Richtlinie mit der `iam:PassRole` Berechtigung verfügen, die die Pipeline-Ausführungsrolle spezifiziert. Dies liegt daran, dass die Instanz die Erlaubnis benötigt, Ihre Pipeline-Ausführungsrolle an den Pipeline-Dienst zu übergeben, damit er sie beim Erstellen und Ausführen von Pipelines verwenden kann. Weitere Informationen zu Rollen finden Sie unter [IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).

Für Ihre Pipeline-Ausführungsrolle sind die folgenden Berechtigungen erforderlich:
+ Sie können für jeden der SageMaker KI-Auftragsschritte in Ihrer Pipeline eine eindeutige oder benutzerdefinierte Rolle verwenden (anstelle der Pipeline-Ausführungsrolle, die standardmäßig verwendet wird). Stellen Sie sicher, dass Ihrer Pipeline-Ausführungsrolle eine Richtlinie mit der `iam:PassRole` Berechtigung hinzugefügt wurde, die jede dieser Rollen spezifiziert.
+  `Create` und `Describe` Berechtigungen für jeden Jobtyp in der Pipeline. 
+  Amazon-S3-Berechtigungen zur Verwendung der `JsonGet` Funktion. Sie können den Zugriff auf Ressourcen mit einer identitätsbasierten oder ressourcenbasierten Richtlinie steuern. Eine ressourcenbasierte Richtlinie wird auf Ihren Amazon-S3-Bucket angewendet und gewährt Pipelines Zugriff auf den Bucket. Eine identitätsbasierte Richtlinie gibt Ihrer Pipeline die Möglichkeit, Amazon-S3-Anrufe von Ihrem Konto aus zu tätigen. Weitere Informationen zu ressourcenbasierten Richtlinien finden Sie unter [Identitätsbasierte und ressourcenbasierte Richtlinien](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"
  }
  ```

## Berechtigungen für Pipeline-Schritte
<a name="build-and-manage-step-permissions"></a>

Pipelines enthalten Schritte, die SageMaker KI-Jobs ausführen. Damit die Pipeline-Schritte diese Jobs ausführen können, benötigen sie eine IAM-Rolle in Ihrem Konto, die Zugriff auf die benötigte Ressource bietet. Diese Rolle wird von Ihrer Pipeline an den SageMaker AI-Dienstprinzipal übergeben. Weitere Informationen zu Rollen finden Sie unter [IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). 

Standardmäßig übernimmt jeder Schritt die Rolle der Pipeline-Ausführung. Sie können optional jedem der Schritte in Ihrer Pipeline eine andere Rolle zuweisen. Dadurch wird sichergestellt, dass sich der Code in den einzelnen Schritten nicht auf Ressourcen auswirken kann, die in anderen Schritten verwendet werden, es sei denn, es besteht eine direkte Beziehung zwischen den beiden in der Pipeline-Definition angegebenen Schritten. Sie übergeben diese Rollen, wenn Sie den Prozessor oder den Schätzer für Ihren Schritt definieren. Beispiele dafür, wie diese Rollen in diese Definitionen aufgenommen werden können, finden Sie in der [SageMaker AI Python SDK-Dokumentation](https://sagemaker.readthedocs.io/en/stable/overview.html#using-estimators). 

## CORS-Konfiguration mit Amazon-S3-Buckets
<a name="build-and-manage-cors-s3"></a>

Um sicherzustellen, dass Ihre Images auf vorhersehbare Weise aus einem Amazon-S3-Bucket in Ihre Pipelines importiert werden, muss den Amazon-S3-Buckets, aus denen Images importiert werden, eine CORS-Konfiguration hinzugefügt werden. Dieser Abschnitt enthält Anweisungen zum Einrichten der erforderlichen CORS-Konfiguration für Ihren Amazon-S3-Bucket. Die für Pipelines erforderliche XML-`CORSConfiguration` unterscheidet sich von der in [CORS-Anforderung für Eingabebilddaten](sms-cors-update.md). Ansonsten können Sie die dortigen Informationen nutzen, um mehr über die CORS-Anforderungen bei Amazon-S3-Buckets zu erfahren.

Verwenden Sie den folgenden CORS-Konfigurationscode für die Amazon-S3-Buckets, die Ihre Bilder hosten. Anweisungen zum Konfigurieren von CORS finden Sie unter [Konfigurieren von Cross-Origin Resource Sharing (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-cors-configuration.html) im Benutzerhandbuch für Amazon Simple Storage Service. Wenn Sie die Amazon S3-Konsole verwenden, um die Richtlinie zu Ihrem Bucket hinzuzufügen, müssen Sie das JSON-Format verwenden.

**JSON**

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

**XML**

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

Das folgende GIF zeigt die Anweisungen in der Amazon S3-Dokumentation zum Hinzufügen einer CORS-Header-Richtlinie mithilfe der Amazon S3-Konsole.

![\[Gif zum Hinzufügen einer CORS-Header-Richtlinie mit der Amazon-S3-Konsole.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/sms/gifs/cors-config.gif)


## Anpassen der Zugriffsverwaltung für Pipelines-Aufträge
<a name="build-and-manage-step-permissions-prefix"></a>

Sie können Ihre IAM-Richtlinien weiter anpassen, sodass ausgewählte Mitglieder in Ihrer Organisation einzelne oder alle Pipeline-Schritte ausführen können. Sie können beispielsweise bestimmten Benutzern die Berechtigung zum Erstellen von Trainingsaufträgen und einer anderen Benutzergruppe die Berechtigung zum Erstellen von Verarbeitungsaufträgen und all Ihren Benutzern die Erlaubnis erteilen, die verbleibenden Schritte auszuführen. Um diese Funktion zu verwenden, wählen Sie eine benutzerdefinierte Zeichenfolge aus, die Ihrem Jobnamen vorangestellt wird. Ihr Administrator stellt dem Präfix erlaubt ARNs das Präfix voran, während Ihr Data Scientist dieses Präfix in Pipeline-Instanziierungen einbezieht. Da die IAM-Richtlinie für zugelassene Benutzer einen Job-ARN mit dem angegebenen Präfix enthält, verfügen nachfolgende Jobs Ihres Pipeline-Schritts über die erforderlichen Berechtigungen, um fortzufahren. Das Job-Präfix ist standardmäßig deaktiviert. Sie müssen diese Option in Ihrer `Pipeline` Klasse aktivieren, um sie verwenden zu können. 

Bei Jobs mit deaktiviertem Präfix wird der Jobname wie abgebildet formatiert und ist eine Verkettung von Feldern, die in der folgenden Tabelle beschrieben werden:

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


| Feld | Definition | 
| --- | --- | 
|  Pipelines   |  Eine statische Zeichenfolge wird immer vorangestellt. Diese Zeichenfolge identifiziert den Pipeline-Orchestrierungsdienst als Quelle des Jobs.  | 
|  executionId  |  Ein zufälliger Puffer für die laufende Instance der Pipeline.  | 
|  stepNamePrefix  |  Der vom Benutzer angegebene Schrittname (im `name` Argument des Pipeline-Schritts angegeben), begrenzt auf die ersten 20 Zeichen.  | 
|  entityToken  |  Ein zufälliges Token, um die Idempotenz der Schrittentität sicherzustellen.  | 
|  failureCount  |  Die aktuelle Anzahl der Versuche, den Job abzuschließen.  | 

In diesem Fall wird dem Jobnamen kein benutzerdefiniertes Präfix vorangestellt, und die entsprechende IAM-Richtlinie muss mit dieser Zeichenfolge übereinstimmen.

Für Benutzer, die das Job-Präfix aktivieren, hat der zugrunde liegende Jobname die folgende Form, wobei das benutzerdefinierte Präfix wie folgt angegeben ist: `MyBaseJobName`

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

Das benutzerdefinierte Präfix ersetzt die statische `pipelines` Zeichenfolge, sodass Sie die Auswahl der Benutzer einschränken können, die den SageMaker KI-Job als Teil einer Pipeline ausführen können.

**Längenbeschränkungen für das Präfix**

Die Auftragsnamen haben interne Längenbeschränkungen, die für einzelne Pipeline-Schritte spezifisch sind. Diese Einschränkung begrenzt auch die Länge des zulässigen Präfixes. Die Anforderungen an die Präfixlänge lauten wie folgt:


| Pipeline-Schritt | Länge des Präfixes | 
| --- | --- | 
|   `[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  | 

### Wenden Sie Job-Präfixe auf eine IAM-Richtlinie an
<a name="build-and-manage-step-permissions-prefix-iam"></a>

Ihr Administrator erstellt IAM-Richtlinien, die es Benutzern mit bestimmten Präfixen ermöglichen, Jobs zu erstellen. Die folgende Beispielrichtlinie ermöglicht es Datenwissenschaftlern, Trainingsjobs zu erstellen, wenn sie das `MyBaseJobName` Präfix verwenden. 

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

### Wenden Sie Job-Präfixe auf Pipeline-Instanziierungen an
<a name="build-and-manage-step-permissions-prefix-inst"></a>

Sie geben Ihr Präfix mit dem `*base_job_name` Argument der Job-Instance-Klasse an.

**Anmerkung**  
Sie übergeben Ihr Job-Präfix mit dem `*base_job_name` Argument an die Job-Instance, bevor Sie einen Pipeline-Schritt erstellen. Diese Auftrags-Instance enthält die erforderlichen Informationen, damit der Job als Schritt in einer Pipeline ausgeführt werden kann. Dieses Argument hängt von der verwendeten Auftrags-Instance ab. Die folgende Liste zeigt, welches Argument für jeden Pipeline-Schritttyp verwendet werden sollte:  
`base_job_name` für die Klassen `[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)`) und `[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` für die `[Tuner](https://sagemaker.readthedocs.io/en/stable/api/training/tuner.html)` Klasse (`[TuningStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#tuningstep)`)
`transform_base_job_name` für die `[Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html)` Klasse (`[TransformStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#transformstep)`)
`base_job_name` von `[CheckJobConfig](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#checkjobconfig)` für die Klassen `[QualityCheckStep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#qualitycheckstep)` (Qualitätsprüfung) und `[ClarifyCheckstep](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#clarifycheckstep)` (Klärungsprüfung)
Für die `[Model](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html)` Klasse hängt das verwendete Argument davon ab, ob Sie das Modell ausführen `create` oder ob es `register` sich um Ihr Modell handelt, bevor das Ergebnis an übergeben wird `[ModelStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#step-collections)`  
Wenn Sie `create` aufrufen, stammt das benutzerdefinierte Präfix aus dem `name` Argument, das Sie bei der Konstruktion Ihres Modells angegeben haben (d. h., `Model(name=)`)
Wenn Sie `register` aufrufen, stammt das benutzerdefinierte Präfix aus dem `model_package_name` Argument Ihres Aufrufs von `register` (d. h., `my_model.register(model_package_name=)`)

Im folgenden Beispiel wird gezeigt, wie Sie ein Präfix für eine neue Trainingsauftrags-Instance angeben:

```
# 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(...) 
    }
)
```

Das Auftrag-Präfix ist standardmäßig deaktiviert. Um sich für diese Funktion zu entscheiden, verwenden Sie die `use_custom_job_prefix` Option von `PipelineDefinitionConfig`, wie im folgenden Codeausschnitt gezeigt:

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

Erstellen Sie Ihre Pipeline und führen Sie sie aus. Im folgenden Beispiel wird eine Pipeline erstellt und ausgeführt. Außerdem wird veranschaulicht, wie Sie das Auftrag-Präfix deaktivieren und Ihre Pipeline erneut ausführen können.

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

In ähnlicher Weise können Sie die Funktion für bestehende Pipelines aktivieren und eine neue Ausführung starten, die Auftragspräfixe verwendet.

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

Schließlich können Sie Ihren Auftrag mit einem benutzerdefinierten Präfix anzeigen, indem Sie die Pipeline-Ausführung aufrufen`list_steps`.

```
steps = execution.list_steps()

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

## Passen Sie den Zugriff auf Pipeline-Versionen an
<a name="build-and-manage-step-permissions-version"></a>

Mithilfe des `sagemaker:PipelineVersionId` Bedingungsschlüssels können Sie benutzerdefinierten Zugriff auf bestimmte Versionen von Amazon SageMaker Pipelines gewähren. Die folgende Richtlinie gewährt beispielsweise Zugriff auf das Starten von Ausführungen oder das Aktualisieren der Pipeline-Version nur für Version 6 und höher.

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

****  

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

------

Weitere Informationen zu unterstützten Bedingungsschlüsseln finden Sie unter [Bedingungsschlüssel für Amazon SageMaker AI](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-policy-keys).

## Service-Kontrollrichtlinien mit Pipelines
<a name="build-and-manage-scp"></a>

Richtlinien zur Dienstkontrolle (SCPs) sind eine Art von Organisationsrichtlinie, mit der Sie Berechtigungen in Ihrer Organisation verwalten können. SCPs bieten eine zentrale Kontrolle über die maximal verfügbaren Berechtigungen für alle Konten in Ihrer Organisation. Durch die Verwendung von Pipelines innerhalb Ihrer Organisation können Sie sicherstellen, dass Datenwissenschaftler Ihre Pipeline-Ausführungen verwalten, ohne mit der AWS Konsole interagieren zu müssen. 

Wenn Sie eine VPC mit Ihrem SCP verwenden, die den Zugriff auf Amazon S3 einschränkt, müssen Sie Maßnahmen ergreifen, damit Ihre Pipeline auf andere Amazon S3-Ressourcen zugreifen kann. 

Um Pipelines den Zugriff auf Amazon S3 außerhalb Ihrer VPC mit dieser `JsonGet`-Funktion zu ermöglichen, aktualisieren Sie den SCP Ihres Unternehmens, um sicherzustellen, dass die Rolle, die Pipelines verwendet, auf Amazon S3 zugreifen kann. Erstellen Sie dazu mithilfe eines Principal-Tags und eines Bedingungsschlüssels eine Ausnahme für Rollen, die vom Pipelines-Executor über die Pipeline-Ausführungsrolle verwendet werden. 

**So erlauben Sie Pipelines den Zugriff auf Amazon S3 außerhalb Ihrer VPC**

1. Erstellen Sie ein eindeutiges Tag für Ihre Pipeline-Ausführungsrolle, indem Sie die Schritte unter [Taggen von IAM-Benutzern und -Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) befolgen. 

1. Gewähren Sie in Ihrem SCP mithilfe des `Aws:PrincipalTag IAM` Bedingungsschlüssels für das von Ihnen erstellte Tag eine Ausnahme. Weitere Informationen finden Sie unter [Erstellen, Aktualisieren und Löschen von Service-Kontrollrichtlinien](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html). 

# Einrichten von kontoübergreifendem Support für Pipelines
<a name="build-and-manage-xaccount"></a>

Der kontoübergreifende Support für Amazon SageMaker Pipelines ermöglicht es Ihnen, an Machine-Learning-Pipelines mit anderen Teams oder Organisationen zusammenzuarbeiten, die in unterschiedlichen Konten tätig sind. AWS Durch die Einrichtung der kontoübergreifenden Pipeline-Freigabe können Sie kontrollierten Zugriff auf Pipelines gewähren, anderen Konten ermöglichen, Pipeline-Details einzusehen, Ausführungen auszulösen und Läufe zu überwachen. Das folgende Thema behandelt, wie Sie die kontenübergreifende Pipeline-Freigabe einrichten, welche unterschiedlichen Berechtigungsrichtlinien für gemeinsam genutzte Ressourcen verfügbar sind und wie Sie über direkte API-Aufrufe an KI auf gemeinsam genutzte Pipeline-Entitäten zugreifen und mit ihnen interagieren können. SageMaker 

## Einrichten der kontoübergreifenden Pipeline-Freigabe
<a name="build-and-manage-xaccount-set-up"></a>

SageMaker KI verwendet [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) (AWS RAM), um Ihnen zu helfen, Ihre Pipeline-Entitäten sicher für mehrere Konten gemeinsam zu nutzen. 

### Erstellen einer Ressourcen-Freigabe
<a name="build-and-manage-xaccount-set-up-console"></a>

1. Wählen Sie über die [AWS RAM Konsole](https://console.aws.amazon.com/ram/home) **eine Ressourcenfreigabe erstellen** aus.

1. Wenn Sie Details zur Ressourcenfreigabe angeben, wählen Sie den Ressourcentyp „Pipelines“ und anschließend eine oder mehrere Pipelines aus, die Sie gemeinsam nutzen möchten. Wenn Sie eine Pipeline mit einem anderen Konto teilen, werden alle ihre Ausführungen ebenfalls implizit geteilt.

1. Ordnen Sie eine Berechtigung einer Ressourcenfreigabe zu. Wählen Sie entweder die standardmäßige Richtlinie für schreibgeschützte Berechtigungen oder die erweiterte Richtlinie für die Pipeline-Ausführung. Detailliertere Informationen erhalten Sie unter [Berechtigungsrichtlinien für Pipelines-Ressourcen](#build-and-manage-xaccount-permissions). 
**Anmerkung**  
Wenn Sie die erweiterte Pipeline-Ausführungsrichtlinie auswählen, beachten Sie, dass alle Start-, Stopp- und Wiederholungsbefehle, die von gemeinsam genutzten Konten aufgerufen werden, Ressourcen in dem AWS Konto verwenden, das die Pipeline gemeinsam genutzt hat.

1. Verwenden Sie das AWS Konto IDs , um die Konten anzugeben, denen Sie Zugriff auf Ihre gemeinsam genutzten Ressourcen gewähren möchten.

1. Überprüfen Sie Ihre Konfiguration für die gemeinsame Nutzung Ihrer Ressourcen und wählen Sie **Ressourcenfreigabe erstellen** aus. Es kann einige Minuten dauern, bis die Ressourcenfreigabe und die Hauptverknüpfungen abgeschlossen sind.

Weitere Informationen finden Sie unter [Freigabe Ihrer AWS Ressourcen](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html) im *AWS Benutzerhandbuch für den Resource Access Manager*.

### Erhalten Sie Antworten auf Ihre Einladung zur gemeinsamen Nutzung von Ressourcen
<a name="build-and-manage-xaccount-set-up-responses"></a>

Sobald die Ressourcenfreigabe und die Hauptzuordnungen festgelegt sind, erhalten die angegebenen AWS Konten eine Einladung, um der Ressourcenfreigabe beizutreten. Die AWS Konten müssen die Einladung annehmen, um Zugriff auf gemeinsam genutzte Ressourcen zu erhalten.

Weitere Informationen zum Annehmen einer Einladung zur gemeinsamen Nutzung von Ressourcen finden Sie unter [Verwenden von gemeinsam genutzten AWS Ressourcen](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-shared.html) im *AWS Resource Access Manager Manager-Benutzerhandbuch*. AWS RAM

## Berechtigungsrichtlinien für Pipelines-Ressourcen
<a name="build-and-manage-xaccount-permissions"></a>

Wählen Sie bei der Erstellung Ihrer Ressourcenfreigabe eine von zwei unterstützten Berechtigungsrichtlinien aus, die Sie dem Ressourcentyp der SageMaker AI-Pipeline zuordnen möchten. Beide Richtlinien gewähren Zugriff auf jede ausgewählte Pipeline und all ihre Ausführungen. 

### Standardmäßige schreibgeschützte Berechtigungen
<a name="build-and-manage-xaccount-permissions-default"></a>

Die `AWSRAMDefaultPermissionSageMakerPipeline`-Richtlinie erlaubt die folgenden schreibgeschützten Aktionen:

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

### Erweiterte Berechtigungen zur Pipeline-Ausführung
<a name="build-and-manage-xaccount-permissions-extended"></a>

Die `AWSRAMPermissionSageMakerPipelineAllowExecution` Richtlinie umfasst alle Leseberechtigungen der Standardrichtlinie und ermöglicht es gemeinsam genutzten Konten, Pipeline-Ausführungen zu starten, zu beenden und erneut zu versuchen.

**Anmerkung**  
Achten Sie bei der Verwendung der Richtlinie für erweiterte Genehmigungen zur Pipeline-Ausführung auf die AWS Ressourcennutzung. Mit dieser Richtlinie können gemeinsam genutzte Konten Pipeline-Ausführungen starten, beenden und erneut versuchen. Alle Ressourcen, die für gemeinsam genutzte Pipeline-Ausführungen verwendet werden, werden vom Besitzerkonto verbraucht. 

Die Richtlinie für erweiterte Pipeline-Ausführungsberechtigungen ermöglicht die folgenden Aktionen:

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

## Greifen Sie über direkte API-Aufrufe auf gemeinsam genutzte Pipeline-Entitäten zu
<a name="build-and-manage-xaccount-api-calls"></a>

Sobald die kontoübergreifende Pipeline-Freigabe eingerichtet ist, können Sie die folgenden SageMaker API-Aktionen mithilfe eines Pipeline-ARN aufrufen:

**Anmerkung**  
Sie können API-Befehle nur aufrufen, wenn sie in den mit Ihrer Ressourcenfreigabe verknüpften Berechtigungen enthalten sind. Wenn Sie die `AWSRAMPermissionSageMakerPipelineAllowExecution` Richtlinie auswählen, verwenden die Befehle Start, Stop und Retry Ressourcen in dem AWS Konto, das die Pipeline gemeinsam genutzt hat.
+ [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)

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

Sie können Variablen mithilfe von Parametern in Ihre Pipeline-Definition aufnehmen. Sie können in Ihrer Pipeline-Definition auf Parameter verweisen, die Sie definieren. Parameter haben einen Standardwert, den Sie überschreiben können, indem Sie beim Starten einer Pipeline-Ausführung Parameterwerte angeben. Der Standardwert muss eine Instance sein, die dem Parametertyp entspricht. Alle in Schrittdefinitionen verwendeten Parameter müssen in Ihrer Pipeline-Definition definiert sein. In diesem Thema werden die Parameter beschrieben, die Sie definieren können, und wie Sie sie implementieren können.

Amazon SageMaker Pipelines unterstützt die folgenden Parametertypen: 
+  `ParameterString`– Stellt einen Zeichenkettenparameter dar. 
+  `ParameterInteger`– Stellt einen Integer-Parameter dar. 
+  `ParameterFloat`– Stellt einen Float-Parameter dar.
+  `ParameterBoolean`– Stellt einen booleschen Python-Typ dar.

Die Parameter haben das folgende Format:

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

Das folgende Beispiel zeigt eine Beispielimplementierung eines Parameters.

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

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

Sie übergeben den Parameter bei der Erstellung Ihrer Pipeline wie im folgenden Beispiel dargestellt.

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

Sie können auch einen Parameterwert, der vom Standardwert abweicht, an eine Pipeline-Ausführung übergeben, wie im folgenden Beispiel gezeigt.

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

Sie können Parameter mit SageMaker Python-SDK-Funktionen wie manipulieren`[ sagemaker.workflow.functions.Join](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.functions.Join)`. Weitere Informationen zu Parametern finden Sie unter [ SageMaker Pipeline-Parameter](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#parameters).

Bekannte Einschränkungen von Pipeline-Parametern finden Sie unter *[Einschränkungen — Parametrisierung](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#parameterization)* im [Amazon SageMaker ](https://sagemaker.readthedocs.io/en/stable) Python SDK.

# Pipelines-Schritte
<a name="build-and-manage-steps"></a>

Pipelines bestehen aus Schritten. Diese Schritte definieren die Aktionen, die die Pipeline ausführt, und die Beziehungen zwischen den Schritten mithilfe von Eigenschaften. Auf der folgenden Seite werden die Arten von Schritten, ihre Eigenschaften und die Beziehungen zwischen ihnen beschrieben.

**Topics**
+ [Einen Schritt hinzufügen](build-and-manage-steps-types.md)
+ [Integration hinzufügen](build-and-manage-steps-integration.md)
+ [Eigenschaften-Schritt](#build-and-manage-properties)
+ [Schrittparallelität](#build-and-manage-parallelism)
+ [Datenabhängigkeit zwischen Schritten](#build-and-manage-data-dependency)
+ [Benutzerdefinierte Abhängigkeit zwischen Schritten](#build-and-manage-custom-dependency)
+ [Benutzerdefinierte Bilder in einem Schritt](#build-and-manage-images)

# Einen Schritt hinzufügen
<a name="build-and-manage-steps-types"></a>

Im Folgenden werden die Anforderungen der einzelnen Schritttypen beschrieben und ein Beispiel für die Implementierung des Schritts sowie die Vorgehensweise zum Hinzufügen des Schritts zu einer Pipeline aufgeführt. Dabei handelt es sich nicht um funktionale Implementierungen, da sie nicht die benötigten Ressourcen und Eingaben bereitstellen. Ein Tutorial, das diese Schritte implementiert, finden Sie unter [Pipeline-Aktionen](pipelines-build.md).

**Anmerkung**  
Sie können auch einen Schritt aus Ihrem lokalen Machine-Learning-Code erstellen, indem Sie ihn mit dem `@step`-Decorator in einen Pipelines-Schritt konvertieren. Weitere Informationen finden Sie unter [@step Decorator](#step-type-custom).

Amazon SageMaker Pipelines unterstützt die folgenden Schritttypen:
+ [Code ausführen](#step-type-executecode)

  [Verarbeitung](#step-type-processing)
+ [Training](#step-type-training)
+ [Optimieren](#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)
+ [Transformieren](#step-type-transform)
+ [Bedingung](#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)
+ [Notebook-Auftrag](#step-type-notebook-job)
+ [Fehler](#step-type-fail)

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

Wenn Sie einen benutzerdefinierten ML-Job orchestrieren möchten, der erweiterte SageMaker KI-Funktionen oder andere AWS Dienste in der drag-and-drop Pipelines-Benutzeroberfläche nutzt, verwenden Sie den. [Codeschritt ausführen](#step-type-executecode)

Sie können mithilfe des `@step`-Decorators einen Schritt aus lokalem Machine-Learning-Code erstellen. Nachdem Sie Ihren Code getestet haben, können Sie die Funktion in einen SageMaker KI-Pipeline-Schritt konvertieren, indem Sie sie mit dem Decorator kommentieren. `@step` Pipelines erstellt eine Pipeline und führt sie aus, wenn Sie die Ausgabe der mit `@step` -dekorierten Funktion als Schritt an Ihre Pipeline übergeben. Sie können auch eine mehrstufige DAG-Pipeline erstellen, die eine oder mehrere `@step` dekorierte Funktionen sowie herkömmliche SageMaker KI-Pipeline-Schritte umfasst. Weitere Informationen zum Erstellen eines Steps mit `@step`-Decorator finden Sie unter [Lift-and-shift Python-Code mit dem @step -Decorator](pipelines-step-decorator.md).

## Codeschritt ausführen
<a name="step-type-executecode"></a>

In der drag-and-drop Pipelines-Benutzeroberfläche können Sie einen Codeschritt **ausführen verwenden, um Ihren eigenen Code** als Pipeline-Schritt auszuführen. Sie können eine Python-Funktion, ein Skript oder ein Notebook hochladen, das als Teil Ihrer Pipeline ausgeführt werden soll. Sie sollten diesen Schritt verwenden, wenn Sie einen benutzerdefinierten ML-Job orchestrieren möchten, der erweiterte SageMaker KI-Funktionen oder andere Dienste nutzt. AWS 

Der Schritt **Code ausführen** lädt Dateien in Ihren standardmäßigen Amazon S3 S3-Bucket für Amazon SageMaker AI hoch. Für diesen Bucket sind möglicherweise nicht die erforderlichen Cross-Origin Resource Sharing (CORS) -Berechtigungen festgelegt. Weitere Informationen zum Konfigurieren der CORS-Berechtigungen finden Sie unter [CORS-Anforderung für Eingabebilddaten](sms-cors-update.md).

Der Schritt „**Code ausführen**“ verwendet einen SageMaker Amazon-Schulungsjob, um Ihren Code auszuführen. Stellen Sie sicher, dass Ihre IAM-Rolle über die `sagemaker:DescribeTrainingJob` und `sagemaker:CreateTrainingJob` API-Berechtigungen verfügt. Weitere Informationen zu allen erforderlichen Berechtigungen für Amazon SageMaker AI und deren Einrichtung finden Sie unter[Amazon SageMaker AI API-Berechtigungen: Referenz zu Aktionen, Berechtigungen und Ressourcen](api-permissions-reference.md).

Gehen Sie wie folgt vor, um einer Pipeline mithilfe des Pipeline Designers einen Schritt zum Ausführen von Code hinzuzufügen:

1. Öffnen Sie die Amazon SageMaker Studio-Konsole, indem Sie den Anweisungen unter folgen[Starten Sie Amazon SageMaker Studio](studio-updated-launch.md).

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. **Wählen Sie Leer.**

1. Wählen Sie in der linken Seitenleiste „**Code ausführen**“ und ziehen Sie ihn auf die Arbeitsfläche.

1. Wählen Sie auf der Arbeitsfläche den Schritt **Code ausführen aus**, den Sie hinzugefügt haben.

1. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und **Details** aus.

1. Sie können eine einzelne Datei hochladen, um sie auszuführen, oder einen komprimierten Ordner hochladen, der mehrere Artefakte enthält.

1. Für das Hochladen einzelner Dateien können Sie optionale Parameter für Notebooks, Python-Funktionen oder Skripte angeben.

1. Bei der Bereitstellung von Python-Funktionen muss ein Handler im folgenden Format bereitgestellt werden `file.py:<function_name>`

1. Für komprimierte Ordner-Uploads müssen relative Pfade zu Ihrem Code angegeben werden, und Sie können optional Pfade zu einer `requirements.txt` Datei oder einem Initialisierungsskript innerhalb des komprimierten Ordners angeben.

1. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem von Ihnen hinzugefügten Schritt „**Code ausführen**“ steht, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Schritt „**Code ausführen**“, um eine Kante zu erstellen.

1. Wenn die Zeichenfläche einen Schritt enthält, der unmittelbar auf den Schritt „**Code ausführen**“ folgt, klicken Sie auf den Schritt „Code ausführen“ und ziehen Sie den Cursor vom Schritt „**Code ausführen**“ zu dem Schritt, um eine Kante zu erstellen. Ausgaben von **Execute-Codeschritten** können für Python-Funktionen referenziert werden.

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

Verwenden Sie einen Verarbeitungsschritt, um einen Verarbeitungsauftrag für die Datenverarbeitung zu erstellen. Weitere Informationen zur Verarbeitung von Auftrags finden Sie unter [Daten verarbeiten und Modelle auswerten](https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html).

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

Gehen Sie wie folgt vor, um einer Pipeline mithilfe des Pipeline Designers einen Verarbeitungsschritt hinzuzufügen:

1. Öffnen Sie die Amazon SageMaker Studio-Konsole, indem Sie den Anweisungen unter folgen[Starten Sie Amazon SageMaker Studio](studio-updated-launch.md).

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. Wählen Sie in der linken Seitenleiste die Option **Daten verarbeiten** und ziehen Sie sie auf die Arbeitsfläche.

1. Wählen Sie auf der Arbeitsfläche den Schritt „**Daten verarbeiten**“ aus, den Sie hinzugefügt haben.

1. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und **Details** aus. Informationen zu den Feldern in diesen Tabs finden Sie unter [sagemaker.workflow.steps. ProcessingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.ProcessingStep).

1. **Wenn die Arbeitsfläche einen Schritt enthält, der dem hinzugefügten **Prozessdatenschritt** unmittelbar vorausgeht, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Prozessdatenschritt, um eine Kante zu erstellen.**

1. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den von Ihnen hinzugefügten **Prozessdatenschritt** folgt, klicken Sie und ziehen Sie den Cursor vom **Prozessdatenschritt** zu dem Schritt, um eine Kante zu erstellen.

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

Ein Verarbeitungsschritt erfordert einen Prozessor, ein Python-Skript, das den Verarbeitungscode definiert, Ausgaben für die Verarbeitung und Auftrag-Argumente. Das folgende Beispiel zeigt, wie man eine `ProcessingStep`-Definition erstellt. 

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

**Übergeben Sie Laufzeitparameter**

Das folgende Beispiel zeigt, wie Laufzeitparameter von einem PySpark Prozessor an einen übergeben `ProcessingStep` werden.

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

Weitere Informationen zu den Anforderungen für Verarbeitungsschritte finden Sie unter [sagemaker.workflow.steps. ProcessingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.ProcessingStep)Dokumentation. Ein ausführliches Beispiel finden Sie im [Beispielnotizbuch Orchestrate Jobs to Train and Evaluate Models with Amazon SageMaker Pipelines](https://github.com/aws/amazon-sagemaker-examples/blob/62de6a1fca74c7e70089d77e36f1356033adbe5f/sagemaker-pipelines/tabular/abalone_build_train_deploy/sagemaker-pipelines-preprocess-train-evaluate-batch-transform.ipynb). Weitere Informationen finden Sie im Abschnitt *Verarbeitungsschritt für Feature Engineering definieren*.

------

## Schritt des Trainings
<a name="step-type-training"></a>

Sie verwenden einen Trainingsschritt, um einen Trainingsjob zum Trainieren eines Modells zu erstellen. Weitere Informationen zu Schulungsjobs finden Sie unter [Train a Model with Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html).

Ein Trainingsschritt erfordert einen Schätzer sowie Eingaben von Trainings- und Validierungsdaten.

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

Gehen Sie wie folgt vor, um einer Pipeline mithilfe des Pipeline Designers einen Trainingsschritt hinzuzufügen:

1. Öffnen Sie die Amazon SageMaker Studio-Konsole, indem Sie den Anweisungen unter folgen[Starten Sie Amazon SageMaker Studio](studio-updated-launch.md).

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. **Wählen Sie Leer.**

1. Wählen Sie in der linken Seitenleiste **Train Model** und ziehen Sie es auf die Leinwand.

1. Wählen Sie auf der Arbeitsfläche den Schritt **Train Model** aus, den Sie hinzugefügt haben.

1. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und **Details** aus. Informationen zu den Feldern in diesen Tabs finden Sie unter [sagemaker.workflow.steps. TrainingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TrainingStep).

1. **Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem Schritt **Modell trainieren**, den Sie hinzugefügt haben, klicken und ziehen Sie den Cursor von dem Schritt zum Schritt Modell trainieren, um eine Kante zu erstellen.**

1. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den Schritt **Modell trainieren** folgt, klicken Sie und ziehen Sie den Cursor vom Schritt **Modell trainieren** zu dem Schritt, um eine Kante zu erstellen.

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

Das folgende Beispiel zeigt, wie Sie eine `TrainingStep`-Definition erstellen. Weitere Informationen zu den Anforderungen für Trainingsschritte finden Sie unter [sagemaker.workflow.steps. TrainingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TrainingStep)Dokumentation.

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

------

## Schritt zur Feinabstimmung
<a name="step-type-tuning"></a>

Sie verwenden einen Optimierungsschritt, um einen Hyperparameter-Tuning-Auftrag zu erstellen, der auch als Hyperparameter-Optimierung (HPO) bezeichnet wird. Ein Hyperparameter-Optimierungsauftrag führt mehrere Trainingsjobs aus, von denen jeder eine Modellversion erzeugt. Weitere Informationen zur Abstimmung der Hyperparameter finden Sie unter [Automatische Modelloptimierung mit KI SageMaker](automatic-model-tuning.md).

Der Tuning-Job ist mit dem SageMaker KI-Experiment für die Pipeline verknüpft, wobei die Trainingsjobs als Versuche erstellt wurden. Weitere Informationen finden Sie unter [Integration von Experimenten](pipelines-experiments.md).

Ein Optimierungsschritt erfordert Eingaben [HyperparameterTuner](https://sagemaker.readthedocs.io/en/stable/api/training/tuner.html)und Trainingseingaben. Sie können frühere Abstimmungsaufträge erneut trainieren, indem Sie den `warm_start_config`-Parameter des `HyperparameterTuner` angeben. Weitere Informationen zur Hyperparameteroptimierung und zum Warmstart finden Sie unter [Durchführen eines Hyperparameter-Optimierungsauftrags mit Warmstart](automatic-model-tuning-warm-start.md).

[Sie verwenden die Methode [get\$1top\$1model\$1s3\$1uri](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TuningStep.get_top_model_s3_uri) der Datei sagemaker.workflow.steps. TuningStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TuningStep)Klasse, um das Modellartefakt aus einer der leistungsstärksten Modellversionen abzurufen. [Ein Notizbuch, das zeigt, wie ein Tuning-Schritt in einer SageMaker KI-Pipeline verwendet wird, finden Sie unter sagemaker-pipelines-tuning-step .ipynb.](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-pipelines/tabular/tuning-step/sagemaker-pipelines-tuning-step.ipynb)

**Wichtig**  
Optimierungsschritte wurden in Amazon SageMaker Python SDK v2.48.0 und Amazon SageMaker Studio Classic v3.8.0 eingeführt. Sie müssen Studio Classic aktualisieren, bevor Sie einen Optimierungsschritt verwenden, da sonst die Pipeline-DAG nicht angezeigt wird. Informationen zum Aktualisieren von Studio Classic finden Sie unter [Amazon SageMaker Studio Classic herunterfahren und aktualisieren](studio-tasks-update-studio.md).

Das folgende Beispiel zeigt, wie man eine `TuningStep`-Definition erstellt.

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

**Holen Sie sich die beste Modellversion**

Das folgende Beispiel zeigt, wie Sie mit der `get_top_model_s3_uri` Methode die beste Modellversion aus dem Tuning-Auftrag abrufen können. Es sind höchstens die 50 leistungsstärksten Versionen verfügbar, geordnet nach. [HyperParameterTuningJobObjective](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobObjective.html) Das Argument `top_k` ist ein Index für die Versionen, wobei `top_k=0` die leistungsstärkste und `top_k=49` die leistungsschwächste Version ist.

```
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()
    ),
    ...
)
```

Weitere Informationen zu den Anforderungen an die Optimierungsschritte finden Sie unter [sagemaker.workflow.steps. TuningStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TuningStep)Dokumentation.

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

Mit der Feinabstimmung wird ein vortrainiertes Fundamentmodell von Amazon SageMaker JumpStart anhand eines neuen Datensatzes trainiert. Dieser Prozess, der auch als Transferlernen bezeichnet wird, kann genaue Modelle mit kleineren Datensätzen und weniger Trainingszeit erzeugen. Bei der Feinabstimmung eines Modells können Sie den Standarddatensatz verwenden oder eigene Daten auswählen. Weitere Informationen zur Feinabstimmung eines Foundation-Modells finden Sie unter JumpStart. [Feinabstimmung eines Modells](jumpstart-fine-tune.md)

Bei der Feinabstimmung wird ein SageMaker Amazon-Schulungsjob verwendet, um Ihr Modell anzupassen. Stellen Sie sicher, dass Ihre IAM-Rolle über die erforderlichen `sagemaker:DescribeTrainingJob` und `sagemaker:CreateTrainingJob` API-Berechtigungen verfügt, um den Feinsteuerungsjob in Ihrer Pipeline auszuführen. Weitere Informationen zu den erforderlichen Berechtigungen für Amazon SageMaker AI und deren Einrichtung finden Sie unter[Amazon SageMaker AI API-Berechtigungen: Referenz zu Aktionen, Berechtigungen und Ressourcen](api-permissions-reference.md).

Gehen Sie wie folgt vor, um Ihrer Pipeline mithilfe des drag-and-drop Editors einen Schritt zur **Feinabstimmung des Modells** hinzuzufügen:

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. **Wählen Sie Leer.**

1. Wählen Sie in der linken Seitenleiste die Option **Modell feinabstimmen** und ziehen Sie es auf die Leinwand.

1. Wählen Sie auf der Leinwand den hinzugefügten Schritt zur **Feinabstimmung des Modells** aus.

1. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und **Details** aus.

1. Wenn die Zeichenfläche einen Schritt enthält, der unmittelbar vor dem Schritt „Modell **feinabstimmen“ liegt, klicken Sie auf den Schritt „Modell** feinabstimmen“ und ziehen Sie den Cursor von diesem Schritt zum Schritt „**Modell feinabstimmen**“, um eine Kante zu erstellen.

1. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den Schritt „Modell **feinabstimmen“ folgt, klicken Sie auf den Schritt „Modell** feinabstimmen“ und ziehen Sie den Cursor vom Schritt „**Modell feinabstimmen**“ zu dem Schritt, um eine Kante zu erstellen.

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

Verwenden Sie die [AutoML](https://sagemaker.readthedocs.io/en/stable/api/training/automl.html)-API, um einen AutoML-Auftrag zum automatischen Trainieren eines Modells zu erstellen. Weitere Informationen zu AutoML-Jobs finden Sie unter [Automatisieren der Modellentwicklung mit Amazon SageMaker Autopilot](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html). 

**Anmerkung**  
Derzeit unterstützt der AutoML-Schritt nur den [Ensembling-Trainingsmodus](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html).

Das folgende Beispiel zeigt, wie eine Definition mit `AutoMLStep` erstellt werden kann.

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

**Holen Sie sich die beste Modellversion**

Der AutoML-Schritt trainiert automatisch mehrere Modellkandidaten. Rufen Sie das Modell mit der besten Zielmetrik aus dem AutoML-Auftrag ab, indem Sie die `get_best_auto_ml_model`-Methode wie folgt verwenden. Sie müssen auch ein IAM verwenden, `role` um auf Modellartefakte zuzugreifen.

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

Weitere Informationen finden Sie im [AutoML-Schritt](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.automl_step.AutoMLStep) im SageMaker Python-SDK.

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

Verwenden Sie a`ModelStep`, um ein SageMaker KI-Modell zu erstellen oder zu registrieren. Weitere Informationen zu den `ModelStep` Anforderungen finden Sie im Abschnitt [sagemaker.workflow.model\$1step. ModelStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.model_step.ModelStep)Dokumentation.

### Erstellen eines Modells
<a name="step-type-model-create"></a>

Sie können a verwenden`ModelStep`, um ein SageMaker KI-Modell zu erstellen. A `ModelStep` benötigt Modellartefakte und Informationen über den SageMaker AI-Instanztyp, den Sie zur Erstellung des Modells verwenden müssen. Weitere Informationen zu SageMaker KI-Modellen finden Sie unter [Train a Model with Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html).

Das folgende Beispiel zeigt, wie man eine `ModelStep`-Definition erstellt.

```
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"),
)
```

### Registrieren eines Modells
<a name="step-type-model-register"></a>

Sie können a verwenden`ModelStep`, um ein `sagemaker.model.Model` oder a `sagemaker.pipeline.PipelineModel` bei der Amazon SageMaker Model Registry zu registrieren. Ein `PipelineModel` stellt eine Inferenzpipeline dar, ein Modell, das aus einer linearen Abfolge von Containern besteht, die Inferenzanforderungen verarbeiten. Weitere Informationen über die Registrierung eines Modells finden Sie unter [Bereitstellung von Modellregistrierung mit Model Registry](model-registry.md).

Das folgende Beispiel zeigt, wie Sie eine `ModelStep` erstellen, die eine `PipelineModel` registriert.

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

## Schritt „Modell erstellen“
<a name="step-type-create-model"></a>

Sie verwenden den Schritt Modell erstellen, um ein SageMaker KI-Modell zu erstellen. Weitere Informationen zu SageMaker KI-Modellen finden Sie unter[Trainiere ein Modell mit Amazon SageMaker](how-it-works-training.md).

Ein Schritt zum Erstellen eines Modells erfordert Modellartefakte und Informationen über den SageMaker AI-Instanztyp, den Sie zur Erstellung des Modells verwenden müssen. Die folgenden Beispiele zeigen, wie Sie eine Schrittdefinition für das Erstellen eines Modells erstellen. Weitere Informationen zu den Anforderungen für den Schritt „Modell erstellen“ finden Sie unter [sagemaker.workflow.steps. CreateModelStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.CreateModelStep)Dokumentation.

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

Gehen Sie wie folgt vor, um zu Ihrer Pipeline einen Schritt zum Erstellen eines Modells hinzuzufügen:

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. **Wählen Sie Leer.**

1. Wählen Sie in der linken Seitenleiste „**Modell erstellen**“ und ziehen Sie es auf die Leinwand.

1. Wählen Sie auf der Leinwand den Schritt **Modell erstellen** aus, den Sie hinzugefügt haben.

1. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und **Details** aus. Informationen zu den Feldern in diesen Tabs finden Sie unter [sagemaker.workflow.steps. CreateModelStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.CreateModelStep).

1. **Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem Schritt Modell erstellen liegt, den Sie hinzugefügt haben, klicken Sie auf den Schritt **Modell erstellen** und ziehen Sie den Cursor von diesem Schritt zum Schritt Modell erstellen, um eine Kante zu erstellen.**

1. Wenn die Leinwand einen Schritt enthält, der unmittelbar auf den Schritt **Modell erstellen folgt, klicken Sie auf den Schritt Modell erstellen** und ziehen Sie den Cursor vom Schritt **Modell erstellen** zu dem Schritt, um eine Kante zu erstellen.

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

**Wichtig**  
Wir empfehlen [Modellschritt](#step-type-model) die Verwendung zum Erstellen von Modellen ab Version 2.90.0 des SageMaker AI Python SDK. `CreateModelStep`funktioniert weiterhin in früheren Versionen des SageMaker Python-SDK, wird aber nicht mehr aktiv unterstützt.

```
from sagemaker.workflow.steps import CreateModelStep

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

------

## Schritt „Modell registrieren“
<a name="step-type-register-model"></a>

Der Schritt Modell registrieren registriert ein Modell in der SageMaker Model Registry.

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

Gehen Sie wie folgt vor, um ein Modell aus einer Pipeline mit dem Pipeline Designer zu registrieren:

1. Öffnen Sie die Amazon SageMaker Studio-Konsole, indem Sie den Anweisungen unter folgen[Starten Sie Amazon SageMaker Studio](studio-updated-launch.md).

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. **Wählen Sie Leer.**

1. Wählen Sie in der linken Seitenleiste **Modell registrieren** und ziehen Sie es auf die Arbeitsfläche.

1. Wählen Sie auf der Arbeitsfläche den Schritt **Modell registrieren** aus, den Sie hinzugefügt haben.

1. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und **Details** aus. Informationen zu den Feldern in diesen Tabs finden Sie unter [sagemaker.workflow.step\$1collections. RegisterModel](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.step_collections.RegisterModel).

1. **Wenn die Arbeitsfläche einen Schritt enthält, der dem Schritt Modell registrieren, den Sie hinzugefügt haben, unmittelbar vorausgeht, klicken Sie auf den Schritt **Modell registrieren** und ziehen Sie den Cursor von diesem Schritt zum Schritt Modell registrieren, um eine Kante zu erstellen.**

1. Wenn die Zeichenfläche einen Schritt enthält, der unmittelbar auf den Schritt **Modell registrieren folgt, klicken Sie auf den Schritt Modell registrieren** und ziehen Sie den Cursor vom Schritt **Modell registrieren** zu dem Schritt, um eine Kante zu erstellen.

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

**Wichtig**  
Wir empfehlen [Modellschritt](#step-type-model) die Verwendung zur Registrierung von Modellen ab Version 2.90.0 des SageMaker AI Python SDK. `RegisterModel`funktioniert weiterhin in früheren Versionen des SageMaker Python-SDK, wird aber nicht mehr aktiv unterstützt.

[Sie verwenden einen `RegisterModel` Schritt, um ein [SageMaker.Model.Model oder eine Sagemaker.Pipeline](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html) zu registrieren. PipelineModel](https://sagemaker.readthedocs.io/en/stable/api/inference/pipeline.html#pipelinemodel)mit der Amazon SageMaker Model Registry. Ein `PipelineModel` stellt eine Inferenzpipeline dar, ein Modell, das aus einer linearen Abfolge von Containern besteht, die Inferenzanforderungen verarbeiten.

Weitere Informationen über die Registrierung eines Modells finden Sie unter [Bereitstellung von Modellregistrierung mit Model Registry](model-registry.md). Weitere Informationen zu den `RegisterModel` Schrittanforderungen finden Sie unter [sagemaker.workflow.step\$1collections. RegisterModel](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.step_collections.RegisterModel)Dokumentation.

Das folgende Beispiel zeigt, wie Sie einen Schritt `RegisterModel` erstellen, der eine `PipelineModel` registriert.

```
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',
)
```

Wenn `model` nicht angegeben, benötigt der Registermodellschritt einen Schätzer, wie im folgenden Beispiel gezeigt.

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

------

## Schritte zum Bereitstellen von Modellen (Endpunkte)
<a name="step-type-deploy-model-endpoint"></a>

Gehen Sie im Pipeline Designer mithilfe des Schritts Modell bereitstellen (Endpunkt) vor, um Ihr Modell auf einem Endpunkt bereitzustellen. Sie können einen neuen Endpunkt erstellen oder einen vorhandenen Endpunkt verwenden. Inferenz in Echtzeit ist ideal für Inferenz-Workloads, bei denen interaktive Echtzeitanforderungen mit geringer Latenz erfüllt werden müssen. Sie können Ihr Modell für SageMaker KI-Hosting-Dienste bereitstellen und erhalten einen Echtzeit-Endpunkt, der für Inferenzen verwendet werden kann. Diese Endgeräte werden vollständig verwaltet und unterstützen Auto Scaling. Weitere Informationen über Echtzeit-Inferenz in SageMaker KI finden Sie unter. [Echtzeit-Inferenz](realtime-endpoints.md)

Bevor Sie Ihrer Pipeline einen Schritt zum Bereitstellen eines Modells hinzufügen, vergewissern Sie sich, dass Ihre IAM-Rolle über die folgenden Berechtigungen verfügt:
+ `sagemaker:CreateModel`
+ `sagemaker:CreateEndpointConfig`
+ `sagemaker:CreateEndpoint`
+ `sagemaker:UpdateEndpoint`
+ `sagemaker:DescribeModel`
+ `sagemaker:DescribeEndpointConfig`
+ `sagemaker:DescribeEndpoint`

Weitere Informationen zu allen erforderlichen Berechtigungen für SageMaker KI und deren Einrichtung finden Sie unter[Amazon SageMaker AI API-Berechtigungen: Referenz zu Aktionen, Berechtigungen und Ressourcen](api-permissions-reference.md).

Gehen Sie wie folgt vor, um Ihrer Pipeline im drag-and-drop Editor einen Schritt zur Modellbereitstellung hinzuzufügen:

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. **Wählen Sie Leer.**

1. Wählen Sie in der linken Seitenleiste **Modell bereitstellen (Endpunkt)** aus und ziehen Sie es auf die Leinwand.

1. Wählen Sie auf der Arbeitsfläche den Schritt **Modell bereitstellen (Endpunkt)** aus, den Sie hinzugefügt haben.

1. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und **Details** aus.

1. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem von Ihnen hinzugefügten Schritt **Modell bereitstellen (Endpunkt)** liegt, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Schritt **Modell bereitstellen (Endpunkt)**, um eine Kante zu erstellen.

1. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den Schritt **Modell bereitstellen (Endpunkt)** folgt, klicken Sie auf den Schritt Modell bereitstellen (Endpunkt) und ziehen Sie den Cursor vom Schritt **Modell bereitstellen (Endpunkt)** auf den Schritt zum Erstellen einer Kante.

## Schritt Transformieren
<a name="step-type-transform"></a>

Sie verwenden einen Transformationsschritt für die Batch-Transformation, um die Inferenz für einen gesamten Datensatz durchzuführen. Weitere Informationen zur Batch-Transformation finden Sie unter [Stapeltransformationen mit Inferenz-Pipelines](inference-pipeline-batch.md).

Ein Transformationsschritt erfordert einen Transformator und die Daten, für die die Batch-Transformation ausgeführt werden soll. Das folgende Beispiel zeigt, wie Sie eine Transform-Schrittdefinition erstellen. Weitere Informationen zu den Anforderungen für Transformationsschritte finden Sie unter [sagemaker.workflow.steps. TransformStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TransformStep)Dokumentation.

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

Gehen Sie wie folgt vor, um Ihrer Pipeline mithilfe des drag-and-drop visuellen Editors einen Batch-Transformationsschritt hinzuzufügen:

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. **Wählen Sie Leer.**

1. Wählen Sie in der linken Seitenleiste **Modell bereitstellen (Batch-Transformation)** und ziehen Sie es auf die Leinwand.

1. Wählen Sie auf der Arbeitsfläche den Schritt **Modell bereitstellen (Batch-Transformation)** aus, den Sie hinzugefügt haben.

1. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und **Details** aus. Informationen zu den Feldern in diesen Tabs finden Sie unter [sagemaker.workflow.steps. TransformStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TransformStep).

1. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem von Ihnen hinzugefügten Schritt **Modell bereitstellen (Batch-Transformation)** liegt, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Schritt Modell **bereitstellen** (Batch-Transformation), um eine Kante zu erstellen.

1. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den Schritt **Modell bereitstellen (Batch-Transformation)** folgt, klicken Sie auf den Schritt Modell bereitstellen (Batch-Transformation) und ziehen Sie den Cursor vom Schritt **Modell bereitstellen (Batch-Transformation)** zu dem Schritt, um eine Kante zu erstellen.

------
#### [ 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"),
)
```

------

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

Sie verwenden einen Bedingungsschritt, um den Zustand der Schritteigenschaften zu bewerten, um zu beurteilen, welche Maßnahme als Nächstes in der Pipeline ergriffen werden sollte.

Ein Bedingungsschritt erfordert:
+ Eine Liste der Bedingungen.
+ Eine Liste von Schritten, die ausgeführt werden sollen, wenn die Bedingung `true` ist.
+ Eine Liste von Schritten, die ausgeführt werden sollen, wenn die Bedingung `false` ist.

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

Gehen Sie wie folgt vor, um einer Pipeline mithilfe des Pipeline-Designers einen Bedingungsschritt hinzuzufügen:

1. Öffnen Sie die Amazon SageMaker Studio-Konsole, indem Sie den Anweisungen unter folgen[Starten Sie Amazon SageMaker Studio](studio-updated-launch.md).

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. **Wählen Sie Leer.**

1. Wählen Sie in der linken Seitenleiste die Option **Bedingung** aus und ziehen Sie sie auf die Leinwand.

1. Wählen Sie auf der Leinwand den Schritt „**Bedingung**“ aus, den Sie hinzugefügt haben.

1. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und **Details** aus. Informationen zu den Feldern in diesen Tabs finden Sie unter [sagemaker.workflow.condition\$1step. ConditionStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.condition_step.ConditionStep).

1. **Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem Schritt „Bedingung“ liegt, den Sie hinzugefügt haben, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Schritt „**Bedingung**“, um eine Kante zu erstellen.**

1. Wenn die Zeichenfläche einen Schritt enthält, der unmittelbar auf den Schritt „**Bedingung**“ folgt, klicken Sie auf den Schritt „Bedingung“ und ziehen Sie den Cursor vom Schritt „**Bedingung**“ zu dem Schritt, um eine Kante zu erstellen.

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

 Das folgende Beispiel zeigt, wie Sie eine `ConditionStep`-Definition erstellen. 

**Einschränkungen**
+ Pipelines unterstützt die Verwendung von verschachtelten Bedingungsschritten nicht. Sie können einen Bedingungsschritt nicht als Eingabe für einen anderen Bedingungsschritt übergeben.
+ Ein Bedingungsschritt kann nicht identische Schritte in beiden Zweigen verwenden. Wenn Sie in beiden Zweigen dieselbe Schrittfunktionalität benötigen, duplizieren Sie den Schritt und geben Sie ihm einen anderen Namen.

```
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=[]
)
```

Weitere Informationen zu den `ConditionStep` Anforderungen finden Sie unter [sagemaker.workflow.condition\$1step. ConditionStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#conditionstep) API-Referenz. Weitere Informationen zu unterstützten Bedingungen finden Sie unter *[Amazon SageMaker Pipelines — Conditions](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#conditions)* in der SageMaker AI Python SDK-Dokumentation. 

------

## Rückrufschritt
<a name="step-type-callback"></a>

Verwenden Sie einen `Callback` Schritt, um Ihrem Workflow zusätzliche Prozesse und AWS Services hinzuzufügen, die nicht direkt von Amazon SageMaker Pipelines bereitgestellt werden. Wenn ein `Callback` Schritt ausgeführt wird, erfolgt das folgende Verfahren:
+ Pipelines sendet eine Nachricht an eine vom Kunden angegebene Warteschlange von Amazon Simple Queue Service (Amazon SQS). Die Nachricht enthält ein von Pipelines generiertes Token und eine vom Kunden bereitgestellte Liste von Eingabeparametern. Nach dem Absenden der Nachricht wartet Pipelines auf eine Antwort des Kunden.
+ Der Kunde ruft die Nachricht aus der Amazon-SQS-Warteschlange ab und startet seinen benutzerdefinierten Prozess.
+ Wenn der Vorgang abgeschlossen ist, ruft der Kunde eine der folgenden Adressen an APIs und übermittelt das von Pipelines generierte Token:
  +  [SendPipelineExecutionStepSuccess](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SendPipelineExecutionStepSuccess.html), zusammen mit einer Liste von Ausgabeparametern
  +  [SendPipelineExecutionStepFailure](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SendPipelineExecutionStepFailure.html), zusammen mit einem Fehlergrund
+ Der API-Aufruf veranlasst Pipelines, entweder den Pipeline-Prozess fortzusetzen oder den Prozess fehlschlagen zu lassen.

Weitere Informationen zu den `Callback` Schrittanforderungen finden Sie unter [sagemaker.workflow.callback\$1step. CallbackStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.callback_step.CallbackStep)Dokumentation. Eine vollständige Lösung finden Sie unter [Erweitern von SageMaker Pipelines um benutzerdefinierte Schritte mithilfe von Callback-Schritten](https://aws.amazon.com/blogs/machine-learning/extend-amazon-sagemaker-pipelines-to-include-custom-steps-using-callback-steps/).

**Wichtig**  
`Callback`Schritte wurden in Amazon SageMaker Python SDK v2.45.0 und Amazon SageMaker Studio Classic v3.6.2 eingeführt. Sie müssen Studio Classic aktualisieren, bevor Sie einen `Callback`-Schritt verwenden, sonst wird die Pipeline-DAG nicht angezeigt. Informationen zum Aktualisieren von Studio Classic finden Sie unter [Amazon SageMaker Studio Classic herunterfahren und aktualisieren](studio-tasks-update-studio.md).

Das folgende Beispiel zeigt eine Implementierung des vorherigen Verfahrens.

```
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={...}
            )
'
```

**Anmerkung**  
Die Ausgabeparameter für `CallbackStep` sollten nicht verschachtelt sein. Wenn Sie beispielsweise ein verschachteltes Wörterbuch als Ausgabeparameter verwenden, wird das Wörterbuch als eine einzelne Zeichenfolge behandelt (z. B. `{"output1": "{\"nested_output1\":\"my-output\"}"}`). Wenn Sie einen verschachtelten Wert angeben und versuchen, auf einen bestimmten Ausgabeparameter zu verweisen, gibt SageMaker AI einen Client-Fehler aus, der nicht erneut versucht werden kann.

**Verhalten wird gestoppt**

Ein Pipelineprozess wird nicht gestoppt, während ein `Callback` Schritt ausgeführt wird.

Wenn Sie einen Pipeline-Prozess mit einem laufenden `Callback` Schritt aufrufen [StopPipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopPipelineExecution.html), sendet Pipelines eine Amazon SQS SQS-Nachricht an die SQS-Warteschlange. Der Hauptteil der SQS-Nachricht enthält ein **Statusfeld**, das auf `Stopping` gesetzt ist. Im Folgenden wird ein Beispiel für einen SQS-Nachrichtenkörper gezeigt.

```
{
  "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"
}
```

Es wird empfohlen, Ihrem Amazon-SQS-Nachrichtenempfänger eine Logik hinzuzufügen, um bei Empfang der Nachricht alle erforderlichen Maßnahmen (z. B. Ressourcenbereinigung) zu ergreifen. Fügen Sie dann einen Anruf zu `SendPipelineExecutionStepSuccess` oder hinzu`SendPipelineExecutionStepFailure`.

Erst wenn Pipelines einen dieser Aufrufe erhält, stoppt es den Pipeline-Prozess.

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

Sie verwenden einen Lambda-Schritt, um eine AWS Lambda Funktion auszuführen. Sie können eine bestehende Lambda-Funktion ausführen, oder SageMaker KI kann eine neue Lambda-Funktion erstellen und ausführen. Wenn Sie sich dafür entscheiden, eine vorhandene Lambda-Funktion zu verwenden, muss sie sich in derselben AWS-Region wie die SageMaker AI-Pipeline befinden. Ein Notizbuch, das zeigt, wie ein Lambda-Schritt in einer SageMaker KI-Pipeline verwendet wird, finden Sie unter [sagemaker-pipelines-lambda-step.ipynb](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-pipelines/tabular/lambda-step/sagemaker-pipelines-lambda-step.ipynb).

**Wichtig**  
Lambda-Schritte wurden in Amazon SageMaker Python SDK v2.51.0 und Amazon SageMaker Studio Classic v3.9.1 eingeführt. Sie müssen Studio Classic aktualisieren, bevor Sie einen Lambda-Schritt verwenden, da sonst die Pipeline-DAG nicht angezeigt wird. Informationen zum Aktualisieren von Studio Classic finden Sie unter [Amazon SageMaker Studio Classic herunterfahren und aktualisieren](studio-tasks-update-studio.md).

SageMaker AI stellt die Klasse [SageMaker.Lambda\$1Helper.Lambda bereit, um Lambda-Funktionen zu erstellen, zu aktualisieren, aufzurufen](https://sagemaker.readthedocs.io/en/stable/api/utility/lambda_helper.html) und zu löschen. `Lambda`hat die folgende Signatur.

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

Der [sagemaker.workflow.lambda\$1step. LambdaStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.lambda_step.LambdaStep)Die Klasse hat ein Argument vom Typ. `lambda_func` `Lambda` Um eine bestehende Lambda-Funktion aufzurufen, muss nur der Amazon Resource Name (ARN) der Funktion an `function_arn` übergeben werden. Wenn Sie keinen Wert für `function_arn` angeben, müssen Sie `handler` und eine der folgenden Angaben machen:
+ `zipped_code_dir`– Der Pfad der komprimierten Lambda-Funktion

  `s3_bucket`– Amazon-S3-Bucket, wo `zipped_code_dir` hochgeladen werden soll
+ `script`– Der Pfad der Lambda-Funktionsskriptdatei

Das folgende Beispiel zeigt, wie eine `Lambda` Schrittdefinition erstellt wird, die eine vorhandene Lambda-Funktion aufruft.

```
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"
    ]
)
```

Das folgende Beispiel zeigt, wie Sie eine `Lambda` Schrittdefinition erstellen, die mithilfe eines Lambda-Funktionsskripts eine Lambda-Funktion erstellt und aufruft.

```
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"
    ]
)
```

**Eingaben und Ausgaben**

Wenn Ihre `Lambda` Funktion Eingaben oder Ausgaben hat, müssen diese ebenfalls in Ihrem Schritt definiert werden. `Lambda`

**Anmerkung**  
Eingabe- und Ausgabeparameter sollten nicht verschachtelt sein. Wenn Sie beispielsweise ein verschachteltes Wörterbuch als Ausgabeparameter verwenden, wird das Wörterbuch als eine einzelne Zeichenfolge behandelt (z. B. `{"output1": "{\"nested_output1\":\"my-output\"}"}`). Wenn Sie einen verschachtelten Wert angeben und später versuchen, darauf zu verweisen, wird ein Client-Fehler ausgegeben, der nicht erneut versucht werden kann.

Bei der Definition des `Lambda` Schritts `inputs` muss es sich um ein Wörterbuch mit Schlüssel-Wert-Paaren handeln. Jeder Wert des `inputs` Wörterbuchs muss ein primitiver Typ sein (Zeichenfolge, Ganzzahl oder Gleitkommazahl). Verschachtelte Objekte werden nicht unterstützt. Bleibt der Wert für `inputs` undefiniert, wird der Wert für `None` verwendet.

Der `outputs` Wert muss eine Liste von Schlüsseln sein. Diese Schlüssel beziehen sich auf ein Wörterbuch, das in der Ausgabe der `Lambda` Funktion definiert ist. Wie bei `inputs` müssen diese Schlüssel primitive Typen sein, und verschachtelte Objekte werden nicht unterstützt.

**Timeout und Verhalten beim Stoppen**

Die `Lambda` Klasse hat ein `timeout` Argument, das die maximale Zeit angibt, während der die Lambda-Funktion ausgeführt werden kann. Der Standardwert ist 120 Sekunden und der Höchstwert 10 Minuten. Wenn die Lambda-Funktion ausgeführt wird, wenn das Timeout erreicht ist, schlägt der Lambda-Schritt fehl. Die Lambda-Funktion wird jedoch weiterhin ausgeführt.

Ein Pipelineprozess kann nicht gestoppt werden, während ein Lambda-Schritt ausgeführt wird, da die durch den Lambda-Schritt aufgerufene Lambda-Funktion nicht gestoppt werden kann. Wenn Sie den Prozess unterbrechen, während die Lambda-Funktion ausgeführt wird, wartet die Pipeline, bis die Funktion beendet ist oder bis das Zeitlimit erreicht ist. Das hängt davon ab, was zuerst eintritt. Der Vorgang wird dann gestoppt. Wenn die Lambda-Funktion beendet wird, lautet der Status des Pipeline-Prozesses `Stopped`. Wenn die Zeitüberschreitung erreicht ist, lautet der Status des Pipeline-Prozesses `Failed`.

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

Sie können diesen `ClarifyCheck` Schritt verwenden, um die Ausgangsabweichung anhand früherer Basislinien zu überprüfen, um die Verzerrungsanalyse und die Erklärbarkeit des Modells zu verbessern. Mit der `model.register()` Methode können Sie dann Ihre [Baselines erstellen und registrieren](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-calculations) und die Ausgabe dieser Methode mit [Modellschritt](#step-type-model) an `[step\$1args](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#model-step)` übergeben. Diese Basislinien für die Driftprüfung können von Amazon SageMaker Model Monitor für Ihre Modellendpunkte verwendet werden. Daher müssen Sie einen [Basisvorschlag](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-create-baseline.html) nicht separat erstellen. 

Bei diesem `ClarifyCheck` Schritt können auch Basiswerte für die Driftprüfung aus der Modellregistrierung abgerufen werden. In diesem `ClarifyCheck` Schritt wird der vorgefertigte SageMaker Clarify-Container verwendet. Dieser Container bietet eine Reihe von Features zur Modellüberwachung, darunter Vorschläge für Einschränkungen und Beschränkungsvalidierung anhand einer bestimmten Baseline. Weitere Informationen finden Sie unter [Vorgefertigte SageMaker Clarify-Container](clarify-processing-job-configure-container.md).

### Konfiguration des Schritts ClarifyCheck
<a name="configuring-step-type-clarify"></a>

Sie können den `ClarifyCheck` Schritt so konfigurieren, dass bei jeder Verwendung in einer Pipeline nur einer der folgenden Prüftypen durchgeführt wird.
+ Prüfung auf Datenverzerrung
+ Überprüfung der Modellverzerrung
+ Überprüfung der Erklärbarkeit des Modells

Dazu setzen Sie den `clarify_check_config`-Parameter mit einem der folgenden Prüftypwerte:
+ `DataBiasCheckConfig`
+ `ModelBiasCheckConfig`
+ `ModelExplainabilityCheckConfig`

In diesem `ClarifyCheck` Schritt wird ein Verarbeitungsjob gestartet, der den SageMaker vorgefertigten AI Clarif-Container ausführt und spezielle [Konfigurationen für die Prüfung und den Verarbeitungsjob](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-configure-processing-jobs.html) erfordert. `ClarifyCheckConfig`und `CheckJobConfig` sind Hilfsfunktionen für diese Konfigurationen. Diese Hilfsfunktionen sind darauf abgestimmt, wie der Verarbeitungsjob SageMaker Clarify Berechnungen durchführt, um Modellverzerrungen, Datenverzerrungen oder Modellerklärbarkeit zu überprüfen. Weitere Informationen finden Sie unter [Führen Sie SageMaker Clarify Processing Jobs aus, um Verzerrungen zu analysieren und zu erklären](clarify-processing-job-run.md). 

### Steuerung des Schrittverhaltens bei der Drift-Prüfung
<a name="controlling-step-type-clarify"></a>

Für diesen `ClarifyCheck` Schritt sind die folgenden zwei booleschen Flags erforderlich, um sein Verhalten zu steuern:
+ `skip_check`: Dieser Parameter gibt an, ob die Driftprüfung gegenüber der vorherigen Basislinie übersprungen wurde oder nicht. Wenn `False` auf gesetzt ist, muss die vorherige Basislinie des konfigurierten Prüftyps verfügbar sein.
+ `register_new_baseline`: Dieser Parameter gibt an, ob über die Schritteigenschaft `BaselineUsedForDriftCheckConstraints` auf eine neu berechnete Basislinie zugegriffen werden kann. Wenn `False` auf gesetzt ist, muss auch die vorherige Basislinie des konfigurierten Prüftyps verfügbar sein. Darauf kann über die `BaselineUsedForDriftCheckConstraints` Eigenschaft zugegriffen werden. 

Weitere Informationen finden Sie unter [Basisberechnung, Drifterkennung und Lebenszyklus mit ClarifyCheck und QualityCheck Schritte in Amazon SageMaker Pipelines](pipelines-quality-clarify-baseline-lifecycle.md).

### Arbeiten mit Baselines
<a name="step-type-clarify-working-with-baselines"></a>

Optional können Sie angeben`model_package_group_name`, um die vorhandene Baseline zu finden. Anschließend ruft der `ClarifyCheck`-Schritt `DriftCheckBaselines` auf dem zuletzt genehmigten Modellpaket aus der Modellpaketgruppe ab. 

Oder Sie können über den `supplied_baseline_constraints` Parameter eine vorherige Basislinie angeben. Wenn Sie sowohl `model_package_group_name` als auch `supplied_baseline_constraints` angeben, verwendet der Schritt `ClarifyCheck` die durch den `supplied_baseline_constraints` Parameter angegebene Basislinie.

[Weitere Informationen zur Verwendung der `ClarifyCheck` Schrittanforderungen finden Sie unter sagemaker.workflow.steps. ClarifyCheckStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.clarify_check_step.ClarifyCheckStep)im *Amazon SageMaker AI SageMaker AI SDK für Python*. Ein Amazon SageMaker Studio Classic-Notizbuch, das zeigt, wie `ClarifyCheck` Step in Pipelines verwendet wird, finden Sie unter [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 Erstellen eines `ClarifyCheck`-Schrittes zur Prüfung der Datenverzerrung**  

```
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 Schritt
<a name="step-type-quality-check"></a>

Mit dem Schritt `QualityCheck` können Sie [Baseline-Vorschläge](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-create-baseline.html) und Drift-Checks gegen eine frühere Baseline für die Datenqualität oder die Modellqualität in einer Pipeline durchführen. Sie können dann Ihre [Baselines mit der `model.register()`-Methode erzeugen und registrieren](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-calculations) und die Ausgabe dieser Methode mit [Modellschritt](#step-type-model) an `[step\$1args](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#model-step)` übergeben.

Model Monitor kann diese Basislinien für die Drift-Prüfung Ihrer Modellendpunkte verwenden, sodass Sie einen Basisvorschlag nicht separat erstellen müssen. Bei diesem `QualityCheck` Schritt können auch Basiswerte für die Driftprüfung aus der Modellregistrierung abgerufen werden. Dieser `QualityCheck` Schritt nutzt den vorgefertigten Container von Amazon SageMaker AI Model Monitor. Dieser Container verfügt über eine Reihe von Modellüberwachungsfunktionen, darunter Vorschläge für Einschränkungen, Erstellung von Statistiken und Validierung von Einschränkungen anhand einer Baseline. Weitere Informationen finden Sie unter [Vorgefertigter Amazon SageMaker Model Monitor-Container](model-monitor-pre-built-container.md).

### Konfiguration des Schritts QualityCheck
<a name="configuring-step-type-quality"></a>

Sie können den `QualityCheck`-Schritt so konfigurieren, dass bei jeder Verwendung in einer Pipeline nur einer der folgenden Prüftypen durchgeführt wird.
+ Überprüfung der Datenqualität
+ Modellqualitätsprüfung

Dazu setzen Sie den `quality_check_config` Parameter mit einem der folgenden Prüftypwerte:
+ `DataQualityCheckConfig`
+ `ModelQualityCheckConfig`

In diesem `QualityCheck` Schritt wird ein Verarbeitungsauftrag gestartet, der den vorgefertigten Container von Model Monitor ausführt und spezielle Konfigurationen für die Prüfung und den Verarbeitungsauftrag erfordert. Die `QualityCheckConfig` und `CheckJobConfig` sind Hilfsfunktionen für diese Konfigurationen. Diese Hilfsfunktionen sind darauf abgestimmt, wie Model Monitor eine Baseline für die Überwachung der Modell- oder Datenqualität erstellt. Weitere Informationen zu den Basisvorschlägen von Model Monitor finden Sie unter [Erstellen einer Baseline](model-monitor-create-baseline.md) und[Erstellen einer Baseline für die Modellqualität](model-monitor-model-quality-baseline.md).

### Steuern des Schrittverhaltens bei der Drift-Prüfung
<a name="controlling-step-type-quality"></a>

Für diesen `QualityCheck` Schritt sind die folgenden zwei booleschen Flags erforderlich, um sein Verhalten zu steuern:
+ `skip_check`: Dieser Parameter gibt an, ob die Driftprüfung gegenüber der vorherigen Basislinie übersprungen wurde oder nicht. Wenn `False` auf gesetzt ist, muss die vorherige Basislinie des konfigurierten Prüftyps verfügbar sein.
+ `register_new_baseline`: Dieser Parameter gibt an, ob auf eine neu berechnete Basislinie über die Schritteigenschaften `BaselineUsedForDriftCheckConstraints` und `BaselineUsedForDriftCheckStatistics`. Ist sie auf `False` eingestellt, muss auch die vorherige Baseline der konfigurierten Prüfart verfügbar sein. Auf diese kann über die Eigenschaften `BaselineUsedForDriftCheckConstraints` und `BaselineUsedForDriftCheckStatistics` zugegriffen werden.

Weitere Informationen finden Sie unter [Basisberechnung, Drifterkennung und Lebenszyklus mit ClarifyCheck und QualityCheck Schritte in Amazon SageMaker Pipelines](pipelines-quality-clarify-baseline-lifecycle.md).

### Arbeiten mit Baselines
<a name="step-type-quality-working-with-baselines"></a>

Sie können eine vorherige Baseline direkt über die `supplied_baseline_constraints` Parameter `supplied_baseline_statistics` und angeben. Sie können auch `model_package_group_name` und den `QualityCheck`-Schritt angeben, der das zuletzt genehmigte Modellpaket in der Modellpaketgruppe abruft. 

Wenn Sie Folgendes angeben, verwendet der `QualityCheck`-Schritt die durch `supplied_baseline_constraints` und `supplied_baseline_statistics` auf dem Prüftyp des Schritts `QualityCheck` angegebene Baseline.
+ `model_package_group_name`
+ `supplied_baseline_constraints`
+ `supplied_baseline_statistics`

Weitere Informationen zur Verwendung der `QualityCheck` Schrittanforderungen finden Sie unter [sagemaker.workflow.steps. QualityCheckStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.quality_check_step.QualityCheckStep)im *Amazon SageMaker AI SageMaker AI SDK für Python*. Ein Amazon SageMaker Studio Classic-Notizbuch, das zeigt, wie `QualityCheck` Step in Pipelines verwendet wird, finden Sie unter [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 Erstellen eines `QualityCheck`-Schrittes zur Prüfung der Datenqualität**  

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

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

Verwenden Sie den [EMR-Schritt](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-overview.html) Amazon SageMaker Pipelines, um:
+ Verarbeiten Sie [Amazon EMR-Schritte](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-work-with-steps.html) auf einem laufenden Amazon EMR-Cluster.
+ Lassen Sie die Pipeline einen Amazon EMR-Cluster für Sie erstellen und verwalten.

Weitere Informationen über Amazon EMR finden Sie unter [Erste Schritte mit Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html).

Der EMR-Schritt erfordert, dass `EMRStepConfig` den Speicherort der JAR-Datei, die vom Amazon-EMR-Cluster verwendet werden soll, und alle zu übergebenden Argumente enthält. Sie geben auch die Amazon EMR-Cluster-ID an, wenn Sie den Schritt auf einem laufenden EMR-Cluster ausführen möchten. Sie können auch die Cluster-Konfiguration übergeben, um den EMR-Schritt auf einem Cluster auszuführen, den er für Sie erstellt, verwaltet und beendet. Die folgenden Abschnitte enthalten Beispiele und Links zu Beispiel-Notebooks, die beide Methoden demonstrieren.

**Anmerkung**  
EMR-Schritte erfordern, dass die an Ihre Pipeline übergebene Rolle über zusätzliche Berechtigungen verfügt. Sie sollten die [AWS verwaltete Richtlinie: `AmazonSageMakerPipelinesIntegrations`](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-pipelines.html#security-iam-awsmanpol-AmazonSageMakerPipelinesIntegrations) an Ihre Pipeline-Rolle anfügen oder sicherstellen, dass die Rolle die in dieser Richtlinie enthaltenen Berechtigungen umfasst.
Wenn Sie einen EMR-Schritt auf einem laufenden Cluster verarbeiten, können Sie nur einen Cluster verwenden, der sich in einem der folgenden Zustände befindet:   
`STARTING`
`BOOTSTRAPPING`
`RUNNING`
`WAITING`
Wenn Sie EMR-Schritte in einem laufenden Cluster verarbeiten, können Sie maximal 256 EMR-Schritte in einem `PENDING` Status auf einem EMR-Cluster haben. EMR-Schritte, die über diesen Grenzwert hinaus eingereicht werden, führen zu einem Fehler bei der Pipeline-Ausführung. Sie können auch [Richtlinie für Pipeline-Schritte erneut versuchen](pipelines-retry-policy.md) verwenden.
Sie können entweder Cluster-ID oder Cluster-Konfiguration angeben, aber nicht beides.
Der EMR-Schritt stützt sich darauf EventBridge , dass Amazon Änderungen im EMR-Schritt oder Cluster-Status überwacht. Wenn Sie Ihren Amazon EMR-Auftrag auf einem laufenden Cluster verarbeiten, verwendet der EMR-Schritt die `SageMakerPipelineExecutionEMRStepStatusUpdateRule` Regel zur Überwachung des EMR-Schrittstatus. Wenn Sie Ihren Auftrag auf einem Cluster verarbeiten, den der EMR-Schritt für Sie erstellt, verwendet der Schritt die `SageMakerPipelineExecutionEMRClusterStatusRule`-Regel, um Änderungen im Clusterstatus zu überwachen. Wenn Sie eine dieser EventBridge Regeln in Ihrem AWS Konto sehen, löschen Sie sie nicht, da sonst Ihr EMR-Schritt möglicherweise nicht abgeschlossen wird.

**Fügen Sie Ihrer Pipeline einen Amazon EMR-Schritt hinzu**

Gehen Sie wie folgt vor, um Ihrer Pipeline einen EMR-Schritt hinzuzufügen:
+ Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.
+ Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.
+ Wählen Sie **Erstellen** aus.
+ **Wählen Sie Leer.**
+ Wählen Sie in der linken Seitenleiste die Option **Daten verarbeiten** und ziehen Sie sie auf die Arbeitsfläche.
+ Wählen Sie auf der Arbeitsfläche den Schritt „**Daten verarbeiten**“ aus, den Sie hinzugefügt haben.
+ Wählen Sie in der rechten Seitenleiste unter Modus die Option **EMR (verwaltet)** aus.
+ Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen und Details** aus. Informationen zu den Feldern in diesen Tabs finden Sie unter [sagemaker.workflow.fail\$1step. EMRstep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.emr_step.EMRStep).

**Starten Sie einen neuen Auftrag auf einem laufenden Amazon EMR-Cluster**

Wenn Sie einen neuen Auftrag auf einem laufenden Amazon-EMR-Cluster starten möchten, übergeben Sie die Cluster-ID als Zeichenfolge an das `cluster_id` Argument von `EMRStep`. Das folgende Beispiel veranschaulicht diese Vorgehensweise.

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

Ein Beispiel-Notebook, das Sie durch ein vollständiges Beispiel führt, finden Sie unter [Pipelines EMR-Schritt mit laufendem 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).

**Starten Sie einen neuen Auftrag in einem neuen Amazon EMR-Cluster**

Um einen neuen Auftrag auf einem neuen Cluster zu starten, der `EMRStep` für Sie erstellt wird, geben Sie Ihre Clusterkonfiguration als Wörterbuch an. Das Wörterbuch muss dieselbe Struktur wie eine [RunJobFlow](https://docs.aws.amazon.com/emr/latest/APIReference/API_RunJobFlow.html)Anfrage haben. Nehmen Sie jedoch nicht die folgenden Felder in Ihre Clusterkonfiguration auf:
+ [`Name`]
+ [`Steps`]
+ [`AutoTerminationPolicy`]
+ [`Instances`][`KeepJobFlowAliveWhenNoSteps`]
+ [`Instances`][`TerminationProtected`]

Alle anderen `RunJobFlow` Argumente können in Ihrer Clusterkonfiguration verwendet werden. Einzelheiten zur Anforderungssyntax finden Sie unter [RunJobFlow](https://docs.aws.amazon.com/emr/latest/APIReference/API_RunJobFlow.html).

Im folgenden Beispiel wird eine Cluster-Konfiguration an eine EMR-Schrittdefinition übergeben. Dies führt zu dem Schritt, einen neuen Auftrag auf einem neuen EMR-Cluster zu starten. Die EMR-Clusterkonfiguration in diesem Beispiel umfasst Spezifikationen für primäre und zentrale EMR-Clusterknoten. Weitere Informationen zu Amazon EMR-Knotentypen finden Sie unter [Grundlegendes zu Knotentypen: Primär-, Kern- und Aufgabenknoten](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
)
```

Ein Beispiel-Notebook, das Sie durch ein vollständiges Beispiel führt, finden Sie unter [Pipelines EMR-Schritt mit Cluster-Lebenszyklusmanagement](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-pipelines/tabular/emr-step/sagemaker-pipelines-emr-step-with-cluster-lifecycle-management.ipynb).

## Serverloser EMR-Schritt
<a name="step-type-serverless"></a>

Gehen Sie wie folgt vor, um Ihrer Pipeline einen serverlosen EMR-Schritt hinzuzufügen:
+ Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.
+ Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.
+ Wählen Sie **Erstellen** aus.
+ **Wählen Sie Leer.**
+ Wählen Sie in der linken Seitenleiste die Option **Daten verarbeiten** und ziehen Sie sie auf die Arbeitsfläche.
+ Wählen Sie auf der Arbeitsfläche den Schritt „**Daten verarbeiten**“ aus, den Sie hinzugefügt haben.
+ Wählen Sie in der rechten Seitenleiste unter Modus die Option **EMR (serverlos**) aus.
+ Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und Details aus.

## Schritt für Notebook-Aufträge
<a name="step-type-notebook-job"></a>

Verwenden Sie a`NotebookJobStep`, um Ihren SageMaker Notebook-Job nicht interaktiv als Pipeline-Schritt auszuführen. Wenn Sie Ihre Pipeline in der drag-and-drop Pipelines-Benutzeroberfläche erstellen, verwenden Sie die, [Codeschritt ausführen](#step-type-executecode) um Ihr Notizbuch auszuführen. Weitere Informationen zu SageMaker Notebook-Jobs finden Sie unter[SageMaker Notizbuch-Jobs](notebook-auto-run.md).

A `NotebookJobStep` erfordert mindestens ein Eingabe-Notebook, eine Image-URI und einen Kernelnamen. Weitere Informationen zu den Anforderungen an die Notebook-Job-Schritte und anderen Parametern, die Sie zur Anpassung Ihres Schritts festlegen können, finden Sie unter [sagemaker.workflow.steps. NotebookJobStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.notebook_job_step.NotebookJobStep).

Im folgenden Beispiel werden `NotebookJobStep` Minimalargumente verwendet, um a zu definieren.

```
from sagemaker.workflow.notebook_job_step import NotebookJobStep


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

Ihr `NotebookJobStep` Pipeline-Schritt wird wie ein SageMaker Notebook-Job behandelt. Verfolgen Sie daher den Ausführungsstatus im Dashboard für Notebook-Jobs auf der Benutzeroberfläche von Studio Classic, indem Sie dem `tags` Argument bestimmte Tags hinzufügen. Weitere Informationen zu den einzufügenden Tags finden Sie unter [Sehen Sie sich Ihre Notebook-Jobs im Studio-UI-Dashboard an](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash).

Wenn Sie Ihren Notebook-Job mit dem SageMaker Python-SDK planen, können Sie außerdem nur bestimmte Images angeben, um Ihren Notebook-Job auszuführen. Weitere Informationen finden Sie unter [Bildeinschränkungen für SageMaker AI Python SDK-Notebook-Jobs](notebook-auto-run-constraints.md#notebook-auto-run-constraints-image-sdk).

## Schritt „Fehlschlagen“
<a name="step-type-fail"></a>

Verwenden Sie einen Fail-Schritt, um die Ausführung von Amazon SageMaker Pipelines zu beenden, wenn eine gewünschte Bedingung oder ein gewünschter Status nicht erreicht wird. Im Schritt „Fehlschlagen“ können Sie auch eine benutzerdefinierte Fehlermeldung eingeben, die die Ursache für den Ausführungsfehler der Pipeline angibt.

**Anmerkung**  
Wenn ein Schritt „Fehlschlagen“ und andere Pipeline-Schritte gleichzeitig ausgeführt werden, wird die Pipeline erst beendet, wenn alle gleichzeitigen Schritte abgeschlossen sind.

### Einschränkungen bei der Verwendung von Fail Step
<a name="step-type-fail-limitations"></a>
+ Sie können ein Schritt „Fehlschlagen“ nicht in die `DependsOn`-Liste anderer Schritte aufnehmen. Weitere Informationen finden Sie unter [Benutzerdefinierte Abhängigkeit zwischen Schritten](build-and-manage-steps.md#build-and-manage-custom-dependency).
+ Andere Schritte können sich nicht auf den Schritt „Fehlschlagen“ beziehen. Dies ist *immer* der letzte Schritt bei der Ausführung einer Pipeline.
+ Sie können eine Pipeline-Ausführung, die mit einem Schritt „Fehlschlagen“ endet, nicht wiederholen.

Sie können die Fehlermeldung zum Schritt „Fehlschlagen“ in Form einer statischen Textzeichenfolge erstellen. Alternativ können Sie auch [Pipeline-Parameter](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-parameters.html), eine [Join](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html?highlight=Join#sagemaker.workflow.functions.Join)-Operation oder andere [Schritteigenschaften](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#build-and-manage-properties) verwenden, um eine aussagekräftigere Fehlermeldung zu erstellen, wenn Sie das SDK verwenden.

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

Gehen Sie wie folgt vor, um Ihrer Pipeline einen Fail-Schritt hinzuzufügen:

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. **Wählen Sie Leer.**

1. Wählen Sie in der linken Seitenleiste die Option **Fehlgeschlagen** aus und ziehen Sie den Vorgang auf die Leinwand.

1. Wählen Sie auf der Leinwand den hinzugefügten Schritt „**Fehlgeschlagen**“ aus.

1. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs **Einstellungen** und **Details** aus. Informationen zu den Feldern in diesen Tabs finden Sie unter [sagemaker.workflow.fail\$1step. FailStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.fail_step.FailStep).

1. **Wenn die Arbeitsfläche einen Schritt enthält, der dem hinzugefügten Schritt „**Fehler**“ unmittelbar vorausgeht, klicken Sie auf den Schritt und ziehen Sie den Cursor von dem Schritt zum Schritt „Fehler“, um eine Kante zu erstellen.**

1. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den von Ihnen hinzugefügten Schritt „**Fehler**“ folgt, klicken Sie auf den Schritt und ziehen Sie den Cursor vom **Fail-Schritt** zu dem Schritt, um eine Kante zu erstellen.

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

**Example**  
Der folgende Beispielcodeausschnitt verwendet eine `FailStep` mit Pipelineparametern `ErrorMessage` konfigurierte Option und eine `Join` Operation.  

```
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]
    ),
)
```

------

# Integration hinzufügen
<a name="build-and-manage-steps-integration"></a>

MLflow Durch die Integration können Sie Pipelines verwenden MLflow , um einen Tracking-Server oder eine serverlose Anwendung auszuwählen, ein Experiment auszuwählen und Metriken zu protokollieren.

## Die wichtigsten Konzepte
<a name="add-integration-key-concepts"></a>

**Erstellung von Standard-Apps** — Eine MLflow Standardanwendung wird erstellt, wenn Sie den visuellen Pipeline-Editor aufrufen.

**Integrationspanel** — Es enthält ein neues Integrationsfenster MLflow, das Sie auswählen und konfigurieren können.

**App aktualisieren und testen** — Die Option, die ausgewählte Anwendung zu überschreiben und während der Pipeline-Ausführung zu experimentieren.

## Funktionsweise
<a name="add-integration-how-it-works"></a>
+ Gehen Sie zum **Pipeline Visual Editor**
+ Wählen Sie **in der Werkzeugleiste Integration**
+ Wählen Sie **MLflow** aus.
+ Konfiguriere die MLflow App und experimentiere

## Beispiel-Screenshots
<a name="add-integration-example-screenshots"></a>

Seitenbereich für Integrationen

![\[Die Beschreibung der zu erledigenden Aufgaben.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/screenshot-pipeline-1.png)


MLflow Konfiguration

![\[Die Beschreibung der zu erledigenden Aufgaben.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/screenshot-pipeline-2.png)


Wie überschreibt man das Experiment während der Pipeline-Ausführung

![\[Die Beschreibung der zu erledigenden Aufgaben.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/screenshot-pipeline-3.png)


## Eigenschaften-Schritt
<a name="build-and-manage-properties"></a>

Verwenden Sie das `properties`-Attribut, um Datenabhängigkeiten zwischen Schritten in der Pipeline hinzuzufügen. Pipelines verwenden diese Datenabhängigkeiten, um aus der Pipeline-Definition den DAG zu erstellen. Diese Eigenschaften können als Platzhalterwerte referenziert werden und werden zur Laufzeit aufgelöst. 

Das `properties` Attribut eines Pipelines-Schritts entspricht dem Objekt, das von einem `Describe` Aufruf für den entsprechenden SageMaker AI-Jobtyp zurückgegeben wurde. Für jeden Auftragstyp gibt der `Describe` Aufruf das folgende Antwortobjekt zurück:
+ `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)

Informationen dazu, welche Eigenschaften für jeden Schritttyp bei der Erstellung von Datenabhängigkeiten referenzierbar sind, finden Sie unter *[Datenabhängigkeit — Eigenschaftsreferenz](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#data-dependency-property-reference)* im [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

## Schrittparallelität
<a name="build-and-manage-parallelism"></a>

Wenn ein Schritt nicht von einem anderen Schritt abhängt, wird er sofort nach der Ausführung der Pipeline ausgeführt. Die parallel Ausführung zu vieler Pipeline-Schritte kann jedoch schnell die verfügbaren Ressourcen erschöpfen. Steuern Sie die Anzahl der gleichzeitigen Schritte für eine Pipeline-Ausführung mit `ParallelismConfiguration`.

Im folgenden Beispiel wird `ParallelismConfiguration` verwendet, um die Grenze für gleichzeitige Schritte auf fünf zu setzen.

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

## Datenabhängigkeit zwischen Schritten
<a name="build-and-manage-data-dependency"></a>

Sie definieren die Struktur Ihrer DAG, indem Sie die Datenbeziehungen zwischen den Schritten angeben. Um Datenabhängigkeiten zwischen Schritten herzustellen, übergeben Sie die Eigenschaften eines Schritts als Eingabe an einen anderen Schritt in der Pipeline. Der Schritt, der die Eingabe empfängt, wird erst gestartet, nachdem der Schritt, der die Eingabe bereitstellt, abgeschlossen ist.

Eine Datenabhängigkeit verwendet die JsonPath Notation im folgenden Format. Dieses Format durchläuft die JSON-Eigenschaftendatei. Das bedeutet, dass Sie so viele *<property>* Instanzen wie nötig anhängen können, um die gewünschte verschachtelte Eigenschaft in der Datei zu erreichen. [Weitere Informationen zur JsonPath Notation finden Sie im JsonPath Repo.](https://github.com/json-path/JsonPath)

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

Im Folgenden wird gezeigt, wie ein Amazon-S3-Bucket mithilfe der `ProcessingOutputConfig` Eigenschaft eines Verarbeitungsschritts angegeben wird.

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

Um die Datenabhängigkeit zu erstellen, übergeben Sie den Bucket wie folgt an einen Trainingsschritt.

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

Informationen dazu, welche Eigenschaften für jeden Schritttyp bei der Erstellung von Datenabhängigkeiten referenzierbar sind, finden Sie unter *[Datenabhängigkeit — Eigenschaftsreferenz](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#data-dependency-property-reference)* im [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

## Benutzerdefinierte Abhängigkeit zwischen Schritten
<a name="build-and-manage-custom-dependency"></a>

Wenn Sie eine Datenabhängigkeit angeben, stellt Pipelines die Datenverbindung zwischen den Schritten bereit. Alternativ kann ein Schritt auf die Daten aus einem vorherigen Schritt zugreifen, ohne Pipelines direkt zu verwenden. In diesem Fall können Sie eine benutzerdefinierte Abhängigkeit erstellen, die Pipelines anweist, einen Schritt erst zu starten, nachdem ein anderer Schritt abgeschlossen ist. Sie erstellen eine benutzerdefinierte Abhängigkeit, indem Sie `DependsOn` -Attribut eines Schritts angeben.

Im Folgenden wird beispielsweise ein Schritt `C` definiert, der erst beginnt, wenn sowohl der Schritt `A` als auch der Schritt `B` abgeschlossen sind.

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

Pipelines löst eine Validierungsausnahme aus, wenn die Abhängigkeit eine zyklische Abhängigkeit erzeugen würde.

Im folgenden Beispiel wird ein Trainingsschritt erstellt, der beginnt, nachdem ein Verarbeitungsschritt abgeschlossen ist.

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

training_step.add_depends_on([processing_step])
```

Im folgenden Beispiel wird ein Trainingsschritt erstellt, der erst beginnt, wenn zwei verschiedene Verarbeitungsschritte abgeschlossen sind.

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

training_step = TrainingStep(...)

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

Im Folgenden wird eine alternative Methode zum Erstellen der benutzerdefinierten Abhängigkeit beschrieben.

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

Im folgenden Beispiel wird ein Trainingsschritt erstellt, der Eingaben von einem Verarbeitungsschritt empfängt und darauf wartet, dass ein anderer Verarbeitungsschritt abgeschlossen ist.

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

Das folgende Beispiel zeigt, wie eine Stringliste der benutzerdefinierten Abhängigkeiten eines Schritts abgerufen wird.

```
custom_dependencies = training_step.depends_on
```

## Benutzerdefinierte Bilder in einem Schritt
<a name="build-and-manage-images"></a>

 Sie können jedes der verfügbaren SageMaker AI [Deep Learning Container-Images](https://github.com/aws/deep-learning-containers/blob/master/available_images.md) verwenden, wenn Sie einen Schritt in Ihrer Pipeline erstellen. 

Sie können auch Ihren eigenen -Container mit Pipeline-Schritten verwenden. Da Sie in Studio Classic kein Image erstellen können, müssen Sie Ihr Image mit einer anderen Methode erstellen, bevor Sie es mit Pipelines verwenden können.

Um bei der Erstellung der Schritte für Ihre Pipeline Ihren eigenen Container zu verwenden, fügen Sie den Bild-URI in die Estimator-Definition ein. Weitere Informationen zur Verwendung Ihres eigenen Containers mit SageMaker KI finden Sie unter [Docker-Container mit SageMaker KI verwenden](https://docs.aws.amazon.com/sagemaker/latest/dg/docker-containers.html).

# Lift-and-shift Python-Code mit dem @step -Decorator
<a name="pipelines-step-decorator"></a>

Der `@step` Decorator ist eine Funktion, die Ihren lokalen ML-Code (Machine Learning) in einen oder mehrere Pipeline-Schritte umwandelt. Sie können Ihre ML-Funktion so schreiben, wie Sie es für jedes ML-Projekt tun würden. Nachdem Sie die Funktion lokal oder als Trainingsaufgabe mit dem `@remote` Decorator getestet haben, können Sie sie in einen SageMaker AI-Pipeline-Schritt umwandeln, indem Sie einen Decorator hinzufügen. `@step` Anschließend können Sie die Ausgabe des mit `@step` -dekorierten Funktionen versehenen Funktionsaufrufs als Schritt an Pipelines übergeben, um eine Pipeline zu erstellen und auszuführen. Sie können eine Reihe von Funktionen mit dem `@step` Decorator verketten, um auch eine mehrstufige DAG-Pipeline (Directed Acyclic Graph) zu erstellen.

Die Konfiguration für die Verwendung des `@step`-Decorators entspricht der Konfiguration für die Verwendung des `@remote`-Decorators. Einzelheiten zur [Einrichtung der Umgebung und zur [Verwendung einer Konfigurationsdatei](https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-decorator-config.html) zum Festlegen von Standardeinstellungen finden Sie in der](https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-decorator.html#train-remote-decorator-env) Dokumentation zur Remote-Funktion. [Weitere Informationen zum `@step` Decorator finden Sie unter sagemaker.workflow.function\$1step.step.](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.function_step.step)

Um Beispiel-Notebooks anzuzeigen, die die Verwendung von `@step`-Decorator veranschaulichen, siehe [@step decorator sample notebooks](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-pipelines/step-decorator).

In den folgenden Abschnitten wird erklärt, wie Sie Ihren lokalen ML-Code mit einem `@step` Decorator annotieren können, um einen Schritt zu erstellen, mithilfe des Schritts eine Pipeline zu erstellen und auszuführen und das Erlebnis an Ihren Anwendungsfall anzupassen.

**Topics**
+ [Erstellen Sie eine Pipeline mit `@step` -dekorierten Funktionen](pipelines-step-decorator-create-pipeline.md)
+ [Ausführen Sie eine Pipeline](pipelines-step-decorator-run-pipeline.md)
+ [Konfigurieren Ihrer Pipeline](pipelines-step-decorator-cfg-pipeline.md)
+ [Bewährte Methoden](pipelines-step-decorator-best.md)
+ [Einschränkungen](pipelines-step-decorator-limit.md)

# Erstellen Sie eine Pipeline mit `@step` -dekorierten Funktionen
<a name="pipelines-step-decorator-create-pipeline"></a>

Sie können eine Pipeline erstellen, indem Sie Python-Funktionen mithilfe des `@step` Decorators in Pipeline-Schritte konvertieren, Abhängigkeiten zwischen diesen Funktionen erstellen, um einen Pipeline-Graphen (oder einen gerichteten azyklischen Graphen (DAG)) zu erstellen, und die Blattknoten dieses Graphen als Liste von Schritten an die Pipeline übergeben. In den folgenden Abschnitten wird dieses Verfahren anhand von Beispielen ausführlich erläutert.

**Topics**
+ [Konvertiert eine Funktion in einen Schritt](#pipelines-step-decorator-run-pipeline-convert)
+ [Erstellen Sie Abhängigkeiten zwischen den Schritten](#pipelines-step-decorator-run-pipeline-link)
+ [Wird `ConditionStep` zusammen mit Schritten verwendet, die mit `@step` -verziert sind](#pipelines-step-decorator-condition)
+ [Definieren Sie eine Pipeline anhand der `DelayedReturn` Ausgabe von Schritten](#pipelines-step-define-delayed)
+ [Erstellen Sie eine Pipeline](#pipelines-step-decorator-pipeline-create)

## Konvertiert eine Funktion in einen Schritt
<a name="pipelines-step-decorator-run-pipeline-convert"></a>

Um einen Schritt mit dem `@step`-Decorator zu erstellen, kommentieren Sie die Funktion mit `@step`. Das folgende Beispiel zeigt eine `@step` mit -dekorierte Funktion zur Vorverarbeitung der Daten.

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

Wenn Sie eine `@step` mit -dekorierte Funktion aufrufen, gibt SageMaker AI eine `DelayedReturn` Instanz zurück, anstatt die Funktion auszuführen. Eine `DelayedReturn` Instance ist ein Proxy für die tatsächliche Rückgabe dieser Funktion. Die `DelayedReturn` Instance kann als Argument an eine andere Funktion oder als Schritt direkt an eine Pipeline-Instance übergeben werden. [Informationen zur `DelayedReturn` Klasse finden Sie unter sagemaker.workflow.function\$1step. DelayedReturn](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.function_step.DelayedReturn).

## Erstellen Sie Abhängigkeiten zwischen den Schritten
<a name="pipelines-step-decorator-run-pipeline-link"></a>

Wenn Sie eine Abhängigkeit zwischen zwei Schritten erstellen, stellen Sie eine Verbindung zwischen den Schritten in Ihrem Pipeline-Diagramm her. In den folgenden Abschnitten werden mehrere Möglichkeiten vorgestellt, wie Sie eine Abhängigkeit zwischen Ihren Pipeline-Schritten herstellen können.

### Datenabhängigkeiten durch Eingabeargumente
<a name="pipelines-step-decorator-run-pipeline-link-interstep"></a>

Wenn die `DelayedReturn` Ausgabe einer Funktion als Eingabe an eine andere Funktion übergeben wird, entsteht automatisch eine Datenabhängigkeit in der Pipeline-DAG. Im folgenden Beispiel wird durch die Übergabe der `DelayedReturn` Ausgabe der `preprocess` Funktion an die `train` Funktion eine Abhängigkeit zwischen `preprocess` und erzeugt`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)
```

Das vorherige Beispiel definiert eine Trainingsfunktion, die mit ausgestattet ist`@step`. Wenn diese Funktion aufgerufen wird, erhält sie die `DelayedReturn` Ausgabe des Vorverarbeitungs-Pipeline-Schritts als Eingabe. Beim Aufrufen der Trainingsfunktion wird eine weitere `DelayedReturn`-Instance zurückgegeben. Diese Instance enthält die Informationen zu allen zuvor in dieser Funktion definierten Schritten (d. h. dem `preprocess`-Schritt in diesem Beispiel), die die Pipeline-DAG bilden.

Im vorherigen Beispiel gibt die `preprocess` Funktion einen einzelnen Wert zurück. Für komplexere Rückgabetypen wie Listen oder Tupel, siehe [Einschränkungen](pipelines-step-decorator-limit.md).

### Definieren von benutzerdefinierten Abhängigkeiten
<a name="pipelines-step-decorator-run-pipeline-link-custom"></a>

Im vorherigen Beispiel hat die `train` Funktion die `DelayedReturn` Ausgabe von empfangen `preprocess` und eine Abhängigkeit erstellt. Wenn Sie die Abhängigkeit explizit definieren möchten, ohne die Ausgabe des vorherigen Schritts zu übergeben, verwenden Sie die `add_depends_on` Funktion mit dem Schritt. Sie können die `get_step()` Funktion verwenden, um den zugrunde liegenden Schritt aus seiner `DelayedReturn` Instance abzurufen, und dann `add_depends_on` \$1on mit der Abhängigkeit als Eingabe aufrufen. Die `get_step()` Funktionsdefinition finden Sie unter [sagemaker.workflow.step\$1outputs.get\$1step](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.step_outputs.get_step). Das folgende Beispiel zeigt, wie Sie eine Abhängigkeit zwischen `preprocess` und `train` mithilfe von `get_step()` und erstellen`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])
```

### Übergeben Sie Daten an und von einer `@step` mit -dekorierten Funktion an einen herkömmlichen Pipeline-Schritt
<a name="pipelines-step-decorator-run-pipeline-link-pass"></a>

Sie können eine Pipeline erstellen, die einen Schritt mit einer `@step` Markierung und einen herkömmlichen Pipeline-Schritt umfasst und Daten zwischen diesen weiterleitet. Sie können sie beispielsweise verwenden, um die Daten `ProcessingStep` zu verarbeiten und das Ergebnis an die Trainingsfunktion `@step` mit -dekoriertem Dekor weiterzuleiten. Im folgenden Beispiel verweist ein `@step` mit -dekorierter Trainingsschritt auf die Ausgabe eines Verarbeitungsschritts.

```
# 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,
)
```

## Wird `ConditionStep` zusammen mit Schritten verwendet, die mit `@step` -verziert sind
<a name="pipelines-step-decorator-condition"></a>

Pipelines unterstützt eine `ConditionStep` Klasse, die die Ergebnisse der vorherigen Schritte auswertet, um zu entscheiden, welche Maßnahmen in der Pipeline ergriffen werden sollen. Sie können es auch `ConditionStep` mit einem Schritt verwenden, der mit `@step` einem Symbol versehen ist. Um die Ausgabe eines mit `@step`-dekorierten Schritts mit zu verwenden, geben Sie die Ausgabe dieses Schritts als Argument für `ConditionStep` ein. Im folgenden Beispiel erhält der Bedingungsschritt die Ausgabe des Bewertungsschritts für das `@step` mit -dekorierte Modell.

```
# 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()],
)
```

## Definieren Sie eine Pipeline anhand der `DelayedReturn` Ausgabe von Schritten
<a name="pipelines-step-define-delayed"></a>

Sie definieren eine Pipeline auf die gleiche Weise, unabhängig davon, ob Sie einen `@step` Decorator verwenden oder nicht. Wenn Sie eine `DelayedReturn` Instance an Ihre Pipeline übergeben, müssen Sie keine vollständige Liste der Schritte zum Erstellen der Pipeline übergeben. Das SDK leitet anhand der von Ihnen definierten Abhängigkeiten automatisch die vorherigen Schritte ab. Alle vorherigen Schritte der `Step` Objekte, die Sie an die Pipeline übergeben haben, oder der `DelayedReturn` Objekte, sind im Pipeline-Diagramm enthalten. Im folgenden Beispiel empfängt die Pipeline das `DelayedReturn` Objekt für die `train` Funktion. SageMaker AI fügt den `preprocess` Schritt als vorherigen Schritt von `train` zum Pipeline-Diagramm hinzu.

```
from sagemaker.workflow.pipeline import Pipeline

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

Wenn zwischen den Schritten keine Daten oder benutzerdefinierten Abhängigkeiten bestehen und Sie mehrere Schritte parallel ausführen, hat das Pipeline-Diagramm mehr als einen Blattknoten. Übergeben Sie all diese Blattknoten in einer Liste an das `steps` Argument in Ihrer Pipeline-Definition, wie im folgenden Beispiel gezeigt:

```
@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,
)
```

Wenn die Pipeline läuft, laufen beide Schritte parallel.

Sie übergeben nur die Blattknoten des Diagramms an die Pipeline, da die Blattknoten Informationen über alle vorherigen Schritte enthalten, die durch Daten oder benutzerdefinierte Abhängigkeiten definiert wurden. Beim Kompilieren der Pipeline leitet SageMaker KI auch von allen nachfolgenden Schritten ab, die den Pipeline-Graphen bilden, und fügt jeden von ihnen als separaten Schritt zur Pipeline hinzu.

## Erstellen Sie eine Pipeline
<a name="pipelines-step-decorator-pipeline-create"></a>

Erstellen Sie eine Pipeline durch Aufrufen`pipeline.create()`, wie im folgenden Ausschnitt gezeigt. [Einzelheiten dazu finden Sie unter `create()` 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)
```

Wenn Sie aufrufen`pipeline.create()`, kompiliert SageMaker AI alle Schritte, die als Teil der Pipeline-Instanz definiert sind. SageMaker KI lädt die serialisierte Funktion, die Argumente und alle anderen schrittbezogenen Artefakte auf Amazon S3 hoch.

Die Daten befinden sich im S3-Bucket gemäß der folgenden Struktur:

```
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`ist in der SageMaker AI-Konfigurationsdatei definiert und gilt für die gesamte Pipeline. Wenn nicht definiert, wird der SageMaker Standard-AI-Bucket verwendet.

**Anmerkung**  
Jedes Mal, wenn SageMaker AI eine Pipeline kompiliert, speichert SageMaker AI die serialisierten Funktionen, Argumente und Abhängigkeiten der Schritte in einem Ordner, der mit der aktuellen Uhrzeit versehen ist. Dies geschieht jedes Mal, wenn Sie `pipeline.create()`, `pipeline.update()`, `pipeline.upsert()` oder `pipeline.definition()` ausführen.

# Ausführen Sie eine Pipeline
<a name="pipelines-step-decorator-run-pipeline"></a>

Auf der folgenden Seite wird beschrieben, wie Sie eine Pipeline mit Amazon SageMaker Pipelines ausführen, entweder mit SageMaker KI-Ressourcen oder lokal.

Starten Sie einen neuen Pipeline-Lauf mit der `pipeline.start()` Funktion wie bei einem herkömmlichen SageMaker KI-Pipeline-Lauf. [Informationen zu der `start()` Funktion finden Sie unter SageMaker.Workflow.Pipeline.Pipeline.Start.](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.pipeline.Pipeline.start)

**Anmerkung**  
Ein mit dem `@step` Decorateur definierter Schritt wird als Trainingsjob ausgeführt. Beachten Sie daher folgende Einschränkungen:  
Limits für Instances und Trainingsjobs in Ihren Konten. Aktualisieren Sie Ihre Limits entsprechend, um Probleme mit der Drosselung oder dem Ressourcenlimit zu vermeiden.
Die monetären Kosten, die mit jedem anstehenden Trainingsschritt verbunden sind. Weitere Informationen finden Sie unter [ SageMaker Amazon-Preise](https://aws.amazon.com/sagemaker/pricing/).

## Rufen Sie die Ergebnisse einer lokal ausgeführten Pipeline ab
<a name="pipelines-step-decorator-run-pipeline-retrieve"></a>

Um das Ergebnis eines beliebigen Schritts eines Pipeline-Laufs anzuzeigen, verwenden Sie [execution.result ()](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.pipeline._PipelineExecution.result           ), wie im folgenden Codeausschnitt gezeigt:

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

**Anmerkung**  
Pipelines unterstützt `execution.result()` im lokalen Modus nicht.

Sie können nur jeweils Ergebnisse für einen Schritt abrufen. Wenn der Schrittname von SageMaker AI generiert wurde, können Sie den Schrittnamen abrufen, indem Sie `list_steps` wie folgt aufrufen:

```
execution.list_step()
```

## Ausführen Sie eine Pipeline lokal
<a name="pipelines-step-decorator-run-pipeline-local"></a>

Sie können eine Pipeline mit mit `@step` -dekorierten Schritten wie bei herkömmlichen Pipeline-Schritten lokal ausführen. Einzelheiten zu Pipeline-Läufen im lokalen Modus finden Sie unter[Führen Sie Pipelines im lokalen Modus aus](pipelines-local-mode.md). Um den lokalen Modus zu verwenden, fügen Sie Ihrer Pipeline-Definition `LocalPipelineSession` statt a ein `SageMakerSession` hinzu, wie im folgenden Beispiel gezeigt:

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

# Konfigurieren Ihrer Pipeline
<a name="pipelines-step-decorator-cfg-pipeline"></a>

Es wird empfohlen, die SageMaker AI-Konfigurationsdatei zu verwenden, um die Standardeinstellungen für die Pipeline festzulegen. Informationen zur SageMaker AI-Konfigurationsdatei finden Sie unter [Konfiguration und Verwendung von Standardwerten mit dem SageMaker Python-SDK](https://sagemaker.readthedocs.io/en/stable/overview.html#configuring-and-using-defaults-with-the-sagemaker-python-sdk). Jede Konfiguration, die der Konfigurationsdatei hinzugefügt wird, gilt für alle Schritte in der Pipeline. Wenn Sie die Optionen für einen der Schritte überschreiben möchten, geben Sie neue Werte in den `@step` Decorator-Argumenten an. Das folgende Thema beschreibt, wie eine Konfigurationsdatei eingerichtet wird.

Die Konfiguration des `@step` Decorators in der Konfigurationsdatei ist identisch mit der Konfiguration des `@remote` Decorators. Verwenden Sie den `Pipeline` Abschnitt im folgenden Ausschnitt, um den ARN der Pipeline-Rolle und die Pipeline-Tags in der Konfigurationsdatei einzurichten:

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

Die meisten Standardeinstellungen, die Sie in der Konfigurationsdatei festlegen können, können Sie auch überschreiben, indem Sie dem `@step`-Decorator neue Werte übergeben. Sie können beispielsweise den Instance-Typ überschreiben, den Sie in der Konfigurationsdatei für Ihren Vorverarbeitungsschritt festgelegt haben, wie im folgenden Beispiel dargestellt:

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

Einige Argumente sind nicht Teil der `@step` Decorator-Parameterliste — sie können nur über die AI-Konfigurationsdatei für die gesamte Pipeline konfiguriert werden. SageMaker Sie sind wie folgt aufgeführt:
+ `sagemaker_session`(`sagemaker.session.Session`): Die zugrunde liegende SageMaker KI-Sitzung, an die SageMaker KI Serviceanrufe delegiert. Falls nicht angegeben, wird eine Sitzung mit einer Standardkonfiguration wie folgt erstellt:

  ```
  SageMaker:
    PythonSDK:
      Modules:
        Session:
          DefaultS3Bucket: 'default_s3_bucket'
          DefaultS3ObjectKeyPrefix: 'key_prefix'
  ```
+ `custom_file_filter`(`CustomFileFilter)`: Ein `CustomFileFilter` Objekt, das die lokalen Verzeichnisse und Dateien angibt, die in den Pipeline-Schritt aufgenommen werden sollen. Falls nicht angegeben, ist dieser Wert standardmäßig `None`. Damit `custom_file_filter` wirksam wird, müssen Sie `IncludeLocalWorkdir` auf `True` festlegen. Das folgende Beispiel zeigt eine Konfiguration, die alle Notebookdateien sowie die genannten `data` Dateien und Verzeichnisse ignoriert.

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

  Weitere Informationen zur Verwendung von `IncludeLocalWorkdir` mit finden Sie `CustomFileFilter` unter[Verwendung von modularem Code mit dem @remote Decorator](train-remote-decorator-modular.md).
+ `s3_root_uri (str)`: Der Amazon S3 S3-Stammordner, in den SageMaker AI die Codearchive und Daten hochlädt. Falls nicht angegeben, wird der SageMaker Standard-AI-Bucket verwendet.
+ `s3_kms_key (str)`: Der Schlüssel, der zum Verschlüsseln der Eingabe- und Ausgabedaten verwendet wird. Sie können dieses Argument nur in der SageMaker AI-Konfigurationsdatei konfigurieren und das Argument gilt für alle in der Pipeline definierten Schritte. Wenn keine Angabe erfolgt, lautet der Standardwert `None`. Im folgenden Codeausschnitt finden Sie ein Beispiel für eine S3-KMS-Schlüsselkonfiguration:

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

# Bewährte Methoden
<a name="pipelines-step-decorator-best"></a>

In den folgenden Abschnitten finden Sie bewährte Methoden für die Verwendung des `@step` Decorators für Ihre Pipeline-Schritte.

## Verwenden Sie Warm-Pools
<a name="pipelines-step-decorator-best-warmpool"></a>

Verwenden Sie für schnellere Pipeline-Step-Läufe die Funktion zum Warmpooling, die für Trainingsaufgaben bereitgestellt wird. Sie können die Warm-Pool-Funktionalität aktivieren, indem Sie dem `@step` Decorator das `keep_alive_period_in_seconds` Argument zur Verfügung stellen, wie im folgenden Codeausschnitt gezeigt:

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

Weitere Informationen zu Warm-Pools finden Sie unter [SageMaker KI-verwaltete warme Pools](train-warm-pools.md). 

## Strukturieren Ihres Verzeichnisses
<a name="pipelines-step-decorator-best-dir"></a>

Es wird empfohlen, bei der Verwendung des `@step` Decorators Codemodule zu verwenden. Platzieren Sie das `pipeline.py` Modul, in dem Sie die Schrittfunktionen aufrufen und die Pipeline definieren, im Stammverzeichnis des Workspace. Die empfohlene Struktur sieht wie folgt aus:

```
.
├── 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/
```

# Einschränkungen
<a name="pipelines-step-decorator-limit"></a>

In den folgenden Abschnitten werden die Einschränkungen beschrieben, die Sie beachten sollten, wenn Sie den `@step` Decorator für Ihre Pipeline-Schritte verwenden.

## Einschränkungen von Funktionsargumenten
<a name="pipelines-step-decorator-arg"></a>

Wenn Sie ein Eingabeargument an die `@step` mit -dekorierte Funktion übergeben, gelten die folgenden Einschränkungen:
+ Sie können die Objekte`DelayedReturn`, `Properties` (von Schritten anderer Typen) und `ExecutionVariable` -Objekte als `Parameter` Argumente an `@step` mit -dekorierte Funktionen übergeben. Mit `@step` -dekorierten Funktionen werden `Join` Objekte jedoch nicht als `JsonGet` Argumente unterstützt.
+ Sie können von einer `@step` Funktion aus nicht direkt auf eine Pipeline-Variable zugreifen. Das folgende Beispiel erzeugt einen Fehler:

  ```
  param = ParameterInteger(name="<parameter-name>", default_value=10)
  
  @step
  def func():
      print(param)
  
  func() # this raises a SerializationError
  ```
+ Sie können eine Pipeline-Variable nicht in einem anderen Objekt verschachteln und an eine `@step` Funktion übergeben. Das folgende Beispiel erzeugt einen Fehler:

  ```
  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
  ```
+ Da die Ein- und Ausgaben einer Funktion serialisiert sind, gibt es Einschränkungen hinsichtlich der Art der Daten, die als Eingabe oder Ausgabe von einer Funktion übergeben werden können. Weitere Informationen finden Sie im Abschnitt *Datenserialisierung und Deserialisierung* von[Aufrufen einer Remote-Funktion](train-remote-decorator-invocation.md). Die gleichen Einschränkungen gelten für `@step`-dekorierte Funktionen.
+ Objekte, die einen Boto-Client enthalten, können nicht serialisiert werden. Daher können Sie solche Objekte nicht als Eingabe an eine mit `@step`-dekorierte Funktion übergeben oder als Ausgabe von einer solchen Funktion erhalten. Beispielsweise `Processor` können SageMaker Python-SDK-Clientklassen wie `Estimator``Predictor`, und nicht serialisiert werden.

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

Sie sollten die Bibliotheken importieren, die für den Schritt innerhalb und nicht außerhalb der Funktion erforderlich sind. Wenn Sie sie auf globaler Ebene importieren, riskieren Sie bei der Serialisierung der Funktion eine Importkollision. `sklearn.pipeline.Pipeline` könnte beispielsweise mit `sagemaker.workflow.pipeline.Pipeline` überschrieben werden.

## Verweisen auf untergeordnete Elemente des Funktionsrückgabewerts
<a name="pipelines-step-decorator-best-child"></a>

Wenn Sie auf untergeordnete Elemente des Rückgabewerts einer `@step` mit -dekorierten Funktion verweisen, gelten die folgenden Einschränkungen:
+ Sie können auf die untergeordneten Elemente verweisen, `[]` wenn das `DelayedReturn` Objekt ein Tupel, eine Liste oder ein Diktat darstellt, wie im folgenden Beispiel gezeigt:

  ```
  delayed_return[0]
  delayed_return["a_key"]
  delayed_return[1]["a_key"]
  ```
+ Sie können eine Tupel- oder Listenausgabe nicht entpacken, da die genaue Länge des zugrunde liegenden Tupels oder der zugrunde liegenden Liste nicht bekannt sein kann, wenn Sie die Funktion aufrufen. Das folgende Beispiel erzeugt einen Fehler:

  ```
  a, b, c = func() # this raises ValueError
  ```
+ Sie können nicht über ein `DelayedReturn`-Objekt iterieren. Das folgende Beispiel löst einen Fehler aus:

  ```
  for item in func(): # this raises a NotImplementedError
  ```
+ Sie können nicht mit '`.`' auf beliebige untergeordnete Elemente verweisen. Das folgende Beispiel erzeugt einen Fehler:

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

## Bestehende Pipeline-Funktionen, die nicht unterstützt werden
<a name="pipelines-step-decorator-best-unsupported"></a>

Sie können den `@step` Decorator nicht mit den folgenden Pipeline-Funktionen verwenden:
+ [Zwischenspeichern eines Pipeline-Schritts](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-caching.html)
+ [Eigenschaftendatei](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-propertyfile.html#build-and-manage-propertyfile-property)

# Daten zwischen Schritten weitergeben
<a name="build-and-manage-propertyfile"></a>

Beim Erstellen von Pipelines mit Amazon SageMaker Pipelines müssen Sie möglicherweise Daten von einem Schritt zum nächsten weitergeben. Beispielsweise möchten Sie möglicherweise die durch einen Trainingsschritt generierten Modellartefakte als Eingabe für einen Schritt zur Modellbewertung oder -bereitstellung verwenden. Sie können diese Funktionalität verwenden, um voneinander abhängige Pipeline-Schritte zu erstellen und Ihre ML-Workflows zu erstellen.

Wenn Sie Informationen aus der Ausgabe eines Pipeline-Schritts abrufen müssen, können Sie `JsonGet` verwenden. `JsonGet` unterstützt Sie beim Extrahieren von Informationen aus Amazon S3 oder Eigenschaftsdateien. In den folgenden Abschnitten werden Methoden beschrieben, mit denen Sie Schrittausgaben extrahieren können`JsonGet`.

## Übergeben Sie Daten zwischen Schritten mit Amazon S3
<a name="build-and-manage-propertyfile-s3"></a>

Sie können `JsonGet` in a verwenden`ConditionStep`, um die JSON-Ausgabe direkt von Amazon S3 abzurufen. Der Amazon-S3-URI kann eine `Std:Join`-Funktion sein, die primitive Zeichenketten, Pipeline-Ausführungsvariablen oder Pipeline-Parameter enthält. Das folgende Beispiel zeigt, wie Sie `JsonGet` in einem `ConditionStep` verwenden können.

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

Wenn Sie `JsonGet` mit einem Amazon-S3-Pfad im Bedingungsschritt verwenden, müssen Sie explizit eine Abhängigkeit zwischen dem Bedingungsschritt und dem Schritt, der die JSON-Ausgabe generiert, hinzufügen. Im folgenden Beispiel wird der Bedingungsschritt mit einer Abhängigkeit vom Verarbeitungsschritt erstellt:

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

## Übergeben Sie Daten mit Eigenschaftendateien zwischen Schritten
<a name="build-and-manage-propertyfile-property"></a>

Verwenden Sie Eigenschaftendateien, um Informationen aus der Ausgabe eines Verarbeitungsschritts zu speichern. Dies ist besonders nützlich, wenn die Ergebnisse eines Verarbeitungsschritts analysiert werden, um zu entscheiden, wie ein bedingter Schritt ausgeführt werden soll. Die `JsonGet` Funktion verarbeitet eine Eigenschaftendatei und ermöglicht es Ihnen, die Eigenschaften-JSON-Datei mithilfe der JsonPath Notation abzufragen. Weitere Informationen zur JsonPath Notation finden Sie im [JsonPath Repo](https://github.com/json-path/JsonPath).

Um eine Eigenschaftendatei für die spätere Verwendung zu speichern, müssen Sie zunächst eine `PropertyFile` Instance mit dem folgenden Format erstellen. Der `path` Parameter ist der Name der JSON-Datei, in der die Eigenschaftendatei gespeichert wird. Jedes `output_name` muss mit dem `output_name` des `ProcessingOutput` übereinstimmen, das Sie in Ihrem Verarbeitungsschritt definieren. Dadurch kann die Eigenschaftendatei die `ProcessingOutput` in dem Schritt erfassen.

```
from sagemaker.workflow.properties import PropertyFile

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

Wenn Sie Ihre `ProcessingStep` Instance erstellen, fügen Sie den `property_files` Parameter hinzu, um alle Parameterdateien aufzulisten, die der Amazon SageMaker Pipelines-Service indizieren muss. Dadurch wird die Eigenschaftendatei für die spätere Verwendung gespeichert.

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

Um Ihre Eigenschaftsdatei in einem Bedingungsschritt zu verwenden, fügen Sie `property_file` zu der Bedingung hinzu, die Sie an Ihren Bedingungsschritt übergeben, wie im folgenden Beispiel gezeigt, um die JSON-Datei mit dem Parameter `json_path` nach der gewünschten Eigenschaft abzufragen.

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

Ausführlichere Beispiele finden Sie unter *[Property File](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#property-file)* im [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

# Zwischenspeichern von Pipeline-Schritten
<a name="pipelines-caching"></a>

In Amazon SageMaker Pipelines können Sie Step-Caching verwenden, um beim erneuten Ausführen von Pipelines Zeit und Ressourcen zu sparen. Beim Step-Caching wird die Ausgabe einer vorherigen erfolgreichen Ausführung eines Schritts wiederverwendet (anstatt sie erneut zu berechnen), wenn der Schritt dieselbe Konfiguration und dieselben Eingaben hat. Auf diese Weise können Sie bei Pipeline-Wiederholungen mit identischen Parametern konsistente Ergebnisse erzielen. Im folgenden Thema erfahren Sie, wie Sie das Step-Caching für Ihre Pipelines konfigurieren und aktivieren.

Wenn Sie das Zwischenspeichern von Schrittsignaturen verwenden, versucht Pipelines, eine frühere Ausführung Ihres aktuellen Pipeline-Schritts mit denselben Werten für bestimmte Attribute zu finden. Falls gefunden, überträgt Pipelines die Ausgaben der vorherigen Ausführung, anstatt den Schritt erneut zu berechnen. Die geprüften Attribute sind spezifisch für den Schritttyp und werden in [Standard-Cache-Schlüsselattribute nach Pipeline-Schritttyp](pipelines-default-keys.md) aufgeführt.

Sie müssen sich für das Step-Caching entscheiden – es ist standardmäßig deaktiviert. Wenn Sie das Step-Caching aktivieren, müssen Sie auch ein Timeout definieren. Dieses Timeout definiert, wie alt ein früherer Lauf sein kann, damit er als Kandidat für die Wiederverwendung in Frage kommt.

Beim Step-Caching werden nur erfolgreiche Läufe berücksichtigt – fehlgeschlagene Läufe werden niemals wiederverwendet. Wenn innerhalb des Timeout-Zeitraums mehrere erfolgreiche Ausführungen existieren, verwendet Pipelines das Ergebnis für die letzte erfolgreiche Ausführung. Wenn im Timeout-Zeitraum keine erfolgreichen Ausführungen übereinstimmen, führt Pipelines den Schritt erneut aus. Wenn der Executor eine vorherige Ausführung findet, die die Kriterien erfüllt, aber noch läuft, werden beide Schritte weiter ausgeführt und der Cache wird aktualisiert, wenn sie erfolgreich sind.

Das Zwischenspeichern von Schritten ist nur für einzelne Pipelines vorgesehen, sodass Sie einen Schritt aus einer anderen Pipeline nicht wiederverwenden können, selbst wenn eine Übereinstimmung mit der Schrittsignatur vorliegt.

Das Zwischenspeichern von Schritten ist für die folgenden Schritttypen verfügbar: 
+ [Verarbeitung](build-and-manage-steps-types.md#step-type-processing)
+ [Training](build-and-manage-steps-types.md#step-type-training)
+ [Optimieren](build-and-manage-steps-types.md#step-type-tuning)
+ [AutoML](build-and-manage-steps-types.md#step-type-automl)
+ [Transformieren](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**
+ [Schalten Sie das Step-Caching ein](pipelines-caching-enabling.md)
+ [Deaktivieren des Schritt-Caching](pipelines-caching-disabling.md)
+ [Standard-Cache-Schlüsselattribute nach Pipeline-Schritttyp](pipelines-default-keys.md)
+ [Zugriffskontrolle für zwischengespeicherte Daten](pipelines-access-control.md)

# Schalten Sie das Step-Caching ein
<a name="pipelines-caching-enabling"></a>

Um das Schritt-Caching zu aktivieren, müssen Sie der Schrittdefinition eine `CacheConfig`-Eigenschaft hinzufügen. `CacheConfig`-Eigenschaften verwenden in der Pipeline-Definitionsdatei das folgende Format:

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

Das `Enabled` Feld gibt an, ob das Caching für den jeweiligen Schritt aktiviert ist. Sie können das Feld auf setzen`true`, was SageMaker KI anweist, zu versuchen, eine vorherige Ausführung des Schritts mit denselben Attributen zu finden. Oder Sie können das Feld auf setzen`false`, wodurch die SageMaker KI angewiesen wird, den Schritt bei jeder Ausführung der Pipeline auszuführen. `ExpireAfter`ist eine Zeichenfolge im [ISO 8601-Dauerformat](https://en.wikipedia.org/wiki/ISO_8601#Durations), die den Timeout-Zeitraum definiert. Bei der `ExpireAfter` Dauer kann es sich um einen Wert für ein Jahr, einen Monat, eine Woche, einen Tag, eine Stunde oder eine Minute handeln. Jeder Wert besteht aus einer Zahl, gefolgt von einem Buchstaben, der die Einheit der Dauer angibt. Beispiel:
+ „30d“ = 30 Tage
+ „5y“ = 5 Jahre
+ „T16m“ = 16 Minuten
+ „30DT5h“ = 30 Tage und 5 Stunden.

In der folgenden Diskussion wird das Verfahren zum Aktivieren des Caching für neue oder bereits bestehende Pipelines mithilfe des Amazon SageMaker Python SDK beschrieben.

**Schalten Sie das Caching für neue Pipelines ein**

Initialisieren Sie bei neuen Pipelines eine `CacheConfig` Instance mit `enable_caching=True` und geben Sie sie als Eingabe für Ihren Pipeline-Schritt an. Im folgenden Beispiel wird das Caching mit einem Timeout von 1 Stunde für einen Trainingsschritt aktiviert: 

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

**Schalten Sie das Caching für bereits bestehende Pipelines ein**

Um die Zwischenspeicherung für bereits vorhandene, bereits definierte Pipelines zu aktivieren, aktivieren Sie die Eigenschaft `enable_caching` für den Schritt und setzen Sie `expire_after` auf einen Timeout-Wert. Zuletzt aktualisieren Sie die Pipeline mit `pipeline.upsert()` oder `pipeline.update()`. Sobald Sie es erneut ausführen, aktiviert das folgende Codebeispiel das Caching mit einem Timeout von 1 Stunde für einen Trainingsschritt:

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

Alternativ können Sie die Cache-Konfiguration aktualisieren, nachdem Sie die (bereits vorhandene) Pipeline definiert haben, sodass ein kontinuierlicher Codelauf möglich ist. Das folgende Codebeispiel demonstriert diese Methode:

```
# 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()
```

Ausführlichere Codebeispiele und eine Diskussion darüber, wie sich Python-SDK-Parameter auf das Caching auswirken, finden Sie unter [Caching-Konfiguration](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#caching-configuration) in der Amazon SageMaker Python SDK-Dokumentation.

# Deaktivieren des Schritt-Caching
<a name="pipelines-caching-disabling"></a>

Ein Pipeline-Schritt wird nicht erneut ausgeführt, wenn Sie Attribute ändern, die [Standard-Cache-Schlüsselattribute nach Pipeline-Schritttyp](pipelines-default-keys.md) für seinen Schritttyp nicht aufgeführt sind. Sie können jedoch entscheiden, dass der Pipeline-Schritt trotzdem erneut ausgeführt werden soll. In diesem Fall müssen Sie das Step-Caching deaktivieren.

Um das Zwischenspeichern von Schritten zu deaktivieren, setzen Sie das `Enabled` Attribut in der `CacheConfig` Eigenschaft der Schrittdefinition in der Schrittdefinition auf `false`, wie im folgenden Codeausschnitt gezeigt:

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

Beachten Sie, dass das Attribut `ExpireAfter` ignoriert wird, wenn `Enabled` gleich `false` ist.

Um das Caching für einen Pipeline-Schritt mithilfe des Amazon SageMaker Python SDK zu deaktivieren, definieren Sie die Pipeline Ihres Pipeline-Schritts, schalten Sie die `enable_caching` Eigenschaft aus und aktualisieren Sie die Pipeline.

Sobald Sie es erneut ausführen, deaktiviert das folgende Codebeispiel das Caching für einen Trainingsschritt:

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

Sie können die `enable_caching` Eigenschaft auch deaktivieren, nachdem Sie die Pipeline bereits definiert haben, sodass ein kontinuierlicher Code ausgeführt werden kann. Das folgende Codebeispiel veranschaulicht diese Lösung:

```
# 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()
```

Ausführlichere Codebeispiele und eine Diskussion darüber, wie sich Python-SDK-Parameter auf das Caching auswirken, finden Sie unter [Caching-Konfiguration](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#caching-configuration) in der Amazon SageMaker Python SDK-Dokumentation.

# Standard-Cache-Schlüsselattribute nach Pipeline-Schritttyp
<a name="pipelines-default-keys"></a>

Bei der Entscheidung, ob ein früherer Pipeline-Schritt wiederverwendet oder der Schritt erneut ausgeführt werden soll, prüft Pipelines, ob sich bestimmte Attribute geändert haben. Wenn sich der Attributsatz von allen vorherigen Läufen innerhalb des Timeout-Zeitraums unterscheidet, wird der Schritt erneut ausgeführt. Zu diesen Attributen gehören Eingabeartefakte, App- oder Algorithmusspezifikationen und Umgebungsvariablen. In der folgenden Liste sind die einzelnen Pipeline-Schritttypen und die Attribute aufgeführt, die, falls sie geändert werden, eine erneute Ausführung des Schritts auslösen. Weitere Informationen darüber, welche Python-SDK-Parameter zur Erstellung der folgenden Attribute verwendet werden, finden Sie unter [Caching-Konfiguration](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#caching-configuration) in der Amazon SageMaker Python SDK-Dokumentation.

## [Verarbeitungsschritt](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
<a name="collapsible-caching-section-1"></a>
+ AppSpecification
+ Umgebung
+ ProcessingInputs. Dieses Attribut enthält Informationen über das Vorverarbeitungsskript.

  

## [Schritt des Trainings](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
<a name="collapsible-caching-section-2"></a>
+ AlgorithmSpecification
+ CheckpointConfig
+ DebugHookConfig
+ DebugRuleConfigurations
+ Umgebung
+ HyperParameters
+ InputDataConfig. Dieses Attribut enthält Informationen über das Trainingsskript.

  

## [Schritt zur Feinabstimmung](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)
<a name="collapsible-caching-section-3"></a>
+ HyperParameterTuningJobConfig
+ TrainingJobDefinition. Dieses Attribut besteht aus mehreren untergeordneten Attributen, von denen nicht alle dazu führen, dass der Schritt erneut ausgeführt wird. Die untergeordneten Attribute, für die eine erneute Ausführung erforderlich sein könnte (falls sie geändert werden), sind:
  + AlgorithmSpecification
  + HyperParameterRanges
  + InputDataConfig
  + StaticHyperParameters
  + TuningObjective
+ TrainingJobDefinitions

  

## [AutoML-Schritt](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_AutoMLJobConfig.html)
<a name="collapsible-caching-section-4"></a>
+ Automatische MLJob Config. Dieses Attribut besteht aus mehreren untergeordneten Attributen, von denen nicht alle dazu führen, dass der Schritt erneut ausgeführt wird. Die untergeordneten Attribute, für die eine erneute Ausführung erforderlich sein könnte (falls sie geändert werden), sind:
  + CompletionCriteria
  + CandidateGenerationConfig
  + DataSplitConfig
  + Mode
+ Automatisches MLJob Ziel
+ InputDataConfig
+ ProblemType

  

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

  

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

  

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

  

## [EMR-Schritt](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

  

# Zugriffskontrolle für zwischengespeicherte Daten
<a name="pipelines-access-control"></a>

Wenn eine SageMaker KI-Pipeline ausgeführt wird, speichert sie die Parameter und Metadaten, die mit den von der Pipeline gestarteten SageMaker KI-Jobs verknüpft sind, und speichert sie für die Wiederverwendung in nachfolgenden Läufen. Auf diese Metadaten kann zusätzlich zu zwischengespeicherten Pipeline-Schritten über eine Vielzahl von Quellen zugegriffen werden. Sie umfassen die folgenden Typen:
+ `Describe*Job`-Anforderungen
+ CloudWatch Logs
+ CloudWatch Events
+ CloudWatch Metriken
+ SageMaker KI-Suche

Beachten Sie, dass der Zugriff auf jede Datenquelle in der Liste durch ihre eigenen IAM-Berechtigungen gesteuert wird. Das Entfernen des Zugriffs einer bestimmten Rolle auf eine Datenquelle hat keinen Einfluss auf die Zugriffsebene für die anderen. Beispielsweise könnte ein Kontoadministrator der Rolle eines Anrufers IAM-Berechtigungen für `Describe*Job` Anfragen entziehen. Der Anrufer kann zwar keine `Describe*Job` Anfragen mehr stellen, aber er kann trotzdem die Metadaten aus einer Pipeline-Ausführung mit zwischengespeicherten Schritten abrufen, sofern er die Erlaubnis hat, die Pipeline auszuführen. Wenn ein Kontoadministrator den Zugriff auf die Metadaten eines bestimmten SageMaker KI-Jobs vollständig entfernen möchte, muss er die Berechtigungen für jeden der relevanten Dienste entfernen, die Zugriff auf die Daten gewähren. 

# Richtlinie für Pipeline-Schritte erneut versuchen
<a name="pipelines-retry-policy"></a>

Mithilfe von Wiederholungsrichtlinien können Sie Ihre Pipeline-Schritte automatisch wiederholen, nachdem ein Fehler aufgetreten ist. Bei jedem Pipeline-Schritt können Ausnahmen auftreten, und Ausnahmen treten aus verschiedenen Gründen auf. In einigen Fällen können diese Probleme durch einen erneuten Versuch behoben werden. Mit einer Wiederholungsrichtlinie für Pipeline-Schritte können Sie wählen, ob Sie einen bestimmten Pipeline-Schritt erneut versuchen möchten oder nicht.

Die Wiederholungsrichtlinie unterstützt nur die folgenden Pipeline-Schritte:
+ [Verarbeitungsschritt](build-and-manage-steps-types.md#step-type-processing) 
+ [Schritt des Trainings](build-and-manage-steps-types.md#step-type-training) 
+ [Schritt zur Feinabstimmung](build-and-manage-steps-types.md#step-type-tuning) 
+ [AutoML-Schritt](build-and-manage-steps-types.md#step-type-automl) 
+ [Schritt „Modell erstellen“](build-and-manage-steps-types.md#step-type-create-model) 
+ [Schritt „Modell registrieren“](build-and-manage-steps-types.md#step-type-register-model) 
+ [Schritt Transformieren](build-and-manage-steps-types.md#step-type-transform) 
+ [Schritt für Notebook-Aufträge](build-and-manage-steps-types.md#step-type-notebook-job) 

**Anmerkung**  
Aufträge, die sowohl im Tuning- als auch im AutoML-Schritt ausgeführt werden, führen intern Wiederholungen durch und wiederholen den `SageMaker.JOB_INTERNAL_ERROR` Ausnahmetyp nicht, selbst wenn eine Wiederholungsrichtlinie konfiguriert ist. Mithilfe der SageMaker API können Sie Ihre eigene [Wiederholungsstrategie](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RetryStrategy.html) programmieren.

## Unterstützte Ausnahmetypen für die Wiederholungsrichtlinie
<a name="pipelines-retry-policy-supported-exceptions"></a>

Die Wiederholungsrichtlinie für Pipeline-Schritte unterstützt die folgenden Ausnahmetypen:
+ `Step.SERVICE_FAULT`: Diese Ausnahmen treten auf, wenn beim Aufrufen nachgeschalteter Services ein interner Serverfehler oder ein vorübergehender Fehler auftritt. Pipelines versucht bei dieser Art von Fehler automatisch erneut. Mit einer Wiederholungsrichtlinie können Sie den standardmäßigen Wiederholungsvorgang für diesen Ausnahmetyp außer Kraft setzen.
+ `Step.THROTTLING`: Beim Aufrufen der Downstream-Services können Drosselungsausnahmen auftreten. Pipelines versucht bei dieser Art von Fehler automatisch erneut. Mit einer Wiederholungsrichtlinie können Sie den standardmäßigen Wiederholungsvorgang für diesen Ausnahmetyp außer Kraft setzen.
+ `SageMaker.JOB_INTERNAL_ERROR`: Diese Ausnahmen treten auf, wenn der SageMaker KI-Job zurückkehrt`InternalServerError`. In diesem Fall kann das Starten eines neuen Auftrags ein vorübergehendes Problem beheben.
+ `SageMaker.CAPACITY_ERROR`: Der SageMaker KI-Job kann auf Amazon EC2 stoßen`InsufficientCapacityErrors`, was dazu führt, dass der SageMaker KI-Job fehlschlägt. Sie können es erneut versuchen, indem Sie einen neuen SageMaker KI-Job starten, um das Problem zu vermeiden. 
+ `SageMaker.RESOURCE_LIMIT`: Sie können das Ressourcenlimit überschreiten, wenn Sie einen SageMaker AI-Job ausführen. Sie können warten und nach einer kurzen Zeit erneut versuchen, den SageMaker KI-Job auszuführen, um zu sehen, ob Ressourcen freigegeben wurden.

## Das JSON-Schema für die Wiederholungsrichtlinie
<a name="pipelines-retry-policy-json-schema"></a>

Die Wiederholungsrichtlinie für Pipelines besteht aus Folgendem:

```
"RetryPolicy": {
   "ExceptionType": [String]
   "IntervalSeconds": Integer
   "BackoffRate": Double
   "MaxAttempts": Integer
   "ExpireAfterMin": Integer
}
```
+ `ExceptionType`: Dieses Feld erfordert die folgenden Ausnahmetypen in einem String-Array-Format.
  + `Step.SERVICE_FAULT`
  + `Step.THROTTLING`
  + `SageMaker.JOB_INTERNAL_ERROR`
  + `SageMaker.CAPACITY_ERROR`
  + `SageMaker.RESOURCE_LIMIT`
+ `IntervalSeconds`(optional): Die Anzahl der Sekunden vor dem ersten Wiederholungsversuch (standardmäßig 1). `IntervalSeconds`hat einen maximalen Wert von 43200 Sekunden (12 Stunden).
+ `BackoffRate` (optional): Der Multiplikator, mit dem das Wiederholungsintervall bei jedem Versuch erhöht wird (standardmäßig 2,0).
+ `MaxAttempts` (optional): Eine positive ganze Zahl, die die maximale Anzahl der Wiederholungsversuche angibt (standardmäßig 5). Tritt der Fehler öfter auf, als `MaxAttempts` angibt, werden die Wiederholungsversuche eingestellt und die normale Fehlerbehandlung fortgesetzt. Ein Wert von 0 gibt an, dass Fehler nie wiederholt werden. `MaxAttempts` hat einen Höchstwert von 20.
+ `ExpireAfterMin` (optional): Eine positive Ganzzahl, die die maximale Zeitspanne für Wiederholungen darstellt. Wenn der Fehler erneut auftritt, nachdem `ExpireAfterMin` Minuten gezählt wurden, nachdem der Schritt ausgeführt wurde, werden die Wiederholungsversuche beendet und die normale Fehlerbehandlung wird wieder aufgenommen. Ein Wert von 0 gibt an, dass Fehler nie wiederholt werden. `ExpireAfterMin ` hat einen Höchstwert von 14.400 Minuten (10 Tage).
**Anmerkung**  
Es kann nur eines von `MaxAttempts` oder `ExpireAfterMin` angegeben werden, aber nicht beide; werden beide *nicht angegeben*, wird `MaxAttempts` als Standard verwendet. Wenn beide Eigenschaften in einer Richtlinie identifiziert werden, generiert die Wiederholungsrichtlinie einen Validierungsfehler.

# Konfigurieren einer Wiederholungsversuchsrichtlinie
<a name="pipelines-configuring-retry-policy"></a>

 SageMaker Pipelines bieten zwar eine robuste und automatisierte Methode zur Orchestrierung von Workflows für maschinelles Lernen, aber bei ihrer Ausführung können Fehler auftreten. Um solche Szenarien elegant zu handhaben und die Zuverlässigkeit Ihrer Pipelines zu verbessern, können Sie Wiederholungsrichtlinien konfigurieren, die definieren, wie und wann bestimmte Schritte nach dem Auftreten einer Ausnahme automatisch wiederholt werden sollen. Mit der Wiederholungsrichtlinie können Sie die Arten von Ausnahmen, die wiederholt werden sollen, die maximale Anzahl von Wiederholungsversuchen, das Intervall zwischen Wiederholungsversuchen und die Backoff-Rate für die Verlängerung der Wiederholungsintervalle angeben. Der folgende Abschnitt enthält Beispiele für die Konfiguration einer Wiederholungsrichtlinie für einen Trainingsschritt in Ihrer Pipeline, sowohl in JSON als auch mit dem SageMaker Python-SDK.

Nachstehend finden Sie ein Beispiel für einen Trainingsschritt mit einer Wiederholungsrichtlinie.

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



Im Folgenden finden Sie ein Beispiel dafür, wie Sie ein integriertes `TrainingStep` SDK for Python (Boto3) mit einer Wiederholungsrichtlinie erstellen.

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

Weitere Informationen zur Konfiguration des Wiederholungsverhaltens für bestimmte Schritttypen finden Sie unter *[Amazon SageMaker Pipelines — Retry Policy](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#retry-policy)* in der Amazon SageMaker Python SDK-Dokumentation.

# Selektive Ausführung von Pipeline-Schritten
<a name="pipelines-selective-ex"></a>

Wenn Sie Pipelines verwenden, um Workflows zu erstellen und Ihre ML-Trainingsschritte zu orchestrieren, müssen Sie möglicherweise mehrere Experimentierphasen durchführen. Anstatt jedes Mal die gesamte Pipeline laufen zu lassen, möchten Sie vielleicht nur bestimmte Schritte wiederholen. Mit Pipelines können Sie Pipeline-Schritte selektiv ausführen. Dies hilft Ihnen, Ihr ML-Training zu optimieren. Die selektive Ausführung ist in den folgenden Szenarien nützlich: 
+ Sie möchten einen bestimmten Schritt mit aktualisiertem Instance-Typ, Hyperparametern oder anderen Variablen neu starten und dabei die Parameter der Upstream-Schritte beibehalten.
+ Ihre Pipeline schlägt bei einem Zwischenschritt fehl. Frühere Schritte in der Ausführung, wie Datenvorbereitung oder Merkmalsextraktion, sind kostspielig, wenn sie erneut ausgeführt werden. Möglicherweise müssen Sie einen Fix einführen und bestimmte Schritte manuell erneut ausführen, um die Pipeline abzuschließen. 

Bei der selektiven Ausführung können Sie eine beliebige Teilmenge von Schritten ausführen, sofern sie im Directed Acyclic Graph (DAG) Ihrer Pipeline miteinander verbunden sind. Die folgende DAG zeigt ein Beispiel für einen Pipeline-Workflow:

![\[Ein azyklisch gerichtetes Diagramm (DAG) einer Beispielpipeline.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/pipeline-full.png)


Sie können Schritte `AbaloneTrain` und `AbaloneEval` in einer selektiven Ausführung auswählen, aber Sie können nicht nur `AbaloneTrain` die `AbaloneMSECond` Schritte auswählen, da diese Schritte in der DAG nicht miteinander verbunden sind. Bei nicht ausgewählten Schritten im Workflow werden bei der selektiven Ausführung die Ausgaben einer Referenz-Pipeline-Ausführung wiederverwendet, anstatt die Schritte neu auszuführen. Außerdem werden nicht ausgewählte Schritte, die den ausgewählten Schritten nachgelagert sind, nicht in einer selektiven Ausführung ausgeführt. 

Wenn Sie sich dafür entscheiden, eine Teilmenge von Zwischenschritten in Ihrer Pipeline auszuführen, können Ihre Schritte von den vorherigen Schritten abhängen. SageMaker KI benötigt eine Referenz-Pipeline-Ausführung, von der aus diese Abhängigkeiten mit Ressourcen versorgt werden können. Wenn Sie sich beispielsweise dafür entscheiden, die Schritte `AbaloneTrain` und `AbaloneEval` auszuführen, benötigen Sie die Ausgaben aus Schritt `AbaloneProcess`. Sie können entweder einen Referenzausführungs-ARN angeben oder SageMaker KI anweisen, die neueste Pipeline-Ausführung zu verwenden, was das Standardverhalten ist. Wenn Sie über eine Referenzausführung verfügen, können Sie die Laufzeitparameter auch aus Ihrem Referenzlauf erstellen und sie mit allen Überschreibungen für Ihren ausgewählten Ausführungslauf bereitstellen. Details hierzu finden Sie unter [Wiederverwenden von Laufzeitparameterwerten aus einer Referenzausführung](#pipelines-selective-ex-reuse).

Im Einzelnen geben Sie eine Konfiguration für Ihre selektive Ausführungspipeline an, die mit `SelectiveExecutionConfig` ausgeführt wird. Wenn Sie einen ARN für eine Referenz-Pipeline-Ausführung (mit dem `source_pipeline_execution_arn` Argument) angeben, verwendet SageMaker AI die Abhängigkeiten des vorherigen Schritts aus der von Ihnen angegebenen Pipeline-Ausführung. Wenn Sie keinen ARN angeben und eine letzte Pipeline-Ausführung vorhanden ist, verwendet SageMaker AI diese standardmäßig als Referenz. Wenn Sie keinen ARN angeben und nicht möchten, dass SageMaker KI Ihre letzte Pipeline-Ausführung verwendet, setzen Sie `reference_latest_execution` auf`False`. Die Pipeline-Ausführung, die SageMaker AI letztendlich als Referenz verwendet, unabhängig davon, ob es sich um die neueste oder die vom Benutzer angegebene handelt, muss sich im `Failed` Status `Success` oder befinden.

In der folgenden Tabelle wird zusammengefasst, wie SageMaker AI eine Referenzausführung auswählt.


| Der Wert des Arguments `source_pipeline_execution_arn` | Der Wert des Arguments `reference_latest_execution` | Die verwendete Referenzausführung | 
| --- | --- | --- | 
| Ein Pipeline-ARN | `True` oder nicht spezifiziert | Der angegebene Pipeline-ARN | 
| Ein Pipeline-ARN | `False` | Der angegebene Pipeline-ARN | 
| null oder nicht spezifiziert | `True` oder nicht spezifiziert | Die letzte Pipeline-Ausführung | 
| null oder nicht spezifiziert | `False` | Keine – Wählen Sie in diesem Fall Schritte ohne Upstream-Abhängigkeiten | 

Weitere Informationen zu den Konfigurationsanforderungen für die selektive Ausführung finden Sie unter [sagemaker.workflow.selective\$1execution\$1config. SelectiveExecutionConfig](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#selective-execution-config)Dokumentation.

Die folgende Beschreibung enthält Beispiele für die Fälle, in denen Sie eine Pipeline-Referenzausführung angeben, die neueste Pipeline-Ausführung als Referenz verwenden oder eine selektive Ausführung ohne Referenz-Pipeline-Ausführung ausführen möchten.

## Selektive Ausführung mit einer benutzerdefinierten Pipeline-Referenz
<a name="pipelines-selective-ex-arn"></a>

Das folgende Beispiel veranschaulicht eine selektive Ausführung der Schritte `AbaloneTrain` und `AbaloneEval` unter Verwendung einer Referenz-Pipeline-Ausführung.

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

## Selektive Ausführung mit der letzten Pipeline-Ausführung als Referenz
<a name="pipelines-selective-ex-latest"></a>

Das folgende Beispiel veranschaulicht eine selektive Ausführung der Schritte `AbaloneTrain` und `AbaloneEval` unter Verwendung der letzten Pipeline-Ausführung als Referenz. Da SageMaker AI standardmäßig die neueste Pipeline-Ausführung verwendet, können Sie das `reference_latest_execution` Argument optional auf setzen`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,
)
```

## Selektive Ausführung ohne Referenz-Pipeline
<a name="pipelines-selective-ex-none"></a>

Das folgende Beispiel zeigt eine selektive Ausführung der Schritte `AbaloneProcess` `AbaloneTrain` ohne Angabe eines Referenz-ARN und ohne Deaktivierung der Option, den letzten Pipeline-Lauf als Referenz zu verwenden. SageMaker KI erlaubt diese Konfiguration, da diese Teilmenge von Schritten nicht von vorherigen Schritten abhängt.

```
# 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,
)
```

## Wiederverwenden von Laufzeitparameterwerten aus einer Referenzausführung
<a name="pipelines-selective-ex-reuse"></a>

Sie können die Parameter aus der Ausführung Ihrer Referenzpipeline mithilfe von `build_parameters_from_execution` erstellen und das Ergebnis an Ihre selektive Ausführungspipeline übergeben. Sie können die ursprünglichen Parameter aus der Referenzausführung verwenden oder mithilfe des `parameter_value_overrides` Arguments beliebige Überschreibungen anwenden.

Das folgende Beispiel zeigt, wie Sie Parameter aus einer Referenzausführung erstellen und eine Überschreibung für den `MseThreshold` Parameter anwenden.

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

# Basisberechnung, Drifterkennung und Lebenszyklus mit ClarifyCheck und QualityCheck Schritte in Amazon SageMaker Pipelines
<a name="pipelines-quality-clarify-baseline-lifecycle"></a>

Im folgenden Thema wird erläutert, wie sich Baselines und Modellversionen in den SageMaker Amazon-Pipelines entwickeln, wenn die Schritte und verwendet werden. [`ClarifyCheck`](build-and-manage-steps-types.md#step-type-clarify-check) [`QualityCheck`](build-and-manage-steps-types.md#step-type-quality-check)

Für diesen `ClarifyCheck` Schritt ist eine Baseline eine einzelne Datei, die sich in den Schritteigenschaften mit dem Suffix `constraints` befindet. Für den `QualityCheck` Schritt ist eine Baseline eine Kombination aus zwei Dateien, die sich in den Schritteigenschaften befinden: eine mit dem Suffix `statistics` und die andere mit dem Suffix `constraints`. In den folgenden Themen behandeln wir diese Eigenschaften mit einem Präfix, das beschreibt, wie sie verwendet werden, was sich auf das Basisverhalten und den Lebenszyklus in diesen beiden Pipeline-Schritten auswirkt. Beispielsweise berechnet der `ClarifyCheck` Schritt immer die neuen Basislinien in der `CalculatedBaselineConstraints` Eigenschaft und weist sie zu, und der `QualityCheck` Schritt macht dasselbe in den Eigenschaften `CalculatedBaselineConstraints` und `CalculatedBaselineStatistics`.

## Basisberechnung und Registrierung für und Schritte ClarifyCheck QualityCheck
<a name="pipelines-quality-clarify-baseline-calculations"></a>

Sowohl in den `ClarifyCheck` Schritten als auch in den `QualityCheck` Schritten werden immer neue Basislinien auf der Grundlage von Schritteingaben während der Ausführung des zugrundeliegenden Verarbeitungsauftrags berechnet. Auf diese neu berechneten Basislinien wird über die Eigenschaften mit dem Präfix `CalculatedBaseline` zugegriffen. Sie können diese Eigenschaften als `ModelMetrics` Ihres Modellpakets in die [Modellschritt](build-and-manage-steps-types.md#step-type-model) aufnehmen. Dieses Modellpaket kann mit 5 verschiedenen Baselines registriert werden. Sie können es mit einem Prüftyp für jeden Prüftyp registrieren: Datenverzerrung, Modellabweichung und Modellerklärbarkeit durch die Ausführung des `ClarifyCheck` Schritts und Modellqualität sowie Datenqualität aufgrund der Ausführung des `QualityCheck` Schritts. Der `register_new_baseline` Parameter bestimmt den Wert, der in den Eigenschaften mit dem Präfix `BaselineUsedForDriftCheck` festgelegt wird, nachdem ein Schritt ausgeführt wurde.

Die folgende Tabelle mit möglichen Anwendungsfällen zeigt verschiedene Verhaltensweisen, die sich aus den Schrittparametern ergeben, die Sie für die Schritte `ClarifyCheck` und `QualityCheck` festlegen können:


| Möglicher Anwendungsfall, den Sie bei der Auswahl dieser Konfiguration in Betracht ziehen könnten  | `skip_check` / `register_new_baseline` | Führt STEP einen Drift-Check durch? | Wert der Schritteigenschaft `CalculatedBaseline` | Wert der Schritteigenschaft `BaselineUsedForDriftCheck` | 
| --- | --- | --- | --- | --- | 
| Sie führen regelmäßiges Neutraining durch, bei denen Prüfungen aktiviert sind, um eine neue Modellversion zu erhalten, *möchten aber die vorherigen Baselines* als `DriftCheckBaselines` in der Modellregistrierung für Ihre neue Modellversion übernehmen. | False/ False | Die Driftprüfung wird anhand vorhandener Baselines ausgeführt | Neue Baselines, die durch Ausführen des Schritts berechnet werden | Basiswert aus dem zuletzt zugelassenen Modell in der Modellregistrierung oder aus dem als Schrittparameter angegebenen Basiswert | 
| Sie führen regelmäßiges Neutraining mit aktivierten Prüfungen durch, um eine neue Modellversion zu erhalten, *möchten aber die `DriftCheckBaselines` in der Modellregistrierung mit den neu berechneten Basiswerten* für Ihre neue Modellversion aktualisieren. | False/ True | Die Driftprüfung wird anhand vorhandener Baselines ausgeführt | Neue Baselines, die durch Ausführen des Schritts berechnet werden | Neu berechneter Basiswert durch Ausführen des Schritts (Wert der Eigenschaft CalculatedBaseline) | 
| Sie initiieren die Pipeline, um eine neue Modellversion neu zu trainieren, weil Amazon SageMaker Model Monitor auf einem Endpunkt einen Verstoß für eine bestimmte Art von Prüfung erkannt hat, und Sie möchten *diese Art der Prüfung gegenüber der vorherigen Baseline überspringen, aber die vorherige Baseline wie `DriftCheckBaselines` in der Modellregistrierung für Ihre neue Modellversion übernehmen*. | True/ False | Kein Abweichungscheck | Neue Baselines wurden durch Ausführen berechnet | Basiswert aus dem letzten genehmigten Modell in der Modellregistrierung oder aus dem als Schrittparameter angegebenen Basiswert | 
| Dies ist in den folgenden Fällen möglich: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html)  | True/ True | Kein Abweichungscheck | Neue Basislinien, die durch Ausführen des Schritts berechnet wurden | Neu berechneter Basiswert durch Ausführen des Schritts (Wert der Eigenschaft CalculatedBaseline) | 

**Anmerkung**  
Wenn Sie in Ihrer Einschränkung wissenschaftliche Schreibweise verwenden, müssen Sie die Einschränkung in eine Gleitkommazahl umwandeln. Ein Beispiel für ein Vorverarbeitungsskript finden Sie unter [Erstellen einer Modellqualitätsbasislinie](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-baseline.html).

Wenn Sie ein Modell mit [Modellschritt](build-and-manage-steps-types.md#step-type-model) registrieren, können Sie die `BaselineUsedForDriftCheck` Eigenschaft als `DriftCheckBaselines` registrieren. Diese Basisdateien können dann von Model Monitor für Modell- und Datenqualitätsprüfungen verwendet werden. Darüber hinaus können diese Baselines auch im `QualityCheck` Schritt ClarifyCheckStep und verwendet werden, um neu trainierte Modelle mit den vorhandenen Modellen zu vergleichen, die in der Modellregistrierung für future Pipeline-Läufe registriert sind.

## Erkennung von Abweichungen im Vergleich zu früheren Baselines in Pipelines
<a name="pipelines-quality-clarify-baseline-drift-detection"></a>

Im Falle des `QualityCheck`-Schrittes, wenn Sie die Pipeline für regelmäßiges Neutraining initiieren, um eine neue Modellversion zu erhalten, möchten Sie den Trainingsschritt möglicherweise nicht ausführen, wenn die Datenqualität und die Datenverzerrung [Schema für Verstöße (Datei constraint\$1violations.json)](model-monitor-interpreting-violations.md) auf den Grundlinien Ihrer vorherigen genehmigten Modellversion ist. Möglicherweise möchten Sie die neu trainierte Modellversion auch nicht registrieren, wenn die Qualität, die Modellabweichung oder die Erklärbarkeit des Modells bei der Ausführung des `ClarifyCheck`-Schritts gegen die registrierte Basisversion Ihrer vorherigen genehmigten Modellversion verstoßen. In diesen Fällen können Sie die gewünschten Prüfungen aktivieren, indem Sie die Eigenschaft `skip_check` des entsprechenden Prüfschritts auf `False` setzen, was dazu führt, dass `ClarifyCheck` und der `QualityCheck`-Schritt fehlschlagen, wenn ein Verstoß gegen frühere Baselines festgestellt wird. Der Pipeline-Prozess wird dann nicht fortgesetzt, so dass das von der Basislinie abweichende Modell nicht registriert wird. – `ClarifyCheck`und `QualityCheck`-Schritte sind in der Lage, `DriftCheckBaselines` der letzten genehmigten Modellversion einer bestimmten Modellpaketgruppe zu erhalten, mit der verglichen werden kann. Frühere Basispläne können auch direkt bereitgestellt werden `supplied_baseline_constraints` (zusätzlich, `supplied_baseline_statistics` ob es sich um einen `QualityCheck` Schritt handelt) und haben immer Vorrang vor allen Basisplänen, die aus der Modellpaketgruppe abgerufen wurden. 

## Lebenszyklus und Weiterentwicklung von Baselines und Modellversionen mit Pipelines
<a name="pipelines-quality-clarify-baseline-evolution"></a>

Indem Sie `register_new_baseline` Ihres `ClarifyCheck` und `QualityCheck`-Schrittes auf `False` setzen, ist Ihre vorherige Grundlinie über das Schritt-Eigenschaftspräfix `BaselineUsedForDriftCheck` zugänglich. Sie können diese Baselines dann als `DriftCheckBaselines` in der neuen Modellversion registrieren, wenn Sie ein Modell mit [Modellschritt](build-and-manage-steps-types.md#step-type-model) registrieren. Sobald Sie diese neue Modellversion in der Modellregistrierung genehmigen, wird der `DriftCheckBaseline` in dieser Modellversion für die Schritte `ClarifyCheck` und `QualityCheck` im nächsten Pipeline-Prozess verfügbar. Wenn Sie die Basislinie einer bestimmten Prüfungsart für zukünftige Modellversionen aktualisieren möchten, können Sie `register_new_baseline` auf `True` setzen, so dass die Eigenschaften mit dem Präfix `BaselineUsedForDriftCheck` zur neu berechneten Basislinie werden. Auf diese Weise können Sie Ihre bevorzugten Basislinien für ein in der future trainiertes Modell beibehalten oder die Basislinien bei Bedarf für Driftchecks aktualisieren und so Ihre Basisentwicklung und Ihren Lebenszyklus während Ihrer Modelltrainingsiterationen verwalten. 

Das folgende Diagramm zeigt einen model-version-centric Überblick über die Basisentwicklung und den Lebenszyklus.

![\[Ein model-version-centric Überblick über die Basisentwicklung und den Lebenszyklus.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/pipelines/Baseline-Lifecycle.png)


# Planen von Pipeline-Läufen
<a name="pipeline-eventbridge"></a>

[Sie können Ihre Amazon SageMaker Pipelines-Ausführungen mit Amazon planen. EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) Amazon SageMaker Pipelines wird in [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) als Ziel unterstützt. Auf diese Weise können Sie die Ausführung Ihrer Modellerstellungspipeline auf der Grundlage eines beliebigen Ereignisses in Ihrem Event-Bus einleiten. Mit EventBridge können Sie Ihre Pipeline-Ausführungen automatisieren und automatisch auf Ereignisse wie Änderungen des Trainingsjobs oder des Endpunktstatus reagieren. Zu den Ereignissen gehören das Hochladen einer neuen Datei in Ihren Amazon S3 S3-Bucket, eine Änderung des Status Ihres Amazon SageMaker AI-Endpunkts aufgrund von Drift und Themen rund um *Amazon Simple Notification Service* (SNS).

Die folgenden Pipeline-Aktionen können automatisch initiiert werden:  
+  `StartPipelineExecution` 

Weitere Informationen zur Planung von SageMaker KI-Jobs finden Sie unter [Automatisieren von SageMaker KI mit Amazon EventBridge](https://docs.aws.amazon.com/sagemaker/latest/dg/automating-sagemaker-with-eventbridge.html). 

**Topics**
+ [Planen Sie eine Pipeline mit Amazon EventBridge](#pipeline-eventbridge-schedule)
+ [Planen Sie eine Pipeline mit dem SageMaker Python-SDK](#build-and-manage-scheduling)

## Planen Sie eine Pipeline mit Amazon EventBridge
<a name="pipeline-eventbridge-schedule"></a>

Um eine Pipeline-Ausführung mit Amazon CloudWatch Events zu starten, müssen Sie eine EventBridge [Regel](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_Rule.html) erstellen. Wenn Sie eine Regel für Ereignisse erstellen, geben Sie eine Zielaktion an, die ausgeführt werden soll, wenn EventBridge ein Ereignis eintrifft, das der Regel entspricht. Wenn ein Ereignis der Regel entspricht, wird das Ereignis an das angegebene Ziel EventBridge gesendet und die in der Regel definierte Aktion eingeleitet. 

 Die folgenden Tutorials zeigen, wie Sie die Ausführung einer Pipeline EventBridge mithilfe der EventBridge Konsole oder der AWS CLI planen.  

### Voraussetzungen
<a name="pipeline-eventbridge-schedule-prerequisites"></a>
+ Eine Rolle, die mit der `SageMaker::StartPipelineExecution` Genehmigung übernommen werden EventBridge kann. Diese Rolle kann automatisch erstellt werden, wenn Sie eine Regel von der EventBridge Konsole aus erstellen. Andernfalls müssen Sie diese Rolle selbst erstellen. Informationen zum Erstellen einer SageMaker KI-Rolle finden Sie unter [SageMaker Rollen](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
+ Eine Amazon SageMaker AI-Pipeline muss geplant werden. Informationen zum Erstellen einer Amazon SageMaker AI-Pipeline finden Sie unter [Definieren einer Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/define-pipeline.html).

### Erstellen Sie eine EventBridge Regel mithilfe der EventBridge Konsole
<a name="pipeline-eventbridge-schedule-console"></a>

 Das folgende Verfahren zeigt, wie Sie eine EventBridge Regel mithilfe der EventBridge Konsole erstellen.  

1. Navigieren Sie zur [EventBridge -Konsole](https://console.aws.amazon.com/events). 

1. Wählen Sie auf der linken Seite **Regeln** aus. 

1.  Wählen Sie `Create Rule`. 

1. Geben Sie für Ihre Regel einen Namen und eine Beschreibung ein.

1.  Wählen Sie aus, wie Sie diese Regel initiieren möchten. Sie haben folgende Möglichkeiten für Ihre Regel: 
   + **Ereignismuster**: Ihre Regel wird ausgelöst, wenn ein Ereignis eintritt, das dem Muster entspricht. Sie können ein vordefiniertes Muster wählen, das einem bestimmten Ereignistyp entspricht, oder Sie können ein benutzerdefiniertes Muster erstellen. Wenn Sie ein vordefiniertes Muster auswählen, können Sie das Muster bearbeiten, um es anzupassen. Weitere Informationen zu Ereignismustern finden Sie unter [Ereignismuster in CloudWatch Ereignissen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html). 
   + **Zeitplan**: Ihre Regel wird regelmäßig nach einem bestimmten Zeitplan initiiert. Sie können einen festen Tarif verwenden, der regelmäßig für eine bestimmte Anzahl von Minuten, Stunden oder Wochen initiiert wird. Sie können auch einen [Cron-Ausdruck](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) verwenden, um einen detaillierteren Zeitplan zu erstellen, z. B. „jeden ersten Montag im Monat um 8 Uhr.“ Der Zeitplan wird für benutzerdefinierte Ereignisse oder Partner-Ereignisse nicht unterstützt. 

1. Wählen Sie den gewünschten Eventbus aus. 

1. Wählen Sie das/die Ziel/e aus, die aufgerufen werden sollen, wenn ein Ereignis Ihrem Ereignismuster entspricht oder wenn der Zeitplan initiiert wird. Sie können bis zu 5 Ziele pro Regel hinzufügen. Wählen Sie `SageMaker Pipeline` in der Dropdown-Liste für das Ziel aus. 

1. Wählen Sie die Pipeline, die Sie initiieren möchten, aus der Pipeline-Dropdown-Liste aus. 

1. Fügen Sie mithilfe eines Namens- und Wertepaars Parameter hinzu, die an Ihre Pipeline-Ausführung übergeben werden sollen. Die Parameterwerte können statisch oder dynamisch sein. Weitere Informationen zu den Amazon SageMaker AI Pipeline-Parametern finden Sie unter [AWS::Events::Rule SagemakerPipelineParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-pipeline.html#aws-resource-sagemaker-pipeline-properties).
   + Statische Werte werden jedes Mal, wenn die Pipeline initiiert wird, an die Pipeline-Ausführung übergeben. Wenn beispielsweise in der Parameterliste angegeben `{"Name": "Instance_type", "Value": "ml.4xlarge"}` ist, wird es bei `StartPipelineExecutionRequest` jeder EventBridge Initiierung der Pipeline als Parameter übergeben. 
   + Dynamische Werte werden mithilfe eines JSON-Pfads angegeben. EventBridge analysiert den Wert aus einer Ereignisnutzlast und übergibt ihn dann an die Pipeline-Ausführung. Beispiel: *`$.detail.param.value`* 

1. Wählen Sie die Rolle aus, die für diese Regel verwendet werden soll. Sie können entweder eine bereits vorhandene Rolle verwenden oder eine neue Rolle erstellen. 

1. (Optional) Tags hinzufügen. 

1. Wählen Sie `Create` diese Option aus, um Ihre Regel fertigzustellen. 

 Ihre Regel ist jetzt gültig und bereit, Ihre Pipeline-Ausführungen zu initiieren. 

### Erstellen Sie eine EventBridge Regel mit dem [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/events/index.html)
<a name="pipeline-eventbridge-schedule-cli"></a>

 Das folgende Verfahren zeigt, wie Sie eine EventBridge Regel mit dem erstellen AWS CLI. 

1. Erstellen Sie eine Regel, die initiiert werden soll. Wenn Sie eine EventBridge Regel mithilfe von erstellen AWS CLI, haben Sie zwei Optionen, wie Ihre Regel initiiert wird: Ereignismuster und Zeitplan.
   +  **Ereignismuster**: Ihre Regel wird ausgelöst, wenn ein Ereignis eintritt, das dem Muster entspricht. Sie können ein vordefiniertes Muster wählen, das einem bestimmten Ereignistyp entspricht, oder Sie können ein benutzerdefiniertes Muster erstellen. Wenn Sie ein vordefiniertes Muster auswählen, können Sie das Muster bearbeiten, um es anzupassen.  Mit dem folgenden Befehl können Sie eine Regel mit einem Ereignismuster erstellen: 

     ```
     aws events put-rule --name <RULE_NAME> ----event-pattern <YOUR_EVENT_PATTERN> --description <RULE_DESCRIPTION> --role-arn <ROLE_TO_EXECUTE_PIPELINE> --tags <TAGS>
     ```
   +  **Zeitplan**: Ihre Regel wird regelmäßig nach einem bestimmten Zeitplan initiiert. Sie können einen festen Tarif verwenden, der regelmäßig für eine bestimmte Anzahl von Minuten, Stunden oder Wochen initiiert wird. Sie können auch einen Cron-Ausdruck verwenden, um einen detaillierteren Zeitplan zu erstellen, z. B. „jeden ersten Montag im Monat um 8 Uhr“. Der Zeitplan wird für benutzerdefinierte Ereignisse oder Partner-Ereignisse nicht unterstützt. Sie können eine Regel mit Zeitplan mit dem folgenden Befehl erstellen: 

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

1. Fügen Sie Ziele hinzu, die aufgerufen werden sollen, wenn ein Ereignis Ihrem Ereignismuster entspricht oder wenn der Zeitplan initiiert wird. Sie können bis zu 5 Ziele pro Regel hinzufügen.  Für jedes Ziel müssen Sie Folgendes angeben:  
   +  ARN: Der Ressourcen-ARN Ihrer Pipeline. 
   +  Rollen-ARN: Der ARN der Rolle EventBridge sollte die Ausführung der Pipeline übernehmen. 
   +  Parameter: Zu übergebende Amazon SageMaker AI-Pipeline-Parameter. 

1. Führen Sie den folgenden Befehl aus, um mithilfe von [put-targets](https://docs.aws.amazon.com/cli/latest/reference/events/put-targets.html) eine Amazon SageMaker AI-Pipeline als Ziel an Ihre Regel zu übergeben: 

   ```
   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>}]} }]"] 
   ```

## Planen Sie eine Pipeline mit dem SageMaker Python-SDK
<a name="build-and-manage-scheduling"></a>

In den folgenden Abschnitten erfahren Sie, wie Sie mit dem SageMaker Python-SDK Berechtigungen für den Zugriff auf EventBridge Ressourcen einrichten und Ihren Pipeline-Zeitplan erstellen. 

### Erforderliche Berechtigungen
<a name="build-and-manage-scheduling-permissions"></a>

Sie benötigen die erforderlichen Berechtigungen, um den Pipeline-Scheduler zu verwenden. Führen Sie die folgenden Schritte aus, um Ihre Berechtigungen einzurichten.

1. Fügen Sie der IAM-Rolle, die zum Erstellen der Pipeline-Trigger verwendet wurde, die folgende Richtlinie für Mindestberechtigungen hinzu, oder verwenden Sie die AWS verwaltete Richtlinie`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. Stellen Sie eine Vertrauensbeziehung mit her, EventBridge indem Sie den Dienstprinzipal `scheduler.amazonaws.com` zur Vertrauensrichtlinie dieser Rolle hinzufügen. Stellen Sie sicher, dass Sie der Ausführungsrolle die folgende Vertrauensrichtlinie zuordnen, wenn Sie das Notebook in SageMaker Studio starten.

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

****  

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

------

### Erstellen eines Pipeline-Zeitplans
<a name="build-and-manage-scheduling-create"></a>

Mithilfe des `PipelineSchedule` Konstruktors können Sie eine Pipeline so planen, dass sie einmal oder in einem festgelegten Intervall ausgeführt wird. Ein Pipelineplan muss vom Typ `at``rate`, oder `cron` sein. Diese Gruppe von Zeitplanungstypen ist eine Erweiterung der [EventBridge Planungsoptionen](https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html). Weitere Informationen zur Verwendung der `PipelineSchedule` Klasse finden Sie unter [sagemaker.workflow.triggers. PipelineSchedule](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#pipeline-schedule). Das folgende Beispiel zeigt, wie Sie jeden Planungstyp mit erstellen`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"
)
```

**Anmerkung**  
Wenn Sie einen einmaligen Zeitplan erstellen und auf die aktuelle Uhrzeit zugreifen müssen, verwenden Sie `datetime.utcnow()` statt`datetime.now()`. Letzteres speichert den aktuellen Zonenkontext nicht und führt zu einer falschen Zeitangabe EventBridge.

### Hängen Sie den Trigger an Ihre Pipeline an
<a name="build-and-manage-scheduling-attach"></a>

Um Ihren an Ihre `PipelineSchedule` Pipeline anzuhängen, rufen Sie den `put_triggers` Aufruf für Ihr erstelltes Pipeline-Objekt mit einer Liste von Triggern auf. Wenn Sie einen Antwort-ARN erhalten, haben Sie den Zeitplan erfolgreich in Ihrem Konto erstellt und EventBridge beginnen, die Zielpipeline zum angegebenen Zeitpunkt oder mit der angegebenen Rate aufzurufen. Sie müssen eine Rolle mit den richtigen Berechtigungen angeben, um Trigger an eine übergeordnete Pipeline anzuhängen. Wenn Sie keine angeben, ruft Pipelines die Standardrolle, die zum Erstellen der Pipeline verwendet wurde, aus der [Konfigurationsdatei](https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-decorator-config.html) ab.

Das folgende Beispiel zeigt, wie ein Zeitplan an eine Pipeline angehängt wird.

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

### Beschreiben Sie die aktuellen Auslöser
<a name="build-and-manage-scheduling-describe"></a>

Um Informationen über Ihre erstellten Pipeline-Trigger abzurufen, können Sie die `describe_trigger()` API mit dem Namen des Triggers aufrufen. Dieser Befehl gibt Details zum erstellten Zeitplanausdruck zurück, wie beispielsweise die Startzeit, den Aktivierungsstatus und andere nützliche Informationen. Der folgende Ausschnitt zeigt einen Beispielaufruf:

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

### Bereinigungs-Trigger-Ressourcen
<a name="build-and-manage-scheduling-clean"></a>

Bevor Sie Ihre Pipeline löschen, sollten Sie vorhandene Auslöser bereinigen, um ein Ressourcenleck in Ihrem Konto zu vermeiden. Sie sollten die Trigger löschen, bevor Sie die übergeordnete Pipeline zerstören. Sie können Ihre Trigger löschen, indem Sie eine Liste mit Triggernamen an die `delete_triggers` API übergeben. Das folgende Snippet zeigt, wie Sie Trigger löschen.

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

**Anmerkung**  
Beachten Sie die folgenden Einschränkungen, wenn Sie Ihre Trigger löschen:  
Die Option zum Löschen der Trigger durch Angabe von Triggernamen ist nur im SageMaker Python-SDK verfügbar. Durch das Löschen der Pipeline in der CLI oder bei einem `DeletePipeline` API-Aufruf werden Ihre Trigger nicht gelöscht. Infolgedessen werden die Trigger verwaist und die SageMaker KI versucht, einen Run für eine nicht existierende Pipeline zu starten.
Wenn Sie eine andere Notebook-Sitzung verwenden oder das Pipeline-Ziel bereits gelöscht haben, bereinigen Sie außerdem verwaiste Zeitpläne über die [Scheduler-CLI oder EventBridge -Konsole](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/scheduler/delete-schedule.html).

# Integration von Amazon SageMaker Experiments
<a name="pipelines-experiments"></a>

Amazon SageMaker Pipelines ist eng mit Amazon SageMaker Experiments integriert. Wenn Pipelines eine Pipeline erstellt und ausführt, werden standardmäßig die folgenden SageMaker Experiments-Entitäten erstellt, sofern sie nicht existieren:
+ Ein Experiment für die Pipeline
+ Eine Ausführungsgruppe für jede Ausführung der Pipeline
+ Ein Lauf, der der Ausführungsgruppe für jeden SageMaker AI-Job hinzugefügt wird, der in einem Pipeline-Ausführungsschritt erstellt wurde

Sie können Metriken wie die Genauigkeit des Modelltrainings über mehrere Pipeline-Ausführungen hinweg vergleichen, genauso wie Sie solche Metriken in mehreren Ausführungsgruppen eines SageMaker KI-Modell-Trainingsexperiments vergleichen können.

Das folgende Beispiel zeigt die relevanten Parameter der [Pipeline-Klasse](https://github.com/aws/sagemaker-python-sdk/blob/v2.41.0/src/sagemaker/workflow/pipeline.py) im [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

```
Pipeline(
    name="MyPipeline",
    parameters=[...],
    pipeline_experiment_config=PipelineExperimentConfig(
      ExecutionVariables.PIPELINE_NAME,
      ExecutionVariables.PIPELINE_EXECUTION_ID
    ),
    steps=[...]
)
```

Wenn Sie nicht möchten, dass eine Experiment- und Laufgruppe für die Pipeline erstellt wird, setzen Sie `pipeline_experiment_config` auf `None`.

**Anmerkung**  
Die Integration von Experimenten wurde im Amazon SageMaker Python SDK v2.41.0 eingeführt.

Je nachdem, was Sie für die Parameter `ExperimentName` und `TrialName` von `pipeline_experiment_config` angeben, gelten die folgenden Benennungsregeln:
+ Wenn Sie `ExperimentName` nicht angeben, wird die Pipeline `name` für den Experimentnamen verwendet.

  Wenn Sie `ExperimentName` angeben, wird es für den Namen des Experiments verwendet. Wenn ein Experiment mit diesem Namen existiert, werden die von der Pipeline erstellten Versuchsgruppen dem vorhandenen Experiment hinzugefügt. Wenn ein Experiment mit diesem Namen nicht existiert, wird ein neues Experiment erstellt.
+ Wenn Sie `TrialName` nicht angeben, wird die Pipeline-Ausführungs-ID für den Namen der Ausführungsgruppe verwendet.

  Wenn Sie `TrialName` angeben, wird sie für den Namen der Ausführungsgruppe verwendet. Wenn eine Ausführungsgruppe mit diesem Namen existiert, werden die von der Pipeline erstellten Verläufe der vorhandenen Ausführungsgruppe hinzugefügt. Wenn eine Ausführungsgruppe mit diesem Namen nicht existiert, wird eine neue Ausführungsgruppe erstellt.

**Anmerkung**  
Die Experiment-Entitäten werden nicht gelöscht, wenn die Pipeline, die die Entitäten erstellt hat, gelöscht wird. Sie können die SageMaker Experiments-API verwenden, um die Entitäten zu löschen.

Informationen zum Anzeigen der mit einer Pipeline verknüpften SageMaker AI Experiment-Entitäten finden Sie unter[Greifen Sie auf Versuchsdaten aus einer Pipeline zu](pipelines-studio-experiments.md). Weitere Informationen zu SageMaker Experimenten finden Sie unter[SageMaker Amazon-Experimente in Studio Classic](experiments.md).

Die folgenden Abschnitte zeigen Beispiele für die vorherigen Regeln und wie sie in der Pipeline-Definitionsdatei dargestellt werden. Weitere Informationen zu Pipeline-Definitionsdateien finden Sie unter [Übersicht über die Pipelines](pipelines-overview.md).

**Topics**
+ [Standardverhalten](pipelines-experiments-default.md)
+ [Deaktivieren Sie die Integration von Experimenten](pipelines-experiments-none.md)
+ [Geben Sie einen benutzerdefinierten Experimentnamen an](pipelines-experiments-custom-experiment.md)
+ [Geben Sie einen benutzerdefinierten Namen für die Ausführungsgruppe an](pipelines-experiments-custom-trial.md)

# Standardverhalten
<a name="pipelines-experiments-default"></a>

**Erstellen Sie eine Pipeline**

Das Standardverhalten beim Erstellen einer SageMaker KI-Pipeline besteht darin, sie automatisch in SageMaker Experimente zu integrieren. Wenn Sie keine benutzerdefinierte Konfiguration angeben, erstellt SageMaker AI ein Experiment mit demselben Namen wie die Pipeline, eine Ausführungsgruppe für jede Ausführung der Pipeline mit der Pipeline-Ausführungs-ID als Namen und einzelne Läufe innerhalb jeder Ausführungsgruppe für jeden SageMaker AI-Job, der als Teil der Pipeline-Schritte gestartet wird. Sie können Metriken verschiedener Pipeline-Ausführungen nahtlos verfolgen und vergleichen, ähnlich wie Sie ein Modelltrainingsexperiment analysieren würden. Im folgenden Abschnitt wird dieses Standardverhalten bei der Definition einer Pipeline ohne explizite Konfiguration der Experimentintegration veranschaulicht.

Das `pipeline_experiment_config` ist weggelassen. `ExperimentName` ist standardmäßig auf die Pipeline `name` eingestellt. `TrialName` ist standardmäßig die Ausführungs-ID.

```
pipeline_name = f"MyPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[...],
    steps=[step_train]
)
```

**Pipeline-Definitionsdatei**

```
{
  "Version": "2020-12-01",
  "Parameters": [
    {
      "Name": "InputDataSource"
    },
    {
      "Name": "InstanceCount",
      "Type": "Integer",
      "DefaultValue": 1
    }
  ],
  "PipelineExperimentConfig": {
    "ExperimentName": {"Get": "Execution.PipelineName"},
    "TrialName": {"Get": "Execution.PipelineExecutionId"}
  },
  "Steps": [...]
}
```

# Deaktivieren Sie die Integration von Experimenten
<a name="pipelines-experiments-none"></a>

**Erstellen Sie eine Pipeline**

Sie können die Integration Ihrer Pipeline mit SageMaker Experimenten deaktivieren, indem Sie den `pipeline_experiment_config` Parameter `None` bei der Definition Ihrer Pipeline auf setzen. Auf diese Weise erstellt SageMaker KI nicht automatisch ein Experiment, führt Gruppen oder einzelne Läufe durch, um Metriken und Artefakte im Zusammenhang mit Ihren Pipeline-Ausführungen zu verfolgen. Im folgenden Beispiel wird der Pipeline-Konfigurationsparameter auf gesetzt`None`.

```
pipeline_name = f"MyPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[...],
    pipeline_experiment_config=None,
    steps=[step_train]
)
```

**Pipeline-Definitionsdatei**

Dies entspricht dem vorherigen Standardbeispiel, ohne die `PipelineExperimentConfig`.

# Geben Sie einen benutzerdefinierten Experimentnamen an
<a name="pipelines-experiments-custom-experiment"></a>

Das Standardverhalten besteht zwar darin, den Pipeline-Namen als Experimentnamen in SageMaker Experimenten zu verwenden, Sie können dies jedoch überschreiben und stattdessen einen benutzerdefinierten Experimentnamen angeben. Dies kann nützlich sein, wenn Sie mehrere Pipeline-Ausführungen unter demselben Experiment gruppieren möchten, um die Analyse und den Vergleich zu vereinfachen. Als Name der Ausführungsgruppe wird weiterhin standardmäßig die Pipeline-Ausführungs-ID verwendet, sofern Sie nicht auch explizit einen benutzerdefinierten Namen dafür festlegen. Im folgenden Abschnitt wird gezeigt, wie Sie eine Pipeline mit einem benutzerdefinierten Experimentnamen erstellen und dabei den Namen der Ausführungsgruppe als Standard-Ausführungs-ID beibehalten.

**Erstellen Sie eine Pipeline**

```
pipeline_name = f"MyPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[...],
    pipeline_experiment_config=PipelineExperimentConfig(
      "CustomExperimentName",
      ExecutionVariables.PIPELINE_EXECUTION_ID
    ),
    steps=[step_train]
)
```

**Pipeline-Definitionsdatei**

```
{
  ...,
  "PipelineExperimentConfig": {
    "ExperimentName": "CustomExperimentName",
    "TrialName": {"Get": "Execution.PipelineExecutionId"}
  },
  "Steps": [...]
}
```

# Geben Sie einen benutzerdefinierten Namen für die Ausführungsgruppe an
<a name="pipelines-experiments-custom-trial"></a>

Sie können nicht nur einen benutzerdefinierten Experimentnamen festlegen, sondern auch einen benutzerdefinierten Namen für die Ausführungsgruppen angeben, die von SageMaker Experiments während der Pipeline-Ausführung erstellt wurden. An diesen Namen wird die Ausführungs-ID der Pipeline angehängt, um die Eindeutigkeit zu gewährleisten. Sie können einen benutzerdefinierten Namen für die Ausführungsgruppe angeben, um verwandte Pipeline-Läufe innerhalb desselben Experiments zu identifizieren und zu analysieren. Im folgenden Abschnitt wird gezeigt, wie Sie eine Pipeline mit einem benutzerdefinierten Namen für die Ausführungsgruppe definieren und dabei den Standardnamen der Pipeline als Namen für das Experiment verwenden.

**Erstellen Sie eine Pipeline**

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

**Pipeline-Definitionsdatei**

```
{
  ...,
  "PipelineExperimentConfig": {
    "ExperimentName": {"Get": "Execution.PipelineName"},
    "TrialName": {
      "On": "-",
      "Values": [
         "CustomTrialName",
         {"Get": "Execution.PipelineExecutionId"}
       ]
    }
  },
  "Steps": [...]
}
```

# Führen Sie Pipelines im lokalen Modus aus
<a name="pipelines-local-mode"></a>

SageMaker Der lokale Modus von Pipelines ist eine einfache Möglichkeit, Ihre Trainings-, Verarbeitungs- und Inferenzskripts sowie die Laufzeitkompatibilität der [Pipeline-Parameter zu testen, bevor Sie Ihre Pipeline](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#pipeline-parameters) auf dem verwalteten SageMaker AI-Service ausführen. Im lokalen Modus können Sie Ihre SageMaker KI-Pipeline lokal mit einem kleineren Datensatz testen. Dies ermöglicht ein schnelles und einfaches Debuggen von Fehlern in Benutzerskripten und der Pipeline-Definition selbst, ohne dass die Kosten für die Nutzung des verwalteten Services anfallen. Das folgende Thema zeigt Ihnen, wie Sie Pipelines lokal definieren und ausführen.

Der lokale Modus von Pipelines nutzt den [lokalen Modus von SageMaker KI-Jobs](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode) unter der Haube. Dies ist eine Funktion im SageMaker Python-SDK, mit der Sie integrierte oder benutzerdefinierte SageMaker KI-Images lokal mithilfe von Docker-Containern ausführen können. Der lokale Modus von Pipelines basiert auf dem lokalen Modus für SageMaker KI-Jobs. Daher können Sie erwarten, dieselben Ergebnisse zu sehen, als ob Sie diese Jobs separat ausführen würden. Beispielsweise verwendet der lokale Modus immer noch Amazon S3, um Modellartefakte hochzuladen und Ausgaben zu verarbeiten. Wenn Sie möchten, dass durch lokale Jobs generierte Daten auf einer lokalen Festplatte gespeichert werden, können Sie das unter [Lokaler Modus](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode) beschriebene Setup verwenden.

Der lokale Pipeline-Modus unterstützt derzeit die folgenden Schritttypen:
+ [Schritt des Trainings](build-and-manage-steps-types.md#step-type-training)
+ [Verarbeitungsschritt](build-and-manage-steps-types.md#step-type-processing)
+ [Schritt Transformieren](build-and-manage-steps-types.md#step-type-transform)
+ [Model-Schritt](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-model-create) (nur mit Argumenten vom Typ „Modell erstellen“)
+ [Bedingungsschritt](build-and-manage-steps-types.md#step-type-condition)
+ [Schritt „Fehlschlagen“](build-and-manage-steps-types.md#step-type-fail)

Im Gegensatz zum Managed Pipelines Service, der die parallele Ausführung mehrerer Schritte mithilfe der [Parallelism Configuration ermöglicht, führt der lokale Pipeline-Executor](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#parallelism-configuration) die Schritte sequentiell aus. Daher kann die allgemeine Ausführungsleistung einer lokalen Pipeline schlechter sein als die einer Pipeline, die in der Cloud läuft. Dies hängt hauptsächlich von der Größe des Datensatzes, dem Algorithmus sowie der Leistung Ihres lokalen Computers ab. [Beachten Sie auch, dass Pipelines, die im lokalen Modus ausgeführt werden, nicht in SageMaker Experimenten aufgezeichnet werden.](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-experiments.html)

**Anmerkung**  
Der lokale Modus von Pipelines ist nicht kompatibel mit SageMaker KI-Algorithmen wie. XGBoost Wenn Sie diese Algorithmen verwenden möchten, müssen Sie diese im [Skriptmodus](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-script-mode/sagemaker-script-mode.html) verwenden.

Um eine Pipeline lokal ausführen zu können, müssen die `sagemaker_session` Felder, die den Pipeline-Schritten und der Pipeline selbst zugeordnet sind, vom Typ `LocalPipelineSession` sein. Das folgende Beispiel zeigt, wie Sie eine SageMaker KI-Pipeline definieren können, die lokal ausgeführt wird.

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

Sobald Sie bereit sind, die Pipeline auf dem verwalteten SageMaker Pipelines-Service auszuführen, können Sie dies tun, indem Sie den vorherigen Codeausschnitt durch `PipelineSession` (wie im folgenden Codebeispiel gezeigt) ersetzen `LocalPipelineSession` und den Code erneut ausführen.

```
from sagemaker.workflow.pipeline_context import PipelineSession

pipeline_session = PipelineSession()
```

# Fehlerbehebung bei Amazon SageMaker Pipelines
<a name="pipelines-troubleshooting"></a>

Bei der Verwendung von Amazon SageMaker Pipelines können aus verschiedenen Gründen Probleme auftreten. Dieses Thema enthält Informationen zu häufigen Fehlern und zu deren Behebung. 

 **Probleme mit der Pipeline-Definition** 

Ihre Pipeline-Definition ist möglicherweise nicht richtig formatiert. Dies kann dazu führen, dass Ihre  Ausführung fehlschlägt oder Ihr Job ungenau ist. Diese Fehler können bei der Erstellung der Pipeline oder bei einer Ausführung erkannt werden. Wenn Ihre Definition nicht validiert wird, gibt Pipelines eine Fehlermeldung zurück, die das Zeichen identifiziert, bei dem die JSON-Datei falsch formatiert ist. Um dieses Problem zu beheben, überprüfen Sie die mit dem SageMaker AI Python SDK erstellten Schritte auf Richtigkeit. 

Sie können Schritte nur einmal in eine Pipeline-Definition aufnehmen. Aus diesem Grund können Schritte nicht als Teil eines Bedingungsschritts *und* einer Pipeline in derselben Pipeline existieren. 

 **Pipeline-Protokolle werden untersucht** 

Sie können den Status Ihrer Schritte mit dem folgenden Befehl anzeigen: 

```
execution.list_steps()
```

Jeder Schritt enthält die folgenden Informationen:
+ Der ARN der Entität, die von der Pipeline gestartet wurde, z. B. SageMaker AI-Job-ARN, Modell-ARN oder Modellpaket-ARN. 
+ Die Fehlerursache beinhaltet eine kurze Erläuterung des Schritts, der fehlschlägt.
+ Wenn es sich bei dem Schritt um einen Bedingungsschritt handelt, beinhaltet er, ob die Bedingung als wahr oder falsch bewertet wird.  
+ Wenn bei der Ausführung eine frühere Jobausführung wiederverwendet wird, wird die Quellausführung `CacheHit` aufgeführt.  

Sie können die Fehlermeldungen und Protokolle auch in der Amazon SageMaker Studio-Oberfläche anzeigen. Weitere Informationen zum Anzeigen der Protokolle in Studio finden Sie unter [Anzeige der Details eines Pipeline-Laufs](pipelines-studio-view-execution.md).

 **Fehlende Berechtigungen** 

Für die Rolle, die die Pipeline-Ausführung erstellt, und für die Schritte, mit denen die einzelnen Jobs in Ihrer Pipeline-Ausführung erstellt werden, sind die richtigen Berechtigungen erforderlich. Ohne diese Berechtigungen können Sie Ihre Pipeline-Ausführung möglicherweise nicht wie erwartet einreichen oder Ihre SageMaker KI-Jobs ausführen. Informationen dazu, wie Sie sicherstellen können, dass Ihre Berechtigungen ordnungsgemäß eingerichtet sind, finden Sie unter [IAM-Zugriffsverwaltung](build-and-manage-access.md). 

 **Fehler bei der Auftragsausführung** 

Bei der Ausführung Ihrer Schritte können Probleme auftreten, die auf Probleme in den Skripten zurückzuführen sind, die die Funktionalität Ihrer SageMaker KI-Jobs definieren. Jeder Job hat eine Reihe von CloudWatch Protokollen. Informationen zum Anzeigen dieser Protokolle in Studio finden Sie unter[Anzeige der Details eines Pipeline-Laufs](pipelines-studio-view-execution.md). Informationen zur Verwendung von CloudWatch Protokollen mit SageMaker KI finden Sie unter[CloudWatch Protokolle für Amazon SageMaker AI](logging-cloudwatch.md). 

 **Fehler in der Eigenschaftendatei** 

Möglicherweise treten Probleme auf, wenn Sie Eigenschaftendateien mit Ihrer Pipeline falsch implementieren. Informationen dazu, wie Sie sicherstellen können, dass Ihre Implementierung von Eigenschaftendateien erwartungsgemäß funktioniert, finden Sie unter [Daten zwischen Schritten weitergeben](build-and-manage-propertyfile.md). 

 **Probleme beim Kopieren des Skripts in den Container in der Dockerfile** 

Sie können das Skript entweder in den Container kopieren oder es über das Argument (Ihrer Schätzfunktion-Entität) oder das `entry_point`-Argument (Ihrer Prozessoreinheit) `code` übergeben, wie im folgenden Codebeispiel gezeigt.

```
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=(.*?);'}
    ],
)
```

# Pipeline-Aktionen
<a name="pipelines-build"></a>

Sie können entweder das Amazon SageMaker Pipelines Python SDK oder den drag-and-drop Visual Designer in Amazon SageMaker Studio verwenden, um Ihre ML-Workflows zu erstellen, anzuzeigen, zu bearbeiten, auszuführen und zu überwachen.

Der folgende Screenshot zeigt den visuellen Designer, mit dem Sie Ihre SageMaker Amazon-Pipelines erstellen und verwalten können.

![\[Screenshot der visuellen drag-and-drop Oberfläche für Pipelines in Studio.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/pipelines/pipelines-studio-overview.png)


Nachdem Ihre Pipeline bereitgestellt wurde, können Sie den Directed Acyclic Graph (DAG) für Ihre Pipeline anzeigen und Ihre Ausführungen mit Amazon Studio verwalten. SageMaker Mit SageMaker Studio können Sie Informationen über Ihre aktuellen und historischen Pipelines abrufen, Ausführungen vergleichen, die DAG für Ihre Ausführungen einsehen, Metadateninformationen abrufen und vieles mehr. Weitere Informationen zum Anzeigen von Pipelines in Studio finden Sie unter [Anzeige der Details einer Pipeline](pipelines-studio-list.md). 

**Topics**
+ [Definieren einer Pipeline](define-pipeline.md)
+ [Bearbeiten einer Pipeline](edit-pipeline-before-execution.md)
+ [Ausführen Sie eine Pipeline](run-pipeline.md)
+ [Stopp Sie eine Pipeline](pipelines-studio-stop.md)
+ [Anzeige der Details einer Pipeline](pipelines-studio-list.md)
+ [Anzeige der Details eines Pipeline-Laufs](pipelines-studio-view-execution.md)
+ [Laden Sie eine Pipeline-Definitionsdatei herunter](pipelines-studio-download.md)
+ [Greifen Sie auf Versuchsdaten aus einer Pipeline zu](pipelines-studio-experiments.md)
+ [Verfolgen der Herkunft einer Pipeline](pipelines-lineage-tracking.md)

# Definieren einer Pipeline
<a name="define-pipeline"></a>

Um Ihre Workflows mit Amazon SageMaker Pipelines zu orchestrieren, müssen Sie einen gerichteten azyklischen Graphen (DAG) in Form einer JSON-Pipeline-Definition generieren. Der DAG legt die verschiedenen Schritte Ihres ML-Prozesses fest, wie beispielsweise die Datenvorverarbeitung, das Modelltraining, die Modellbewertung und die Modellbereitstellung, sowie die Abhängigkeiten und den Datenfluss zwischen diesen Schritten. Im folgenden Thema wird gezeigt, wie Sie eine Pipeline-Definition generieren.

Sie können Ihre JSON-Pipeline-Definition entweder mit dem SageMaker Python-SDK oder der visuellen drag-and-drop Pipeline-Designer-Funktion in Amazon SageMaker Studio generieren. Die folgende Abbildung zeigt die Pipeline-DAG, die Sie in diesem Tutorial erstellen:

![\[Screenshot der visuellen drag-and-drop Oberfläche für Pipelines in Studio.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/pipelines/pipelines-studio-overview.png)


Die Pipeline, die Sie in den folgenden Abschnitten definieren, löst ein Regressionsproblem, um das Alter einer Abalone anhand ihrer physikalischen Maße zu bestimmen. Ein lauffähiges Jupyter-Notizbuch, das den Inhalt dieses Tutorials enthält, finden Sie unter [Orchestrating Jobs](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-pipelines/tabular/abalone_build_train_deploy/sagemaker-pipelines-preprocess-train-evaluate-batch-transform.html) with Amazon Model Building Pipelines. SageMaker 

**Anmerkung**  
[Sie können auf die Modellposition als Eigenschaft des Trainingsschritts verweisen, wie in der Beispielpipeline auf Github gezeigt. end-to-end CustomerChurn ](https://github.com/aws-samples/customer-churn-sagemaker-pipelines-sample/blob/main/pipelines/customerchurn/pipeline.py)

**Topics**

## Definieren Sie eine Pipeline (Pipeline Designer)
<a name="create-pipeline-designer"></a>

Die folgende exemplarische Vorgehensweise führt Sie durch die Schritte zum Erstellen einer Barebones-Pipeline mit dem drag-and-drop Pipeline Designer. **Wenn Sie Ihre Pipeline-Bearbeitungssitzung im Visual Designer zu einem beliebigen Zeitpunkt unterbrechen oder beenden müssen, klicken Sie auf die Option Exportieren.** Auf diese Weise können Sie die aktuelle Definition Ihrer Pipeline in Ihre lokale Umgebung herunterladen. Später, wenn Sie den Pipeline-Bearbeitungsprozess fortsetzen möchten, können Sie dieselbe JSON-Definitionsdatei in den Visual Designer importieren.

### Erstellen eines Verarbeitungsschritts
<a name="create-processing-step"></a>

Gehen Sie wie folgt vor, um einen Datenverarbeitungsauftrag zu erstellen:

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. Wählen Sie **Erstellen** aus.

1. **Wählen Sie Leer.**

1. Wählen Sie in der linken Seitenleiste die Option **Daten verarbeiten** und ziehen Sie sie auf die Arbeitsfläche.

1. Wählen Sie auf der Arbeitsfläche den Schritt „**Daten verarbeiten**“ aus, den Sie hinzugefügt haben.

1. Um einen Eingabedatensatz **hinzuzufügen**, wählen Sie in der rechten Seitenleiste unter **Daten (Eingabe)** die Option Hinzufügen und wählen Sie einen Datensatz aus.

1. Um einen Speicherort für Ausgabe-Datasets **hinzuzufügen**, wählen Sie in der rechten Seitenleiste unter **Daten (Ausgabe)** die Option Hinzufügen und navigieren Sie zum Ziel.

1. Füllen Sie die verbleibenden Felder in der rechten Seitenleiste aus. [Informationen zu den Feldern auf diesen Registerkarten finden Sie unter sagemaker.workflow.steps. ProcessingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.ProcessingStep).

### Erstellen Sie einen Trainingsschritt
<a name="create-training-step"></a>

Gehen Sie zum Einrichten eines Modell-Trainingsschritts wie folgt vor:

1. Wählen Sie in der linken Seitenleiste **Train Model** und ziehen Sie es auf die Leinwand.

1. Wählen Sie auf der Arbeitsfläche den Schritt **Train Model** aus, den Sie hinzugefügt haben.

1. Um einen Eingabedatensatz **hinzuzufügen**, wählen Sie in der rechten Seitenleiste unter **Daten (Eingabe)** die Option Hinzufügen und wählen Sie einen Datensatz aus.

1. Um einen Speicherort für Ihre Modellartefakte auszuwählen, geben Sie eine Amazon-S3-URI in das Feld **Standort (S3-URI)** ein oder wählen Sie **S3 durchsuchen** aus, um zum Zielort zu navigieren.

1. Füllen Sie die verbleibenden Felder in der rechten Seitenleiste aus. Informationen zu den Feldern in diesen Tabs finden Sie unter [sagemaker.workflow.steps. TrainingStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.steps.TrainingStep).

1. Klicken und ziehen Sie den Cursor aus dem **Prozessdatenschritt**, den Sie im vorherigen Abschnitt hinzugefügt haben, in den Schritt Modell **trainieren**, um eine Kante zu erzeugen, die die beiden Schritte verbindet.

### Erstellen Sie ein Modellpaket mit dem Schritt Modell registrieren
<a name="create-register-model-step"></a>

Um ein Modellpaket mit einem Modellregistrierungsschritt zu erstellen, führen Sie die folgenden Schritte aus:

1. Wählen Sie in der linken Seitenleiste **Modell registrieren** und ziehen Sie es auf die Arbeitsfläche.

1. Wählen Sie auf der Arbeitsfläche den Schritt **Modell registrieren** aus, den Sie hinzugefügt haben.

1. Um ein Modell für die Registrierung auszuwählen, wählen Sie unter **Modell (Eingabe)** die Option **Hinzufügen** aus.

1. Wählen Sie **Modellgruppe erstellen**, um Ihr Modell zu einer neuen Modellgruppe hinzuzufügen.

1. Füllen Sie die verbleibenden Felder in der rechten Seitenleiste aus. Informationen zu den Feldern in diesen Tabs finden Sie unter [sagemaker.workflow.step\$1collections. RegisterModel](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.step_collections.RegisterModel).

1. **Klicken und ziehen Sie den Cursor aus dem Schritt **Modell trainieren, den Sie im vorherigen Abschnitt hinzugefügt haben, in den Schritt Modell** registrieren, um eine Kante zu erzeugen, die die beiden Schritte verbindet.**

### Stellen Sie das Modell mit dem Schritt Modell bereitstellen (Endpunkt) auf einem Endpunkt bereit
<a name="create-deploy-endpoint-step"></a>

Um Ihr Modell mit einem Modellbereitstellungsschritt bereitzustellen, führen Sie die folgenden Schritte aus:

1. Wählen Sie in der linken Seitenleiste **Modell bereitstellen (Endpunkt)** aus und ziehen Sie es auf die Leinwand.

1. Wählen Sie auf der Arbeitsfläche den Schritt **Modell bereitstellen (Endpunkt)** aus, den Sie hinzugefügt haben.

1. Um ein Modell für die Bereitstellung auszuwählen, wählen Sie unter **Modell (Eingabe)** die Option **Hinzufügen** aus.

1. Wählen Sie das Optionsfeld **Endpunkt erstellen**, um einen neuen Endpunkt zu erstellen.

1. Geben Sie einen **Namen** und eine **Beschreibung** für den Endpunkt ein.

1. Klicken und ziehen Sie den Cursor aus dem Schritt **Modell registrieren**, den Sie im vorherigen Abschnitt hinzugefügt haben, in den Schritt **Modell bereitstellen (Endpunkt)**, um eine Kante zu erstellen, die die beiden Schritte verbindet.

1. Füllen Sie die verbleibenden Felder in der rechten Seitenleiste aus.

### Definieren Sie die Pipeline-Parameter
<a name="define-pipeline-parameters"></a>

Sie können eine Reihe von Pipeline-Parametern konfigurieren, deren Werte für jede Ausführung aktualisiert werden können. Um die Pipeline-Parameter zu definieren und die Standardwerte festzulegen, klicken Sie auf das Zahnradsymbol unten im Visual Designer.

### Pipeline speichern
<a name="save-pipeline"></a>

Nachdem Sie alle erforderlichen Informationen eingegeben haben, um Ihre Pipeline zu erstellen, klicken Sie unten im visuellen Designer auf **Speichern**. Dadurch wird Ihre Pipeline zur Laufzeit auf mögliche Fehler überprüft und Sie werden benachrichtigt. Der **Speichervorgang** ist erst erfolgreich, wenn Sie alle Fehler behoben haben, die durch die automatischen Validierungsprüfungen gekennzeichnet wurden. Wenn Sie die Bearbeitung zu einem späteren Zeitpunkt fortsetzen möchten, können Sie Ihre Pipeline in Bearbeitung als JSON-Definition in Ihrer lokalen Umgebung speichern. Sie können Ihre Pipeline als JSON-Definitionsdatei **exportieren, indem Sie unten im Visual Designer auf die Schaltfläche Exportieren** klicken. Um später mit der Aktualisierung Ihrer Pipeline fortzufahren, laden Sie diese JSON-Definitionsdatei hoch, indem Sie auf die Schaltfläche **Importieren** klicken.

## Definieren Sie eine Pipeline (SageMaker Python SDK)
<a name="create-pipeline-wrap"></a>

### Voraussetzungen
<a name="define-pipeline-prereq"></a>

 Zur Ausführung des folgenden Tutorials gehen Sie wie folgt vor: 
+ Richten Sie Ihre Notebook-Instance wie unter [Notebook-Instance erstellen](https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-create-ws.html) beschrieben ein. Dadurch erhält Ihre Rolle Lese- und Schreibberechtigungen für Amazon S3 sowie zum Erstellen von Schulungs-, Batch-Transform- und Verarbeitungsaufträgen in SageMaker KI. 
+ Erteilen Sie Ihrem Notebook Berechtigungen zum Abrufen und Weitergeben seiner eigenen Rolle, wie unter Richtlinie zu [Rollenberechtigungen ändern](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy) beschrieben. Fügen Sie den folgenden JSON-Snippet hinzu, um diese Richtlinie an Ihre Rolle anzuhängen. Ersetzen Sie `<your-role-arn>` durch den ARN, der zum Erstellen Ihrer Notebook-Instance verwendet wurde. 

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "iam:GetRole",
                  "iam:PassRole"
              ],
              "Resource": "arn:aws:iam::111122223333:role/role-name"
          }
      ]
  }
  ```

------
+  Vertrauen Sie dem SageMaker AI-Serviceprinzipal, indem Sie die Schritte unter [Ändern einer Rollenvertrauensrichtlinie befolgen](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-cli.html#roles-managingrole_edit-trust-policy-cli). Fügen Sie das folgende Anweisungsfragment zur Vertrauensstellung Ihrer Rolle hinzu: 

  ```
  {
        "Sid": "",
        "Effect": "Allow",
        "Principal": {
          "Service": "sagemaker.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
  ```

#### So richten Sie Ihre Umgebung ein
<a name="define-pipeline-prereq-setup"></a>

Erstellen Sie eine neue SageMaker AI-Sitzung mit dem folgenden Codeblock. Dadurch wird der Rollen-ARN für die Sitzung zurückgegeben. Bei diesem Rollen-ARN sollte es sich um den ARN für die Ausführungsrolle handeln, den Sie als Voraussetzung eingerichtet haben. 

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

### Erstellen Sie eine Pipeline
<a name="define-pipeline-create"></a>

**Wichtig**  
Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Tagging erlaubt, können "AccessDenied" Fehler beim Versuch, Ressourcen zu erstellen, auftreten. Weitere Informationen finden Sie unter [Erteilen Sie Berechtigungen für das Taggen von SageMaker KI-Ressourcen](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS verwaltete Richtlinien für Amazon SageMaker AI](security-iam-awsmanpol.md)die Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, beinhalten bereits Berechtigungen zum Hinzufügen von Tags beim Erstellen dieser Ressourcen.

Führen Sie die folgenden Schritte von Ihrer SageMaker KI-Notebook-Instanz aus, um eine Pipeline zu erstellen, die Schritte für Folgendes umfasst:
+ Vorverarbeitung
+ Training
+ Bewertung
+ bedingte Bewertung
+ Modellregistrierung

**Anmerkung**  
Sie können die [Join-Funktion](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#execution-variables) verwenden [ExecutionVariables](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#execution-variables), um Ihren Ausgabeort anzugeben. `ExecutionVariables`wird zur Laufzeit aufgelöst. `ExecutionVariables.PIPELINE_EXECUTION_ID` wird beispielsweise in die ID der aktuellen Ausführung aufgelöst, die als eindeutige Kennung für verschiedene Läufe verwendet werden kann.

#### Schritt 1: Herunterladen des Datensatzes
<a name="define-pipeline-data-download"></a>

Dieses Notebook verwendet den UCI Machine Learning Abalone Datensatz. Der Datensatz enthält folgende Merkmale: 
+ `length`– Die längste Schalenmessung der Abalone.
+ `diameter`– Der Durchmesser der Abalone senkrecht zu ihrer Länge.
+ `height`– Die Höhe der Abalone mit Fleisch in der Schale.
+ `whole_weight`– Das Gewicht der ganzen Abalone.
+ `shucked_weight`– Das Gewicht des aus der Abalone entnommenen Fleisches.
+ `viscera_weight`– Das Gewicht der Eingeweide der Abalone nach der Blutung.
+ `shell_weight`– Das Gewicht der Abalone-Schale nach dem Entnehmen und Trocknen des Fleisches.
+ `sex`– Das Geschlecht der Abalone. Eines von „M“, „F“ oder „I“, wobei „I“ für eine Säuglingsabalone steht.
+ `rings`– Die Anzahl der Ringe in der Abalone-Schale.

Die Anzahl der Ringe in der Abalone-Schale ist anhand der Formel `age=rings + 1.5` eine gute Näherung für ihr Alter. Das Abrufen dieser Zahl ist jedoch eine zeitaufwändige Aufgabe. Sie müssen die Schale durch den Kegel schneiden, den Abschnitt färben und die Anzahl der Ringe durch ein Mikroskop zählen. Die anderen physikalischen Messungen sind jedoch einfacher abzurufen. Dieses Notebook verwendet den Datensatz, um anhand der anderen physikalischen Messungen ein Vorhersagemodell der variablen Ringe zu erstellen.

**Zum Herunterladen des Datensatzes**

1. Laden Sie den Datensatz in den standardmäßigen Amazon-S3-Bucket Ihres Kontos herunter.

   ```
   !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. Laden Sie nach der Erstellung Ihres Modells einen zweiten Datensatz für die Batch-Transformation herunter.

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

#### Schritt 2: Definieren von Pipeline-Parametern
<a name="define-pipeline-parameters"></a>

 Dieser Codeblock definiert die folgenden Parameter für Ihre Pipeline: 
+  `processing_instance_count` – Die Anzahl der Instances des Verarbeitungsjobs. 
+  `input_data` – Der Amazon S3-Speicherort der Eingabedaten.. 
+  `batch_data` – Der Amazon-S3-Speicherort der Eingabedaten für die Batch-Transformation. 
+  `model_approval_status` – Der Genehmigungsstatus, mit dem das trainierte Modell für CI/CD registriert werden soll. Weitere Informationen finden Sie unter [MLOps Automatisierung mit SageMaker Projekten](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,
)
```

#### Schritt 3: Definieren eines Verarbeitungsschritts für Feature Engineering
<a name="define-pipeline-processing-feature"></a>

In diesem Abschnitt wird erläutert, wie Sie einen Verarbeitungsschritt erstellen, um die Daten aus dem Datensatz für das Training vorzubereiten.

**Um einen Verarbeitungsschritt zu erstellen**

1.  Erstellen Sie ein Verzeichnis für das Verarbeitungsskript.

   ```
   !mkdir -p abalone
   ```

1. Erstellen Sie im Verzeichnis `/abalone` eine Datei namens `preprocessing.py` mit folgendem Inhalt. Dieses Vorverarbeitungsskript wird an den Verarbeitungsschritt zur Ausführung der Eingabedaten übergeben. Der Trainingsschritt verwendet dann die vorverarbeiteten Trainingsmerkmale und Labels, um ein Modell zu trainieren. Der Bewertungsschritt verwendet das trainierte Modell und die vorverarbeiteten Testmerkmale und Labels, um das Modell zu evaluieren. Das Skript verwendet `scikit-learn` für die folgenden Aufgaben:
   +  Füllen Sie fehlende `sex` kategoriale Daten aus und codieren Sie sie so, dass sie für das Training geeignet sind. 
   +  Skalieren und normalisieren Sie alle numerischen Felder außer `rings` und `sex`. 
   +  Teilen Sie die Daten in Trainings-, Test- und Validierungsdatensätze auf. 

   ```
   %%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.  Erstellen Sie eine Instance von `SKLearnProcessor`, die an den Verarbeitungsschritt übergeben werden soll. 

   ```
   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. Erstellen Sie einen Verarbeitungsschritt. In diesem Schritt werden die `SKLearnProcessor` Eingabe- und Ausgabekanäle sowie das von Ihnen erstellte `preprocessing.py` Skript berücksichtigt. Dies ist der `run` Methode einer Prozessorinstanz im SageMaker AI Python SDK sehr ähnlich. Der Parameter `input_data`, der an `ProcessingStep` übergeben wird, sind die Eingabedaten des Schrittes selbst. Diese Eingabedaten werden von der Prozessor-Instance verwendet, wenn sie ausgeführt wird. 

    Beachten Sie die in der Ausgabekonfiguration für den Verarbeitungsauftrag angegebenen `"train`, `"validation`, und `"test"` benannten Kanäle. Schritte `Properties` wie diese können in nachfolgenden Schritten verwendet werden und werden bei der Laufzeit in ihre Laufzeitwerte umgewandelt. 

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

#### Schritt 4: Definieren eines Trainingsschritts
<a name="define-pipeline-training"></a>

In diesem Abschnitt wird gezeigt, wie der SageMaker [XGBoostKI-Algorithmus](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) verwendet wird, um ein Modell anhand der Trainingsdaten zu trainieren, die aus den Verarbeitungsschritten ausgegeben werden. 

**Um einen Trainingsschritt zu definieren**

1.  Geben Sie den Modellpfad an, in dem Sie die Modelle aus dem Training speichern möchten. 

   ```
   model_path = f"s3://{default_bucket}/AbaloneTrain"
   ```

1. Konfigurieren Sie einen Schätzer für den XGBoost Algorithmus und den Eingabedatensatz. Der Typ der Trainings-Instance wird an den Schätzer übergeben. Ein typisches Trainingsskript:
   + lädt Daten aus den Eingangskanälen
   + konfiguriert das Training mit Hyperparametern
   + trainiert ein Modell
   + speichert ein Modell unter, `model_dir` sodass es später gehostet werden kann

   SageMaker Die KI lädt das Modell in Form eines Jobs `model.tar.gz` am Ende der Schulung auf Amazon S3 hoch.

   ```
   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. Erstellen Sie einen `TrainingStep` unter Verwendung der Schätzfunktion-Instance und der Eigenschaften des `ProcessingStep`. Übergeben Sie den `S3Uri` des `"train"`- und `"validation"`-Ausgangskanals an den `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
   )
   ```

#### Schritt 5: Definieren eines Verarbeitungsschritts für die Modellbewertung
<a name="define-pipeline-processing-model"></a>

In diesem Abschnitt wird erläutert, wie Sie einen Verarbeitungsschritt erstellen, um die Genauigkeit des Modells zu bewerten. Das Ergebnis dieser Modellauswertung wird im Schritt „Bedingung“ verwendet, um zu bestimmen, welcher Ausführungspfad gewählt werden soll.

**Um einen Verarbeitungsschritt für die Modellevaluierung zu definieren**

1. Erstellen Sie im Verzeichnis `/abalone` eine Datei mit dem Namen `evaluation.py`. Dieses Skript wird in einem Verarbeitungsschritt zur Durchführung der Modellevaluierung verwendet. Es verwendet ein trainiertes Modell und den Testdatensatz als Eingabe und erstellt dann eine JSON-Datei mit Bewertungsmetriken für die Klassifizierung.

   ```
   %%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.  Erstellen Sie eine Instance von `ScriptProcessor`, die verwendet wird, um eine `ProcessingStep` zu erstellen. 

   ```
   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.  Erstellen Sie einen `ProcessingStep` unter Verwendung der Prozessorinstanz, der Eingangs- und Ausgangskanäle und des `evaluation.py`-Skripts. Übergeben Sie:
   + die `S3ModelArtifacts`-Eigenschaft aus dem `step_train`-Trainingsschritt
   + der `S3Uri` des `"test"` Ausgangskanals des `step_process` Verarbeitungsschritts

   Dies ist der `run` Methode einer Prozessorinstanz im SageMaker AI Python SDK sehr ähnlich.  

   ```
   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],
   )
   ```

#### Schritt 6: Definieren Sie eine CreateModelStep für die Batch-Transformation
<a name="define-pipeline-create-model"></a>

**Wichtig**  
Wir empfehlen [Modellschritt](build-and-manage-steps-types.md#step-type-model) die Verwendung zum Erstellen von Modellen ab Version 2.90.0 des SageMaker Python-SDK. `CreateModelStep`funktioniert weiterhin in früheren Versionen des SageMaker Python-SDK, wird aber nicht mehr aktiv unterstützt.

In diesem Abschnitt wird gezeigt, wie aus der Ausgabe des Trainingsschritts ein SageMaker KI-Modell erstellt wird. Dieses Modell wird für die Batch-Transformation eines neuen Datensatzes verwendet. Dieser Schritt wird an den Bedingungsschritt übergeben und nur ausgeführt, wenn der Bedingungsschritt den Wert `true` ergibt.

**Um eine Transformation CreateModelStep für Batch zu definieren**

1.  Erstellen Sie ein SageMaker KI-Modell. Übergeben Sie die `S3ModelArtifacts` Eigenschaft aus dem `step_train` Trainingsschritt.

   ```
   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. Definieren Sie die Modelleingabe für Ihr SageMaker KI-Modell.

   ```
   from sagemaker.inputs import CreateModelInput
   
   
   inputs = CreateModelInput(
       instance_type="ml.m5.large",
       accelerator_type="ml.eia1.medium",
   )
   ```

1. Erstellen Sie Ihre `CreateModelStep` unter Verwendung der `CreateModelInput` von Ihnen definierten SageMaker AI-Modellinstanz.

   ```
   from sagemaker.workflow.steps import CreateModelStep
   
   
   step_create_model = CreateModelStep(
       name="AbaloneCreateModel",
       model=model,
       inputs=inputs,
   )
   ```

#### Schritt 7: Definieren Sie eine TransformStep , um eine Batch-Transformation durchzuführen
<a name="define-pipeline-transform"></a>

In diesem Abschnitt wird gezeigt, wie ein `TransformStep` erstellt wird, um eine Batch-Transformation an einem Datensatz durchzuführen, nachdem das Modell trainiert wurde. Dieser Schritt wird an den Bedingungsschritt übergeben und nur ausgeführt, wenn der Bedingungsschritt den Wert `true` ergibt.

**Um eine zu definieren TransformStep , um eine Batch-Transformation durchzuführen**

1. Erstellen Sie eine Transformer-Instance mit dem entsprechenden Compute-Instance-Typ, der Instance-Anzahl und der gewünschten Amazon S3-Output-Bucket-URI. Übergeben Sie die `ModelName` Eigenschaft aus dem `step_create_model` `CreateModel` Schritt. 

   ```
   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. Erstellen Sie eine `TransformStep` mit der Transformer-Instance, die Sie definiert haben, und dem `batch_data` Pipeline-Parameter.

   ```
   from sagemaker.inputs import TransformInput
   from sagemaker.workflow.steps import TransformStep
   
   
   step_transform = TransformStep(
       name="AbaloneTransform",
       transformer=transformer,
       inputs=TransformInput(data=batch_data)
   )
   ```

#### Schritt 8: Definieren Sie einen RegisterModel Schritt zum Erstellen eines Modellpakets
<a name="define-pipeline-register"></a>

**Wichtig**  
Wir empfehlen [Modellschritt](build-and-manage-steps-types.md#step-type-model) die Verwendung zur Registrierung von Modellen ab Version 2.90.0 des SageMaker Python SDK. `RegisterModel`funktioniert weiterhin in früheren Versionen des SageMaker Python-SDK, wird aber nicht mehr aktiv unterstützt.

In diesem Abschnitt wird erläutert, wie eine Instance von `RegisterModel` erstellt wird. Das Ergebnis der Ausführung von `RegisterModel` in einer Pipeline ist ein Modellpaket. Ein Modellpaket ist eine wiederverwendbare Abstraktion von Modellartefakten, die alle für die Inferenz erforderlichen Bestandteile verpackt. Es besteht aus einer Inferenzspezifikation, die das zu verwendende Inferenz-Image zusammen mit einer optionalen Position der Modellgewichte definiert. Eine Modellpaketgruppe ist eine Sammlung von Modellpaketen. Sie können `ModelPackageGroup` für Pipelines verwenden, um der Gruppe für jede Pipeline-Ausführung eine neue Version und ein neues Modellpaket hinzuzufügen. Weitere Informationen zur Modellregistrierung finden Sie unter [Bereitstellung von Modellregistrierung mit Model Registry](model-registry.md).

Dieser Schritt wird an den Bedingungsschritt übergeben und nur ausgeführt, wenn der Bedingungsschritt den Wert `true` ergibt.

**Um einen RegisterModel Schritt zum Erstellen eines Modellpakets zu definieren**
+  Konstruieren Sie einen `RegisterModel` Schritt mit der Estimator-Instance, die Sie für den Trainingsschritt verwendet haben. Übergeben Sie die `S3ModelArtifacts` Eigenschaft aus dem `step_train` Trainingsschritt und geben Sie `ModelPackageGroup` an. Pipelines erstellt diese `ModelPackageGroup` für Sie.

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

#### Schritt 9: Definieren eines Bedingungsschritts zur Überprüfung der Modellgenauigkeit
<a name="define-pipeline-condition"></a>

Ein `ConditionStep` ermöglicht es Pipelines, die bedingte Ausführung in Ihrer Pipeline-DAG basierend auf dem Zustand der Schritteigenschaften zu unterstützen. In diesem Fall möchten Sie ein Modellpaket nur registrieren, wenn die Genauigkeit dieses Modells den erforderlichen Wert übersteigt. Die Genauigkeit des Modells wird durch den Schritt der Modellbewertung bestimmt. Wenn die Genauigkeit den erforderlichen Wert überschreitet, erstellt die Pipeline auch ein SageMaker KI-Modell und führt eine Batch-Transformation für einen Datensatz durch. In diesem Abschnitt wird erläutert, wie der Schritt Bedingung definiert wird.

**Um einen Bedingungsschritt zur Überprüfung der Modellgenauigkeit zu definieren**

1.  Definieren Sie eine `ConditionLessThanOrEqualTo` Bedingung anhand des Genauigkeitswerts, der in der Ausgabe des Verarbeitungsschritts der Modellbewertung ermittelt wurde, `step_eval`. Verwenden Sie für diese Ausgabe die Eigenschaftendatei, die Sie im Verarbeitungsschritt indexiert haben, und den entsprechenden quadratischen Fehlerwert JSONPath des mittleren Quadrats. `"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.  Konstruieren Sie ein `ConditionStep`. Übergeben Sie die `ConditionEquals` Bedingung und legen Sie dann die Schritte zur Registrierung des Modellpakets und zur Batch-Transformation als nächste Schritte fest, wenn die Bedingung erfüllt ist. 

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

#### Schritt 10: Erstellen einer Pipeline
<a name="define-pipeline-pipeline"></a>

Nachdem Sie nun alle Schritte erstellt haben, können Sie sie zu einer Pipeline zusammenfassen.

**So erstellen Sie eine Pipeline**

1.  Definieren Sie Folgendes für Ihre Pipeline: `name`, `parameters`, und`steps`. Die Namen müssen innerhalb eines `(account, region)`-Paares eindeutig sein.
**Anmerkung**  
Ein Schritt kann entweder in der Schrittliste der Pipeline oder in den if/else-Schrittlisten des Bedingungsschritts nur einmal vorkommen. Er kann nicht in beiden vorkommen. 

   ```
   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.  (Optional) Untersuchen Sie die JSON-Pipeline-Definition, um sicherzustellen, dass sie korrekt formatiert ist.

   ```
   import json
   
   json.loads(pipeline.definition())
   ```

 Diese Pipeline-Definition ist bereit, an KI übermittelt zu werden SageMaker . Im nächsten Tutorial reichen Sie diese Pipeline an SageMaker AI ein und starten einen Lauf. 

## Definieren Sie eine Pipeline (JSON)
<a name="collapsible-section-1"></a>

Sie können auch [boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_pipeline) oder [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-pipeline.html)zum Erstellen einer Pipeline verwenden. Das Erstellen einer Pipeline erfordert eine Pipeline-Definition, bei der es sich um ein JSON-Objekt handelt, das jeden Schritt der Pipeline definiert. Das SageMaker SDK bietet eine einfache Möglichkeit, die Pipeline-Definition zu erstellen, die Sie mit jeder der APIs zuvor genannten Methoden verwenden können, um die Pipeline selbst zu erstellen. Ohne das SDK zu verwenden, müssen Benutzer die rohe JSON-Definition schreiben, um die Pipeline ohne die vom SageMaker Python-SDK bereitgestellten Fehlerprüfungen zu erstellen. Das Schema für die JSON-Definition der Pipeline finden Sie unter [JSON-Schema der SageMaker KI-Pipeline-Definition](https://aws-sagemaker-mlops.github.io/sagemaker-model-building-pipeline-definition-JSON-schema/). Das folgende Codebeispiel zeigt ein Beispiel für ein JSON-Objekt mit einer SageMaker AI-Pipeline-Definition:

```
{'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'}},
   ...
   ...
   ...
  }
```

 **Nächster Schritt:** [Ausführen Sie eine Pipeline](run-pipeline.md) 

# Bearbeiten einer Pipeline
<a name="edit-pipeline-before-execution"></a>

Gehen Sie wie folgt vor, um Änderungen an einer Pipeline vorzunehmen:

1. Öffnen Sie SageMaker Studio, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich von Studio die Option **Pipelines** aus.

1. Wählen Sie einen Pipelinamen aus, um Details zur Pipeline anzuzeigen.

1. Wählen Sie die Registerkarte **Ausführungen**.

1. Wählen Sie den Namen einer Pipeline-Ausführung aus.

1. Wählen Sie **Bearbeiten**, um den Pipeline Designer zu öffnen.

1. Aktualisieren Sie die Kanten zwischen den Schritten oder die Schrittkonfiguration nach Bedarf und klicken Sie auf **Speichern**. 

   Beim Speichern einer Pipeline nach der Bearbeitung wird automatisch eine neue Versionsnummer generiert.

1. Klicken Sie auf **Ausführen**.

# Ausführen Sie eine Pipeline
<a name="run-pipeline"></a>

Nachdem Sie die Schritte Ihrer Pipeline als gerichteten azyklischen Graphen (DAG) definiert haben, können Sie Ihre Pipeline ausführen, die die in Ihrer DAG definierten Schritte ausführt. Die folgenden exemplarischen Vorgehensweisen zeigen Ihnen, wie Sie eine Amazon SageMaker AI-Pipeline entweder mit dem drag-and-drop visuellen Editor in Amazon SageMaker Studio oder dem Amazon SageMaker Python SDK ausführen.

## Führen Sie eine Pipeline aus (Pipeline-Designer)
<a name="run-pipeline-designer"></a>

Gehen Sie wie folgt vor, um eine neue Ausführung Ihrer Pipeline zu starten:

------
#### [ Studio ]

1. Öffnen Sie SageMaker Studio, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. (Optional) Um die Liste der Pipelines nach Namen zu filtern, geben Sie einen vollständigen Namen oder einen Teil in das Suchfeld ein.

1. Wählen Sie einen Pipeline-Namen aus, um die Pipeline-Detailansicht zu öffnen.

1. Wählen Sie oben rechts **Visual Editor** aus.

1. Um eine Ausführung von der neuesten Version aus zu starten, wählen Sie **Ausführungen.**

1. Gehen Sie folgendermaßen vor, um eine Ausführung von einer bestimmten Version aus zu starten:
   + Wählen Sie das Versionssymbol in der unteren Werkzeugleiste, um das Versionsfenster zu öffnen.
   + Wählen Sie die Pipeline-Version aus, die Sie anzeigen möchten.
   + **Zeigen Sie mit der Maus auf das Versionselement, um das Dreipunktmenü einzublenden, und wählen Sie Ausführen.**
   + (Optional) Um eine frühere Version der Pipeline anzuzeigen, wählen Sie im Versionsfenster aus dem Dreipunktmenü die Option **Vorschau** aus. Sie können die Version auch bearbeiten, indem Sie in der Benachrichtigungsleiste auf **Bearbeiten** klicken.

**Anmerkung**  
Wenn Ihre Pipeline ausfällt, zeigt das Statusbanner den Status **Fehlgeschlagen** an. Nachdem Sie den fehlgeschlagenen Schritt behoben haben, wählen Sie im Statusbanner die Option **Erneut versuchen** aus, um die Pipeline von diesem Schritt aus weiter auszuführen.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Pipelines** aus.

1. Um die Liste der Pipelines nach Namen einzugrenzen, geben Sie einen vollständigen oder teilweisen Pipelinenamen in das Suchfeld ein.

1. Wählen Sie einen Pipelinamen aus.

1. Wählen Sie in der **Ausführungsliste auf der Registerkarte Ausführungen** oder **Diagramm** die Option Ausführung **erstellen** aus.

1. Geben Sie die folgenden Informationen ein oder aktualisieren Sie sie:
   + **Name** – Muss für Ihr Konto in der AWS -Region eindeutig sein.
   + **ProcessingInstanceCount**— Die Anzahl der Instances, die für die Verarbeitung verwendet werden sollen.
   + **ModelApprovalStatus**— Zu Ihrer Bequemlichkeit.
   + **InputDataUrl**— Die Amazon S3 S3-URI der Eingabedaten.

1. Wählen Sie **Starten**.

Sobald Ihre Pipeline läuft, können Sie sich die Details der Ausführung ansehen, indem Sie im Statusbanner auf **Details anzeigen** klicken.

Um die Ausführung zu beenden, wählen Sie im Statusbanner die Option **Stopp**. Um die Ausführung an der Stelle fortzusetzen, an der sie gestoppt wurde, wählen Sie im Statusbanner die Option **Fortfahren** aus.

**Anmerkung**  
Wenn Ihre Pipeline ausfällt, zeigt das Statusbanner den Status **Fehlgeschlagen** an. Nachdem Sie den fehlgeschlagenen Schritt behoben haben, wählen Sie im Statusbanner die Option **Erneut versuchen** aus, um die Pipeline von diesem Schritt aus weiter auszuführen.

------

## Eine Pipeline ausführen (SageMaker Python SDK)
<a name="run-pipeline-sdk"></a>

Nachdem Sie mit dem SageMaker AI Python SDK eine Pipeline-Definition erstellt haben, können Sie sie an SageMaker AI senden, um mit der Ausführung zu beginnen. Das folgende Tutorial zeigt, wie Sie eine Pipeline einreichen, eine Ausführung starten, die Ergebnisse dieser Ausführung untersuchen und Ihre Pipeline löschen. 

**Topics**
+ [Voraussetzungen](#run-pipeline-prereq)
+ [Schritt 1: Starten der Pipeline](#run-pipeline-submit)
+ [Schritt 2: Untersuchen Sie eine Pipeline-Ausführung](#run-pipeline-examine)
+ [Schritt 3: Überschreiben Sie die Standardparameter für eine Pipeline-Ausführung](#run-pipeline-parametrized)
+ [Schritt 4: Stoppen und löschen Sie eine Pipeline-Ausführung](#run-pipeline-delete)

### Voraussetzungen
<a name="run-pipeline-prereq"></a>

Für dieses Tutorial benötigen Sie Folgendes: 
+  Eine SageMaker Notebook-Instanz.  
+  Eine Pipeline-Definition. In diesem Tutorial wird davon ausgegangen, dass Sie die Pipeline-Definition verwenden, die Sie nach Abschluss des [Definieren einer Pipeline](define-pipeline.md) Tutorials erstellt haben. 

### Schritt 1: Starten der Pipeline
<a name="run-pipeline-submit"></a>

Zuerst müssen Sie die Pipeline starten. 

**Um die Pipeline zu starten**

1. Untersuchen Sie die JSON-Pipeline-Definition, um sicherzustellen, dass sie wohlgeformt ist.

   ```
   import json
   
   json.loads(pipeline.definition())
   ```

1. Übermitteln Sie die Pipeline-Definition an den Pipelines-Dienst, um eine Pipeline zu erstellen, falls diese noch nicht vorhanden ist, oder um die Pipeline zu aktualisieren, falls sie bereits vorhanden ist. Die übergebene Rolle wird von Pipelines verwendet, um alle in den Schritten definierten Aufträge zu erstellen. 

   ```
   pipeline.upsert(role_arn=role)
   ```

1. Pipeline-Ausführung starten.

   ```
   execution = pipeline.start()
   ```

### Schritt 2: Untersuchen Sie eine Pipeline-Ausführung
<a name="run-pipeline-examine"></a>

Als Nächstes müssen Sie die Pipeline-Ausführung untersuchen. 

**Um eine Pipeline-Ausführung zu untersuchen**

1.  Beschreiben Sie den Ausführungsstatus der Pipeline, um sicherzustellen, dass sie erfolgreich erstellt und gestartet wurde.

   ```
   execution.describe()
   ```

1. Warten Sie bis die Ausführung abgeschlossen ist. 

   ```
   execution.wait()
   ```

1. Listet die Ausführungsschritte und ihren Status auf.

   ```
   execution.list_steps()
   ```

   Die Ausgabe sollte folgendermaßen aussehen:

   ```
   [{'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. Nachdem Ihre Pipeline-Ausführung abgeschlossen ist, laden Sie die resultierende `evaluation.json` Datei von Amazon S3 herunter, um den Bericht zu überprüfen. 

   ```
   evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format(
       step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
   ))
   json.loads(evaluation_json)
   ```

### Schritt 3: Überschreiben Sie die Standardparameter für eine Pipeline-Ausführung
<a name="run-pipeline-parametrized"></a>

Sie können zusätzliche Ausführungen der Pipeline ausführen, indem Sie verschiedene Pipeline-Parameter angeben, um die Standardwerte zu überschreiben.

**Um Standardparameter zu überschreiben**

1. Erstellen Sie die Pipeline-Ausführung. Dadurch wird eine weitere Pipeline-Ausführung gestartet, wobei die Überschreibung des Modellgenehmigungsstatus auf „Genehmigt“ gesetzt ist. Das bedeutet, dass die durch den `RegisterModel` Schritt generierte Modellpaketversion automatisch für die Bereitstellung über CI/CD Pipelines bereit ist, z. B. bei SageMaker Projekten. Weitere Informationen finden Sie unter [MLOps Automatisierung mit SageMaker Projekten](sagemaker-projects.md).

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

1. Warten Sie bis die Ausführung abgeschlossen ist. 

   ```
   execution.wait()
   ```

1. Listet die Ausführungsschritte und ihren Status auf.

   ```
   execution.list_steps()
   ```

1. Nachdem Ihre Pipeline-Ausführung abgeschlossen ist, laden Sie die resultierende `evaluation.json` Datei von Amazon S3 herunter, um den Bericht zu überprüfen. 

   ```
   evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format(
       step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
   ))
   json.loads(evaluation_json)
   ```

### Schritt 4: Stoppen und löschen Sie eine Pipeline-Ausführung
<a name="run-pipeline-delete"></a>

Wenn Sie mit Ihrer Pipeline fertig sind, können Sie alle laufenden Ausführungen beenden und die Pipeline löschen.

**Um eine Pipeline-Ausführung zu beenden und zu löschen**

1. Stoppen der Pipeline-Ausführung.

   ```
   execution.stop()
   ```

1. Löschen der Pipeline.

   ```
   pipeline.delete()
   ```

# Stopp Sie eine Pipeline
<a name="pipelines-studio-stop"></a>

Sie können einen Pipeline-Lauf in der Amazon SageMaker Studio-Konsole beenden.

Um eine Pipeline-Ausführung in der Amazon SageMaker Studio-Konsole zu beenden, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. (Optional) Um die Liste der Pipelines nach Namen zu filtern, geben Sie einen vollständigen Namen oder einen Teil in das Suchfeld ein.

1. Wählen Sie einen Pipelinamen aus.

1. Wählen Sie die Registerkarte **Ausführungen**.

1. Wählen Sie die Ausführung aus, die beendet werden soll.

1. Wählen Sie **Beenden** aus. Um die Ausführung an der Stelle fortzusetzen, an der sie gestoppt wurde, wählen Sie **Fortfahren** aus.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Pipelines** aus.

1. Um die Liste der Pipelines nach Namen einzugrenzen, geben Sie einen vollständigen oder teilweisen Pipelinenamen in das Suchfeld ein.

1. Um einen Pipeline-Lauf zu beenden, wählen Sie im Statusbanner der Pipeline **Details anzeigen** und dann **Stopp** aus. Um die Ausführung an der Stelle fortzusetzen, an der sie gestoppt wurde, wählen Sie die Option **Fortfahren** aus.

------

# Anzeige der Details einer Pipeline
<a name="pipelines-studio-list"></a>

Sie können sich die Details einer SageMaker KI-Pipeline ansehen, um ihre Parameter und die Abhängigkeiten ihrer Schritte zu verstehen oder ihren Fortschritt und Status zu überwachen. Dies kann Ihnen helfen, Fehler zu beheben oder Ihren Arbeitsablauf zu optimieren. Sie können über die Amazon SageMaker Studio-Konsole auf die Details einer bestimmten Pipeline zugreifen und deren Ausführungsverlauf, Definition, Parameter und Metadaten untersuchen.

Wenn Ihre Pipeline mit einem SageMaker KI-Projekt verknüpft ist, können Sie alternativ über die Detailseite des Projekts auf die Pipeline-Details zugreifen. Weitere Informationen finden Sie unter [Projektressourcen anzeigen](sagemaker-projects-resources.md).

Um die Details einer SageMaker AI-Pipeline anzuzeigen, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

**Anmerkung**  
Das Umpacken von Modellen erfolgt, wenn die Pipeline ein benutzerdefiniertes Skript in die komprimierte Modelldatei (model.tar.gz) aufnehmen muss, die auf Amazon S3 hochgeladen und zur Bereitstellung eines Modells auf einem SageMaker KI-Endpunkt verwendet werden soll. Wenn die SageMaker KI-Pipeline ein Modell trainiert und es in der Modellregistrierung registriert, wird ein Umpack-Schritt eingeführt, *falls* die Ausgabe des trainierten Modells aus dem Trainingsjob ein benutzerdefiniertes Inferenzskript enthalten muss. Beim Repack-Schritt wird das Modell dekomprimiert, ein neues Skript hinzugefügt und das Modell erneut komprimiert. Beim Ausführen der Pipeline wird der Repack-Schritt als Trainingsjob hinzugefügt.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. (Optional) Um die Liste der Pipelines nach Namen zu filtern, geben Sie einen vollständigen Namen oder einen Teil in das Suchfeld ein.

1. Wählen Sie einen Pipelinamen aus, um Details zur Pipeline anzuzeigen.

1. Wählen Sie eine der folgenden Registerkarten, um Pipeline-Details anzuzeigen:
   + **Ausführungen** – Details zu den Ausführungen.
   + **Grafik** – Das Pipeline-Diagramm, einschließlich aller Schritte.
   + **Parameter** – Die Ausführungsparameter und Metriken, die sich auf die Pipeline beziehen.
   + **Information** – Die mit der Pipeline verknüpften Metadaten, wie Tags, der Amazon Resource Name (ARN) der Pipeline und der Rollen-ARN. Sie können die Pipeline-Beschreibung auch von dieser Seite aus bearbeiten.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Pipelines** aus.

1. Um die Liste der Pipelines nach Namen einzugrenzen, geben Sie einen vollständigen oder teilweisen Pipelinenamen in das Suchfeld ein.

1. Wählen Sie einen Pipelinamen aus, um Details zur Pipeline anzuzeigen. Die Registerkarte Pipeline-Details wird geöffnet und zeigt eine Liste der Pipeline-Ausführungen an. Sie können eine Ausführung starten oder eine der anderen Registerkarten wählen, um weitere Informationen zur Pipeline zu erhalten. Verwenden Sie das Symbol **Eigenschafteninspektor** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/gears.png)), um auszuwählen, welche Spalten angezeigt werden sollen.

1. Wählen Sie auf der Seite mit den Pipeline-Details eine der folgenden Registerkarten, um Details zur Pipeline anzuzeigen:
   + **Ausführungen** – Details zu den Ausführungen. Sie können eine Ausführung auf dieser Registerkarte oder auf der Registerkarte **Diagramm** erstellen.
   + **Graph** – Die DAG für die Pipeline.
   + **Parameter** – Beinhaltet den Status der Modellgenehmigung.
   + **Einstellungen** – Die mit der Pipeline verknüpften Metadaten. Auf dieser Registerkarte können Sie die Pipeline-Definitionsdatei herunterladen und den Namen und die Beschreibung der Pipeline bearbeiten.

------

# Anzeige der Details eines Pipeline-Laufs
<a name="pipelines-studio-view-execution"></a>

Sie können die Details eines bestimmten SageMaker AI-Pipeline-Laufs überprüfen. Das kann Ihnen bei Folgendem helfen:
+ Identifizieren und beheben Sie Probleme, die während der Ausführung aufgetreten sein könnten, wie beispielsweise fehlgeschlagene Schritte oder unerwartete Fehler.
+ Vergleichen Sie die Ergebnisse verschiedener Pipeline-Ausführungen, um zu verstehen, wie sich Änderungen der Eingabedaten oder Parameter auf den gesamten Arbeitsablauf auswirken.
+ Identifizieren Sie Engpässe und Optimierungsmöglichkeiten.

Um die Details eines Pipeline-Laufs anzuzeigen, führen Sie bitte die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. (Optional) Um die Liste der Pipelines nach Namen zu filtern, geben Sie einen vollständigen Namen oder einen Teil in das Suchfeld ein.

1. Wählen Sie einen Pipelinamen aus, um Details zur Pipeline anzuzeigen.

1. Wählen Sie die Registerkarte **Ausführungen**.

1. Wählen Sie den Namen einer Pipeline-Ausführung aus, die Sie anzeigen möchten. Das Pipeline-Diagramm für diese Ausführung wird angezeigt.

1. Wählen Sie einen der Pipeline-Schritte in der Grafik aus, um die Schritteinstellungen in der rechten Seitenleiste anzuzeigen.

1. Wählen Sie eine der folgenden Registerkarten, um weitere Pipeline-Details anzuzeigen:
   + **Definition** – Das Pipeline-Diagramm, einschließlich aller Schritte.
   + **Parameter** – Beinhaltet den Status der Modellgenehmigung.
   + **Details** – Die mit der Pipeline verknüpften Metadaten, wie Tags, der Amazon Resource Name (ARN) der Pipeline und der Rollen-ARN. Sie können die Pipeline-Beschreibung auch von dieser Seite aus bearbeiten.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Pipelines** aus.

1. Um die Liste der Pipelines nach Namen einzugrenzen, geben Sie einen vollständigen oder teilweisen Pipelinenamen in das Suchfeld ein.

1. Wählen Sie einen Pipelinamen aus. Die Seite „**Ausführungen**“ der Pipeline wird geöffnet.

1. Wählen Sie auf der Seite **Ausführungen** einen Ausführungsnamen aus, um Details zur Ausführung anzuzeigen. Die Registerkarte mit den Ausführungsdetails wird geöffnet und zeigt ein Diagramm der Schritte in der Pipeline an.

1. Um nach einem Schritt anhand des Namens zu suchen, geben Sie Zeichen, die einem Schrittnamen entsprechen, in das Suchfeld ein. Verwenden Sie die Größenänderungssymbole unten rechts im Diagramm, um das Diagramm zu vergrößern und zu verkleinern, das Diagramm an den Bildschirm anzupassen und das Diagramm auf Vollbild anzuzeigen. Um sich auf einen bestimmten Teil des Diagramms zu konzentrieren, können Sie einen leeren Bereich des Diagramms auswählen und das Diagramm so ziehen, dass es in der Mitte dieses Bereichs liegt.   
![\[\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/yosemite/execution-graph-w-input.png)

1. Wählen Sie einen der Pipeline-Schritte in der Grafik aus, um Details zu dem Schritt anzuzeigen. Im vorherigen Screenshot wird ein Trainingsschritt ausgewählt und es werden die folgenden Tabs angezeigt:
   + **Eingabe** – Die Trainingseingaben. Wenn eine Eingabequelle von Amazon Simple Storage Service (Amazon S3) stammt, wählen Sie den Link aus, um die Datei in der Amazon S3-Konsole anzuzeigen.
   + **Ergebnis** – Die Trainingsergebnisse, wie Metriken, Diagramme, Dateien und Bewertungsergebnisse. Die Grafiken werden mit dem [Tracker](https://sagemaker-experiments.readthedocs.io/en/latest/tracker.html#smexperiments.tracker.Tracker.log_precision_recall) erstellt APIs.
   + **Logs** — Die CloudWatch Amazon-Logs, die durch den Schritt erstellt wurden.
   + **Info** – Die mit dem Schritt verknüpften Parameter und Metadaten.  
![\[\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/yosemite/execution-graph-info.png)

------

# Laden Sie eine Pipeline-Definitionsdatei herunter
<a name="pipelines-studio-download"></a>

Sie können die Definitionsdatei für Ihre SageMaker AI-Pipeline direkt von der Amazon SageMaker Studio-Benutzeroberfläche herunterladen. Sie können diese Pipeline-Definitionsdatei verwenden für:
+ Sicherung und Wiederherstellung: Verwenden Sie die heruntergeladene Datei, um eine Backup Ihrer Pipeline-Konfiguration zu erstellen, die Sie bei Infrastrukturausfällen oder versehentlichen Änderungen wiederherstellen können.
+ Versionskontrolle: Speichern Sie die Pipeline-Definitionsdatei in einem Quellcodeverwaltungssystem, um Änderungen an der Pipeline nachzuverfolgen und bei Bedarf zu früheren Versionen zurückzukehren.
+ Programmatische Interaktionen: Verwenden Sie die Pipeline-Definitionsdatei als Eingabe für das SageMaker SDK oder AWS CLI.
+ Integration mit Automatisierungsprozessen: Integrieren Sie die Pipeline-Definition in Ihre CI/CD Workflows oder andere Automatisierungsprozesse.

Um die Definitionsdatei einer Pipeline herunterzuladen, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. (Optional) Um die Liste der Pipelines nach Namen zu filtern, geben Sie einen vollständigen Namen oder einen Teil in das Suchfeld ein.

1. Wählen Sie einen Pipelinamen aus. Die Seite **Ausführungen** wird geöffnet und zeigt eine Liste der Pipeline-Ausführungen an.

1. Bleiben Sie auf der Seite „**Ausführungen**“ oder wählen Sie links neben der Tabelle mit den Pipeline-Ausführungen die Seite „**Grafik**“, „**Informationen**“ oder „**Parameter**“. Sie können die Pipeline-Definition von jeder dieser Seiten herunterladen.

1. Wählen Sie oben rechts auf der Seite die vertikalen Auslassungspunkte und dann **Pipeline-Definition herunterladen (JSON)** aus.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Pipelines** aus.

1. Um die Liste der Pipelines nach Namen einzugrenzen, geben Sie einen vollständigen oder teilweisen Pipelinenamen in das Suchfeld ein.

1. Wählen Sie einen Pipelinamen aus.

1. Wählen Sie die Registerkarte **Einstellungen**.

1. Wählen Sie **Pipeline-Definitionsdatei herunterladen** aus.

------

# Greifen Sie auf Versuchsdaten aus einer Pipeline zu
<a name="pipelines-studio-experiments"></a>

**Anmerkung**  
SageMaker Experiments ist eine Funktion, die nur in Studio Classic verfügbar ist.

Wenn Sie eine Pipeline erstellen und [pipeline\$1experiment\$1config](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.pipeline.Pipeline.pipeline_experiment_config) angeben, erstellt Pipelines standardmäßig die folgenden SageMaker Experiments-Entitäten, sofern sie nicht existieren:
+ Ein Experiment für die Pipeline
+ Eine Ausführungsgruppe für jede Ausführung der Pipeline
+ Ein Lauf für jeden SageMaker AI-Job, der in einem Pipeline-Schritt erstellt wurde

Informationen darüber, wie Experimente in Pipelines integriert werden, finden Sie unter [Integration von Amazon SageMaker Experiments](pipelines-experiments.md). Weitere Informationen zu SageMaker Experimenten finden Sie unter[SageMaker Amazon-Experimente in Studio Classic](experiments.md).

Sie können die Liste der mit einer Pipeline verknüpften Läufe entweder über die Liste der Pipeline-Ausführungen oder über die Liste der Experimente aufrufen.

**Um die Liste der Durchläufe von der Pipeline-Ausführungsliste aus anzuzeigen**

1. Um die Liste der Pipeline-Ausführungen anzuzeigen, folgen Sie den ersten fünf Schritten in der Registerkarte *Studio Classic* von [Anzeige der Details einer Pipeline](pipelines-studio-list.md).

1. Wählen Sie oben rechts auf dem Bildschirm das Symbol **Filte** (![\[Funnel or filter icon representing data filtering or narrowing down options.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/jumpstart/jumpstart-filter-icon.png)) aus.

1. Wählen Sie **Experiment** aus. Wenn die Experimentintegration bei der Erstellung der Pipeline nicht deaktiviert wurde, wird der Name des Experiments in der Ausführungsliste angezeigt. 
**Anmerkung**  
Die Integration von Experimenten wurde in Version 2.41.0 des [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) SDK eingeführt. Pipelines, die mit einer früheren Version des SDK erstellt wurden, sind standardmäßig nicht in Experimente integriert.

1. Wählen Sie das Experiment Ihrer Wahl aus, um Ausführungsgruppen und Läufe im Zusammenhang mit diesem Experiment anzuzeigen.

**Um die Liste der Durchläufe aus der Experimentliste anzuzeigen**

1. Wählen Sie in der linken Seitenleiste von Studio Classic das Symbol **Start** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Experimente** aus.

1. Verwenden Sie die Suchleiste oder das Symbol **Filter** (![\[Funnel or filter icon representing data filtering or narrowing down options.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/jumpstart/jumpstart-filter-icon.png)), um die Liste nach Experimenten zu filtern, die von einer Pipeline erstellt wurden.

1. Öffnen Sie einen Experimentnamen und sehen Sie sich eine Liste der Durchläufe an, die von der Pipeline erstellt wurden.

# Verfolgen der Herkunft einer Pipeline
<a name="pipelines-lineage-tracking"></a>

In diesem Tutorial verwenden Sie Amazon SageMaker Studio, um die Herkunft einer Amazon SageMaker AI ML-Pipeline zu verfolgen.

Die Pipeline wurde mit dem Notizbuch [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) im [ SageMaker GitHub Amazon-Beispiel-Repository](https://github.com/awslabs/amazon-sagemaker-examples) erstellt. Ausführliche Informationen zur Erstellung der Pipeline finden Sie unter [Definieren einer Pipeline](define-pipeline.md).

Lineage-Tracking in Studio basiert auf einem azyklisch gerichteten Diagramm (DAG). Die DAG stellt die Schritte in einer Pipeline dar. Von der DAG aus können Sie die Herkunft von jedem Schritt zu jedem anderen Schritt verfolgen. Das folgende Diagramm zeigt die einzelnen Schritte in der Pipeline. Diese Schritte werden in Studio als DAG angezeigt.

![\[\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/yosemite/pipeline-tutorial-steps.png)


Um die Herkunft einer Pipeline in der Amazon SageMaker Studio-Konsole nachzuverfolgen, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

**Um die Herkunft einer Pipeline zu verfolgen**

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich die Option **Pipelines** aus.

1. (Optional) Um die Liste der Pipelines nach Namen zu filtern, geben Sie einen vollständigen Namen oder einen Teil in das Suchfeld ein.

1. Wählen Sie in der Spalte **Name** einen Pipeline-Namen aus, um Details zur Pipeline anzuzeigen.

1. Wählen Sie die Registerkarte **Ausführungen**.

1. Wählen Sie in der Spalte **Name** der Tabelle **Ausführungen** den Namen einer Pipeline-Ausführung aus, die Sie anzeigen möchten.

1. Wählen Sie oben rechts auf der Seite **Ausführungen** die vertikalen Auslassungspunkte und dann **Pipeline-Definition herunterladen (**JSON) aus. Sie können sich die Datei ansehen, um zu sehen, wie das Pipeline-Diagramm definiert wurde. 

1. Wählen Sie **Bearbeiten**, um den Pipeline Designer zu öffnen.

1. Verwenden Sie die Steuerelemente zur Größenänderung und zum Zoomen in der oberen rechten Ecke der Leinwand, um das Diagramm zu vergrößern und zu verkleinern, das Diagramm an den Bildschirm anzupassen oder das Diagramm auf den Vollbildmodus zu erweitern.

1. Führen Sie die folgenden Schritte aus, um Ihre Trainings-, Validierungs- und Testdatensätze anzuzeigen:

   1. Wählen Sie in Ihrem Pipeline-Diagramm den Verarbeitungsschritt aus.

   1. Wählen Sie in der rechten Seitenleiste den Tab „**Übersicht**“.

   1. Suchen Sie im Abschnitt **Dateien** die Amazon-S3-Pfade zu den Trainings-, Validierungs- und Testdatensätzen.

1. Um Ihre Modellartefakte anzuzeigen, führen Sie die folgenden Schritte aus:

   1. Wählen Sie in Ihrem Pipeline-Diagramm den Trainingsschritt aus.

   1. Wählen Sie in der rechten Seitenleiste den Tab „**Übersicht**“.

   1. Suchen Sie im Abschnitt **Dateien** nach den Amazon-S3-Pfaden zum Modellartefakt.

1. Führen Sie die folgenden Schritte aus, um das Modellpaket ARN zu finden:

   1. Wählen Sie den Schritt Modell registrieren aus.

   1. Wählen Sie in der rechten Seitenleiste den Tab „**Übersicht**“.

   1. Suchen Sie im Abschnitt **Dateien** nach dem ARN des Modellpakets.

------
#### [ Studio Classic ]

**Um die Herkunft einer Pipeline zu verfolgen**

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie in der linken Seitenleiste von Studio das Symbol **Startseite** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)).

1. **Wählen Sie im Menü Pipelines aus.**

1. Verwenden Sie das **Suchfeld**, um die Liste der Pipelines zu filtern.

1. Wählen Sie die `AbalonePipeline`-Pipeline aus, um die Ausführungsliste und andere Details zur Pipeline anzuzeigen.

1. Wählen Sie das Symbol **Eigenschafteninspektor** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/gears.png)) in der rechten Seitenleiste, um den Bereich **TABELLENEIGENSCHAFTEN** zu öffnen, in dem Sie auswählen können, welche Eigenschaften angezeigt werden sollen.

1. Wählen Sie die Registerkarte **Einstellungen** und dann **Pipeline-Definitionsdatei herunterladen**. Sie können sich die Datei ansehen, um zu sehen, wie das Pipeline-Diagramm definiert wurde.

1. Wählen Sie auf der Registerkarte **Ausführung** die erste Zeile in der Ausführungsliste aus, um das zugehörige Ausführungsdiagramm und weitere Details zur Ausführung anzuzeigen. Beachten Sie, dass das Diagramm mit dem Diagramm übereinstimmt, das zu Beginn des Tutorials angezeigt wurde.

   Verwenden Sie die Größenänderungssymbole unten rechts im Diagramm, um das Diagramm zu vergrößern oder zu verkleinern, das Diagramm an den Bildschirm anzupassen oder das Diagramm auf Vollbild anzuzeigen. Um sich auf einen bestimmten Teil des Diagramms zu konzentrieren, können Sie einen leeren Bereich des Diagramms auswählen und das Diagramm so ziehen, dass es in der Mitte dieses Bereichs liegt. Der Einschub unten rechts im Diagramm zeigt Ihre Position im Diagramm an.  
![\[\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/yosemite/pipeline-tutorial-execution-graph.png)

1. Wählen Sie auf der Registerkarte **Diagramm** den `AbaloneProcess` Schritt aus, um Details zu dem Schritt anzuzeigen.

1. Die Amazon S3-Pfade zu den Trainings-, Validierungs- und Testdatensätzen finden Sie auf der Registerkarte **Ausgabe** unter **Dateien**.
**Anmerkung**  
Um die vollständigen Pfade zu erhalten, klicken Sie mit der rechten Maustaste auf den Pfad und wählen Sie dann **Zelleninhalt kopieren**.

   ```
   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. Wählen Sie den Schritt `AbaloneTrain`.

1. Suchen Sie den Amazon S3-Pfad zum Modellartefakt auf der Registerkarte **Ausgabe** unter **Dateien**:

   ```
   s3://sagemaker-eu-west-1-acct-id/AbaloneTrain/pipelines-6locnsqz4bfu-AbaloneTrain-NtfEpI0Ahu/output/model.tar.gz
   ```

1. Wählen Sie den Schritt `AbaloneRegisterModel`.

1. Suchen Sie den ARN des Modellpakets auf der Registerkarte **Ausgabe** unter **Dateien**:

   ```
   arn:aws:sagemaker:eu-west-1:acct-id:model-package/abalonemodelpackagegroupname/2
   ```

------

# Kubernetes-Orchestrierung
<a name="kubernetes-workflows"></a>

Sie können Ihre SageMaker Trainings- und Inferenzjobs mit SageMaker KI Operators for Kubernetes und AI Components for Kubeflow Pipelines orchestrieren. SageMaker SageMaker KI-Operatoren für Kubernetes erleichtern Entwicklern und Datenwissenschaftlern, die Kubernetes verwenden, das Trainieren, Optimieren und Bereitstellen von Modellen für maschinelles Lernen (ML) in KI. SageMaker SageMaker Mit KI-Komponenten für Kubeflow-Pipelines können Sie Ihre Datenverarbeitungs- und Trainingsaufgaben vom Kubernetes-Cluster auf den für maschinelles Lernen optimierten Managed Service von KI verlagern. SageMaker 

**Topics**
+ [SageMaker KI-Operatoren für Kubernetes](kubernetes-sagemaker-operators.md)
+ [SageMaker KI-Komponenten für Kubeflow-Pipelines](kubernetes-sagemaker-components-for-kubeflow-pipelines.md)

# SageMaker KI-Operatoren für Kubernetes
<a name="kubernetes-sagemaker-operators"></a>

SageMaker KI-Operatoren für Kubernetes erleichtern es Entwicklern und Datenwissenschaftlern, die Kubernetes verwenden, Modelle für maschinelles Lernen (ML) in KI zu trainieren, zu optimieren und bereitzustellen. SageMaker Sie können diese SageMaker KI-Operatoren auf Ihrem Kubernetes-Cluster in Amazon Elastic Kubernetes Service (Amazon EKS) installieren, um SageMaker KI-Jobs nativ mithilfe der Kubernetes-API und Kubernetes-Befehlszeilentools wie z. `kubectl` Diese Anleitung zeigt, wie Sie die Operatoren einrichten und verwenden, um Modelltraining, Hyperparameter-Tuning oder Inferenz (Echtzeit und Batch) auf KI von einem Kubernetes-Cluster aus durchzuführen. SageMaker Bei den Verfahren und Richtlinien in diesem Kapitel wird davon ausgegangen, dass Sie mit Kubernetes und seinen grundlegenden Befehlen vertraut sind.

**Wichtig**  
[Wir stellen die Entwicklung und den technischen Support der Originalversion von Operators for Kubernetes ein. SageMaker ](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master)  
Wenn Sie derzeit die Version `v1.2.2` oder eine niedrigere Version von [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) verwenden, empfehlen wir, Ihre Ressourcen auf den [ACK Service Controller](https://github.com/aws-controllers-k8s/sagemaker-controller) für Amazon zu migrieren. SageMaker Der ACK Service Controller ist eine neue Generation von SageMaker Operatoren für Kubernetes, die auf [AWS Controllers for](https://aws-controllers-k8s.github.io/community/) Kubernetes (ACK) basieren.  
Informationen zu den Migrationsschritten finden Sie unter [Migrieren Sie Ressourcen zu den neuesten Operatoren](kubernetes-sagemaker-operators-migrate.md).  
Antworten auf häufig gestellte Fragen zum Ende der Unterstützung für die Originalversion von SageMaker Operators for Kubernetes finden Sie unter [Ankündigung des Endes der Support der Originalversion von SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**Anmerkung**  
Für die Nutzung dieser Operatoren fallen keine zusätzlichen Gebühren an. Für alle SageMaker KI-Ressourcen, die Sie über diese Betreiber nutzen, fallen Gebühren an.

## Was ist ein Operator?
<a name="kubernetes-sagemaker-operators-overview"></a>

Ein Kubernetes-Operator ist ein Anwendungscontroller, der Anwendungen im Namen eines Kubernetes-Benutzers verwaltet. Die Controller der Steuerebene bestehen aus verschiedenen Regelkreisen, die einem Central State Manager (ETCD) zuhören, um den Status der von ihnen kontrollierten Anwendung zu regulieren. Beispiele für solche Anwendungen sind [C loud-controller-manager](https://kubernetes.io/docs/concepts/architecture/cloud-controller/) und`[kube-controller-manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)`. Betreiber bieten in der Regel eine Abstraktion auf höherer Ebene als die reine Kubernetes-API, was es Benutzern erleichtert, Anwendungen bereitzustellen und zu verwalten. Um Kubernetes um neue Funktionen zu erweitern, können Entwickler die Kubernetes-API erweitern, indem sie eine **benutzerdefinierte Ressource** erstellen, die ihre anwendungs- oder domainspezifische Logik und Komponenten enthält. Operatoren in Kubernetes ermöglichen es Benutzern, diese benutzerdefinierten Ressourcen nativ aufzurufen und die zugehörigen Workflows zu automatisieren.

### Wie funktioniert AWS Controllers for Kubernetes (ACK)?
<a name="kubernetes-sagemaker-operators-explained"></a>

Mit den SageMaker KI Operators for Kubernetes können Sie Jobs in SageMaker KI von Ihrem Kubernetes-Cluster aus verwalten. Die neueste Version von SageMaker AI Operators for Kubernetes basiert auf AWS Controllers for Kubernetes (ACK). ACK umfasst eine gemeinsame Controller-Laufzeit, einen Codegenerator und eine Reihe von AWS dienstspezifischen Controllern, von denen einer der KI-Controller ist. SageMaker 

Das folgende Diagramm veranschaulicht diese Funktionsweise.

![\[ACK-basierter SageMaker KI-Operator für Kubernetes erklärt.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/k8s-orchestration/sagemaker-operators-for-kubernetes-ack-controller.png)


In diesem Diagramm möchte ein Kubernetes-Benutzer mithilfe der Kubernetes-API Modelltraining auf SageMaker KI innerhalb des Kubernetes-Clusters ausführen. Der Benutzer ruft an und übergibt dabei eine Datei`kubectl apply`, die eine benutzerdefinierte Kubernetes-Ressource beschreibt, die den Trainingsjob beschreibt. SageMaker `kubectl apply`übergibt diese Datei, ein sogenanntes Manifest, an den Kubernetes-API-Server, der im Kubernetes-Controller-Knoten ausgeführt wird (Schritt *1* im Workflow-Diagramm). *Der Kubernetes-API-Server empfängt das Manifest mit der SageMaker Trainingsjobspezifikation und bestimmt, ob der Benutzer berechtigt ist, eine benutzerdefinierte Ressource zu erstellen`sageMaker.services.k8s.aws/TrainingJob`, und ob die benutzerdefinierte Ressource ordnungsgemäß formatiert ist (Schritt 2).* Wenn der Benutzer autorisiert ist und die benutzerdefinierte Ressource gültig ist, schreibt der Kubernetes-API-Server (Schritt *3*) die benutzerdefinierte Ressource in seinen etcd-Datenspeicher und antwortet dann (Schritt *4*) dem Benutzer, dass die benutzerdefinierte Ressource erstellt wurde. Der SageMaker KI-Controller, der auf einem Kubernetes-Worker-Knoten im Kontext eines normalen Kubernetes-Pods läuft, wird benachrichtigt (Schritt *5*), dass eine neue benutzerdefinierte Ressource dieser Art erstellt wurde. `sageMaker.services.k8s.aws/TrainingJob` Der SageMaker KI-Controller kommuniziert dann (Schritt *6*) mit der SageMaker API und ruft die SageMaker `CreateTrainingJob` KI-API auf, um den Trainingsjob in zu erstellen. AWS Nach der Kommunikation mit der SageMaker API ruft der SageMaker KI-Controller den Kubernetes-API-Server auf, um den Status der benutzerdefinierten Ressource mit Informationen zu aktualisieren (Schritt *7*), die sie von der KI erhalten hat. SageMaker Der SageMaker KI-Controller stellt den Entwicklern daher dieselben Informationen zur Verfügung, die sie mit dem AWS SDK erhalten hätten.

### Übersicht über die Berechtigungen
<a name="kubernetes-sagemaker-operators-authentication"></a>

Die Betreiber greifen in Ihrem Namen auf SageMaker KI-Ressourcen zu. Die IAM-Rolle, die der Operator für die Interaktion mit AWS Ressourcen annimmt, unterscheidet sich von den Anmeldeinformationen, die Sie für den Zugriff auf den Kubernetes-Cluster verwenden. Die Rolle unterscheidet sich auch von der Rolle, AWS die Sie bei der Ausführung Ihrer Machine-Learning-Jobs einnehmen. 

In der folgenden Abbildung werden die verschiedenen Authentifizierungsebenen erklärt.

![\[SageMaker AI Operator für Kubernetes, verschiedene Authentifizierungsebenen.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/k8s-orchestration/sagemaker-operators-for-kubernetes-authentication.png)


# Aktuelle SageMaker KI-Operatoren für Kubernetes
<a name="kubernetes-sagemaker-operators-ack"></a>

Dieser Abschnitt basiert auf der neuesten Version von SageMaker AI Operators for Kubernetes, die AWS Controllers for Kubernetes (ACK) verwendet.

**Wichtig**  
Wenn Sie derzeit die Version `v1.2.2` oder eine niedrigere Version von [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) verwenden, empfehlen wir, Ihre Ressourcen auf den [ACK Service Controller](https://github.com/aws-controllers-k8s/sagemaker-controller) für Amazon zu migrieren. SageMaker Der ACK Service Controller ist eine neue Generation von SageMaker Operatoren für Kubernetes, die auf [AWS Controllers for](https://aws-controllers-k8s.github.io/community/) Kubernetes (ACK) basieren.  
Informationen zu den Migrationsschritten finden Sie unter [Migrieren Sie Ressourcen zu den neuesten Operatoren](kubernetes-sagemaker-operators-migrate.md).  
Antworten auf häufig gestellte Fragen zum Ende der Unterstützung für die Originalversion von SageMaker Operators for Kubernetes finden Sie unter [Ankündigung des Endes der Support der Originalversion von SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Die neueste Version von [SageMaker AI Operators for Kubernetes](https://github.com/aws-controllers-k8s/sagemaker-controller) basiert auf [AWS Controllers for Kubernetes (ACK)](https://aws-controllers-k8s.github.io/community/ ), einem Framework zum Erstellen benutzerdefinierter Kubernetes-Controller, bei dem jeder Controller mit einer Service-API kommuniziert. AWS Diese Controller ermöglichen es Kubernetes-Benutzern, AWS -Ressourcen wie Datenbanken oder Nachrichtenwarteschlangen mithilfe der Kubernetes-API bereitzustellen.

Gehen Sie wie folgt vor, um ACK zu installieren und zu verwenden, um Modelle für maschinelles Lernen mit Amazon SageMaker AI zu trainieren, zu optimieren und bereitzustellen.

**Topics**
+ [Installieren Sie SageMaker AI Operators für Kubernetes](#kubernetes-sagemaker-operators-ack-install)
+ [Verwenden Sie SageMaker KI-Operatoren für Kubernetes](#kubernetes-sagemaker-operators-ack-use)
+ [Referenz](#kubernetes-sagemaker-operators-ack-reference)

## Installieren Sie SageMaker AI Operators für Kubernetes
<a name="kubernetes-sagemaker-operators-ack-install"></a>

Informationen zum Einrichten der neuesten verfügbaren Version von SageMaker AI Operators for Kubernetes finden Sie im Abschnitt *Einrichtung* unter [Machine Learning mit dem ACK SageMaker AI Controller](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup).

## Verwenden Sie SageMaker KI-Operatoren für Kubernetes
<a name="kubernetes-sagemaker-operators-ack-use"></a>

Ein Tutorial zum Trainieren eines Modells für maschinelles Lernen mit dem ACK Service Controller für Amazon SageMaker AI mithilfe von Amazon EKS finden Sie unter [Machine Learning with the ACK SageMaker AI Controller](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/).

Ein Beispiel für Autoscaling finden Sie unter [Skalieren von SageMaker KI-Workloads mit Application](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/) Auto Scaling

## Referenz
<a name="kubernetes-sagemaker-operators-ack-reference"></a>

Sehen Sie sich auch das [ACK Service Controller for Amazon SageMaker AI GitHub Repository](https://github.com/aws-controllers-k8s/sagemaker-controller) an oder lesen Sie die Dokumentation zu [AWS Controllers for Kubernetes](https://aws-controllers-k8s.github.io/community/docs/community/overview/). 

# Alte SageMaker KI-Operatoren für Kubernetes
<a name="kubernetes-sagemaker-operators-end-of-support"></a>

Dieser Abschnitt basiert auf der Originalversion von [SageMaker AI Operators for](https://github.com/aws/amazon-sagemaker-operator-for-k8s) Kubernetes.

**Wichtig**  
Wir stellen die Entwicklung und den technischen Support der Originalversion von [ SageMaker Operators for](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) Kubernetes ein.  
Wenn Sie derzeit die Version `v1.2.2` oder eine niedrigere Version von [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) verwenden, empfehlen wir, Ihre Ressourcen auf den [ACK Service Controller](https://github.com/aws-controllers-k8s/sagemaker-controller) für Amazon zu migrieren. SageMaker Der ACK Service Controller ist eine neue Generation von SageMaker Operatoren für Kubernetes, die auf [AWS Controllers for](https://aws-controllers-k8s.github.io/community/) Kubernetes (ACK) basieren.  
Informationen zu den Migrationsschritten finden Sie unter [Migrieren Sie Ressourcen zu den neuesten Operatoren](kubernetes-sagemaker-operators-migrate.md).  
Antworten auf häufig gestellte Fragen zum Ende der Unterstützung für die Originalversion von SageMaker Operators for Kubernetes finden Sie unter [Ankündigung des Endes der Support der Originalversion von SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**Topics**
+ [Installieren Sie SageMaker AI Operators für Kubernetes](#kubernetes-sagemaker-operators-eos-install)
+ [Verwenden Sie Amazon SageMaker AI Jobs](kubernetes-sagemaker-jobs.md)
+ [Migrieren Sie Ressourcen zu den neuesten Operatoren](kubernetes-sagemaker-operators-migrate.md)
+ [Ankündigung des Endes der Support der Originalversion von SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

## Installieren Sie SageMaker AI Operators für Kubernetes
<a name="kubernetes-sagemaker-operators-eos-install"></a>

Gehen Sie wie folgt vor, um SageMaker AI Operators for Kubernetes zu installieren und zu verwenden, um Modelle für maschinelles Lernen mit Amazon SageMaker AI zu trainieren, zu optimieren und bereitzustellen.

**Topics**
+ [Auf IAM-Rolle basierende Einrichtung und Bereitstellung eines Operators](#iam-role-based-setup-and-operator-deployment)
+ [Bereinigen von Ressourcen](#cleanup-operator-resources)
+ [Operatoren löschen](#delete-operators)
+ [Fehlerbehebung](#troubleshooting)
+ [Bilder und SMlogs in jeder Region](#images-and-smlogs-in-each-region)

### Auf IAM-Rolle basierende Einrichtung und Bereitstellung eines Operators
<a name="iam-role-based-setup-and-operator-deployment"></a>

In den folgenden Abschnitten werden die Schritte zum Einrichten und Bereitstellen der Originalversion des Operators beschrieben.

**Warnung**  
**Erinnerung: Mit** den folgenden Schritten wird nicht die neueste Version von SageMaker AI Operators for Kubernetes installiert. Informationen zur Installation der neuen ACK-basierten SageMaker KI-Operatoren für Kubernetes finden Sie unter. [Aktuelle SageMaker KI-Operatoren für Kubernetes](kubernetes-sagemaker-operators-ack.md)

#### Voraussetzungen
<a name="prerequisites"></a>

In diesem Leitfaden wird davon ausgegangen, dass Sie die folgenden Voraussetzungen erfüllt haben: 
+ Installieren Sie die folgenden Tools auf dem Client-Computer, der für den Zugriff auf Ihren Kubernetes-Cluster verwendet wird: 
  + [https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html), Version 1.13 oder höher. Verwenden Sie eine `kubectl`-Version, die innerhalb einer Nebenversion Ihrer Amazon EKS-Cluster-Kontrollebene liegt. Ein 1.13 `kubectl`-Client funktioniert zum Beispiel mit Kubernetes 1.13- und 1.14-Clustern. OpenID Connect (OIDC) wird in Versionen vor 1.13 nicht unterstützt. 
  + [https://github.com/weaveworks/eksctl](https://github.com/weaveworks/eksctl)-Version 0.7.0 oder höher 
  + [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) Version 1.16.232 oder höher 
  + (optional) [Helm](https://helm.sh/docs/intro/install/)-Version 3.0 oder höher 
  + [aws-iam-authenticator](https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html) 
+ IAM-Berechtigungen zum Erstellen von Rollen und zum Zuordnen von Richtlinien zu Rollen haben.
+ Es wurde ein Kubernetes-Cluster erstellt, auf dem die Operatoren ausgeführt werden sollen. Es sollte entweder Kubernetes Version 1.13 oder 1.14 sein. Informationen zur automatisierten Clustererstellung mithilfe von finden Sie unter [Starten mit eksctl`eksctl`](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html). Die Bereitstellung eines Clusters dauert 20-30 Minuten. 

#### Bereitstellung im Clusterbereich
<a name="cluster-scoped-deployment"></a>

Bevor Sie Ihren Operator mithilfe einer IAM-Rolle bereitstellen können, ordnen Sie Ihrer Rolle einen OpenID Connect (OIDC) Identity Provider (IdP) zu, um sich beim IAM-Service zu authentifizieren.

##### Erstellen Sie einen OIDC-Anbieter für Ihren Cluster
<a name="create-an-openid-connect-provider-for-your-cluster"></a>

Die folgenden Anweisungen zeigen, wie Sie einen OIDC-Anbieter erstellen und Ihrem Amazon EKS-Cluster zuordnen.

1. Legen Sie die lokalen Variablen `CLUSTER_NAME` und die `AWS_REGION`-Umgebungsvariablen wie folgt fest:

   ```
   # Set the Region and cluster
   export CLUSTER_NAME="<your cluster name>"
   export AWS_REGION="<your region>"
   ```

1. Verwenden Sie den folgenden Befehl, um den OIDC-Anbieter Ihrem Cluster zuzuordnen. Weitere Informationen finden Sie unter [Aktivieren von IAM-Rollen für Service-Konten in Ihrem Cluster](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
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   [_]  eksctl version 0.10.1
     [_]  using region us-east-1
     [_]  IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"
   ```

Da der Cluster nun über einen OIDC-Identitätsanbieter verfügt, können Sie eine Rolle erstellen und Kubernetes ServiceAccount die Erlaubnis erteilen, die Rolle zu übernehmen.

##### Holen Sie sich die OIDC-ID
<a name="get-the-oidc-id"></a>

Rufen Sie zur Einrichtung die URL des ServiceAccount OIDC-Ausstellers mit dem folgenden Befehl ab:

```
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \
      --query cluster.identity.oidc.issuer --output text
```

Der Befehl gibt eine URL wie die folgende zurück: 

```
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

In dieser URL ist der Wert `D48675832CA65BD10A532F597OIDCID` die OIDC-ID. Die OIDC-ID für Ihren Cluster ist unterschiedlich. Sie benötigen diesen OIDC-ID-Wert, um eine Rolle zu erstellen. 

 Wenn Ihre Ausgabe `None` ist, bedeutet das, dass Ihre Client-Version alt ist. Führen Sie zum Umgehen des Problems den folgenden Befehl aus: 

```
aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC
```

Die OIDC-URL wird wie folgt zurückgegeben: 

```
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

##### Erstellen einer IAM-Rolle
<a name="create-an-iam-role"></a>

1. Erstellen Sie eine Datei mit dem Namen `trust.json` und fügen Sie den folgenden Vertrauensstellungs-Codeblock ein. Achten Sie darauf, alle `<OIDC ID>`, `<AWS account number>`, und `<EKS Cluster region>`-Platzhalter durch Werte zu ersetzen, die Ihrem Cluster entsprechen. 

------
#### [ 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. Führen Sie den folgenden Befehl aus, um eine Rolle mit der unter `trust.json` definierten Vertrauensstellung zu erstellen. Diese Rolle ermöglicht es dem Amazon EKS-Cluster, Anmeldeinformationen von IAM abzurufen und zu aktualisieren. 

   ```
   aws iam create-role --region ${AWS_REGION} --role-name <role name> --assume-role-policy-document file://trust.json --output=text
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

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

    Achten Sie auf `ROLE ARN`; Sie übergeben diesen Wert an Ihren Operator. 

##### Hängen Sie die AmazonSageMakerFullAccess Richtlinie an die Rolle an
<a name="attach-the-amazonsagemakerfullaccess-policy-to-the-role"></a>

Um der Rolle Zugriff auf SageMaker KI zu gewähren, fügen Sie die [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)Richtlinie bei. Wenn Sie die Berechtigungen auf den Operator beschränken möchten, können Sie Ihre eigene benutzerdefinierte Richtlinie erstellen und diese anhängen. 

 Um `AmazonSageMakerFullAccess` anzuhängen, führen Sie den folgenden Befehl aus: 

```
aws iam attach-role-policy --role-name <role name>  --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
```

Die Kubernetes ServiceAccount `sagemaker-k8s-operator-default` sollten über Berechtigungen verfügen`AmazonSageMakerFullAccess`. Bestätigen Sie dies, wenn Sie den Operator installieren. 

##### Bereitstellen des Operators
<a name="deploy-the-operator"></a>

Bei der Bereitstellung Ihres Operators können Sie entweder eine YAML-Datei oder Helm-Diagramme verwenden. 

##### Stellen Sie den Operator mit YAML bereit
<a name="deploy-the-operator-using-yaml"></a>

Dies ist die einfachste Möglichkeit, Ihre Operatoren bereitzustellen. Der Prozess läuft folgendermaßen ab: 

1. Laden Sie das Installationsskript mit dem folgenden Befehl herunter: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/installer.yaml
   ```

1. Bearbeiten Sie die zu ersetzende `installer.yaml` Datei`eks.amazonaws.com/role-arn`. Ersetzen Sie den ARN hier durch den Amazon-Ressourcennamen (ARN) für die OIDC-basierte Rolle, die Sie erstellt haben. 

1. Verwenden Sie den folgenden Befehl, um den Cluster bereitzustellen: 

   ```
   kubectl apply -f installer.yaml
   ```

##### Stellen Sie den Operator mithilfe von Helm Charts bereit
<a name="deploy-the-operator-using-helm-charts"></a>

Verwenden Sie das mitgelieferte Helm-Diagramm, um den Operator zu installieren. 

1. Klonen Sie das Helm-Installationsverzeichnis mit dem folgenden Befehl: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Navigieren Sie zum Verzeichnis `amazon-sagemaker-operator-for-k8s/hack/charts/installer`. Bearbeiten Sie die `rolebased/values.yaml` Datei, die allgemeine Parameter für das Diagramm enthält. Ersetzen Sie hier den Rollen-ARN durch den Amazon-Ressourcennamen (ARN) für die OIDC-basierte Rolle, die Sie erstellt haben. 

1. Installieren Sie das Helm Diagramm mit dem folgenden Befehl: 

   ```
   kubectl create namespace sagemaker-k8s-operator-system
     helm install --namespace sagemaker-k8s-operator-system sagemaker-operator rolebased/
   ```

   Wenn Sie den Operator in einem anderen als dem angegebenen Namespace installieren möchten, müssen Sie den in der IAM-Rollen–`trust.json`datei definierten Namespace entsprechend anpassen. 

1. Nach einem Moment wird das Diagramm mit einem zufällig generierten Namen installiert. Überprüfen Sie, ob die Installation erfolgreich war, indem Sie den folgenden Befehl ausführen: 

   ```
   helm ls
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

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

##### Überprüfen Sie den Einsatz des Operators
<a name="verify-the-operator-deployment"></a>

1. Sie sollten in der Lage sein, die benutzerdefinierten SageMaker KI-Ressourcendefinitionen (CRDs) für jeden in Ihrem Cluster bereitgestellten Operator zu sehen, indem Sie den folgenden Befehl ausführen: 

   ```
   kubectl get crd | grep sagemaker
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   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. Stellen Sie sicher, dass der Operator-Pod erfolgreich ausgeführt wird. Verwenden Sie den folgenden Befehl, um alle Pods aufzulisten: 

   ```
   kubectl -n sagemaker-k8s-operator-system get pods
   ```

   Sie sollten einen Pod mit dem Namen `sagemaker-k8s-operator-controller-manager-*****` im Namespace `sagemaker-k8s-operator-system` wie folgt sehen: 

   ```
   NAME                                                         READY   STATUS    RESTARTS   AGE
   sagemaker-k8s-operator-controller-manager-12345678-r8abc     2/2     Running   0          23s
   ```

#### Bereitstellung im Namespace-Bereich
<a name="namespace-scoped-deployment"></a>

Sie haben die Möglichkeit, Ihren Operator im Rahmen eines individuellen Kubernetes-Namespace zu installieren. In diesem Modus überwacht der Controller Ressourcen nur dann und gleicht sie mit SageMaker KI ab, wenn die Ressourcen in diesem Namespace erstellt wurden. Dies ermöglicht eine genauere Kontrolle darüber, welcher Controller welche Ressourcen verwaltet. Dies ist nützlich, wenn Sie die Bereitstellung für mehrere AWS Konten durchführen oder kontrollieren möchten, welche Benutzer Zugriff auf bestimmte Jobs haben. 

In dieser Anleitung wird beschrieben, wie ein Operator in einem bestimmten, vordefinierten Namespace installiert wird. Um einen Controller in einem zweiten Namespace bereitzustellen, folgen Sie der Anleitung von Anfang bis Ende und ändern Sie den Namespace in jedem Schritt. 

##### Erstellen Sie einen OIDC-Anbieter für Ihren Amazon EKS-Cluster
<a name="create-an-openid-connect-provider-for-your-eks-cluster"></a>

Die folgenden Anweisungen zeigen, wie Sie einen OIDC-Anbieter erstellen und mit Ihrem Amazon EKS-Cluster verknüpfen. 

1. Legen Sie die lokalen Variablen `CLUSTER_NAME` und die `AWS_REGION`-Umgebungsvariablen wie folgt fest: 

   ```
   # Set the Region and cluster
   export CLUSTER_NAME="<your cluster name>"
   export AWS_REGION="<your region>"
   ```

1. Verwenden Sie den folgenden Befehl, um den OIDC-Anbieter Ihrem Cluster zuzuordnen. Weitere Informationen finden Sie unter [Aktivieren von IAM-Rollen für Service-Konten in Ihrem Cluster](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
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   [_]  eksctl version 0.10.1
     [_]  using region us-east-1
     [_]  IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"
   ```

Da der Cluster nun über einen OIDC-Identitätsanbieter verfügt, erstellen Sie eine Rolle und erteilen Sie Kubernetes die ServiceAccount Erlaubnis, die Rolle zu übernehmen. 

##### Holen Sie sich Ihre OIDC-ID
<a name="get-your-oidc-id"></a>

Um das einzurichten ServiceAccount, rufen Sie zunächst die OpenID Connect-Aussteller-URL mit dem folgenden Befehl ab: 

```
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \
      --query cluster.identity.oidc.issuer --output text
```

Die Ausgabe des Befehls ähnelt der Folgenden: 

```
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

In dieser URL ist der Wert CA65 BD10 D48675832 A532F597OIDCID die OIDC-ID. Die OIDC-ID für Ihren Cluster ist unterschiedlich. Sie benötigen diesen OIDC-ID-Wert, um eine Rolle zu erstellen. 

 Wenn Ihre Ausgabe `None` ist, bedeutet das, dass Ihre Client-Version alt ist. Führen Sie zum Umgehen des Problems den folgenden Befehl aus: 

```
aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC
```

Die OIDC-URL wird wie folgt zurückgegeben: 

```
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

##### Erstellen Sie Ihre IAM-Rolle
<a name="create-your-iam-role"></a>

1. Erstellen Sie eine Datei mit dem Namen `trust.json` und fügen Sie den folgenden Codeblock für Vertrauensbeziehungen ein. Achten Sie darauf, alle `<OIDC ID>`, `<AWS account number>`, `<EKS Cluster region>`, und `<Namespace>` und Platzhalter durch Werte zu ersetzen, die Ihrem Cluster entsprechen. Für die Zwecke dieses Handbuchs `my-namespace` wird für den `<Namespace>` Wert verwendet. 

------
#### [ 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. Führen Sie den folgenden Befehl aus, um eine Rolle mit der unter `trust.json` definierten Vertrauensstellung zu erstellen. Diese Rolle ermöglicht es dem Amazon EKS-Cluster, Anmeldeinformationen von IAM abzurufen und zu aktualisieren. 

   ```
   aws iam create-role --region ${AWS_REGION} --role-name <role name> --assume-role-policy-document file://trust.json --output=text
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

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

Beachten Sie `ROLE ARN`. Sie geben diesen Wert an Ihren Operator weiter. 

##### AmazonSageMakerFullAccess Ordnen Sie die Richtlinie Ihrer Rolle zu
<a name="attach-the-amazonsagemakerfullaccess-policy-to-your-role"></a>

Um der Rolle Zugriff auf SageMaker KI zu gewähren, fügen Sie die [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)Richtlinie bei. Wenn Sie die Berechtigungen auf den Operator beschränken möchten, können Sie Ihre eigene benutzerdefinierte Richtlinie erstellen und diese anhängen. 

 Um `AmazonSageMakerFullAccess` anzuhängen, führen Sie den folgenden Befehl aus: 

```
aws iam attach-role-policy --role-name <role name>  --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
```

Die Kubernetes ServiceAccount `sagemaker-k8s-operator-default` sollten über Berechtigungen verfügen`AmazonSageMakerFullAccess`. Bestätigen Sie dies, wenn Sie den Operator installieren. 

##### Stellen Sie den Operator in Ihrem Namespace bereit
<a name="deploy-the-operator-to-your-namespace"></a>

Bei der Bereitstellung Ihres Operators können Sie entweder eine YAML-Datei oder Helm-Diagramme verwenden. 

##### Stellen Sie den Operator mithilfe von YAML in Ihrem Namespace bereit
<a name="deploy-the-operator-to-your-namespace-using-yaml"></a>

Die Bereitstellung eines Operators innerhalb eines Namespaces besteht aus zwei Teilen. Der erste ist der Satz davon CRDs , der auf Clusterebene installiert ist. Diese Ressourcendefinitionen müssen nur einmal pro Kubernetes-Cluster installiert werden. Der zweite Teil betrifft die Bedienerberechtigungen und die Bereitstellung selbst. 

 Wenn Sie das CRDs noch nicht im Cluster installiert haben, wenden Sie das CRD-Installationsprogramm YAML mit dem folgenden Befehl an: 

```
kubectl apply -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml
```

Um den Operator auf dem Cluster zu installieren: 

1. Laden Sie das Operator-Installationsprogramm YAML mit dem folgenden Befehl herunter: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/operator.yaml
   ```

1. Aktualisieren Sie das Installationsprogramm YAML mit dem folgenden Befehl, sodass die Ressourcen in Ihrem angegebenen Namespace platziert werden: 

   ```
   sed -i -e 's/PLACEHOLDER-NAMESPACE/<YOUR NAMESPACE>/g' operator.yaml
   ```

1. Bearbeiten Sie die `operator.yaml` Datei, um Ressourcen in Ihrem `eks.amazonaws.com/role-arn` zu platzieren. Ersetzen Sie den ARN hier durch den Amazon-Ressourcennamen (ARN) für die OIDC-basierte Rolle, die Sie erstellt haben. 

1. Verwenden Sie den folgenden Befehl, um den Cluster bereitzustellen: 

   ```
   kubectl apply -f operator.yaml
   ```

##### Stellen Sie den Operator mithilfe von Helm Charts in Ihrem Namespace bereit
<a name="deploy-the-operator-to-your-namespace-using-helm-charts"></a>

Für die Bereitstellung eines Operators im Rahmen eines Namespaces sind zwei Teile erforderlich. Der erste ist der Satz CRDs , der auf Clusterebene installiert ist. Diese Ressourcendefinitionen müssen nur einmal pro Kubernetes-Cluster installiert werden. Der zweite Teil betrifft die Bedienerberechtigungen und die Bereitstellung selbst. Wenn Sie Helm Charts verwenden, müssen Sie zuerst den Namespace mit `kubectl` erstellen. 

1. Klonen Sie das Helm-Installationsverzeichnis mit dem folgenden Befehl: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Navigieren Sie zum Verzeichnis `amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced`. Bearbeiten Sie die `rolebased/values.yaml` Datei, die allgemeine Parameter für das Diagramm enthält. Ersetzen Sie hier den Rollen-ARN durch den Amazon-Ressourcennamen (ARN) für die OIDC-basierte Rolle, die Sie erstellt haben. 

1. Installieren Sie das Helm Chart mit dem folgenden Befehl: 

   ```
   helm install crds crd_chart/
   ```

1. Erstellen Sie den erforderlichen Namespace und installieren Sie den Operator mit dem folgenden Befehl: 

   ```
   kubectl create namespace <namespace>
   helm install --n <namespace> op operator_chart/
   ```

1. Nach einem Moment wird das Diagramm mit dem Namen `sagemaker-operator` installiert. Überprüfen Sie, ob die Installation erfolgreich war, indem Sie den folgenden Befehl ausführen: 

   ```
   helm ls
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

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

##### Überprüfen Sie die Operator-Bereitstellung in Ihrem Namespace
<a name="verify-the-operator-deployment-to-your-namespace"></a>

1. Sie sollten in der Lage sein, die benutzerdefinierten SageMaker KI-Ressourcendefinitionen (CRDs) für jeden in Ihrem Cluster bereitgestellten Operator zu sehen, indem Sie den folgenden Befehl ausführen: 

   ```
   kubectl get crd | grep sagemaker
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   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. Stellen Sie sicher, dass der Operator-Pod erfolgreich ausgeführt wird. Verwenden Sie den folgenden Befehl, um alle Pods aufzulisten: 

   ```
   kubectl -n my-namespace get pods
   ```

   Sie sollten einen Pod mit dem Namen `sagemaker-k8s-operator-controller-manager-*****` im Namespace `my-namespace` wie folgt sehen: 

   ```
   NAME                                                         READY   STATUS    RESTARTS   AGE
   sagemaker-k8s-operator-controller-manager-12345678-r8abc     2/2     Running   0          23s
   ```

#### Installieren Sie das SageMaker `kubectl` AI-Logs-Plugin
<a name="install-the-amazon-sagemaker-logs-kubectl-plugin"></a>

 Als Teil der SageMaker AI Operators for Kubernetes können Sie das `smlogs` [Plugin](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/) für verwenden. `kubectl` Dadurch können SageMaker CloudWatch KI-Logs mit gestreamt werden. `kubectl` `kubectl`muss auf Ihrem [PATH](http://www.linfo.org/path_env_var.html) installiert sein. Die folgenden Befehle platzieren die Binärdatei in dem `sagemaker-k8s-bin` Verzeichnis in Ihrem Home-Verzeichnis und fügen dieses Verzeichnis Ihrem `PATH` hinzu. 

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

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob das`kubectl`-Plugin korrekt installiert ist: 

```
kubectl smlogs
```

Wenn das `kubectl`-Plugin korrekt installiert ist, sollte Ihre Ausgabe wie folgt aussehen: 

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

### Bereinigen von Ressourcen
<a name="cleanup-operator-resources"></a>

Um den Operator aus Ihrem Cluster zu deinstallieren, müssen Sie zunächst sicherstellen, dass Sie alle SageMaker KI-Ressourcen aus dem Cluster löschen. Wenn Sie dies nicht tun, hängt der Löschvorgang des Operators ab. Führen Sie die folgenden Befehle aus, um alle Aufträge zu stoppen: 

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

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen: 

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

Nachdem Sie alle SageMaker KI-Jobs gelöscht haben, finden Sie weitere Informationen [Operatoren löschen](#delete-operators) zum Löschen des Operators aus Ihrem Cluster.

### Operatoren löschen
<a name="delete-operators"></a>

#### Löschen Sie clusterbasierte Operatoren
<a name="delete-cluster-based-operators"></a>

##### Operatoren, die mit YAML installiert wurden
<a name="operators-installed-using-yaml"></a>

Um den Operator aus Ihrem Cluster zu deinstallieren, stellen Sie sicher, dass alle SageMaker KI-Ressourcen aus dem Cluster gelöscht wurden. Wenn Sie dies nicht tun, hängt der Löschvorgang des Operators ab.

**Anmerkung**  
Stellen Sie vor dem Löschen Ihres Clusters sicher, dass Sie alle SageMaker KI-Ressourcen aus dem Cluster löschen. Weitere Informationen finden Sie unter [Bereinigen von Ressourcen](#cleanup-operator-resources).

Nachdem Sie alle SageMaker KI-Jobs gelöscht haben, verwenden Sie, `kubectl` um den Operator aus dem Cluster zu löschen:

```
# Delete the operator and its resources
kubectl delete -f /installer.yaml
```

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen: 

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

##### Mithilfe von Helm Charts installierte Operatoren
<a name="operators-installed-using-helm-charts"></a>

Um den Operator zu löschen CRDs, löschen Sie zunächst alle laufenden Jobs. Löschen Sie dann das Helm-Diagramm, das für die Bereitstellung der Operatoren verwendet wurde, mithilfe der folgenden Befehle: 

```
# get the helm charts
helm ls
  
# delete the charts
helm delete <chart_name>
```

#### Löschen Sie Namespace-basierte Operatoren
<a name="delete-namespace-based-operators"></a>

##### Mit YAML installierte Operatoren
<a name="operators-installed-with-yaml"></a>

Um den Operator aus Ihrem Cluster zu deinstallieren, stellen Sie zunächst sicher, dass alle SageMaker KI-Ressourcen aus dem Cluster gelöscht wurden. Wenn Sie dies nicht tun, hängt der Löschvorgang des Operators ab.

**Anmerkung**  
Stellen Sie vor dem Löschen Ihres Clusters sicher, dass Sie alle SageMaker KI-Ressourcen aus dem Cluster löschen. Weitere Informationen finden Sie unter [Bereinigen von Ressourcen](#cleanup-operator-resources).

Nachdem Sie alle SageMaker KI-Jobs gelöscht haben, verwenden Sie, `kubectl` um zuerst den Operator aus dem Namespace und dann CRDs aus dem Cluster zu löschen. Führen Sie die folgenden Befehle aus, um den Operator aus dem Cluster zu löschen: 

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

##### Operatoren, die mit Helm Charts installiert wurden
<a name="operators-installed-with-helm-charts"></a>

Um den Operator zu löschen CRDs, löschen Sie zunächst alle laufenden Jobs. Löschen Sie dann das Helm-Diagramm, das für die Bereitstellung der Operatoren verwendet wurde, mithilfe der folgenden Befehle: 

```
# Delete the operator
helm delete <chart_name>
  
# delete the crds
helm delete crds
  
# optionally delete the namespace
kubectl delete namespace <namespace>
```

### Fehlerbehebung
<a name="troubleshooting"></a>

#### Debuggen eines fehlgeschlagenen Jobs
<a name="debugging-a-failed-job"></a>

Gehen Sie wie folgt vor, um einen fehlgeschlagenen Job zu debuggen.
+ Überprüfen Sie den Auftragsstatus, indem Sie Folgendes ausführen: 

  ```
  kubectl get <CRD Type> <job name>
  ```
+ Wenn der Job in SageMaker AI erstellt wurde, können Sie den folgenden Befehl verwenden, um das `STATUS` und das zu sehen`SageMaker Job Name`: 

  ```
  kubectl get <crd type> <job name>
  ```
+ Sie können `smlogs` verwenden, um die Ursache des Problems mit dem folgenden Befehl zu finden: 

  ```
  kubectl smlogs <crd type> <job name>
  ```
+  Sie können den `describe` Befehl auch verwenden, um weitere Details zum Job mithilfe des folgenden Befehls anzuzeigen. Die Ausgabe enthält ein `additional` Feld mit weiteren Informationen zum Status des Jobs. 

  ```
  kubectl describe <crd type> <job name>
  ```
+ Wenn der Job nicht in SageMaker AI erstellt wurde, verwenden Sie die Protokolle des Pods des Operators, um die Ursache des Problems wie folgt zu ermitteln: 

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

#### Löschen einer Bediener-CRD
<a name="deleting-an-operator-crd"></a>

Wenn das Löschen eines Jobs nicht funktioniert, überprüfen Sie, ob der Operator läuft. Wenn der Operator nicht läuft, müssen Sie den Finalizer mit den folgenden Schritten löschen: 

1. Öffnen Sie den Auftrag in einem neuen Terminal in einem Editor mit `kubectl edit` wie folgt: 

   ```
   kubectl edit <crd type> <job name>
   ```

1. Bearbeiten Sie den Job, um den Finalizer zu löschen, indem Sie die folgenden zwei Zeilen aus der Datei entfernen. Speichern Sie die Datei und der Job wird gelöscht. 

   ```
   finalizers:
     - sagemaker-operator-finalizer
   ```

### Bilder und SMlogs in jeder Region
<a name="images-and-smlogs-in-each-region"></a>

In der folgenden Tabelle sind die verfügbaren Operator-Bilder für jede Region aufgeführt. SMLogs 


|  Region  |  Controller-Bild  |  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)  | 

# Verwenden Sie Amazon SageMaker AI Jobs
<a name="kubernetes-sagemaker-jobs"></a>

Dieser Abschnitt basiert auf der Originalversion von [SageMaker AI Operators for](https://github.com/aws/amazon-sagemaker-operator-for-k8s) Kubernetes.

**Wichtig**  
Wir stellen die Entwicklung und den technischen Support der Originalversion von [ SageMaker Operators for](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) Kubernetes ein.  
Wenn Sie derzeit die Version `v1.2.2` oder eine niedrigere Version von [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) verwenden, empfehlen wir, Ihre Ressourcen auf den [ACK Service Controller](https://github.com/aws-controllers-k8s/sagemaker-controller) für Amazon zu migrieren. SageMaker Der ACK Service Controller ist eine neue Generation von SageMaker Operatoren für Kubernetes, die auf [AWS Controllers for](https://aws-controllers-k8s.github.io/community/) Kubernetes (ACK) basieren.  
Informationen zu den Migrationsschritten finden Sie unter [Migrieren Sie Ressourcen zu den neuesten Operatoren](kubernetes-sagemaker-operators-migrate.md).  
Antworten auf häufig gestellte Fragen zum Ende der Unterstützung für die Originalversion von SageMaker Operators for Kubernetes finden Sie unter [Ankündigung des Endes der Support der Originalversion von SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Um einen Amazon SageMaker AI-Job mit den Operatoren für Kubernetes auszuführen, können Sie entweder eine YAML-Datei anwenden oder die mitgelieferten Helm Charts verwenden. 

Alle Beispiel-Operator-Jobs in den folgenden Tutorials verwenden Beispieldaten aus einem öffentlichen MNIST-Datensatz. Um diese Beispiele auszuführen, laden Sie den Datensatz in Ihren Amazon-S3-Bucket herunter. Sie finden den Datensatz unter [MNIST-Datensatz herunterladen](https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-preprocess-data-pull-data.html). 

**Topics**
+ [Der Operator TrainingJob](#trainingjob-operator)
+ [Der HyperParameterTuningJob Betreiber](#hyperparametertuningjobs-operator)
+ [Der BatchTransformJob Betreiber](#batchtransformjobs-operator)
+ [Der HostingDeployment Betreiber](#hosting-deployment-operator)
+ [Der Betreiber ProcessingJob](#kubernetes-processing-job-operator)
+ [HostingAutoscalingPolicy (HAP) Betreiber](#kubernetes-hap-operator)

## Der Operator TrainingJob
<a name="trainingjob-operator"></a>

Die Mitarbeiter der Schulungsstelle stimmen Ihre spezifizierten Ausbildungsberufsspezifikationen mit der SageMaker KI ab, indem sie sie für Sie in SageMaker der KI starten. In der SageMaker [CreateTrainingJob KI-API-Dokumentation](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTrainingJob.html) erfahren Sie mehr über SageMaker Trainingsjobs. 

**Topics**
+ [Erstellen Sie eine TrainingJob mit einer YAML-Datei](#create-a-trainingjob-using-a-simple-yaml-file)
+ [Erstellen Sie ein Diagramm TrainingJob mit Hilfe eines Helms](#create-a-trainingjob-using-a-helm-chart)
+ [Liste TrainingJobs](#list-training-jobs)
+ [Beschreiben Sie ein TrainingJob](#describe-a-training-job)
+ [Protokolle anzeigen von TrainingJobs](#view-logs-from-training-jobs)
+ [Löschen TrainingJobs](#delete-training-jobs)

### Erstellen Sie eine TrainingJob mit einer YAML-Datei
<a name="create-a-trainingjob-using-a-simple-yaml-file"></a>

1. Laden Sie die YAML-Beispieldatei für das Training mit dem folgenden Befehl herunter: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-trainingjob.yaml
   ```

1. Bearbeiten Sie die `xgboost-mnist-trainingjob.yaml` Datei`<sagemaker-execution-role>`, um den `roleArn` Parameter durch Ihren und `outputPath` Ihren Amazon S3 S3-Bucket zu ersetzen, auf den die SageMaker AI-Ausführungsrolle Schreibzugriff hat. Sie `roleArn` müssen über Berechtigungen verfügen, damit SageMaker KI in Ihrem Namen auf Amazon S3 CloudWatch, Amazon und andere Dienste zugreifen kann. Weitere Informationen zur Erstellung einer SageMaker KI finden Sie ExecutionRole unter [SageMaker KI-Rollen](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms). Wenden Sie die YAML-Datei mit folgendem Befehl an: 

   ```
   kubectl apply -f xgboost-mnist-trainingjob.yaml
   ```

### Erstellen Sie ein Diagramm TrainingJob mit Hilfe eines Helms
<a name="create-a-trainingjob-using-a-helm-chart"></a>

Sie können Helm Charts zum Laufen verwenden TrainingJobs. 

1. Klonen Sie das GitHub Repository, um die Quelle abzurufen, indem Sie den folgenden Befehl verwenden: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Navigieren Sie zum `amazon-sagemaker-operator-for-k8s/hack/charts/training-jobs/` Ordner und bearbeiten Sie die `values.yaml` Datei, um Werte wie `rolearn` und `outputpath` durch Werte zu ersetzen, die Ihrem Konto entsprechen. Das RoleARN muss über Berechtigungen verfügen, damit SageMaker KI in Ihrem Namen auf Amazon S3 CloudWatch, Amazon und andere Dienste zugreifen kann. Weitere Informationen zur Erstellung einer SageMaker KI finden Sie ExecutionRole unter [SageMaker KI-Rollen](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms). 

#### Erstellen Sie die TrainingJob
<a name="create-the-training-job"></a>

Nachdem die Rollen und Amazon-S3-Buckets durch die entsprechenden Werte in `values.yaml` ersetzt wurden, können Sie mit dem folgenden Befehl einen Trainingsjob erstellen: 

```
helm install . --generate-name
```

Die Ausgabe sollte folgendermaßen aussehen: 

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

#### Überprüfen Sie Ihre Trainings-Helmtabelle
<a name="verify-your-training-helm-chart"></a>

Um zu überprüfen, ob das Helm Chart erfolgreich erstellt wurde, führe folgenden Befehl aus: 

```
helm ls
```

Die Ausgabe sollte folgendermaßen aussehen: 

```
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` erstellt eine `TrainingJob` Kubernetes-Ressource. Der Operator startet den eigentlichen Schulungsjob in SageMaker KI und aktualisiert die `TrainingJob` Kubernetes-Ressource, um den Status des Jobs in SageMaker KI widerzuspiegeln. Es fallen Gebühren für SageMaker KI-Ressourcen an, die Sie während der Dauer Ihres Jobs nutzen. Sobald Ihr Auftrag abgeschlossen oder beendet ist, fallen für Sie keine Gebühren an. 

**Hinweis**: SageMaker KI erlaubt es dir nicht, einen Job beim Lauftraining zu aktualisieren. Sie können keinen Parameter bearbeiten und die Konfigurationsdatei erneut anwenden. Ändern Sie entweder den Namen der Metadaten oder löschen Sie den vorhandenen Job und erstellen Sie einen neuen. Ähnlich wie bei bestehenden Trainingsjobs werden Operatoren wie TFJob in Kubeflow nicht `update` unterstützt. 

### Liste TrainingJobs
<a name="list-training-jobs"></a>

Verwenden Sie den folgenden Befehl, um alle Aufträge aufzulisten, die mit dem Kubernetes-Operator erstellt wurden: 

```
kubectl get TrainingJob
```

Die Ausgabe, die alle Aufträge auflistet, sollte wie folgt aussehen: 

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

Ein Trainingsjob wird weiterhin aufgeführt, nachdem der Job abgeschlossen wurde oder fehlgeschlagen ist. Sie können einen `TrainingJob` Job aus der Liste entfernen, indem Sie die folgenden [Löschen TrainingJobs](#delete-training-jobs) Schritte ausführen. Für Aufträge, die abgeschlossen oder beendet wurden, fallen keine Gebühren für SageMaker KI-Ressourcen an. 

#### TrainingJob Statuswerte
<a name="training-job-status-values"></a>

Das Feld `STATUS` kann einen der folgenden Werte annehmen: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Diese Status stammen direkt aus der offiziellen [API-Dokumentation](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-TrainingJobStatus) von SageMaker AI. 

Zusätzlich zum offiziellen SageMaker KI-Status ist es möglich, auch `STATUS` zu sein`SynchronizingK8sJobWithSageMaker`. Das bedeutet, dass der Bediener den Auftrag noch nicht bearbeitet hat. 

#### Sekundäre Statuswerte
<a name="secondary-status-values"></a>

Die sekundären Status stammen direkt aus der offiziellen [API-Dokumentation](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-SecondaryStatus) von SageMaker AI. Sie enthalten detailliertere Informationen zum Status des Jobs. 

### Beschreiben Sie ein TrainingJob
<a name="describe-a-training-job"></a>

Weitere Informationen zum Trainingsjob erhalten Sie mit dem `describe` `kubectl` Befehl. Dies wird normalerweise zum Debuggen eines Problems oder zum Überprüfen der Parameter eines Trainingsauftrags verwendet. Um Informationen zu Ihrem Ausbildungsberuf zu erhalten, verwenden Sie den folgenden Befehl: 

```
kubectl describe trainingjob xgboost-mnist-from-for-s3
```

Die Ausgabe für Ihren Trainingsjob sollte wie folgt aussehen: 

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

### Protokolle anzeigen von TrainingJobs
<a name="view-logs-from-training-jobs"></a>

Verwenden Sie den folgenden Befehl, um die Protokolle des `kmeans-mnist` Trainingsauftrags einzusehen: 

```
kubectl smlogs trainingjob xgboost-mnist-from-for-s3
```

Ihre Ausgabe sollte in etwa wie folgt aussehen. Die Protokolle der Instances sind chronologisch angeordnet. 

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

### Löschen TrainingJobs
<a name="delete-training-jobs"></a>

Verwenden Sie den folgenden Befehl, um einen Trainingsjob auf Amazon SageMaker AI zu beenden: 

```
kubectl delete trainingjob xgboost-mnist-from-for-s3
```

Dieser Befehl entfernt den SageMaker Trainingsjob aus Kubernetes. Dieser Befehl liefert die folgende Ausgabe: 

```
trainingjob.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted
```

Wenn der Job auf SageMaker KI noch in Bearbeitung ist, wird der Job beendet. Es fallen für Sie keine Gebühren für SageMaker KI-Ressourcen an, nachdem Ihr Job beendet oder abgeschlossen wurde. 

**Hinweis**: SageMaker KI löscht keine Schulungsjobs. Beendete Jobs werden weiterhin auf der SageMaker AI-Konsole angezeigt. Der `delete` Befehl benötigt etwa 2 Minuten, um die Ressourcen von der SageMaker KI zu bereinigen. 

## Der HyperParameterTuningJob Betreiber
<a name="hyperparametertuningjobs-operator"></a>

Die Operatoren für Hyperparameter-Tuning-Jobs stimmen Ihre angegebene Spezifikation für Hyperparameter-Tuning-Jobs mit der KI ab, indem sie sie in SageMaker AI starten. SageMaker [Weitere Informationen zu SageMaker KI-Hyperparameter-Tuning-Jobs finden Sie in der AI-API-Dokumentation. SageMaker CreateHyperParameterTuningJob ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateHyperParameterTuningJob.html) 

**Topics**
+ [Erstellen Sie eine HyperparameterTuningJob mit einer YAML-Datei](#create-a-hyperparametertuningjob-using-a-simple-yaml-file)
+ [Erstellen Sie ein HyperparameterTuningJob mithilfe eines Helm-Diagramms](#create-a-hyperparametertuningjob-using-a-helm-chart)
+ [Liste HyperparameterTuningJobs](#list-hyperparameter-tuning-jobs)
+ [Beschreibe ein HyperparameterTuningJob](#describe-a-hyperparameter-tuning-job)
+ [Logs anzeigen von HyperparameterTuningJobs](#view-logs-from-hyperparametertuning-jobs)
+ [Lösche ein HyperparameterTuningJob](#delete-hyperparametertuning-jobs)

### Erstellen Sie eine HyperparameterTuningJob mit einer YAML-Datei
<a name="create-a-hyperparametertuningjob-using-a-simple-yaml-file"></a>

1. Laden Sie die YAML-Beispieldatei für den Hyperparameter-Tuning-Job mit dem folgenden Befehl herunter: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hpo.yaml
   ```

1. Bearbeiten Sie die `xgboost-mnist-hpo.yaml` Datei, um den `roleArn` Parameter durch Ihren `sagemaker-execution-role` zu ersetzen. Damit der Hyperparameter-Tuning-Job erfolgreich ist, müssen Sie auch die Werte `s3InputPath` und `s3OutputPath` in Werte ändern, die Ihrem Konto entsprechen. Wenden Sie die aktualisierte YAML-Datei mit folgendem Befehl an: 

   ```
   kubectl apply -f xgboost-mnist-hpo.yaml
   ```

### Erstellen Sie ein HyperparameterTuningJob mithilfe eines Helm-Diagramms
<a name="create-a-hyperparametertuningjob-using-a-helm-chart"></a>

Sie können Helm Charts verwenden, um Hyperparameter-Tuning-Jobs auszuführen. 

1. Klonen Sie das GitHub Repository mit dem folgenden Befehl, um die Quelle abzurufen: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Navigieren Sie zum Verzeichnis `amazon-sagemaker-operator-for-k8s/hack/charts/hyperparameter-tuning-jobs/`. 

1. Bearbeiten Sie die `values.yaml` Datei, um den `roleArn` Parameter durch Ihren `sagemaker-execution-role` zu ersetzen. Damit der Hyperparameter-Tuning-Job erfolgreich ist, müssen Sie auch die `s3InputPath` und `s3OutputPath` in Werte ändern, die Ihrem Konto entsprechen. 

#### Erstellen Sie das HyperparameterTuningJob
<a name="create-the-hpo-job"></a>

Nachdem die Rollen und Amazon S3-Pfade durch die entsprechenden Werte in `values.yaml` ersetzt wurden, können Sie mit dem folgenden Befehl einen Hyperparameter-Tuning-Job erstellen: 

```
helm install . --generate-name
```

Ihre Ausgabe sollte wie folgt aussehen: 

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

#### Überprüfen der Karteninstallation
<a name="verify-chart-installation"></a>

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob das Helm-Diagramm erfolgreich erstellt wurde: 

```
helm ls
```

Die Ausgabe sollte folgendermaßen aussehen: 

```
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` erstellt eine `HyperParameterTuningJob` Kubernetes-Ressource. Der Operator startet den eigentlichen Job zur Hyperparameter-Optimierung in SageMaker KI und aktualisiert die `HyperParameterTuningJob` Kubernetes-Ressource, um den Status des Jobs in KI widerzuspiegeln. SageMaker Es fallen Gebühren für SageMaker KI-Ressourcen an, die Sie während der Dauer Ihres Jobs nutzen. Sobald Ihr Auftrag abgeschlossen oder beendet ist, fallen für Sie keine Gebühren an. 

**Hinweis**: Mit SageMaker KI können Sie einen laufenden Hyperparameter-Tuning-Job nicht aktualisieren. Sie können keinen Parameter bearbeiten und die Konfigurationsdatei erneut anwenden. Sie müssen entweder den Metadatennamen ändern oder den vorhandenen Auftrag löschen und einen neuen erstellen. Ähnlich wie bei bestehenden Trainingsjobs, wie z. B. `TFJob` in Kubeflow, wird `update` nicht unterstützt. 

### Liste HyperparameterTuningJobs
<a name="list-hyperparameter-tuning-jobs"></a>

Verwenden Sie den folgenden Befehl, um alle Aufträge aufzulisten, die mit dem Kubernetes-Operator erstellt wurden: 

```
kubectl get hyperparametertuningjob
```

Die Ausgabe sollte folgendermaßen aussehen: 

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

Ein Hyperparameter-Optimierungsjob wird weiterhin aufgeführt, nachdem der Job abgeschlossen wurde oder fehlgeschlagen ist. Sie können einen `hyperparametertuningjob` aus der Liste entfernen, indem Sie die Schritte unter [Lösche ein HyperparameterTuningJob](#delete-hyperparametertuning-jobs) befolgen. Für Aufträge, die abgeschlossen oder beendet wurden, fallen keine Gebühren für SageMaker KI-Ressourcen an.

#### Statuswerte für Hyperparameter-Tuning-Jobs
<a name="hyperparameter-tuning-job-status-values"></a>

Das `STATUS`-Feld kann einen der folgenden Werte annehmen: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Diese Status stammen direkt aus der offiziellen [API-Dokumentation](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus) von SageMaker AI. 

Zusätzlich zum offiziellen SageMaker KI-Status ist es möglich, auch `STATUS` zu sein`SynchronizingK8sJobWithSageMaker`. Das bedeutet, dass der Bediener den Auftrag noch nicht bearbeitet hat. 

#### Statuszähler
<a name="status-counters"></a>

Die Ausgabe hat mehrere Zähler, wie `COMPLETED` und `INPROGRESS`. Diese geben an, wie viele Ausbildungsberufe abgeschlossen wurden bzw. noch in Bearbeitung sind. Weitere Informationen darüber, wie diese ermittelt werden, finden Sie [TrainingJobStatusCounters](https://docs.aws.amazon.com/sagemaker/latest/dg/API_TrainingJobStatusCounters.html)in der SageMaker API-Dokumentation. 

#### Am besten TrainingJob
<a name="best-training-job"></a>

Diese Spalte enthält den Namen der Metrik`TrainingJob`, die die ausgewählte Metrik am besten optimiert hat. 

Führen Sie zum Anzeigen einer Zusammenfassung der eingestellten Hyperparameter den folgenden Befehl aus: 

```
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
```

Um detaillierte Informationen über `TrainingJob` zu erhalten, führen Sie aus: 

```
kubectl describe trainingjobs <job name>
```

#### Laichen TrainingJobs
<a name="spawned-training-jobs"></a>

Sie können auch alle 10 Trainingsaufträge in Kubernetes verfolgen, die von `HyperparameterTuningJob` gestartet wurden, indem Sie den folgenden Befehl ausführen: 

```
kubectl get trainingjobs
```

### Beschreibe ein HyperparameterTuningJob
<a name="describe-a-hyperparameter-tuning-job"></a>

Sie können Debugging-Details mit dem Befehl `describe` `kubectl` abrufen.

```
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
```

Zusätzlich zu den Informationen über den Tuning-Job macht der SageMaker AI Operator for Kubernetes in der Ausgabe auch den [besten Trainingsjob](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-monitor.html#automatic-model-tuning-best-training-job), der vom Hyperparameter-Optimierungsjob gefunden wurde, wie folgt verfügbar: `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>
```

### Logs anzeigen von HyperparameterTuningJobs
<a name="view-logs-from-hyperparametertuning-jobs"></a>

Hyperparameter-Optimierungsaufträge haben keine Protokolle, aber alle von ihnen gestarteten Trainingsaufträge haben Protokolle. Auf diese Protokolle kann wie auf normale Trainingsaufgaben zugegriffen werden. Weitere Informationen finden Sie unter [Protokolle anzeigen von TrainingJobs](#view-logs-from-training-jobs).

### Lösche ein HyperparameterTuningJob
<a name="delete-hyperparametertuning-jobs"></a>

Verwenden Sie den folgenden Befehl, um einen Hyperparameter-Job in SageMaker AI zu beenden. 

```
kubectl delete hyperparametertuningjob xgboost-mnist-hpo
```

Dieser Befehl entfernt den Hyperparameter-Tuning-Job und die zugehörigen Trainingsjobs aus Ihrem Kubernetes-Cluster und stoppt sie in AI. SageMaker Für Jobs, die gestoppt oder abgeschlossen wurden, fallen keine Gebühren für KI-Ressourcen an. SageMaker SageMaker KI löscht keine Hyperparameter-Tuning-Jobs. Gestoppte Jobs werden weiterhin auf der SageMaker AI-Konsole angezeigt. 

Die Ausgabe sollte folgendermaßen aussehen: 

```
hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted
```

**Hinweis**: Der Befehl delete benötigt etwa 2 Minuten, um die Ressourcen aus der SageMaker KI zu bereinigen. 

## Der BatchTransformJob Betreiber
<a name="batchtransformjobs-operator"></a>

Batch-Transform-Job-Operatoren stimmen Ihre angegebenen Batch-Transform-Jobspezifikationen mit SageMaker KI ab, indem sie sie in SageMaker KI starten. In der [CreateTransformJob AI-API-Dokumentation](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTransformJob.html) erfahren Sie mehr über den SageMaker AI-Batch-Transformationsjob. SageMaker 

**Topics**
+ [Erstellen Sie eine BatchTransformJob mit einer YAML-Datei](#create-a-batchtransformjob-using-a-simple-yaml-file)
+ [Erstellen Sie ein Diagramm BatchTransformJob mithilfe eines Helm-Diagramms](#create-a-batchtransformjob-using-a-helm-chart)
+ [Liste BatchTransformJobs](#list-batch-transform-jobs)
+ [Beschreibe ein BatchTransformJob](#describe-a-batch-transform-job)
+ [Protokolle anzeigen von BatchTransformJobs](#view-logs-from-batch-transform-jobs)
+ [Lösche ein BatchTransformJob](#delete-a-batch-transform-job)

### Erstellen Sie eine BatchTransformJob mit einer YAML-Datei
<a name="create-a-batchtransformjob-using-a-simple-yaml-file"></a>

1. Laden Sie die YAML-Beispieldatei für den Batch-Transformationsauftrag mit dem folgenden Befehl herunter: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-batchtransform.yaml
   ```

1. Bearbeiten Sie die Datei`xgboost-mnist-batchtransform.yaml`, um die erforderlichen Parameter zu ändern und sie `inputdataconfig` durch Ihre Eingabedaten und `s3OutputPath` durch Ihre Amazon S3 S3-Buckets zu ersetzen, auf die die SageMaker AI-Ausführungsrolle Schreibzugriff hat. 

1. Wenden Sie die YAML-Datei mit folgendem Befehl an: 

   ```
   kubectl apply -f xgboost-mnist-batchtransform.yaml
   ```

### Erstellen Sie ein Diagramm BatchTransformJob mithilfe eines Helm-Diagramms
<a name="create-a-batchtransformjob-using-a-helm-chart"></a>

Sie können Helm Charts verwenden, um Batch-Transformationsauftrags auszuführen. 

#### Holen Sie sich das Helm-Installationsverzeichnis
<a name="get-the-helm-installer-directory"></a>

Klonen Sie das GitHub Repository mit dem folgenden Befehl, um die Quelle abzurufen: 

```
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
```

#### Konfigurieren Sie das Helm-Diagramm
<a name="configure-the-helm-chart"></a>

Navigieren Sie zum Verzeichnis `amazon-sagemaker-operator-for-k8s/hack/charts/batch-transform-jobs/`. 

Bearbeiten Sie die `values.yaml` Datei, um die `inputdataconfig` durch Ihre Eingabedaten und OutputPath durch Ihre S3-Buckets zu ersetzen, auf die die SageMaker AI-Ausführungsrolle Schreibzugriff hat. 

#### Erstellen Sie ein BatchTransformJob
<a name="create-a-batch-transform-job"></a>

1. Verwenden Sie den folgenden Befehl, um einen Batch-Transformationsauftrag zu erstellen: 

   ```
   helm install . --generate-name
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   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. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob das Helm-Diagramm erfolgreich erstellt wurde: 

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

   Dieser Befehl erstellt eine `BatchTransformJob` Kubernetes-Ressource. Der Operator startet den eigentlichen Transformationsjob in SageMaker KI und aktualisiert die `BatchTransformJob` Kubernetes-Ressource, um den Status des Jobs in SageMaker KI widerzuspiegeln. Es fallen Gebühren für SageMaker KI-Ressourcen an, die Sie während der Dauer Ihres Jobs nutzen. Sobald Ihr Auftrag abgeschlossen oder beendet ist, fallen für Sie keine Gebühren an. 

**Hinweis**: Mit SageMaker KI können Sie einen laufenden Batch-Transformationsjob nicht aktualisieren. Sie können keinen Parameter bearbeiten und die Konfigurationsdatei erneut anwenden. Sie müssen entweder den Metadatennamen ändern oder den vorhandenen Auftrag löschen und einen neuen erstellen. Ähnlich wie bei bestehenden Trainingsjobs, wie z. B. `TFJob` in Kubeflow, wird `update` nicht unterstützt. 

### Liste BatchTransformJobs
<a name="list-batch-transform-jobs"></a>

Verwenden Sie den folgenden Befehl, um alle Aufträge aufzulisten, die mit dem Kubernetes-Operator erstellt wurden: 

```
kubectl get batchtransformjob
```

Die Ausgabe sollte folgendermaßen aussehen: 

```
NAME                                STATUS      CREATION-TIME          SAGEMAKER-JOB-NAME
xgboost-mnist-batch-transform       Completed   2019-11-18T03:44:00Z   xgboost-mnist-a88fb19809b511eaac440aa8axgboost
```

Ein Batch-Transformationsauftrag wird weiterhin aufgeführt, nachdem der Auftrag abgeschlossen wurde oder fehlgeschlagen ist. Sie können einen `hyperparametertuningjob` aus der Liste entfernen, indem Sie die folgenden [Lösche ein BatchTransformJob](#delete-a-batch-transform-job) Schritte ausführen. Für Aufträge, die abgeschlossen oder beendet wurden, fallen keine Gebühren für SageMaker KI-Ressourcen an. 

#### Statuswerte für Batch-Transformation
<a name="batch-transform-status-values"></a>

Das Feld `STATUS` kann einen der folgenden Werte annehmen: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Diese Status stammen direkt aus der offiziellen [API-Dokumentation](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus) von SageMaker AI. 

Zusätzlich zum offiziellen SageMaker KI-Status ist es möglich, auch `STATUS` zu sein`SynchronizingK8sJobWithSageMaker`. Das bedeutet, dass der Bediener den Auftrag noch nicht bearbeitet hat.

### Beschreibe ein BatchTransformJob
<a name="describe-a-batch-transform-job"></a>

Sie können Debugging-Details mit dem Befehl `describe` `kubectl` abrufen.

```
kubectl describe batchtransformjob xgboost-mnist-batch-transform
```

Die Ausgabe sollte folgendermaßen aussehen: 

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

### Protokolle anzeigen von BatchTransformJobs
<a name="view-logs-from-batch-transform-jobs"></a>

Verwenden Sie den folgenden Befehl, um die Protokolle des `xgboost-mnist` Batch-Transformationsjobs anzuzeigen: 

```
kubectl smlogs batchtransformjob xgboost-mnist-batch-transform
```

### Lösche ein BatchTransformJob
<a name="delete-a-batch-transform-job"></a>

Verwenden Sie den folgenden Befehl, um einen Batch-Transformationsauftrag in SageMaker AI zu beenden. 

```
kubectl delete batchTransformJob xgboost-mnist-batch-transform
```

Die Ausgabe sollte folgendermaßen aussehen: 

```
batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted
```

Dieser Befehl entfernt den Batch-Transformationsjob aus Ihrem Kubernetes-Cluster und stoppt ihn auch in SageMaker AI. Für Jobs, die gestoppt oder abgeschlossen wurden, fallen keine Gebühren für SageMaker KI-Ressourcen an. Das Löschen dauert etwa 2 Minuten, um die Ressourcen aus der SageMaker KI zu bereinigen. 

**Hinweis**: SageMaker AI löscht keine Batch-Transformationsaufträge. Gestoppte Jobs werden weiterhin auf der SageMaker AI-Konsole angezeigt. 

## Der HostingDeployment Betreiber
<a name="hosting-deployment-operator"></a>

HostingDeployment Operatoren unterstützen das Erstellen und Löschen eines Endpunkts sowie das Aktualisieren eines vorhandenen Endpunkts, um daraus Rückschlüsse in Echtzeit ziehen zu können. Der Hosting-Bereitstellungs-Operator stimmt Ihre spezifizierte Jobspezifikation für die Hosting-Bereitstellung mit SageMaker KI ab, indem er Modelle, Endpunktkonfigurationen und Endpunkte in KI erstellt. SageMaker [Weitere Informationen zur KI-Inferenz finden Sie in der SageMaker KI-API-Dokumentation. SageMaker CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html) 

**Topics**
+ [Konfigurieren Sie eine Ressource HostingDeployment](#configure-a-hostingdeployment-resource)
+ [Erstellen Sie eine HostingDeployment](#create-a-hostingdeployment)
+ [Liste HostingDeployments](#list-hostingdeployments)
+ [Beschreiben Sie ein HostingDeployment](#describe-a-hostingdeployment)
+ [Aufrufen des Endpunkts](#invoking-the-endpoint)
+ [Aktualisieren HostingDeployment](#update-hostingdeployment)
+ [Löschen Sie die HostingDeployment](#delete-the-hostingdeployment)

### Konfigurieren Sie eine Ressource HostingDeployment
<a name="configure-a-hostingdeployment-resource"></a>

Laden Sie die YAML-Beispieldatei für den Hosting-Bereitstellungsauftrags mit dem folgenden Befehl herunter: 

```
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hostingdeployment.yaml
```

Die `xgboost-mnist-hostingdeployment.yaml` Datei enthält die folgenden Komponenten, die nach Bedarf bearbeitet werden können: 
+ *ProductionVariants*. Eine Produktionsvariante ist eine Reihe von Instanzen, die ein einzelnes Modell bedienen. SageMaker KI sorgt für einen Lastenausgleich zwischen allen Produktionsvarianten entsprechend den festgelegten Gewichten. 
+ *Modelle*. Ein Modell ist der ARN für Container und Ausführungsrollen, die für die Bereitstellung eines Modells erforderlich sind. Es erfordert mindestens einen einzelnen Container. 
+ *Container*. Ein Container spezifiziert den Datensatz und das Serving-Image. Wenn Sie Ihren eigenen benutzerdefinierten Algorithmus anstelle eines von SageMaker KI bereitgestellten Algorithmus verwenden, muss der Inferenzcode die SageMaker KI-Anforderungen erfüllen. Weitere Informationen finden Sie unter [Verwenden eigener Algorithmen mit SageMaker KI](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). 

### Erstellen Sie eine HostingDeployment
<a name="create-a-hostingdeployment"></a>

Um eine zu erstellen HostingDeployment, verwenden Sie, `kubectl` um die Datei `hosting.yaml` mit dem folgenden Befehl anzuwenden: 

```
kubectl apply -f hosting.yaml
```

SageMaker AI erstellt einen Endpunkt mit der angegebenen Konfiguration. Es fallen Gebühren für SageMaker KI-Ressourcen an, die während der Lebensdauer Ihres Endgeräts genutzt werden. Sobald Ihr Endpunkt gelöscht wurde, fallen für Sie keine Gebühren an. 

Der Erstellungsprozess dauert etwa 10 Minuten. 

### Liste HostingDeployments
<a name="list-hostingdeployments"></a>

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob die erstellt HostingDeployment wurde: 

```
kubectl get hostingdeployments
```

Die Ausgabe sollte folgendermaßen aussehen: 

```
NAME           STATUS     SAGEMAKER-ENDPOINT-NAME
host-xgboost   Creating   host-xgboost-def0e83e0d5f11eaaa450aSMLOGS
```

#### HostingDeployment Statuswerte
<a name="hostingdeployment-status-values"></a>

Das Statusfeld kann einer von mehreren Werten sein: 
+ `SynchronizingK8sJobWithSageMaker`: Der Operator bereitet die Erstellung des Endpunkts vor. 
+ `ReconcilingEndpoint`: Der Operator erstellt, aktualisiert oder löscht Endpunktressourcen. HostingDeployment Bleibt der in diesem Zustand, sehen `kubectl describe` Sie hier den Grund im `Additional` Feld. 
+ `OutOfService`: Der Endpunkt ist nicht verfügbar, um eingehende Anfragen entgegenzunehmen. 
+ `Creating`: [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html)läuft. 
+ `Updating`: [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpoint.html)oder [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)läuft. 
+ `SystemUpdating`: Der Endpunkt wird gerade gewartet und kann erst aktualisiert, gelöscht oder neu skaliert werden, wenn der Vorgang abgeschlossen ist. Durch diesen Wartungsvorgang werden keine vom Kunden angegebenen Werte wie VPC-Konfiguration, AWS KMS Verschlüsselung, Modell, Instance-Typ oder Instance-Anzahl geändert. 
+ `RollingBack`: Der Endpunkt kann weder nach oben noch nach unten skaliert oder seine Variantenstärke geändert werden und ist gerade dabei, zur vorherigen Konfiguration zurückzukehren. Sobald das Rollback abgeschlossen ist, kehrt der Endpunkt in einen `InService` Status zurück. Dieser Übergangsstatus gilt nur für einen Endpunkt, für den Autoscaling aktiviert ist und bei dem im Rahmen eines [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)Aufrufs oder wenn der [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)Vorgang explizit aufgerufen wird, unterschiedliche Gewichts- oder Kapazitätsänderungen vorgenommen werden. 
+ `InService`: Der Endpunkt ist für die Verarbeitung eingehender Anfragen verfügbar. 
+ `Deleting`: [DeleteEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DeleteEndpoint.html)läuft. 
+ `Failed`: Der Endpunkt konnte nicht erstellt, aktualisiert oder neu skaliert werden. Verwenden Sie [DescribeEndpoint: FailureReason](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeEndpoint.html#SageMaker-DescribeEndpoint-response-FailureReason) für Informationen über den Fehler. [DeleteEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DeleteEndpoint.html)ist der einzige Vorgang, der an einem ausgefallenen Endpunkt ausgeführt werden kann. 

### Beschreiben Sie ein HostingDeployment
<a name="describe-a-hostingdeployment"></a>

Sie können Debugging-Details mit dem Befehl `describe` `kubectl` abrufen.

```
kubectl describe hostingdeployment
```

Die Ausgabe sollte folgendermaßen aussehen: 

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

Das Statusfeld enthält weitere Informationen mithilfe der folgenden Felder: 
+ `Additional`: Zusätzliche Informationen über den Status des Hosting-Einsatzes. Dieses Feld ist optional und wird nur im Falle eines Fehlers ausgefüllt. 
+ `Creation Time`: Als der Endpunkt in SageMaker KI erstellt wurde. 
+ `Endpoint ARN`: Der SageMaker KI-Endpunkt ARN. 
+ `Endpoint Config Name`: Der SageMaker AI-Name der Endpunktkonfiguration. 
+ `Endpoint Name`: Der SageMaker AI-Name des Endpunkts. 
+ `Endpoint Status`: Der Status des Endpunkts. 
+ `Endpoint URL`: Die HTTPS-URL, die für den Zugriff auf den Endpunkt verwendet werden kann. Weitere Informationen finden Sie unter [Bereitstellen eines Modells auf SageMaker KI-Hostingdiensten](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html). 
+ `FailureReason`: Wenn ein Befehl zum Erstellen, Aktualisieren oder Löschen fehlschlägt, wird die Ursache hier angezeigt. 
+ `Last Check Time`: Das letzte Mal, dass der Operator den Status des Endpunkts überprüft hat. 
+ `Last Modified Time`: Das letzte Mal wurde der Endpunkt geändert. 
+ `Model Names`: Ein Schlüssel-Wert-Paar von HostingDeployment Modellnamen zu SageMaker KI-Modellnamen. 

### Aufrufen des Endpunkts
<a name="invoking-the-endpoint"></a>

Sobald der Endpunktstatus lautet`InService`, können Sie den Endpunkt auf zwei Arten aufrufen: mit der AWS CLI, die Authentifizierung und URL-Anforderungssignierung durchführt, oder mit einem HTTP-Client wie cURL. Wenn Sie Ihren eigenen Client verwenden, müssen Sie die AWS v4-URL-Signatur und -Authentifizierung selbst durchführen. 

Führen Sie den folgenden Befehl aus, um den Endpunkt mit der AWS CLI aufzurufen. Achten Sie darauf, die Region und den Endpunktnamen durch den Regions- und SageMaker AI-Endpunktnamen Ihres Endpunkts zu ersetzen. Diese Informationen können der Ausgabe von `kubectl describe` entnommen werden. 

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

Wenn Ihre Region beispielsweise lautet `us-east-2` und Ihr Endpunkt-Konfigurationsname lautet `host-xgboost-f56b6b280d7511ea824b129926example`, würde der folgende Befehl den Endpunkt aufrufen: 

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

Hier ist `4.95847082138` die Vorhersage aus dem Modell für die Scheindaten. 

### Aktualisieren HostingDeployment
<a name="update-hostingdeployment"></a>

1. Sobald a den Status HostingDeployment hat`InService`, kann es aktualisiert werden. Es kann etwa 10 Minuten dauern HostingDeployment , bis es in Betrieb ist. Um zu überprüfen, ob der Status `InService` ist, verwenden Sie den folgenden Befehl: 

   ```
   kubectl get hostingdeployments
   ```

1. Der HostingDeployment kann aktualisiert werden, bevor der Status lautet`InService`. Der Operator wartet, bis der SageMaker KI-Endpunkt erreicht ist, `InService` bevor er das Update anwendet. 

   Um ein Update anzuwenden, ändern Sie die `hosting.yaml`-Datei. Ändern Sie das `initialInstanceCount` Feld beispielsweise wie folgt von 1 auf 2: 

   ```
   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. Speichern Sie die Datei und verwenden Sie `kubectl` sie dann, um Ihr Update wie folgt anzuwenden. Der Status sollte sich von `InService` zu `ReconcilingEndpoint` und dann zu `Updating` ändern. 

   ```
   $ 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 KI stellt eine neue Gruppe von Instanzen mit Ihren Modellen bereit, leitet den Datenverkehr auf die neuen Instanzen um und entleert die alten Instanzen. Sobald dieser Prozess beginnt, wird der Status `Updating`. Nachdem das Update abgeschlossen ist, wird Ihr Endpunkt `InService`. Dieser Vorgang dauert ca. 10 Minuten. 

### Löschen Sie die HostingDeployment
<a name="delete-the-hostingdeployment"></a>

1. Verwenden Sie`kubectl`, um eine HostingDeployment mit dem folgenden Befehl zu löschen: 

   ```
   kubectl delete hostingdeployments host-xgboost
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted
   ```

1. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob die Hosting-Bereitstellung gelöscht wurde: 

   ```
   kubectl get hostingdeployments
   No resources found.
   ```

Für gelöschte Endpunkte fallen keine Gebühren für SageMaker KI-Ressourcen an. 

## Der Betreiber ProcessingJob
<a name="kubernetes-processing-job-operator"></a>

ProcessingJob Operatoren werden verwendet, um SageMaker Amazon-Verarbeitungsaufträge zu starten. Weitere Informationen zur SageMaker Verarbeitung von Aufträgen finden Sie unter [CreateProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html). 

**Topics**
+ [Erstellen Sie eine ProcessingJob mit einer YAML-Datei](#kubernetes-processing-job-yaml)
+ [Liste ProcessingJobs](#kubernetes-processing-job-list)
+ [Beschreiben Sie ein ProcessingJob](#kubernetes-processing-job-description)
+ [Lösche ein ProcessingJob](#kubernetes-processing-job-delete)

### Erstellen Sie eine ProcessingJob mit einer YAML-Datei
<a name="kubernetes-processing-job-yaml"></a>

Gehen Sie wie folgt vor, um mithilfe einer YAML-Datei einen SageMaker Amazon-Verarbeitungsauftrag zu erstellen:

1. Laden Sie das Vorverarbeitungsskript `kmeans_preprocessing.py` herunter.

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans_preprocessing.py
   ```

1. Erstellen Sie in einem Ihrer Amazon Simple Storage Service (Amazon S3) -Buckets einen `mnist_kmeans_example/processing_code` Ordner und laden Sie das Skript in den Ordner hoch.

1. Laden Sie die Datei `kmeans-mnist-processingjob.yaml` herunter.

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans-mnist-processingjob.yaml
   ```

1. Bearbeiten Sie die YAML-Datei, um Ihren `sagemaker-execution-role` zu spezifizieren, und ersetzen Sie alle Instances von `amzn-s3-demo-bucket` durch Ihren S3-Bucket.

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

   Sie `sagemaker-execution-role` müssen über Berechtigungen verfügen, damit SageMaker KI in Ihrem Namen auf Ihren S3-Bucket CloudWatch, Amazon und andere Dienste zugreifen kann. Weitere Informationen zum Erstellen einer Ausführungsrolle finden Sie unter [SageMaker KI-Rollen](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms).

1. Wenden Sie die YAML-Datei mit einem der folgenden Befehle an.

   Für eine Installation im Clusterbereich:

   ```
   kubectl apply -f kmeans-mnist-processingjob.yaml
   ```

   Für eine Installation im Namespace-Bereich:

   ```
   kubectl apply -f kmeans-mnist-processingjob.yaml -n <NAMESPACE>
   ```

### Liste ProcessingJobs
<a name="kubernetes-processing-job-list"></a>

Verwenden Sie einen der folgenden Befehle, um alle Jobs aufzulisten, die mit dem ProcessingJob Operator erstellt wurden. `SAGEMAKER-JOB-NAME `stammt aus dem `metadata` Abschnitt der YAML-Datei.

Für eine Installation im Clusterbereich:

```
kubectl get ProcessingJob kmeans-mnist-processing
```

Für eine Installation im Namespace-Bereich:

```
kubectl get ProcessingJob -n <NAMESPACE> kmeans-mnist-processing
```

Ihre Ausgabe sollte wie folgt aussehen:

```
NAME                    STATUS     CREATION-TIME        SAGEMAKER-JOB-NAME
kmeans-mnist-processing InProgress 2020-09-22T21:13:25Z kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385
```

In der Ausgabe werden alle Aufträge unabhängig von ihrem Status aufgeführt. Informationen zum Entfernen eines Auftrags aus der Liste finden Sie unter [Löschen eines Verarbeitungsauftrags](https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-processing-job-operator.html#kubernetes-processing-job-delete).

**ProcessingJob Status**
+ `SynchronizingK8sJobWithSageMaker`– Der Auftrag wird zuerst an den Cluster übermittelt. Der Operator hat die Anforderung erhalten und bereitet die Erstellung des Verarbeitungsauftrags vor.
+ `Reconciling`– Der Operator initialisiert oder behebt vorübergehende Fehler und andere Fehler. Bleibt der Verarbeitungsauftrag in diesem Status, verwenden Sie den `kubectl` `describe` Befehl, um den Grund im Feld `Additional` zu ermitteln.
+ `InProgress | Completed | Failed | Stopping | Stopped`— Status des SageMaker Verarbeitungsauftrags. Weitere Informationen finden Sie unter [DescribeProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html#sagemaker-DescribeProcessingJob-response-ProcessingJobStatus).
+ `Error`– Der Operator kann die Wiederherstellung nicht durch einen Abgleich durchführen.

Für Aufträge, die abgeschlossen, gestoppt oder fehlgeschlagen sind, fallen keine weiteren Gebühren für SageMaker KI-Ressourcen an.

### Beschreiben Sie ein ProcessingJob
<a name="kubernetes-processing-job-description"></a>

Verwenden Sie einen der folgenden Befehle, um weitere Informationen zu einem Verarbeitungsauftrag zu erhalten. Diese Befehle werden normalerweise zum Debuggen eines Problems oder zum Überprüfen der Parameter eines Verarbeitungsauftrags verwendet.

Für eine Installation im Clusterbereich:

```
kubectl describe processingjob kmeans-mnist-processing
```

Für eine Installation im Namespace-Bereich:

```
kubectl describe processingjob kmeans-mnist-processing -n <NAMESPACE>
```

Die Ausgabe Ihres Verarbeitungsauftrags sollte in etwa so aussehen wie die folgende.

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

### Lösche ein ProcessingJob
<a name="kubernetes-processing-job-delete"></a>

Wenn Sie einen Verarbeitungsjob löschen, wird der SageMaker Verarbeitungsjob aus Kubernetes entfernt, der Job wird jedoch nicht aus SageMaker AI gelöscht. Wenn der Jobstatus in SageMaker AI lautet, ist `InProgress` der Job gestoppt. Für die Verarbeitung von Jobs, die gestoppt wurden, fallen keine Gebühren für SageMaker KI-Ressourcen an. Verwenden Sie einen der folgenden Befehle, um einen Verarbeitungsauftrag zu löschen. 

Für eine Installation im Clusterbereich:

```
kubectl delete processingjob kmeans-mnist-processing
```

Für eine Installation im Namespace-Bereich:

```
kubectl delete processingjob kmeans-mnist-processing -n <NAMESPACE>
```

Die Ausgabe Ihres Verarbeitungsauftrags sollte in etwa so aussehen wie die folgende.

```
processingjob.sagemaker.aws.amazon.com "kmeans-mnist-processing" deleted
```



**Anmerkung**  
SageMaker AI löscht den Verarbeitungsjob nicht. Gestoppte Jobs werden weiterhin in der SageMaker AI-Konsole angezeigt. Der `delete` Befehl benötigt einige Minuten, um die Ressourcen aus der SageMaker KI zu bereinigen.

## HostingAutoscalingPolicy (HAP) Betreiber
<a name="kubernetes-hap-operator"></a>

Der Operator HostingAutoscalingPolicy (HAP) verwendet eine Liste von Ressourcen IDs als Eingabe und wendet auf jede von ihnen dieselbe Richtlinie an. Jede Ressourcen-ID ist eine Kombination aus einem Endpunktnamen und einem Variantennamen. Der HAP-Operator führt zwei Schritte aus: Er registriert die Ressource IDs und wendet dann die Skalierungsrichtlinie auf jede Ressourcen-ID an. `Delete`macht beide Aktionen rückgängig. [Sie können das HAP auf einen vorhandenen SageMaker KI-Endpunkt anwenden oder mithilfe des Operators einen neuen SageMaker KI-Endpunkt erstellen. HostingDeployment ](https://docs.aws.amazon.com/sagemaker/latest/dg/hosting-deployment-operator.html#create-a-hostingdeployment) Weitere Informationen zur automatischen Skalierung von SageMaker KI finden Sie in der Dokumentation zur Richtlinie zur [automatischen Skalierung von Anwendungen](https://docs.aws.amazon.com/sagemaker/latest/dg/endpoint-auto-scaling.html).

**Anmerkung**  
In Ihren `kubectl` Befehlen können Sie anstelle von `hostingautoscalingpolicy` die Kurzform, `hap`, verwenden.

**Topics**
+ [Erstellen Sie eine HostingAutoscalingPolicy mithilfe einer YAML-Datei](#kubernetes-hap-job-yaml)
+ [Liste HostingAutoscalingPolicies](#kubernetes-hap-list)
+ [Beschreiben Sie ein HostingAutoscalingPolicy](#kubernetes-hap-describe)
+ [Aktualisieren Sie ein HostingAutoscalingPolicy](#kubernetes-hap-update)
+ [Lösche ein HostingAutoscalingPolicy](#kubernetes-hap-delete)
+ [Aktualisieren oder löschen Sie einen Endpunkt mit einem HostingAutoscalingPolicy](#kubernetes-hap-update-delete-endpoint)

### Erstellen Sie eine HostingAutoscalingPolicy mithilfe einer YAML-Datei
<a name="kubernetes-hap-job-yaml"></a>

Verwenden Sie eine YAML-Datei, um eine HostingAutoscalingPolicy (HAP) zu erstellen, die eine vordefinierte oder benutzerdefinierte Metrik auf einen oder mehrere SageMaker KI-Endpunkte anwendet.

Amazon SageMaker AI benötigt bestimmte Werte, um Autoscaling auf Ihre Variante anzuwenden. Wenn diese Werte in der YAML-Spezifikation nicht angegeben sind, wendet der HAP-Operator die folgenden Standardwerte an.

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

Verwenden Sie die folgenden Beispiele, um ein HAP zu erstellen, das eine vordefinierte oder benutzerdefinierte Metrik auf einen oder mehrere Endpunkte anwendet.

#### Beispiel 1: Wenden Sie eine vordefinierte Metrik auf eine einzelne Endpunktvariante an
<a name="kubernetes-hap-predefined-metric"></a>

1. Laden Sie die YAML-Beispieldatei für eine vordefinierte Metrik mit dem folgenden Befehl herunter:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
   ```

1. Bearbeiten Sie die YAML-Datei, um Ihr `endpointName`, `variantName`, und `Region` anzugeben.

1. Verwenden Sie einen der folgenden Befehle, um eine vordefinierte Metrik auf eine einzelne Ressourcen-ID (Kombination aus Endpunktname und Variantenname) anzuwenden.

   Für eine Installation im Clusterbereich:

   ```
   kubectl apply -f hap-predefined-metric.yaml
   ```

   Für eine Installation im Namespace-Bereich:

   ```
   kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>
   ```

#### Beispiel 2: Wenden Sie eine benutzerdefinierte Metrik auf eine einzelne Endpunktvariante an
<a name="kubernetes-hap-custom-metric"></a>

1. Laden Sie die YAML-Beispieldatei für eine benutzerdefinierte Metrik mit dem folgenden Befehl herunter:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-custom-metric.yaml
   ```

1. Bearbeiten Sie die YAML-Datei, um Ihr `endpointName`, `variantName`, und `Region` anzugeben.

1. Verwenden Sie einen der folgenden Befehle, um anstelle der empfohlenen `SageMakerVariantInvocationsPerInstance` eine benutzerdefinierte Metrik auf eine einzelne Ressourcen-ID (Kombination aus Endpunktname und Variantenname) anzuwenden.
**Anmerkung**  
Amazon SageMaker AI überprüft nicht die Gültigkeit Ihrer YAML-Spezifikation.

   Für eine Installation im Clusterbereich:

   ```
   kubectl apply -f hap-custom-metric.yaml
   ```

   Für eine Installation im Namespace-Bereich:

   ```
   kubectl apply -f hap-custom-metric.yaml -n <NAMESPACE>
   ```

#### Beispiel 3: Wenden Sie eine Skalierungsrichtlinie auf mehrere Endpunkte und Varianten an
<a name="kubernetes-hap-scaling-policy"></a>

Sie können den HAP-Operator verwenden, um dieselbe Skalierungsrichtlinie auf mehrere Ressourcen anzuwenden. IDs Für jede Ressourcen-ID (Kombination aus Endpunktname und Variantenname) wird eine separate `scaling_policy` Anfrage erstellt.

1. Laden Sie die YAML-Beispieldatei für eine vordefinierte Metrik mit dem folgenden Befehl herunter:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
   ```

1. Bearbeiten Sie die YAML-Datei, um Ihr `Region` und mehrere `endpointName` und `variantName`-Werte anzugeben.

1. Verwenden Sie einen der folgenden Befehle, um eine vordefinierte Metrik auf mehrere Ressourcen anzuwenden IDs (Kombinationen aus Endpunktname und Variantenname).

   Für eine Installation im Clusterbereich:

   ```
   kubectl apply -f hap-predefined-metric.yaml
   ```

   Für eine Installation im Namespace-Bereich:

   ```
   kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>
   ```

#### Überlegungen HostingAutoscalingPolicies für mehrere Endpunkte und Varianten
<a name="kubernetes-hap-scaling-considerations"></a>

Die folgenden Überlegungen gelten, wenn Sie mehrere Ressourcen IDs verwenden:
+ Wenn Sie eine einzelne Richtlinie auf mehrere Ressourcen anwenden IDs, wird ein PolicyArn pro Ressourcen-ID erstellt. Fünf Endpunkte haben fünf Richtlinien. ARNs Wenn Sie den `describe` Befehl für die Richtlinie ausführen, werden die Antworten als ein Auftrag angezeigt und enthalten einen einzelnen Auftragsstatus.
+ Wenn Sie eine benutzerdefinierte Metrik auf mehrere Ressourcen anwenden IDs, wird dieselbe Dimension oder derselbe Wert für alle Ressourcen-ID-Werte (Variante) verwendet. Wenn Sie beispielsweise eine Kundenmetrik für die Instances 1-5 anwenden und die Dimension der Endpunktvariante der Variante 1 zugeordnet wird, werden alle Endpunkte nach oben oder unten skaliert, wenn Variante 1 die Metriken überschreitet.
+ Der HAP-Operator unterstützt die Aktualisierung der IDs Ressourcenliste. Wenn Sie eine Ressource IDs zur Spezifikation ändern, hinzufügen oder löschen, wird die Autoscaling-Richtlinie aus der vorherigen Variantenliste entfernt und auf die neu angegebenen Ressourcen-ID-Kombinationen angewendet. Verwenden Sie den [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)Befehl, um die Ressource aufzulisten IDs , auf die die Richtlinie derzeit angewendet wird.

### Liste HostingAutoscalingPolicies
<a name="kubernetes-hap-list"></a>

Verwenden Sie einen der folgenden Befehle, um alle HostingAutoscalingPolicies (HAPs) aufzulisten, die mit dem HAP-Operator erstellt wurden.

Für eine Installation im Clusterbereich:

```
kubectl get hap
```

Für eine Installation im Namespace-Bereich:

```
kubectl get hap -n <NAMESPACE>
```

Ihre Ausgabe sollte wie folgt aussehen:

```
NAME             STATUS   CREATION-TIME
hap-predefined   Created  2021-07-13T21:32:21Z
```

Verwenden Sie den folgenden Befehl, um den Status Ihres HostingAutoscalingPolicy (HAP) zu überprüfen.

```
kubectl get hap <job-name>
```

Es wird einer der folgenden Werte zurückgegeben:
+ `Reconciling` – Bei bestimmten Fehlertypen wird der Status als `Reconciling` statt als `Error` angezeigt. Einige Beispiele sind serverseitige Fehler und Endpunkte im Status `Creating` oder `Updating`. Prüfen Sie das Feld `Additional` in den Status- oder Bedienerprotokollen für weitere Einzelheiten.
+ `Created`
+ `Error`

**Um den Autoscaling-Endpunkt anzuzeigen, auf den Sie die Richtlinie angewendet haben**

1. Öffnen Sie die Amazon SageMaker AI-Konsole unter [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Erweitern Sie im linken Seitenbereich die Option **Inferenz**.

1. Wählen Sie **Endpunkte** aus.

1. Wählen Sie den Namen des interessierenden Endpunkts aus.

1. Blättern Sie zum Abschnitt **Endpunkt-Laufzeiteinstellungen**.

### Beschreiben Sie ein HostingAutoscalingPolicy
<a name="kubernetes-hap-describe"></a>

Verwenden Sie den folgenden Befehl, um weitere Informationen zu a HostingAutoscalingPolicy (HAP) zu erhalten. Diese Befehle werden normalerweise zum Debuggen eines Problems oder zum Überprüfen der Ressource IDs (Kombinationen aus Endpunktname und Variantennamen) eines HAP verwendet.

```
kubectl describe hap <job-name>
```

### Aktualisieren Sie ein HostingAutoscalingPolicy
<a name="kubernetes-hap-update"></a>

Der Operator HostingAutoscalingPolicy (HAP) unterstützt Updates. Sie können Ihre YAML-Spezifikation bearbeiten, um die Werte zu ändern, und dann die Richtlinie erneut anwenden. Der HAP-Operator löscht die bestehende Richtlinie und wendet die neue Richtlinie an.

### Lösche ein HostingAutoscalingPolicy
<a name="kubernetes-hap-delete"></a>

Verwenden Sie einen der folgenden Befehle, um eine HostingAutoscalingPolicy (HAP-) Richtlinie zu löschen.

Für eine Installation im Clusterbereich:

```
kubectl delete hap hap-predefined
```

Für eine Installation im Namespace-Bereich:

```
kubectl delete hap hap-predefined -n <NAMESPACE>
```

Dieser Befehl löscht die Skalierungsrichtlinie und hebt die Registrierung des Skalierungsziels bei Kubernetes auf. Dieser Befehl liefert die folgende Ausgabe:

```
hostingautoscalingpolicies.sagemaker.aws.amazon.com "hap-predefined" deleted
```

### Aktualisieren oder löschen Sie einen Endpunkt mit einem HostingAutoscalingPolicy
<a name="kubernetes-hap-update-delete-endpoint"></a>

Um einen Endpunkt mit einem HostingAutoscalingPolicy (HAP) zu aktualisieren, verwenden Sie den `kubectl` `delete` Befehl, um das HAP zu entfernen, den Endpunkt zu aktualisieren und das HAP dann erneut anzuwenden.

Um einen Endpunkt zu löschen, der über ein HAP verfügt, verwenden Sie den `kubectl` `delete` Befehl, um das HAP zu entfernen, bevor Sie den Endpunkt löschen.

# Migrieren Sie Ressourcen zu den neuesten Operatoren
<a name="kubernetes-sagemaker-operators-migrate"></a>

Wir stellen die Entwicklung und den technischen Support der Originalversion von [ SageMaker Operators](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) for Kubernetes ein.

Wenn Sie derzeit die Version `v1.2.2` oder eine niedrigere Version von [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) verwenden, empfehlen wir, Ihre Ressourcen auf den [ACK Service Controller](https://github.com/aws-controllers-k8s/sagemaker-controller) für Amazon zu migrieren. SageMaker Der ACK Service Controller ist eine neue Generation von SageMaker Operatoren für Kubernetes, die auf [AWS Controllers for](https://aws-controllers-k8s.github.io/community/) Kubernetes (ACK) basieren.

Antworten auf häufig gestellte Fragen zum Ende der Unterstützung für die Originalversion von SageMaker Operators for Kubernetes finden Sie unter [Ankündigung des Endes der Support der Originalversion von SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Gehen Sie wie folgt vor, um Ihre Ressourcen zu migrieren, und verwenden Sie ACK, um Modelle für maschinelles Lernen mit Amazon SageMaker AI zu trainieren, zu optimieren und bereitzustellen.

**Anmerkung**  
Die neuesten SageMaker KI-Operatoren für Kubernetes sind nicht abwärtskompatibel.

**Topics**
+ [Voraussetzungen](#migrate-resources-to-new-operators-prerequisites)
+ [Ressourcen übernehmen](#migrate-resources-to-new-operators-steps)
+ [Alte Ressourcen bereinigen](#migrate-resources-to-new-operators-cleanup)
+ [Verwenden Sie die neuen SageMaker KI-Operatoren für Kubernetes](#migrate-resources-to-new-operators-tutorials)

## Voraussetzungen
<a name="migrate-resources-to-new-operators-prerequisites"></a>

Um Ressourcen erfolgreich auf die neuesten SageMaker KI-Operatoren für Kubernetes zu migrieren, müssen Sie wie folgt vorgehen:

1. Installieren Sie die neuesten SageMaker KI-Operatoren für Kubernetes. step-by-stepAnweisungen finden Sie unter [Einrichtung](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup) in *Machine Learning mit dem SageMaker ACK AI Controller*.

1. Wenn Sie [HostingAutoscalingPolicy Ressourcen](#migrate-resources-to-new-operators-hap) verwenden, installieren Sie die neuen Application Auto Scaling Operators. step-by-stepAnweisungen finden Sie unter [Einrichtung](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/#setup) unter *Skalieren von SageMaker KI-Workloads mit Application Auto Scaling*. Dieser Schritt ist optional, wenn Sie keine HostingAutoScalingPolicy Ressourcen verwenden.

Wenn die Berechtigungen korrekt konfiguriert sind, kann der ACK SageMaker AI-Service Controller die Spezifikation und den Status der Ressource ermitteln und die AWS Ressource abgleichen, als ob der ACK-Controller sie ursprünglich erstellt hätte.

## Ressourcen übernehmen
<a name="migrate-resources-to-new-operators-steps"></a>

Die neuen SageMaker KI-Operatoren für Kubernetes bieten die Möglichkeit, Ressourcen zu übernehmen, die ursprünglich nicht vom ACK Service Controller erstellt wurden. Weitere Informationen finden Sie in der [ACK-Dokumentation unter Adoption vorhandener AWS Ressourcen](https://aws-controllers-k8s.github.io/community/docs/user-docs/adopted-resource/).

Die folgenden Schritte zeigen, wie die neuen SageMaker KI-Operatoren für Kubernetes einen vorhandenen SageMaker KI-Endpunkt übernehmen können. Speichern Sie das folgende Beispiel in einer Datei mit dem Namen `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
```

Reichen Sie die benutzerdefinierte Ressource (CR) ein mit: `kubectl apply`

```
kubectl apply -f adopt-endpoint-sample.yaml
```

Verwenden Sie `kubectl describe` diese Option, um die Statusbedingungen Ihrer verwendeten Ressource zu überprüfen.

```
kubectl describe adoptedresource adopt-endpoint-sample
```

Stellen Sie sicher, dass der `ACK.Adopted` Zustand `True` ist. Die Ausgabe sollte ähnlich wie im folgenden Beispiel aussehen:

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

Überprüfen Sie, ob Ihre Ressource in Ihrem Cluster vorhanden ist:

```
kubectl describe endpoints.sagemaker xgboost-endpoint
```

### HostingAutoscalingPolicy Ressourcen
<a name="migrate-resources-to-new-operators-hap"></a>

Die `HostingAutoscalingPolicy` (HAP) -Ressource besteht aus mehreren Application Auto Scaling-Ressourcen: `ScalableTarget` und `ScalingPolicy`. Wenn Sie eine HAP-Ressource mit ACK verwenden, installieren Sie zuerst den [Application Auto Scaling-Controller](https://github.com/aws-controllers-k8s/applicationautoscaling-controller). Um HAP-Ressourcen einzusetzen, müssen Sie sowohl `ScalableTarget` als auch `ScalingPolicy` Ressourcen einsetzen. Die Ressourcen-ID für diese Ressourcen finden Sie im Status der `HostingAutoscalingPolicy` Ressource (`status.ResourceIDList`).

### HostingDeployment Ressourcen
<a name="migrate-resources-to-new-operators-hosting-deployment"></a>

Die `HostingDeployment` Ressource besteht aus mehreren SageMaker KI-Ressourcen: `Endpoint``EndpointConfig`, und jeder`Model`. Wenn Sie einen SageMaker KI-Endpunkt in ACK verwenden, müssen Sie die `Endpoint``EndpointConfig`, und jeweils `Model` separat übernehmen. Die Namen `Endpoint`, `EndpointConfig` und `Model` sind im Status der Ressource `HostingDeployment` zu finden (`status.endpointName`, `status.endpointConfigName`, und `status.modelNames`).

Eine Liste aller unterstützten SageMaker KI-Ressourcen finden Sie in der [ACK-API-Referenz](https://aws-controllers-k8s.github.io/community/reference/).

## Alte Ressourcen bereinigen
<a name="migrate-resources-to-new-operators-cleanup"></a>

Nachdem die neuen SageMaker AI Operators for Kubernetes Ihre Ressourcen übernommen haben, können Sie alte Operatoren deinstallieren und alte Ressourcen bereinigen.

### Schritt 1: Deinstallieren Sie den alten Operator
<a name="migrate-resources-to-new-operators-uninstall"></a>

Informationen zur Deinstallation des alten Operators finden Sie unter [Operatoren löschen](kubernetes-sagemaker-operators-end-of-support.md#delete-operators).

**Warnung**  
Deinstallieren Sie den alten Operator, bevor Sie alte Ressourcen löschen.

### Schritt 2: Entfernen Sie die Finalizer und löschen Sie alte Ressourcen
<a name="migrate-resources-to-new-operators-delete-resources"></a>

**Warnung**  
Stellen Sie vor dem Löschen alter Ressourcen sicher, dass Sie den alten Operator deinstalliert haben.

Nach der Deinstallation des alten Operators müssen Sie die Finalizer explizit entfernen, um alte Operatorressourcen zu löschen. Das folgende Beispielskript zeigt, wie Sie alle Trainingsauftrags löschen, die vom alten Operator in einem bestimmten Namespace verwaltet wurden. Sie können ein ähnliches Muster verwenden, um zusätzliche Ressourcen zu löschen, sobald sie vom neuen Operator übernommen wurden.

**Anmerkung**  
Sie müssen die vollständigen Ressourcennamen verwenden, um Ressourcen abzurufen. Verwenden Sie z. B. `kubectl get trainingjobs.sagemaker.aws.amazon.com` statt `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
```

## Verwenden Sie die neuen SageMaker KI-Operatoren für Kubernetes
<a name="migrate-resources-to-new-operators-tutorials"></a>

Ausführliche Anleitungen zur Verwendung der neuen SageMaker KI-Operatoren für Kubernetes finden Sie unter [Verwenden Sie SageMaker KI-Operatoren für Kubernetes](kubernetes-sagemaker-operators-ack.md#kubernetes-sagemaker-operators-ack-use)

# Ankündigung des Endes der Support der Originalversion von SageMaker AI Operators for Kubernetes
<a name="kubernetes-sagemaker-operators-eos-announcement"></a>

Diese Seite kündigt das Ende des Supports für die Originalversion von [SageMaker AI Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s) an und bietet Antworten auf häufig gestellte Fragen sowie Migrationsinformationen zum [ACK Service Controller für Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller), einer neuen Generation vollständig unterstützter SageMaker AI Operators for Kubernetes. Allgemeine Informationen zu den neuen SageMaker KI-Operatoren für Kubernetes finden Sie unter. [Aktuelle SageMaker KI-Operatoren für Kubernetes](kubernetes-sagemaker-operators-ack.md) 

## Ende des Support Häufig gestellte Fragen
<a name="kubernetes-sagemaker-operators-eos-faq"></a>

**Topics**
+ [Warum beenden wir den Support für die Originalversion von SageMaker AI Operators for Kubernetes?](#kubernetes-sagemaker-operators-eos-faq-why)
+ [Wo finde ich weitere Informationen zu den neuen SageMaker KI-Operatoren für Kubernetes und ACK?](#kubernetes-sagemaker-operators-eos-faq-more)
+ [Was bedeutet Ende des Supports (EOS)?](#kubernetes-sagemaker-operators-eos-faq-definition)
+ [Wie kann ich meinen Workload zu Schulungs- und Inferenzzwecken auf die neuen SageMaker AI Operators for Kubernetes migrieren?](#kubernetes-sagemaker-operators-eos-faq-how)
+ [Zu welcher Version von ACK sollte ich migrieren?](#kubernetes-sagemaker-operators-eos-faq-version)
+ [Sind die ursprünglichen SageMaker KI-Operatoren für Kubernetes und die neuen Operators (ACK Service Controller für Amazon SageMaker AI) funktionell gleichwertig?](#kubernetes-sagemaker-operators-eos-faq-parity)

### Warum beenden wir den Support für die Originalversion von SageMaker AI Operators for Kubernetes?
<a name="kubernetes-sagemaker-operators-eos-faq-why"></a>

Benutzer können jetzt den [ACK Service Controller für Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller) nutzen. Der ACK Service Controller ist eine neue Generation von SageMaker KI-Operatoren für Kubernetes, die auf [AWS Controllers for Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK) basieren, einem von der Community betriebenen Projekt, das für die Produktion optimiert ist und die Art und Weise der Bereitstellung von Diensten über einen Kubernetes-Operator standardisiert. AWS [Wir kündigen daher das Ende des Supports (EOS) für die Originalversion (nicht ACK-basiert) von AI Operators for Kubernetes an. SageMaker ](https://github.com/aws/amazon-sagemaker-operator-for-k8s) Der Support endet am **15. Februar 2023** zusammen mit [Amazon Elastic Kubernetes Service Kubernetes 1.21](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar). 

Weitere Informationen zu ACK finden Sie unter [Geschichte und Grundsätze von ACK](https://aws-controllers-k8s.github.io/community/docs/community/background/).

### Wo finde ich weitere Informationen zu den neuen SageMaker KI-Operatoren für Kubernetes und ACK?
<a name="kubernetes-sagemaker-operators-eos-faq-more"></a>
+ Weitere Informationen zu den neuen SageMaker KI-Operatoren für Kubernetes finden Sie im [ACK Service Controller for Amazon SageMaker GitHub AI-Repository](https://github.com/aws-controllers-k8s/sagemaker-controller) oder in der Dokumentation zu [AWS Controllers for Kubernetes](https://aws-controllers-k8s.github.io/community/docs/community/overview/).
+ Ein Tutorial zum Trainieren eines Modells für maschinelles Lernen mit dem ACK Service Controller für Amazon SageMaker AI mithilfe von Amazon EKS finden Sie in diesem [SageMaker KI-Beispiel](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/).

  Ein Beispiel für Autoscaling finden Sie unter [Skalieren von SageMaker KI-Workloads mit Application Auto](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/) Scaling.
+ Informationen zu AWS Controller für Kubernetes (ACK) finden Sie in der Dokumentation zu [AWS Controllers für Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).
+ Eine Liste der unterstützten SageMaker KI-Ressourcen finden Sie unter [ACK API-Referenz](https://aws-controllers-k8s.github.io/community/reference/).

### Was bedeutet Ende des Supports (EOS)?
<a name="kubernetes-sagemaker-operators-eos-faq-definition"></a>

Benutzer können zwar weiterhin ihre aktuellen Betreiber verwenden, wir entwickeln jedoch keine neuen Funktionen mehr für die Betreiber und werden auch keine Patches oder Sicherheitsupdates für festgestellte Probleme veröffentlichen. `v1.2.2`ist die letzte Version von [SageMaker AI Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master). Benutzer sollten ihre Workloads migrieren, um den [ACK Service Controller für Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller) zu verwenden.

### Wie kann ich meinen Workload zu Schulungs- und Inferenzzwecken auf die neuen SageMaker AI Operators for Kubernetes migrieren?
<a name="kubernetes-sagemaker-operators-eos-faq-how"></a>

Informationen zur Migration von Ressourcen von den alten zu den neuen SageMaker KI-Operatoren für Kubernetes finden Sie im Folgenden. [Migrieren Sie Ressourcen zu den neuesten Operatoren](kubernetes-sagemaker-operators-migrate.md)

### Zu welcher Version von ACK sollte ich migrieren?
<a name="kubernetes-sagemaker-operators-eos-faq-version"></a>

Benutzer sollten auf die neueste veröffentlichte Version des [ACK Service Controllers für Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller/tags) migrieren.

### Sind die ursprünglichen SageMaker KI-Operatoren für Kubernetes und die neuen Operators (ACK Service Controller für Amazon SageMaker AI) funktionell gleichwertig?
<a name="kubernetes-sagemaker-operators-eos-faq-parity"></a>

Ja, sie entsprechen den gleichen Funktionen.

Zu den wichtigsten nennenswerten Unterschieden zwischen den beiden Versionen gehören:
+ Die von den ACK-basierten SageMaker KI-Operatoren für Kubernetes verwendeten benutzerdefinierten Ressourcendefinitionen (CRD) folgen der AWS API-Definition und sind daher nicht mit den benutzerdefinierten Ressourcenspezifikationen der SageMaker AI Operators for Kubernetes in der Originalversion kompatibel. Informationen zur Übernahme der [CRDs](https://github.com/aws-controllers-k8s/sagemaker-controller/tree/main/helm/crds)Ressourcen und zur Verwendung des neuen Controllers finden Sie im neuen Controller oder im Migrationsleitfaden. 
+ Die `Hosting Autoscaling` Richtlinie ist nicht mehr Teil der neuen SageMaker AI Operators for Kubernetes und wurde auf den ACK-Controller für [automatische Skalierung von Anwendungen](https://github.com/aws-controllers-k8s/applicationautoscaling-controller) migriert. [Um zu erfahren, wie Sie den Controller für die automatische Skalierung von Anwendungen verwenden, um Autoscaling auf SageMaker KI-Endpunkten zu konfigurieren, folgen Sie diesem Autoscaling-Beispiel.](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/) 
+ Die `HostingDeployment` Ressource wurde verwendet, um Modelle, Endpunktkonfigurationen und Endpunkte in einer CRD zu erstellen. Die neuen SageMaker AI Operators for Kubernetes verfügen über eine separate CRD für jede dieser Ressourcen. 

# SageMaker KI-Komponenten für Kubeflow-Pipelines
<a name="kubernetes-sagemaker-components-for-kubeflow-pipelines"></a>

Mit SageMaker KI-Komponenten für Kubeflow-Pipelines können Sie native SageMaker KI-Trainings-, Tuning-, Endpunktbereitstellungs- und Batch-Transformationsjobs in Ihren Kubeflow-Pipelines erstellen und überwachen. Indem Sie Kubeflow Pipeline-Jobs auf SageMaker KI ausführen, verlagern Sie Datenverarbeitungs- und Trainingsjobs vom Kubernetes-Cluster in den für maschinelles Lernen optimierten Managed Service von KI. SageMaker In diesem Dokument werden Vorkenntnisse über Kubernetes und Kubeflow vorausgesetzt. 

**Topics**
+ [Was sind Kubeflow-Pipelines?](#what-is-kubeflow-pipelines)
+ [Was sind Kubeflow Pipeline-Komponenten?](#kubeflow-pipeline-components)
+ [Warum sollten Sie SageMaker KI-Komponenten für Kubeflow-Pipelines verwenden?](#why-use-sagemaker-components)
+ [SageMaker KI-Komponenten für Versionen von Kubeflow Pipelines](#sagemaker-components-versions)
+ [Liste der SageMaker KI-Komponenten für Kubeflow-Pipelines](#sagemaker-components-list)
+ [IAM-Berechtigungen](#iam-permissions)
+ [Pipelines zur Verwendung von KI konvertieren SageMaker](#converting-pipelines-to-use-amazon-sagemaker)
+ [Installieren von Kubeflow Pipelines](kubernetes-sagemaker-components-install.md)
+ [Verwenden Sie KI-Komponenten SageMaker](kubernetes-sagemaker-components-tutorials.md)

## Was sind Kubeflow-Pipelines?
<a name="what-is-kubeflow-pipelines"></a>

Kubeflow Pipelines (KFP) ist eine Plattform für die Erstellung und Bereitstellung portabler, skalierbarer Workflows für Machine Learning (ML) auf der Basis von Docker-Containern. Die Kubeflow Pipelines-Plattform besteht aus Folgendem:
+ Eine Benutzeroberfläche (UI) zur Verwaltung und Nachverfolgung von Experimenten, Aufträgen und Läufen. 
+ Eine Engine (Argo) zur Planung mehrstufiger ML-Workflows.
+ Ein SDK zum Definieren und Bearbeiten von Pipelines und Komponenten.
+ Notebooks für die Interaktion mit dem System mithilfe des SDK.

Eine Pipeline ist eine Beschreibung eines ML-Workflows, ausgedrückt als [gerichteter azyklischer Graph](https://www.kubeflow.org/docs/pipelines/concepts/graph/). [Jeder Schritt im Workflow wird als Kubeflow-Pipeline-Komponente ausgedrückt, bei der es sich um ein Modul handelt.](https://www.kubeflow.org/docs/pipelines/overview/concepts/component/) AWS SDK für Python (Boto3) 

Weitere Informationen zu Kubeflow Pipelines finden Sie in der [Dokumentation zu Kubeflow Pipelines](https://www.kubeflow.org/docs/pipelines/). 

## Was sind Kubeflow Pipeline-Komponenten?
<a name="kubeflow-pipeline-components"></a>

Eine Kubeflow-Pipeline-Komponente ist ein Codesatz, der zur Ausführung eines Schritts einer Kubeflow-Pipeline verwendet wird. Komponenten werden durch ein Python-Modul dargestellt, das in ein Docker-Image integriert ist. Wenn die Pipeline ausgeführt wird, wird der Container der Komponente auf einem der Worker-Knoten auf dem Kubernetes-Cluster instanziiert, auf dem Kubeflow ausgeführt wird, und Ihre Logik wird ausgeführt. Pipeline-Komponenten können Ausgaben der vorherigen Komponenten lesen und Ausgaben erstellen, die die nächste Komponente in der Pipeline verarbeiten kann. Diese Komponenten machen es schnell und einfach, Pipelines für Experimentier- und Produktionsumgebungen zu schreiben, ohne mit der zugrunde liegenden Kubernetes-Infrastruktur interagieren zu müssen.

Sie können SageMaker KI-Komponenten in Ihrer Kubeflow-Pipeline verwenden. Anstatt Ihre Logik in einem benutzerdefinierten Container zu kapseln, laden Sie einfach die Komponenten und beschreiben Ihre Pipeline mithilfe des Kubeflow Pipelines SDK. Wenn die Pipeline läuft, werden Ihre Anweisungen in einen SageMaker KI-Job oder eine KI-Bereitstellung übersetzt. Der Workload wird dann auf der vollständig verwalteten SageMaker KI-Infrastruktur ausgeführt. 

## Warum sollten Sie SageMaker KI-Komponenten für Kubeflow-Pipelines verwenden?
<a name="why-use-sagemaker-components"></a>

SageMaker KI-Komponenten für Kubeflow-Pipelines bieten eine Alternative zum Starten Ihrer rechenintensiven Jobs über KI. SageMaker Die Komponenten integrieren SageMaker KI in die Portabilität und Orchestrierung von Kubeflow Pipelines. Mithilfe der SageMaker KI-Komponenten für Kubeflow Pipelines können Sie Ihre SageMaker KI-Ressourcen als Teil eines Kubeflow Pipelines Workflows erstellen und überwachen. Jeder der Jobs in Ihren Pipelines wird auf SageMaker KI statt auf dem lokalen Kubernetes-Cluster ausgeführt, sodass Sie wichtige SageMaker KI-Funktionen wie Datenkennzeichnung, umfangreiche Hyperparameter-Tuning- und verteilte Trainingsjobs oder die sichere und skalierbare Modellbereitstellung mit einem Klick nutzen können. Die Jobparameter, der Status, die Protokolle und die Ausgaben von SageMaker KI sind weiterhin über die Benutzeroberfläche von Kubeflow Pipelines zugänglich. 

Die SageMaker KI-Komponenten integrieren wichtige SageMaker KI-Funktionen in Ihre ML-Workflows, von der Datenvorbereitung bis hin zur Erstellung, Schulung und Bereitstellung von ML-Modellen. Sie können eine Kubeflow-Pipeline erstellen, die vollständig aus diesen Komponenten besteht, oder einzelne Komponenten nach Bedarf in Ihren Workflow integrieren. Die Komponenten sind in einer oder zwei Versionen erhältlich. Jede Version einer Komponente nutzt ein anderes Backend. Weitere Informationen zu diesen Versionen finden Sie unter [SageMaker KI-Komponenten für Versionen von Kubeflow Pipelines](#sagemaker-components-versions).

Für die Verwendung von SageMaker KI-Komponenten für Kubeflow-Pipelines fallen keine zusätzlichen Gebühren an. Für alle SageMaker KI-Ressourcen, die Sie über diese Komponenten nutzen, fallen Gebühren an.

## SageMaker KI-Komponenten für Versionen von Kubeflow Pipelines
<a name="sagemaker-components-versions"></a>

SageMaker KI-Komponenten für Kubeflow-Pipelines gibt es in zwei Versionen. Jede Version nutzt ein anderes Backend, um Ressourcen auf KI zu erstellen und zu verwalten. SageMaker 
+ **[Die SageMaker KI-Komponenten für Kubeflow Pipelines Version 1 (v1.x oder niedriger) verwenden Boto3 () als Backend.](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html)**AWS SDK für Python (Boto3)
+ [Die Version 2 (v2.0.0-alpha2 und höher) von SageMaker AI Components for Kubeflow Pipelines verwendet AI Operator for Kubernetes (ACK). SageMaker ](https://github.com/aws-controllers-k8s/sagemaker-controller) 

  AWS führte [ACK ein, um eine Kubernetes-native Art der Verwaltung von Cloud-Ressourcen](https://aws-controllers-k8s.github.io/community/) zu ermöglichen. AWS ACK umfasst eine Reihe von AWS dienstspezifischen Controllern, von denen einer der KI-Controller ist. SageMaker Der SageMaker KI-Controller erleichtert Entwicklern und Datenwissenschaftlern, die Kubernetes als Steuerungsebene verwenden, das Trainieren, Optimieren und Bereitstellen von Modellen für maschinelles Lernen (ML) in KI. SageMaker Weitere Informationen finden Sie unter [SageMaker KI-Operatoren](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/) für Kubernetes 

Beide Versionen der SageMaker KI-Komponenten für Kubeflow-Pipelines werden unterstützt. Die Version 2 bietet jedoch einige zusätzliche Vorteile. Insbesondere bietet sie: 

1. Eine konsistente Erfahrung bei der Verwaltung Ihrer SageMaker KI-Ressourcen von jeder Anwendung aus, unabhängig davon, ob Sie Kubeflow-Pipelines, Kubernetes CLI (`kubectl`) oder andere Kubeflow-Anwendungen wie Notebooks verwenden. 

1. Die Flexibilität, Ihre SageMaker KI-Ressourcen außerhalb des Kubeflow-Pipeline-Workflows zu verwalten und zu überwachen. 

1. Keine Einrichtungszeit für die Verwendung der SageMaker KI-Komponenten, wenn Sie den vollständigen [Kubeflow](https://awslabs.github.io/kubeflow-manifests/docs/about/) bei der AWS Veröffentlichung bereitgestellt haben, da der SageMaker AI-Operator Teil der Bereitstellung ist. 

## Liste der SageMaker KI-Komponenten für Kubeflow-Pipelines
<a name="sagemaker-components-list"></a>

Im Folgenden finden Sie eine Liste aller SageMaker KI-Komponenten für Kubeflow-Pipelines und ihrer verfügbaren Versionen. Alternativ finden Sie alle [SageMaker KI-Komponenten für Kubeflow-Pipelines](https://github.com/kubeflow/pipelines/tree/master/components/aws/sagemaker#versioning) in. GitHub

**Anmerkung**  
Wir empfehlen Benutzern, Version 2 einer SageMaker KI-Komponente zu verwenden, wo immer sie verfügbar ist.

### Ground-Truth-Komponenten
<a name="ground-truth-components"></a>
+ **Ground Truth**

  Mit der Ground Truth Komponente können Sie SageMaker AI Ground Truth Labeling-Jobs direkt aus einem Kubeflow Pipelines Workflow einreichen.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)
+ **Arbeitsteam**

  Mit der Workteam-Komponente können Sie private SageMaker KI-Jobs für Arbeitsteams direkt aus einem Kubeflow Pipelines-Workflow erstellen.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)

### Datenverarbeitungskomponenten
<a name="data-processing-components"></a>
+ **Verarbeitung**

  Mit der Verarbeitungskomponente können Sie Verarbeitungsaufträge direkt aus einem Kubeflow Pipelines-Workflow an SageMaker AI senden.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)

### Trainingskomponenten
<a name="training-components"></a>
+ **Training**

  Mit der Trainingskomponente können Sie SageMaker Trainingsjobs direkt aus einem Kubeflow Pipelines-Workflow einreichen.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)
+ **Optimierung der Hyperparameter**

  Mit der Komponente Hyperparameter-Optimierung können Sie Hyperparameter-Tuning-Jobs direkt aus einem Kubeflow SageMaker Pipelines-Workflow an AI senden.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)

### Inferenzkomponenten
<a name="inference-components-kfp"></a>
+ **Hosting und Bereitstellung**

  Mit den Hosting-Komponenten können Sie ein Modell mithilfe von SageMaker KI-Hosting-Diensten aus einem Kubeflow Pipelines-Workflow bereitstellen.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)
+ **Stapeltransformation**

  Mit der Batch Transform-Komponente können Sie Inferenzjobs für einen gesamten Datensatz in SageMaker AI aus einem Kubeflow Pipelines Workflow ausführen.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)
+ **Model Monitor**

  Mit den Model Monitor-Komponenten können Sie die Qualität von SageMaker KI-Modellen für maschinelles Lernen in der Produktion anhand eines Kubeflow Pipelines Workflows überwachen.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/kubernetes-sagemaker-components-for-kubeflow-pipelines.html)

## IAM-Berechtigungen
<a name="iam-permissions"></a>

Für die Bereitstellung von Kubeflow-Pipelines mit SageMaker KI-Komponenten sind die folgenden drei Authentifizierungsebenen erforderlich: 
+ Eine IAM-Rolle, die Ihrem Gateway-Knoten (bei dem es sich um Ihren lokalen Computer oder eine Remote-Instance handeln kann) Zugriff auf den Amazon Elastic Kubernetes Service (Amazon EKS) -Cluster gewährt.

  Der Benutzer, der auf den Gateway-Knoten zugreift, übernimmt diese Rolle, um:
  + Erstellen Sie einen Amazon-EKS-Cluster und installieren Sie KFP
  + Erstellen Sie IAM-Rollen
  + Erstellen Sie Amazon-S3-Buckets für Ihre Beispieleingabedaten

  Die Rolle erfordert die folgenden Berechtigungen:
  + 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) 
  + IAMFullZugriff
  + Amazon S3 FullAccess
  + Amazon EC2 FullAccess
  + EKSAdminAmazon-Richtlinie (Erstellen Sie diese Richtlinie mithilfe des Schemas aus [Amazon EKS-Beispielen für identitätsbasierte Richtlinien](https://docs.aws.amazon.com/eks/latest/userguide/security_iam_id-based-policy-examples.html)) 
+ Eine Kubernetes-IAM-Ausführungsrolle, die von den Kubernetes-Pipeline-Pods (**kfp-example-pod-role**) oder dem SageMaker KI-Operator für den Kubernetes-Controller-Pod für den Zugriff auf KI übernommen wurde. SageMaker Diese Rolle wird verwendet, um KI-Jobs von Kubernetes aus zu erstellen und zu überwachen. SageMaker 

  Für die Rolle ist die folgende Berechtigung erforderlich:
  + AmazonSageMakerFullAccess 

  Sie können die Berechtigungen auf die KFP- und Controller-Pods beschränken, indem Sie Ihre eigene benutzerdefinierte Richtlinie erstellen und anhängen.
+ Eine SageMaker KI-IAM-Ausführungsrolle, die von SageMaker KI-Jobs für den Zugriff auf AWS Ressourcen wie Amazon S3 oder Amazon ECR (**kfp-example-sagemaker-execution-role**) übernommen wird.

  SageMaker KI-Jobs verwenden diese Rolle für:
  + Zugriff auf SageMaker KI-Ressourcen
  + Eingabedaten aus Amazon S3
  + Speichern Sie Ihr Ausgabemodell in Amazon S3

  Die Rolle erfordert die folgenden Berechtigungen:
  + AmazonSageMakerFullAccess 
  + Amazon S3 FullAccess 

## Pipelines zur Verwendung von KI konvertieren SageMaker
<a name="converting-pipelines-to-use-amazon-sagemaker"></a>

Sie können eine bestehende Pipeline auf SageMaker KI umstellen, indem Sie Ihre generischen [Python-Verarbeitungscontainer](https://docs.aws.amazon.com/sagemaker/latest/dg/amazon-sagemaker-containers.html) und [Trainingscontainer](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo.html) portieren. Wenn Sie SageMaker KI für Inferenz verwenden, müssen Sie Ihrem Cluster auch IAM-Berechtigungen zuweisen und ein Artefakt in ein Modell konvertieren.

# Installieren von Kubeflow Pipelines
<a name="kubernetes-sagemaker-components-install"></a>

[Kubeflow Pipelines (KFP)](https://www.kubeflow.org/docs/components/pipelines/v2/introduction/) ist die Pipeline-Orchestrierungskomponente von Kubeflow.

Sie können Kubeflow Pipelines (KFP) auf einem vorhandenen Amazon Elastic Kubernetes Service (Amazon EKS) bereitstellen oder einen neuen Amazon EKS-Cluster erstellen. Verwenden Sie einen Gateway-Knoten, um mit Ihrem Cluster zu interagieren. Der Gateway-Knoten kann Ihr lokaler Computer oder eine Amazon-EC2-Instance sein.

Der folgende Abschnitt führt Sie durch die Schritte zur Einrichtung und Konfiguration dieser Ressourcen.

**Topics**
+ [Eine Installationsoption auswählen](#choose-install-option)
+ [Konfigurieren Sie Ihre Pipeline-Berechtigungen für den Zugriff auf KI SageMaker](#configure-permissions-for-pipeline)
+ [Greifen Sie auf die KFP-Benutzeroberfläche zu (Kubeflow Dashboard)](#access-the-kfp-ui)

## Eine Installationsoption auswählen
<a name="choose-install-option"></a>

Kubeflow Pipelines ist als Kernkomponente der vollständigen Distribution von Kubeflow auf oder als eigenständige Installation verfügbar. AWS 

Wählen Sie die Option aus, die für Ihren Anwendungsfall gilt:

1. [Vollständiger Kubeflow bei der Bereitstellung AWS](#full-kubeflow-deployment)

   Um zusätzlich zu Kubeflow Pipelines weitere Kubeflow-Komponenten zu verwenden, wählen Sie die vollständige [AWS Distribution von Kubeflow](https://awslabs.github.io/kubeflow-manifests) Bereitstellung. 

1. [Eigenständige Bereitstellung von Kubeflow Pipelines](#kubeflow-pipelines-standalone)

   Um die Kubeflow-Pipelines ohne die anderen Komponenten von Kubeflow zu verwenden, installieren Sie Kubeflow-Pipelines eigenständig. 

### Vollständiger Kubeflow bei der Bereitstellung AWS
<a name="full-kubeflow-deployment"></a>

Um die Vollversion von Kubeflow on zu installieren AWS, wählen Sie die Vanilla-Bereitstellungsoption aus dem [Kubeflow on AWS Deployment Guide](https://awslabs.github.io/kubeflow-manifests/docs/deployment/) oder eine andere Bereitstellungsoption, die Integrationen mit verschiedenen AWS Diensten (Amazon S3, Amazon RDS, Amazon Cognito) unterstützt.

### Eigenständige Bereitstellung von Kubeflow Pipelines
<a name="kubeflow-pipelines-standalone"></a>

In diesem Abschnitt wird davon ausgegangen, dass Ihr Benutzer berechtigt ist, Rollen zu erstellen und Richtlinien für die Rolle zu definieren.

#### Einrichten eines Gateway-Knotens
<a name="set-up-a-gateway-node"></a>

Sie können Ihren lokalen Computer oder eine Amazon-EC2-Instance als Gateway-Knoten verwenden. Ein Gateway-Knoten wird verwendet, um einen Amazon EKS-Cluster zu erstellen und auf die Kubeflow Pipelines UI zuzugreifen. 

Führen Sie die folgenden Schritte aus, um Ihren Knoten einzurichten. 

1. 

**Erstellen Sie einen Gateway-Knoten.**

   Sie können eine bestehende Amazon-EC2-Instance verwenden oder eine neue Instance mit der neuesten Ubuntu 18.04 DLAMI-Version erstellen, indem Sie die Schritte unter [Starten und Konfigurieren einer DLAMI](https://docs.aws.amazon.com/dlami/latest/devguide/launch-config.html) ausführen.

1. 

**Erstellen Sie eine IAM-Rolle, um Ihrem Gateway-Knoten Zugriff auf Ressourcen zu gewähren. AWS**

   Erstellen Sie eine IAM-Rolle mit Berechtigungen für die folgenden Ressourcen: CloudWatch,, IAM CloudFormation, Amazon EC2, Amazon S3, Amazon EKS.

   Weisen Sie der IAM-Rolle die folgenden Richtlinien zu:
   + 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)
   + IAMFullZugriff 
   + Amazon S3 FullAccess 
   + Amazon EC2 FullAccess 
   + EKSAdminAmazon-Richtlinie (Erstellen Sie diese Richtlinie mithilfe des Schemas aus [Amazon EKS-Beispielen für identitätsbasierte Richtlinien](https://docs.aws.amazon.com/eks/latest/userguide/security_iam_id-based-policy-examples.html)) 

   Informationen zum Hinzufügen von IAM-Berechtigungen zu einer IAM-Rolle finden Sie unter [Hinzufügen und Entfernen von IAM-Identitätsberechtigungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

1. 

**Installieren Sie die folgenden Tools und Clients**

   Installieren und konfigurieren Sie die folgenden Tools und Ressourcen auf Ihrem Gateway-Knoten, um auf den Amazon EKS-Cluster und die KFP-Benutzeroberfläche (UI) zuzugreifen. 
   + [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html): Das Befehlszeilentool für die Arbeit mit AWS Services. Informationen zur AWS CLI Konfiguration finden Sie unter [Konfiguration von 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)Version 0.1.31 und höher: Ein Tool zur Verwendung von AWS IAM-Anmeldeinformationen zur Authentifizierung bei einem Kubernetes-Cluster.
   + [https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html) Version über 0.15: Das Befehlszeilentool für die Arbeit mit Amazon EKS-Clustern.
   + [https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl) – Das Befehlszeilenwerkzeug für die Arbeit mit Kubernetes-Clustern. Die Version muss innerhalb einer Nebenversion mit Ihrer Kubernetes-Version übereinstimmen.
   + [https://aws.amazon.com/sdk-for-python/](https://aws.amazon.com/sdk-for-python/).

     ```
     pip install boto3
     ```

#### Einrichten eines Amazon EKS-Clusters
<a name="set-up-anamazon-eks-cluster"></a>

1. Wenn Sie noch keinen Amazon EKS-Cluster haben, führen Sie die folgenden Schritte von der Befehlszeile Ihres Gateway-Knotens aus. Andernfalls überspringen Sie diesen Schritt.

   1. Führen Sie den folgenden Befehl aus, um einen Amazon EKS-Cluster mit Version 1.17 oder höher zu erstellen. Ersetzen Sie `<clustername>` durch einen beliebigen Namen für Ihren Cluster. 

      ```
      eksctl create cluster --name <clustername> --region us-east-1 --auto-kubeconfig --timeout=50m --managed --nodes=1
      ```

   1. Wenn die Cluster-Erstellung abgeschlossen ist, stellen Sie sicher, dass Sie Zugriff auf Ihren Cluster haben, indem Sie die Knoten des Clusters auflisten. 

      ```
      kubectl get nodes
      ```

1. Stellen Sie mit dem folgenden Befehl sicher, dass der aktuelle `kubectl` Kontext auf Ihren Cluster verweist. Der aktuelle Kontext ist in der Ausgabe mit einem Sternchen (\$1) gekennzeichnet.

   ```
   kubectl config get-contexts
   
   CURRENT NAME     CLUSTER
   *   <username>@<clustername>.us-east-1.eksctl.io   <clustername>.us-east-1.eksctl.io
   ```

1. Wenn der gewünschte Cluster nicht als Ihr aktueller Standard konfiguriert ist, aktualisieren Sie den Standard mit dem folgenden Befehl. 

   ```
   aws eks update-kubeconfig --name <clustername> --region us-east-1
   ```

#### Installieren von Kubeflow Pipelines
<a name="install-kubeflow-pipelines"></a>

Führen Sie die folgenden Schritte vom Terminal Ihres Gateway-Knotens aus, um Kubeflow Pipelines auf Ihrem Cluster zu installieren.

1. Installieren Sie alle [Cert-Manager-Komponenten](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. Installieren Sie die Kubeflow-Pipelines.

   ```
   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. Stellen Sie sicher, dass der Kubeflow Pipelines Service und andere zugehörige Ressourcen laufen.

   ```
   kubectl -n kubeflow get all | grep pipeline
   ```

   Die Ausgabe sollte wie folgt aussehen.

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

## Konfigurieren Sie Ihre Pipeline-Berechtigungen für den Zugriff auf KI SageMaker
<a name="configure-permissions-for-pipeline"></a>

In diesem Abschnitt erstellen Sie eine IAM-Ausführungsrolle, die Kubeflow Pipeline-Pods Zugriff SageMaker auf KI-Dienste gewährt. 

### Konfiguration für SageMaker KI-Komponenten, Version 2
<a name="permissions-for-SM-v2"></a>

Um SageMaker AI Components Version 2 für Kubeflow Pipelines auszuführen, müssen Sie [SageMaker AI Operator for Kubernetes installieren und Role-Based Access Control (RBAC) konfigurieren, sodass die Kubeflow](https://github.com/aws-controllers-k8s/sagemaker-controller) Pipelines Pods benutzerdefinierte KI-Ressourcen in Ihrem Kubernetes-Cluster erstellen können. SageMaker 

**Wichtig**  
Folgen Sie diesem Abschnitt, wenn Sie die eigenständige Bereitstellung von Kubeflow-Pipelines verwenden. Wenn Sie die AWS Distribution von Kubeflow Version 1.6.0-aws-b1.0.0 oder höher verwenden, sind die KI-Komponenten Version 2 bereits eingerichtet. SageMaker 

1. Installieren Sie SageMaker AI Operator for Kubernetes, um die KI-Komponenten Version 2 zu verwenden. SageMaker 

   Folgen Sie dem Abschnitt „*Einrichtung*“ des [Tutorials „Machine Learning mit SageMaker ACK AI Controller](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup)“.

1. Konfigurieren Sie RBAC-Berechtigungen für die Ausführungsrolle (Service-Konto), die von den Kubeflow Pipelines-Pods verwendet wird. Bei der eigenständigen Bereitstellung von Kubeflow-Pipelines werden die Pipelineläufe im namespace`kubeflow` unter Verwendung des Service-Kontos `pipeline-runner` ausgeführt.

   1. Erstellen Sie eine [RoleBinding](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#rolebinding-example), die dem Dienstkonto die Erlaubnis erteilt, benutzerdefinierte SageMaker KI-Ressourcen zu verwalten.

      ```
      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. Stellen Sie sicher, dass die Rollenbindung erstellt wurde, indem Sie Folgendes ausführen:

      ```
      kubectl get rolebinding manage-sagemaker-cr -n kubeflow -o yaml
      ```

### Konfiguration für SageMaker KI-Komponenten, Version 1
<a name="permissions-for-SM-v1"></a>

Um SageMaker AI Components Version 1 für Kubeflow Pipelines ausführen zu können, benötigen die Kubeflow Pipeline-Pods Zugriff auf KI. SageMaker 

**Wichtig**  
Folgen Sie diesem Abschnitt, unabhängig davon, ob Sie die vollständige Version von Kubeflow bei der Bereitstellung oder die eigenständige Version von Kubeflow Pilepines verwenden. AWS 

Gehen Sie wie folgt vor, um eine IAM-Ausführungsrolle zu erstellen, die den Kubeflow-Pipeline-Pods Zugriff auf KI gewährt: SageMaker 

1. Exportieren Sie Ihren Clusternamen (z. B. *my-cluster-name*) und Ihre Cluster-Region (z. B. *us-east-1*).

   ```
   export CLUSTER_NAME=my-cluster-name
   export CLUSTER_REGION=us-east-1
   ```

1. Exportieren Sie den Namespace und den Namen des Service-Kontos entsprechend Ihrer Installation.
   + Für den vollständigen Kubeflow bei der AWS Installation exportieren Sie Ihr Profil `namespace` (z. B. *kubeflow-user-example-com*) und den *Standardeditor* als Dienstkonto.

     ```
     export NAMESPACE=kubeflow-user-example-com
     export KUBEFLOW_PIPELINE_POD_SERVICE_ACCOUNT=default-editor
     ```
   + Exportieren Sie für die eigenständige Pipelines-Bereitstellung *Kubeflow* als `namespace` und *Pipeline-Runner* als Service-Konto.

     ```
     export NAMESPACE=kubeflow
     export KUBEFLOW_PIPELINE_POD_SERVICE_ACCOUNT=pipeline-runner
     ```

1. Erstellen Sie einen [ IAM OIDC-Anbieter für den Amazon EKS-Cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) mit dem folgenden Befehl.

   ```
   eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \
               --region ${CLUSTER_REGION} --approve
   ```

1. Erstellen Sie eine IAM-Ausführungsrolle für die KFP-Pods, um auf Dienste (AI,) zuzugreifen. AWS SageMaker 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
   ```

[Sobald Ihre Pipeline-Berechtigungen für den Zugriff auf SageMaker AI Components Version 1 konfiguriert sind, folgen Sie dem Leitfaden SageMaker KI-Komponenten für Kubeflow-Pipelines in der Kubeflow-Dokumentation. AWS](https://awslabs.github.io/kubeflow-manifests/docs/amazon-sagemaker-integration/sagemaker-components-for-kubeflow-pipelines/)

## Greifen Sie auf die KFP-Benutzeroberfläche zu (Kubeflow Dashboard)
<a name="access-the-kfp-ui"></a>

Die Kubeflow Pipelines UI wird für die Verwaltung und Nachverfolgung von Experimenten, Aufträge und Läufen in Ihrem Cluster verwendet. Anweisungen zum Zugriff auf die Kubeflow Pipelines UI von Ihrem Gateway-Knoten aus finden Sie in diesem Abschnitt in den Schritten, die für Ihre Bereitstellungsoption gelten.

### AWS Vollständiger Kubeflow bei der Bereitstellung
<a name="access-kfp-ui-full-kubeflow-deployment"></a>

Folgen Sie den Anweisungen auf der [Kubeflow AWS on-Website](https://awslabs.github.io/kubeflow-manifests/docs/deployment/connect-kubeflow-dashboard/), um eine Verbindung zum Kubeflow-Dashboard herzustellen und zur Registerkarte Pipelines zu navigieren.

### Eigenständige Bereitstellung von Kubeflow-Pipelines
<a name="access-kfp-ui-standalone-kubeflow-pipelines-deployment"></a>

Verwenden Sie die Portweiterleitung, um von Ihrem Gateway-Knoten aus auf die Benutzeroberfläche von Kubeflow Pipelines zuzugreifen, indem Sie die folgenden Schritte ausführen.

#### Richten Sie die Portweiterleitung zum KFP UI-Service ein
<a name="set-up-port-forwarding-to-the-kfp-ui-service"></a>

Führen Sie den folgenden Befehl von der Befehlszeile Ihres Gateway-Knotens aus.

1. Vergewissern Sie sich mit folgendem Befehl, dass der KFP-UI-Service ausgeführt wird.

   ```
   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. Führen Sie den folgenden Befehl aus, um die Portweiterleitung zum KFP UI Service einzurichten. Dadurch wird die KFP-Benutzeroberfläche an Port 8080 auf Ihrem Gateway-Knoten weitergeleitet und Sie können von Ihrem Browser aus auf die KFP-Benutzeroberfläche zugreifen. 

   ```
   kubectl port-forward -n kubeflow service/ml-pipeline-ui 8080:80
   ```

   Die Portweiterleitung von Ihrem Remote-Computer wird unterbrochen, wenn keine Aktivität stattfindet. Führen Sie diesen Befehl erneut aus, wenn Ihr Dashboard keine Protokolle oder Updates abrufen kann. Wenn die Befehle einen Fehler zurückgeben, stellen Sie sicher, dass auf dem Port, den Sie verwenden möchten, bereits kein Prozess läuft. 

#### Greifen Sie auf den KFP-UI-Service zu
<a name="set-up-port-forwarding-to-the-kfp-ui-service-access"></a>

Ihre Methode für den Zugriff auf die KFP-Benutzeroberfläche hängt von Ihrem Gateway-Knotentyp ab.
+ Lokaler Computer als Gateway-Knoten:

  1. Greifen Sie wie folgt auf das Dashboard in Ihrem Browser zu: 

     ```
     http://localhost:8080
     ```

  1. Wählen Sie **Pipelines**, um auf die Pipeline-Benutzeroberfläche zuzugreifen. 
+ Amazon-EC2-Instance als Gateway-Knoten:

  1. Sie müssen einen SSH-Tunnel auf Ihrer Amazon-EC2-Instance einrichten, um über den Browser Ihres lokalen Computers auf das Kubeflow-Dashboard zuzugreifen. 

     Führen Sie in einer neuen Terminalsitzung auf Ihrem lokalen Computer Folgendes aus. Ersetzen Sie `<public-DNS-of-gateway-node>` durch die IP-Adresse Ihrer Instance auf der Amazon-EC2-Konsole. Sie können auch das öffentliche DNS verwenden. Ersetzen Sie `<path_to_key>` durch den Pfad zu dem PEM-Schlüssel, der für den Zugriff auf den Gateway-Knoten verwendet wird. 

     ```
     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. Greifen Sie in Ihrem Browser auf das Dashboard zu. 

     ```
     http://localhost:9000
     ```

  1. Wählen Sie **Pipelines**, um auf die KFP-Benutzeroberfläche zuzugreifen. 

#### (Optional) Gewähren Sie SageMaker KI-Notebook-Instances Zugriff auf Amazon EKS und führen Sie KFP-Pipelines von Ihrem Notebook aus aus aus.
<a name="add-access-to-additional-iam-users-or-roles"></a>

Eine SageMaker Notebook-Instance ist eine vollständig verwaltete Amazon EC2 EC2-Recheninstanz, auf der die Jupyter Notebook App ausgeführt wird. Sie können eine Notebook-Instance verwenden, um Jupyter Notebooks zu erstellen und zu verwalten und dann Ihre KFP-Pipelines mithilfe von AWS SDK für Python (Boto3) oder der KFP-CLI zu definieren, zu kompilieren, bereitzustellen und auszuführen. 

1. Folgen Sie den Schritten unter Notebook-Instance [erstellen, um Ihre SageMaker Notebook-Instance](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-setup-working-env.html) zu erstellen, und fügen Sie dann die `S3FullAccess` Richtlinie der zugehörigen IAM-Ausführungsrolle hinzu.

1. Führen Sie in der Befehlszeile Ihres Gateway-Knotens den folgenden Befehl aus, um den IAM-Rollen-ARN der von Ihnen erstellten Notebook-Instance abzurufen. Ersetzen Sie `<instance-name>` durch den Namen Ihrer Instance.

   ```
   aws sagemaker describe-notebook-instance --notebook-instance-name <instance-name> --region <region> --output text --query 'RoleArn'
   ```

   Dieser Befehl gibt die IAM-Rolle ARN im folgenden `arn:aws:iam::<account-id>:role/<role-name>` Format aus. Notieren Sie sich diesen ARN.

1. Führen Sie diesen Befehl aus, um die folgenden Richtlinien (Amazon AmazonSageMakerFullAccess EKSWorkerNodePolicy, AmazonS3FullAccess) an diese IAM-Rolle anzuhängen. Ersetzen Sie `<role-name>` durch `<role-name>` in Ihrem ARN. 

   ```
   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. Amazon EKS-Cluster verwenden IAM-Rollen, um den Zugriff auf den Cluster zu steuern. Die Regeln sind in einer Konfigurationsübersicht mit dem Namen `aws-auth` implementiert. `eksctl` stellt Befehle zum Lesen und Bearbeiten der `aws-auth` Config-Map bereit. Nur Benutzer, die Zugriff auf den Cluster haben, können diese Konfigurationsübersicht bearbeiten.

   `system:masters` ist eine der Standardbenutzergruppen mit Superuser-Rechten für den Cluster. Fügen Sie Ihren Benutzer zu dieser Gruppe hinzu oder erstellen Sie eine Gruppe mit restriktiveren Berechtigungen.

1. Binden Sie die Rolle an Ihren Cluster, indem Sie den folgenden Befehl ausführen. Ersetzen Sie `<IAM-Role-arn>` durch den ARN der IAM-Rolle. `<your_username>` kann ein beliebiger eindeutiger Benutzername sein.

   ```
   eksctl create iamidentitymapping \
   --cluster <cluster-name> \
   --arn <IAM-Role-arn> \
   --group system:masters \
   --username <your-username> \
   --region <region>
   ```

1. Öffnen Sie ein Jupyter-Notebook auf Ihrer SageMaker AI-Instance und führen Sie den folgenden Befehl aus, um sicherzustellen, dass es Zugriff auf den Cluster hat.

   ```
   aws eks --region <region> update-kubeconfig --name <cluster-name>
   kubectl -n kubeflow get all | grep pipeline
   ```

# Verwenden Sie KI-Komponenten SageMaker
<a name="kubernetes-sagemaker-components-tutorials"></a>

In diesem Tutorial führen Sie eine Pipeline mit SageMaker KI-Komponenten für Kubeflow-Pipelines aus, um ein Klassifikationsmodell mithilfe von Kmeans mit dem MNIST-Datensatz auf KI zu trainieren. SageMaker Der Workflow verwendet Kubeflow Pipelines als Orchestrator und SageMaker KI, um jeden Schritt des Workflows auszuführen. Das Beispiel wurde einem vorhandenen [ SageMaker KI-Beispiel entnommen und so geändert, dass es mit SageMaker KI-Komponenten](https://github.com/aws/amazon-sagemaker-examples/blob/8279abfcc78bad091608a4a7135e50a0bd0ec8bb/sagemaker-python-sdk/1P_kmeans_highlevel/kmeans_mnist.ipynb) für Kubeflow-Pipelines funktioniert.

Sie können Ihre Pipeline in Python definieren, indem Sie AWS SDK für Python (Boto3) dann das KFP-Dashboard, die KFP-CLI oder Boto3 verwenden, um Ihre Workflows zu kompilieren, bereitzustellen und auszuführen. Der vollständige Code für das Beispiel für die MNIST-Klassifizierungspipeline ist im [Kubeflow Github-Repository](https://github.com/kubeflow/pipelines/tree/master/samples/contrib/aws-samples/mnist-kmeans-sagemaker#mnist-classification-with-kmeans) verfügbar. Um es zu verwenden, klonen Sie die Python-Dateien auf Ihren Gateway-Knoten.

Weitere Beispiele für [ SageMaker KI Kubeflow](https://github.com/kubeflow/pipelines/tree/master/samples/contrib/aws-samples) Pipelines finden Sie unter. GitHub [Informationen zu den verwendeten Komponenten finden Sie im Pipelines-Repository. KubeFlow GitHub ](https://github.com/kubeflow/pipelines/tree/master/components/aws/sagemaker)

Um das Beispiel für eine Klassifizierungspipeline auszuführen, erstellen Sie eine SageMaker AI IAM-Ausführungsrolle, die Ihrem Trainingsjob die Berechtigung zum Zugriff auf AWS Ressourcen gewährt, und fahren Sie dann mit den Schritten fort, die Ihrer Bereitstellungsoption entsprechen.

## Erstellen Sie eine SageMaker AI-Ausführungsrolle
<a name="create-an-amazonsagemaker-execution-role"></a>

Die `kfp-example-sagemaker-execution-role` IAM-Rolle ist eine Runtime-Rolle, die SageMaker KI-Jobs für den Zugriff auf AWS Ressourcen übernehmen. Im folgenden Befehl erstellen Sie eine IAM-Ausführungsrolle mit dem Namen`kfp-example-sagemaker-execution-role`, fügen zwei verwaltete Richtlinien (AmazonSageMakerFullAccess, AmazonS3FullAccess) hinzu und richten eine Vertrauensbeziehung mit SageMaker KI ein, um SageMaker KI-Jobs Zugriff auf diese Ressourcen zu gewähren. AWS 

Sie geben diese Rolle als Eingabeparameter an, wenn Sie die Pipeline ausführen.

Führen Sie den folgenden -Befehl aus, um die Rolle zu erstellen. Beachten Sie den ARN, der in Ihrer Ausgabe zurückgegeben wird.

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

## Vollständiger Kubeflow bei der Bereitstellung AWS
<a name="run-pipelines-on-full-kubeflow-deployment"></a>

Folgen Sie den Anweisungen im [SageMaker Training Pipeline-Tutorial zur MNIST-Klassifizierung](https://awslabs.github.io/kubeflow-manifests/docs/amazon-sagemaker-integration/sagemaker-components-for-kubeflow-pipelines/) mit K-Means.

## Bereitstellung eigenständiger Kubeflow-Pipelines
<a name="run-pipelines-on-standalone-kubeflow-pipelines-deployment"></a>

### Datensätze vorbereiten
<a name="prepare-datasets"></a>

Um die Pipelines auszuführen, müssen Sie das Vorverarbeitungsskript für die Datenextraktion in einen Amazon-S3-Bucket hochladen. Dieser Bucket und alle Ressourcen für dieses Beispiel müssen sich in der Region `us-east-1` befinden. Informationen zum Erstellen eines Buckets finden Sie unter [Erstellen eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html).

Führen Sie aus dem `mnist-kmeans-sagemaker` Ordner des Kubeflow-Repositorys, das Sie auf Ihrem Gateway-Knoten geklont haben, den folgenden Befehl aus, um die `kmeans_preprocessing.py` Datei in Ihren Amazon-S3-Bucket hochzuladen. Ändern Sie `<bucket-name>` in den Namen Ihres Amazon-S3-Buckets.

```
aws s3 cp mnist-kmeans-sagemaker/kmeans_preprocessing.py s3://<bucket-name>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py
```

### Kompilieren und implementieren Sie Ihre Pipeline
<a name="compile-and-deploy-your-pipeline"></a>

Nachdem Sie die Pipeline definiert haben, müssen Sie sie in eine Zwischendarstellung kompilieren, bevor Sie sie an den Kubeflow Pipelines Service auf Ihrem Cluster senden. Die Zwischendarstellung ist eine Workflow-Spezifikation in Form einer YAML-Datei, die in eine Datei tar.gz komprimiert ist. Sie benötigen das KFP SDK, um Ihre Pipeline zu kompilieren.

#### Installieren des KFP SDK
<a name="install-kfp-sdk"></a>

Führen Sie in der Befehlszeile Ihres Gateway-Knotens Folgendes aus:

1. Installieren Sie das KFP SDK gemäß den Anweisungen in der [Kubeflow-Pipelines Dokumentation](https://www.kubeflow.org/docs/pipelines/sdk/install-sdk/).

1. Stellen Sie sicher, dass das KFP SDK installiert ist, indem Sie mit dem folgenden Befehl überprüfen:

   ```
   pip show kfp
   ```

1. Stellen Sie wie folgt sicher, dass `dsl-compile` korrekt installiert wurde:

   ```
   which dsl-compile
   ```

#### Kompilieren Ihrer Pipeline
<a name="compile-your-pipeline"></a>

Sie haben drei Möglichkeiten, mit Kubeflow Pipelines zu interagieren: KFP UI, KFP CLI oder das KFP SDK. In den folgenden Abschnitten wird der Arbeitsablauf mit der KFP-Benutzeroberfläche und CLI veranschaulicht.

Führen Sie die folgenden Schritte von Ihrem Gateway-Knoten aus.

1. Ändern Sie Ihre Python-Datei mit Ihrem Amazon-S3-Bucket-Namen und Ihrem IAM-Rollen-ARN.

1. Verwenden Sie den `dsl-compile` Befehl von der Befehlszeile aus, um Ihre Pipeline wie folgt zu kompilieren. Ersetzen Sie `<path-to-python-file>` durch den Pfad zu Ihrer Pipeline und `<path-to-output>` durch den Speicherort, an dem sich Ihre Datei tar.gz befinden soll.

   ```
   dsl-compile --py <path-to-python-file> --output <path-to-output>
   ```

#### Laden Sie die Pipeline mit der KFP-CLI hoch und führen Sie sie aus
<a name="upload-and-run-the-pipeline-using-the-kfp-cli"></a>

Führen Sie die folgenden Schritte von der Befehlszeile Ihres Gateway-Nodes aus. KFP organisiert die Durchläufe Ihrer Pipeline in Form von Experimenten. Sie haben die Möglichkeit, einen Namen für das Experiment anzugeben. Wenn Sie keinen angeben, wird der Durchlauf unter **Standardexperiment** aufgeführt.

1. Laden Sie Ihre Pipeline wie folgt hoch:

   ```
   kfp pipeline upload --pipeline-name <pipeline-name> <path-to-output-tar.gz>
   ```

   Die Ausgabe sollte wie folgt aussehen. Beachten Sie die Pipeline `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. Erstellen Sie einen Lauf mit dem folgenden Befehl. Der KFP-CLI-Run-Befehl unterstützt derzeit nicht die Angabe von Eingabeparametern bei der Erstellung des Laufs. Sie müssen Ihre Parameter in der AWS SDK für Python (Boto3) Pipeline-Datei vor dem Kompilieren aktualisieren. Ersetzen Sie `<experiment-name>` und `<job-name>` durch beliebige Namen. Ersetzen Sie `<pipeline-id>` durch die ID Ihrer eingereichten Pipeline. Ersetzen Sie `<your-role-arn>` durch den ARN von `kfp-example-pod-role`. Ersetzen Sie `<your-bucket-name>` durch den Namen des von Ihnen erstellten Amazon-S3-Buckets. 

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

   Sie können einen Lauf auch direkt einreichen, indem Sie das kompilierte Pipeline-Paket verwenden, das als Ausgabe des `dsl-compile` Befehls erstellt wurde.

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

   Die Ausgabe sollte folgendermaßen aussehen:

   ```
   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. Navigieren Sie zur Benutzeroberfläche, um den Fortschritt des Auftrags zu überprüfen.

#### Laden Sie die Pipeline mit der KFP-Benutzeroberfläche hoch und führen Sie sie aus
<a name="upload-and-run-the-pipeline-using-the-kfp-ui"></a>

1. Wählen Sie im linken Bereich die Registerkarte **Pipelines** aus. 

1. **Wählen Sie in der oberen rechten Ecke \$1. UploadPipeline** 

1. Geben Sie den Namen und die Beschreibung der Pipeline ein. 

1. Wählen Sie **Datei hochladen** und geben Sie den Pfad zu der Datei tar.gz ein, die Sie mit der CLI oder mit AWS SDK für Python (Boto3) erstellt haben.

1. Wählen Sie im linken Bereich die Registerkarte **Pipelines** aus.

1. Suchen Sie die Pipeline, die Sie erstellt haben.

1. **Wählen Sie \$1. CreateRun**

1. Geben Sie Ihre Eingabeparameter ein.

1. Klicken Sie auf **Ausführen**.

### Vorhersagen ausführen
<a name="running-predictions"></a>

Sobald Ihre Klassifizierungspipeline bereitgestellt ist, können Sie Klassifizierungsvorhersagen für den Endpunkt ausführen, der von der Deploy-Komponente erstellt wurde. Verwenden Sie die KFP-Benutzeroberfläche, um nach den Ausgabeartefakten zu suchen. `sagemaker-deploy-model-endpoint_name` Laden Sie die .tgz-Datei herunter, um den Endpunktnamen zu extrahieren, oder überprüfen Sie die SageMaker AI-Konsole in der Region, die Sie verwendet haben.

#### Konfigurieren Sie die Berechtigungen für die Ausführung von Vorhersagen
<a name="configure-permissions-to-run-predictions"></a>

Wenn Sie Vorhersagen von Ihrem Gateway-Knoten aus ausführen möchten, überspringen Sie diesen Abschnitt.

**Um Vorhersagen auf einem anderen Computer auszuführen, weisen Sie die `sagemaker:InvokeEndpoint` entsprechende Berechtigung der IAM-Rolle zu, die vom Client-Computer verwendet wird.**

1. Führen Sie auf Ihrem Gateway-Knoten den folgenden Befehl aus, um eine IAM-Richtliniendatei zu erstellen:

   ```
   cat <<EoF > ./sagemaker-invoke.json
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:InvokeEndpoint"
               ],
               "Resource": "*"
           }
       ]
   }
   EoF
   ```

1. Fügen Sie die Richtlinie der IAM-Rolle des Client-Knotens an.

   Führen Sie den folgenden Befehl aus. Ersetzen Sie `<your-instance-IAM-role>` durch den Namen der IAM-Rolle. Ersetzen Sie `<path-to-sagemaker-invoke-json>` durch den Pfad zu der von Ihnen erstellten Richtliniendatei.

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

#### Vorhersagen ausführen
<a name="run-predictions"></a>

1. Erstellen Sie auf Ihrem Client-Computer eine AWS SDK für Python (Boto3) Datei `mnist-predictions.py` mit dem folgenden Inhalt. Ersetzen Sie die `ENDPOINT_NAME` Variable. Das Skript lädt den MNIST-Datensatz, erstellt aus diesen Ziffern eine CSV-Datei, sendet die CSV-Datei dann zur Vorhersage an den Endpunkt und druckt die Ergebnisse aus.

   ```
   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. Führen Sie die AWS SDK für Python (Boto3) Datei wie folgt aus:

   ```
   python mnist-predictions.py
   ```

### Ergebnisse und Protokolle anzeigen
<a name="view-results-and-logs"></a>

Wenn die Pipeline läuft, können Sie eine beliebige Komponente auswählen, um Ausführungsdetails wie Eingaben und Ausgaben zu überprüfen. Dies listet die Namen der erstellten Ressourcen auf.

Wenn die KFP-Anfrage erfolgreich verarbeitet und ein SageMaker AI-Job erstellt wurde, enthalten die Komponentenprotokolle in der KFP-Benutzeroberfläche einen Link zu dem in SageMaker AI erstellten Job. Die CloudWatch Protokolle werden auch bereitgestellt, wenn der Job erfolgreich erstellt wurde. 

Wenn Sie zu viele Pipeline-Aufträge auf demselben Cluster ausführen, wird möglicherweise eine Fehlermeldung angezeigt, die darauf hinweist, dass nicht genügend Pods verfügbar sind. Um dieses Problem zu beheben, melden Sie sich bei Ihrem Gateway-Knoten an und löschen Sie die Pods, die von den Pipelines erstellt wurden, die Sie nicht verwenden:

```
kubectl get pods -n kubeflow
kubectl delete pods -n kubeflow <name-of-pipeline-pod>
```

### Bereinigen
<a name="cleanup"></a>

Wenn Sie mit Ihrer Pipeline fertig sind, müssen Sie Ihre Ressourcen bereinigen.

1. Beenden Sie im KFP-Dashboard Ihre Pipeline-Läufe, falls sie nicht ordnungsgemäß beendet werden, indem Sie **Terminieren** wählen.

1. Wenn die Option **Terminieren** nicht funktioniert, melden Sie sich bei Ihrem Gateway-Knoten an und beenden Sie manuell alle Pods, die durch Ihre Pipeline-Ausführung erstellt wurden, wie folgt: 

   ```
   kubectl get pods -n kubeflow
   kubectl delete pods -n kubeflow <name-of-pipeline-pod>
   ```

1. Melden Sie sich mit Ihrem AWS Konto beim SageMaker AI-Service an. Beenden Sie manuell alle Trainings-, Batch-Transform- und HPO-Aufträge. Löschen Sie Modelle, Daten-Buckets und Endpunkte, um zusätzliche Kosten zu vermeiden. Durch das Beenden der Pipeline-Läufe werden die Jobs in SageMaker AI nicht gestoppt.

# SageMaker Notizbuch-Jobs
<a name="notebook-auto-run"></a>

Sie können Amazon SageMaker AI verwenden, um interaktiv Modelle für maschinelles Lernen von Ihrem Jupyter-Notebook aus in jeder Umgebung zu erstellen, zu trainieren und bereitzustellen. JupyterLab Es gibt jedoch verschiedene Szenarien, in denen Sie Ihr Notebook möglicherweise als nicht interaktiven, geplanten Auftrag ausführen möchten. Möglicherweise möchten Sie beispielsweise regelmäßige Auditberichte erstellen, in denen alle Trainingsaufgaben analysiert werden, die über einen bestimmten Zeitraum ausgeführt wurden, und in denen der geschäftliche Nutzen der Implementierung dieser Modelle in der Produktion analysiert wird. Oder Sie möchten einen Feature-Engineering-Auftrag skalieren, nachdem Sie die Datentransformationslogik an einer kleinen Teilmenge von Daten getestet haben. Andere häufige Anwendungsfälle sind:
+ Planung von Aufträgen für die Überwachung von Modellabweichungen
+ Erkundung des Parameterraums für bessere Modelle

In diesen Szenarien können Sie SageMaker Notebook-Jobs verwenden, um einen nicht interaktiven Job zu erstellen (der von SageMaker KI als zugrunde liegender Trainingsjob ausgeführt wird), der entweder bei Bedarf oder nach einem Zeitplan ausgeführt wird. SageMaker Notebook Jobs bietet eine intuitive Benutzeroberfläche, über die Sie Ihre Jobs direkt planen können, JupyterLab indem Sie das Notizbuch-Jobs-Widget (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/notebook-schedule.png)) in Ihrem Notizbuch auswählen. Sie können Ihre Jobs auch mit dem SageMaker AI Python SDK planen, das die Flexibilität bietet, mehrere Notebook-Jobs in einem Pipeline-Workflow zu planen. Sie können mehrere Notebooks parallel ausführen und Zellen in Ihren Notebooks parametrisieren, um die Eingabeparameter anzupassen.

Diese Funktion nutzt die Dienste Amazon EventBridge, SageMaker Training und Pipelines und kann in Ihrem Jupyter-Notebook in einer der folgenden Umgebungen verwendet werden:
+ Studio-, Studio Lab-, Studio Classic- oder Notebook-Instancen
+ Lokales Setup, z. B. Ihr lokaler Computer, auf dem Sie ausführen JupyterLab

**Voraussetzungen**

Um ein Notebook-Projekt zu planen, stellen Sie sicher, dass die folgenden Kriterien erfüllt sind:
+ Stellen Sie sicher, dass Ihr Jupyter Notebook und alle Initialisierungs- oder Startskripts in Bezug auf Code und Softwarepakete eigenständig sind. Andernfalls kann es bei Ihrem nicht interaktiven Auftrag zu Fehlern kommen.
+ Überprüfen Sie [Einschränkungen und Überlegungen](notebook-auto-run-constraints.md), ob Sie Ihr Jupyter Notebook, die Netzwerkeinstellungen und die Container-Einstellungen richtig konfiguriert haben.
+ Stellen Sie sicher, dass Ihr Notebook auf benötigte externe Ressourcen wie Amazon EMR-Cluster zugreifen kann.
+ Wenn Sie Notebook-Aufträge in einem lokalen Jupyter Notebook einrichten, schließen Sie die Installation ab. Detaillierte Anweisungen finden Sie unter [Installationshandbuch](scheduled-notebook-installation.md). 
+ Wenn Sie eine Verbindung zu einem Amazon EMR-Cluster in Ihrem Notebook herstellen und Ihren Amazon EMR-Verbindungsbefehl parametrisieren möchten, müssen Sie eine Problemumgehung anwenden, indem Sie Umgebungsvariablen verwenden, um Parameter zu übergeben. Details hierzu finden Sie unter [Stellen Sie von Ihrem Studio-Notebook aus eine Connect zu einem Amazon-EMR-Cluster her](scheduled-notebook-connect-emr.md).
+ Wenn Sie mithilfe der Kerberos-, LDAP- oder HTTP Basic Auth-Authentifizierung eine Verbindung zu einem Amazon EMR-Cluster herstellen, müssen Sie die verwenden, um Ihre Sicherheitsanmeldeinformationen AWS Secrets Manager an Ihren Amazon EMR-Verbindungsbefehl zu übergeben. Details hierzu finden Sie unter [Stellen Sie von Ihrem Studio-Notebook aus eine Connect zu einem Amazon-EMR-Cluster her](scheduled-notebook-connect-emr.md).
+ (optional) Wenn Sie möchten, dass die Benutzeroberfläche ein Skript vorinstalliert, das beim Start des Notebooks ausgeführt wird, muss Ihr Administrator es mit einer Lifecycle Configuration (LCC) installieren. Informationen zur Verwendung eines LCC-Skripts finden Sie unter [Anpassen einer Notebook-Instance mithilfe eines Lifecycle-Konfigurationsskripts](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).

# Installationshandbuch
<a name="scheduled-notebook-installation"></a>

Im Folgenden finden Sie Informationen darüber, was Sie installieren müssen, um Notebook Jobs in Ihrer Umgebung verwenden zu können. JupyterLab 

**Für Amazon SageMaker Studio und Amazon SageMaker Studio Lab**

Wenn sich Ihr Notebook in Amazon SageMaker Studio oder Amazon SageMaker Studio Lab befindet, müssen Sie keine zusätzliche Installation durchführen — SageMaker Notebook Jobs ist in die Plattform integriert. Informationen zum Einrichten der erforderlichen Berechtigungen für Studio finden Sie unter [Einrichten von Richtlinien und Berechtigungen für Studio](scheduled-notebook-policies-studio.md).

**Für lokale Jupyter Notebooks**

Wenn Sie SageMaker Notebook Jobs für Ihre lokale JupyterLab Umgebung verwenden möchten, müssen Sie eine zusätzliche Installation durchführen.

Gehen Sie wie folgt vor, um SageMaker Notebook Jobs zu installieren:

1. Installieren Sie Python 3. Einzelheiten finden Sie unter [Installation von Python 3 und Python-Paketen](https://www.codecademy.com/article/install-python3).

1. Installieren Sie JupyterLab Version 4 oder höher. Einzelheiten finden Sie in der [JupyterLab SDK-Dokumentation](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html).

1. Installieren Sie die AWS CLI. Weitere Informationen finden Sie unter [AWS CLI Installieren oder Aktualisieren der neuesten Version von ](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Installieren Sie zwei Berechtigungssätze. Der IAM-Benutzer benötigt Berechtigungen, um Jobs an SageMaker AI zu senden. Nach dem Absenden nimmt der Notebook-Job selbst eine IAM-Rolle an, die je nach Auftragsaufgabe Berechtigungen für den Zugriff auf Ressourcen benötigt.

   1. Wenn Sie noch keinen IAM-Benutzer erstellt haben, finden Sie weitere Informationen unter [Erstellen eines IAM-Benutzers in Ihrem AWS -Konto](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html).

   1. Wenn Sie Ihre Notebook-Auftragsrolle noch nicht erstellt haben, finden Sie Informationen unter [Erstellen einer Rolle zum Delegieren von Berechtigungen an einen IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

   1. Fügen Sie Ihrem Benutzer und Ihrer Rolle die erforderlichen Berechtigungen und Vertrauensrichtlinien bei. step-by-stepAnweisungen und Einzelheiten zu Berechtigungen finden Sie unter. [Installieren Sie Richtlinien und Berechtigungen für lokale Jupyter-Umgebungen](scheduled-notebook-policies-other.md)

1. Generieren Sie AWS Anmeldeinformationen für Ihren neu erstellten IAM-Benutzer und speichern Sie sie in der Anmeldeinformationsdatei (\$1/.aws/credentials) Ihrer Umgebung. JupyterLab Sie können dies mit dem CLI-Befehl `aws configure` tun. Eine Anleitung finden Sie im Abschnitt *Konfigurationseinstellungen mithilfe von Befehlen* einrichten und anzeigen unter [Einstellungen für die Konfiguration und Anmeldeinformationsdatei](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).

1. (optional) Standardmäßig verwendet die Scheduler-Erweiterung ein vorgefertigtes SageMaker AI-Docker-Image mit Python 2.0. Jeder nicht standardmäßige Kernel, der im Notebook verwendet wird, sollte im Container installiert werden. Wenn Sie Ihr Notebook in einem Container- oder Docker-Image ausführen möchten, müssen Sie ein Amazon Elastic Container Registry (Amazon ECR)-Image erstellen. Informationen dazu, wie Sie ein Docker-Image auf ein Amazon ECR übertragen können, finden Sie unter [Verschieben eines Docker-Image](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).

1. Fügen Sie die JupyterLab Erweiterung für SageMaker Notebook-Jobs hinzu. Sie können es mit dem folgenden Befehl zu Ihrer JupyterLab Umgebung hinzufügen:`pip install amazon_sagemaker_jupyter_scheduler`. Möglicherweise müssen Sie Ihren Jupyter-Server mit dem folgenden Befehl neu starten: `sudo systemctl restart jupyter-server`.

1. Beginne JupyterLab mit dem Befehl:`jupyter lab`.

1. Stellen Sie sicher, dass das Widget Notebook-Aufträge (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/notebook-schedule.png)) in der Taskleiste Ihres Jupyter Notebooks angezeigt wird.

# Einrichten von Richtlinien und Berechtigungen für Studio
<a name="scheduled-notebook-policies-studio"></a>

Bevor Sie Ihre erste Notebook-Ausführung planen, müssen Sie die entsprechenden Richtlinien und Berechtigungen installieren. Im Folgenden finden Sie Anweisungen zum Einrichten der folgenden Berechtigungen:
+ Rolle bei der Ausführung von einem Auftrag, Vertrauensbeziehungen
+ Zusätzliche IAM-Berechtigungen, die mit der Rolle „Auftragsausführung“ verknüpft sind
+ (optional) Die AWS KMS Berechtigungsrichtlinie zur Verwendung eines benutzerdefinierten KMS-Schlüssels

**Wichtig**  
Wenn Ihr AWS Konto zu einer Organisation gehört, für die Service Control Policies (SCP) gelten, stellen Ihre effektiven Berechtigungen die logische Schnittmenge zwischen dem, was nach Ihren IAM-Rollen- und Benutzerrichtlinien zulässig ist, SCPs und dem, was nach Ihren IAM-Rollen- und Benutzerrichtlinien zulässig ist, dar. Wenn der SCP Ihrer Organisation beispielsweise festlegt, dass Sie nur auf Ressourcen in `us-east-1` und `us-west-1` zugreifen können, und Ihre Richtlinien Ihnen nur den Zugriff auf Ressourcen in `us-west-1` und `us-west-2` gestatten, dann können Sie letztlich nur auf Ressourcen in `us-west-1` zugreifen. Wenn Sie alle in Ihren Rollen- und Benutzerrichtlinien zulässigen Berechtigungen ausüben möchten, SCPs sollte Ihre Organisation dieselben Berechtigungen gewähren wie Ihren eigenen IAM-Benutzer- und Rollenrichtlinien. Weitere Informationen darüber, wie Sie Ihre erlaubten Anfragen ermitteln können, finden Sie unter [Ermitteln, ob eine Anforderung innerhalb eines Kontos zugelassen oder verweigert wird](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow).

**Vertrauensstellungen**

Führen Sie die folgenden Schritte aus, um die Vertrauensstellungen zu ändern:

1. Öffnen Sie die [IAM-Konsole](https://console.aws.amazon.com/iam/).

1. Wählen Sie im linken Navigationsbereich **Rollen** aus.

1. Suchen Sie die Auftragsausführungsrolle für Ihren Notebook-Auftrag und wählen Sie den Rollennamen aus. 

1. Wählen Sie die Registerkarte **Trust relationships (Vertrauensstellungen)**.

1. Wählen Sie **Vertrauensrichtlinie bearbeiten** aus.

1. Kopieren Sie die folgende Richtlinie und fügen Sie sie ein:

------
#### [ 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. Wählen Sie **Richtlinie aktualisieren**.

## Zusätzliche IAM-Berechtigungen
<a name="scheduled-notebook-policies-add"></a>

In folgenden Situationen müssen Sie möglicherweise zusätzliche IAM-Berechtigungen angeben:
+ Ihre Rollen für die Ausführung und den Notebook-Auftrag in Studio unterscheiden sich
+ Sie müssen über einen S3-VPC-Endpunkt auf Amazon S3-Ressourcen zugreifen
+ Sie möchten einen benutzerdefinierten KMS-Schlüssel verwenden, um Ihre Ein- und Ausgabe von Amazon-S3-Buckets zu verschlüsseln

Die folgende Erläuterung enthält die Richtlinien, die Sie für jeden Fall benötigen.

### Erforderliche Berechtigungen, wenn sich Ihre Rollen in Studio Execution und Notebook-Auftrag unterscheiden
<a name="scheduled-notebook-policies-add-diffrole"></a>

Das folgende JSON-Snippet ist ein Beispiel für eine Richtlinie, die Sie zu den Rollen Studio Execution und Notebook-Auftrag hinzufügen sollten, wenn Sie die Studio-Ausführungsrolle nicht als Notebook-Auftragsrolle verwenden. Überprüfen und ändern Sie diese Richtlinie, wenn Sie die Rechte weiter einschränken müssen.

------
#### [ 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":"*"
      }
   ]
}
```

------

### Für den Zugriff auf Amazon S3-Ressourcen über ein S3 VPC-Endpunkt erforderliche Berechtigungen
<a name="scheduled-notebook-policies-add-vpc"></a>

Wenn Sie SageMaker Studio im privaten VPC-Modus ausführen und über den S3-VPC-Endpunkt auf S3 zugreifen, können Sie der VPC-Endpunktrichtlinie Berechtigungen hinzufügen, um zu steuern, auf welche S3-Ressourcen über den VPC-Endpunkt zugegriffen werden kann. Fügen Sie Ihrer VPC-Endpunktrichtlinie die folgenden Berechtigungen hinzu. Sie können die Richtlinie ändern, wenn Sie die Berechtigungen weiter einschränken möchten. Sie können beispielsweise eine engere Spezifikation für das Feld `Principal` angeben.

```
{
    "Sid": "S3DriverAccess",
    "Effect": "Allow",
    "Principal": "*",
    "Action": [
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:ListBucket"
    ],
    "Resource": "arn:aws:s3:::sagemakerheadlessexecution-*"
}
```

Einzelheiten zum Einrichten einer S3-VPC-Endpunktrichtlinie finden Sie unter [VPC-Endpunktrichtlinie bearbeiten](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#edit-vpc-endpoint-policy-s3).

### Für die Verwendung eines benutzerdefinierten KMS-Schlüssels sind Berechtigungen erforderlich (optional)
<a name="scheduled-notebook-policies-add-kms"></a>

Standardmäßig werden die Eingabe- und Ausgabe-Buckets von Amazon S3 mit serverseitiger Verschlüsselung verschlüsselt. Sie können jedoch einen benutzerdefinierten KMS-Schlüssel angeben, um Ihre Daten im Ausgabe-Bucket von Amazon S3 und das an den Notebook-Auftrag angehängte Speichervolume zu verschlüsseln.

Wenn Sie einen benutzerdefinierten KMS-Schlüssel verwenden möchten, fügen Sie die folgende Richtlinie bei und geben Sie Ihren eigenen KMS-Schlüssel-ARN an.

------
#### [ 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"
      }
   ]
}
```

------

# Installieren Sie Richtlinien und Berechtigungen für lokale Jupyter-Umgebungen
<a name="scheduled-notebook-policies-other"></a>

Sie müssen die erforderlichen Berechtigungen und Richtlinien einrichten, um Notebook-Aufträge in einer lokalen Jupyter-Umgebung zu planen. Der IAM-Benutzer benötigt Berechtigungen, um Jobs an SageMaker AI zu senden, und die IAM-Rolle, die der Notebook-Job selbst annimmt, benötigt je nach Auftragsaufgaben Berechtigungen für den Zugriff auf Ressourcen. Im Folgenden finden Sie Anweisungen zum Einrichten der erforderlichen Berechtigungen und Richtlinien.

Sie müssen zwei Berechtigungssätze installieren. Das folgende Diagramm zeigt die Berechtigungsstruktur, mit der Sie Notebook-Jobs in einer lokalen Jupyter-Umgebung planen können. Der IAM-Benutzer muss IAM-Berechtigungen einrichten, um Jobs an KI senden zu können. SageMaker Sobald der Benutzer den Notebook-Auftrag übermittelt hat, nimmt der Auftrag selbst eine IAM-Rolle an, die je nach Auftragsaufgabe über Berechtigungen für den Zugriff auf Ressourcen verfügt.

![\[\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/notebook-jobs-permissions.png)


Die folgenden Abschnitte helfen Ihnen bei der Installation der erforderlichen Richtlinien und Berechtigungen sowohl für den IAM-Benutzer als auch für die Auftragausführungsrolle.

## IAM-Benutzerberechtigungen
<a name="scheduled-notebook-policies-other-user"></a>

**Berechtigungen zum Einreichen von Jobs an KI SageMaker **

Führen Sie die folgenden Schritte aus, um Berechtigungen zum Abrufen von Aufträgen hinzuzufügen:

1. Öffnen Sie die [IAM-Konsole](https://console.aws.amazon.com/iam/).

1. Wählen Sie im linken Bereich **Benutzer**.

1. Suchen Sie den IAM-Benutzer für Ihren Notebook-Auftrag und wählen Sie den Benutzernamen aus.

1. Wählen Sie **Berechtigungen hinzufügen** und dann **Inline-Richtlinie erstellen** aus dem Dropdown-Menü aus.

1. Wählen Sie den Tab **JSON**.

1. Kopieren Sie die folgende Richtlinie und fügen Sie sie ein:

------
#### [ 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 Berechtigungsrichtlinie (optional)**

Standardmäßig werden die Amazon S3-Eingabe- und Ausgabe-Buckets mit serverseitiger Verschlüsselung verschlüsselt. Sie können jedoch einen benutzerdefinierten KMS-Schlüssel angeben, um Ihre Daten im Amazon S3-Ausgabe-Bucket und das an den Notebook-Auftrag angehängte Speichervolume zu verschlüsseln.

Wenn Sie einen benutzerdefinierten KMS-Schlüssel verwenden möchten, wiederholen Sie die vorherigen Anweisungen, fügen Sie die folgende Richtlinie hinzu und geben Sie Ihren eigenen KMS-Schlüssel-ARN an.

------
#### [ 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"
      }
   ]
}
```

------

## Berechtigungen der Auftragsausführungsrolle
<a name="scheduled-notebook-policies-other-job"></a>

**Vertrauensstellungen**

Führen Sie die folgenden Schritte aus, um die Vertrauensbeziehungen der Rolle für die Auftragsausführung zu ändern:

1. Öffnen Sie die [IAM-Konsole](https://console.aws.amazon.com/iam/).

1. Wählen Sie im linken Navigationsbereich **Rollen** aus.

1. Suchen Sie die Auftragsausführungsrolle für Ihren Notebook-Auftrag und wählen Sie den Rollennamen aus.

1. Wählen Sie die Registerkarte **Trust relationships (Vertrauensstellungen)**.

1. Wählen Sie **Vertrauensrichtlinie bearbeiten** aus.

1. Kopieren Sie die folgende Richtlinie und fügen Sie sie ein:

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

****  

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

------

**Zusätzliche Berechtigungen**

Nach dem Absenden benötigt der Notebook-Auftrag Berechtigungen für den Zugriff auf Ressourcen. Die folgenden Anweisungen zeigen Ihnen, wie Sie einen Mindestsatz an Berechtigungen hinzufügen. Fügen Sie bei Bedarf weitere Berechtigungen hinzu, die den Anforderungen Ihres Notebook-Auftrags entsprechen. Führen Sie zum Hinzufügen von Berechtigungen für Ihre Auftragsausführungsrolle die folgenden Schritte aus:

1. Öffnen Sie die [IAM-Konsole](https://console.aws.amazon.com/iam/).

1. Wählen Sie im linken Navigationsbereich **Rollen** aus.

1. Suchen Sie die Jobausführungsrolle für Ihren Notebook-Auftrag und wählen Sie den Rollennamen aus.

1. Wählen Sie **Berechtigungen hinzufügen** und dann **Inline-Richtlinie erstellen** aus dem Dropdown-Menü aus.

1. Wählen Sie den Tab **JSON**.

1. Kopieren Sie die folgende Richtlinie und fügen Sie sie ein:

------
#### [ 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. Fügen Sie Berechtigungen für andere Ressourcen hinzu, auf die Ihr Notebook-Auftrag zugreift.

1. Wählen Sie **Richtlinie prüfen**.

1. Geben Sie einen Namen für Ihre Richtlinie ein.

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

# Wo können Sie einen Notebook-Job erstellen
<a name="create-notebook-auto-run"></a>

Wenn Sie einen Notebook-Auftrag erstellen möchten, haben Sie mehrere Optionen. Im Folgenden finden Sie die SageMaker KI-Optionen, mit denen Sie einen Notebook-Job erstellen können.

Sie können einen Job in Ihrem JupyterLab Notizbuch in der Studio-Benutzeroberfläche erstellen, oder Sie können programmgesteuert einen Job mit dem SageMaker Python-SDK erstellen:
+ Wenn Sie Ihren Notebook-Job in der Studio-Benutzeroberfläche erstellen, geben Sie Details zu Image und Kernel, Sicherheitskonfigurationen und allen benutzerdefinierten Variablen oder Skripten an, und Ihr Job ist geplant. Einzelheiten dazu, wie Sie Ihren Job mithilfe von SageMaker Notebook-Jobs planen, finden Sie unter. [Erstellen eines Notebook-Auftrags in Studio](create-notebook-auto-run-studio.md)
+ Um einen Notebook-Job mit dem SageMaker Python-SDK zu erstellen, erstellen Sie eine Pipeline mit einem Notebook-Job-Schritt und initiieren einen On-Demand-Lauf oder verwenden optional die Pipeline-Planungsfunktion, um future zu planen. Das SageMaker SDK bietet Ihnen die Flexibilität, Ihre Pipeline anzupassen — Sie können Ihre Pipeline auf einen Workflow mit mehreren Notebook-Jobschritten erweitern. Da Sie sowohl einen SageMaker Notebook-Job-Schritt als auch eine Pipeline erstellen, können Sie Ihren Pipeline-Ausführungsstatus im Job-Dashboard von SageMaker Notebook Jobs verfolgen und auch Ihr Pipeline-Diagramm in Studio anzeigen. Einzelheiten zur Planung Ihres Jobs mit dem SageMaker Python-SDK und Links zu Beispiel-Notebooks finden Sie unter[Notebook-Job mit SageMaker AI Python SDK erstellen — Beispiel](create-notebook-auto-run-sdk.md).

# Notebook-Job mit SageMaker AI Python SDK erstellen — Beispiel
<a name="create-notebook-auto-run-sdk"></a>

Um ein eigenständiges Notebook mit dem SageMaker Python-SDK auszuführen, müssen Sie einen Notebook-Job-Schritt erstellen, ihn an eine Pipeline anhängen und die von Pipelines bereitgestellten Dienstprogramme verwenden, um Ihren Job bei Bedarf auszuführen oder optional einen oder mehrere future Jobs zu planen. In den folgenden Abschnitten werden die grundlegenden Schritte zur Erstellung eines On-Demand-Jobs oder eines geplanten Notebook-Jobs und zur Nachverfolgung der Ausführung beschrieben. Beachten Sie außerdem die folgenden Hinweise, wenn Sie Parameter an Ihren Notebook-Auftrag übergeben oder in Ihrem Notebook eine Verbindung zu Amazon EMR herstellen müssen. In diesen Fällen sind zusätzliche Vorbereitungen für Ihr Jupyter-Notebook erforderlich. Sie können auch Standardwerte für eine Teilmenge der Argumente von anwenden, `NotebookJobStep` sodass Sie sie nicht jedes Mal angeben müssen, wenn Sie einen Notebook-Job-Schritt erstellen.

Beispielnotizbücher, die zeigen, wie Notizbuchjobs mit dem SageMaker AI Python SDK geplant werden, finden Sie unter [Notizbuch-Beispielnotizbücher für Notizbücher](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-pipelines/notebook-job-step).

**Topics**
+ [Schritte zum Erstellen eines Notebook-Auftrags](#create-notebook-auto-run-overall)
+ [Sehen Sie sich Ihre Notebook-Jobs im Studio-UI-Dashboard an](#create-notebook-auto-run-dash)
+ [Sehen Sie sich Ihr Pipeline-Diagramm in Studio an](#create-notebook-auto-run-graph)
+ [Parameter an Ihr Notebook übergeben](#create-notebook-auto-run-passparam)
+ [Herstellen einer Verbindung zu einem Amazon-EMR-Cluster in Ihrem Eingabe-Notebook](#create-notebook-auto-run-emr)
+ [Richten Sie Standardoptionen ein](#create-notebook-auto-run-intdefaults)

## Schritte zum Erstellen eines Notebook-Auftrags
<a name="create-notebook-auto-run-overall"></a>

Sie können entweder einen Notebookauftrag erstellen, der sofort oder nach einem Zeitplan ausgeführt wird. In der folgenden Anleitung werden beide Methoden beschrieben.

**Führen Sie die folgenden grundlegenden Schritte aus, um Ihren Notebook-Auftrag zu planen:**

1. Erstellen Sie eine `NotebookJobStep`-Instance. Einzelheiten zu `NotebookJobStep` Parametern finden Sie unter [sagemaker.workflow.steps. NotebookJobStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.notebook_job_step.NotebookJobStep). Sie können mindestens die folgenden Argumente angeben, wie im folgenden Codeausschnitt gezeigt:
**Wichtig**  
Wenn Sie Ihren Notebook-Job mit dem SageMaker Python-SDK planen, können Sie nur bestimmte Images angeben, um Ihren Notebook-Job auszuführen. Weitere Informationen finden Sie unter [Bildeinschränkungen für SageMaker AI Python SDK-Notebook-Jobs](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. Erstellen Sie eine Pipeline mit Ihrem `NotebookJobStep` in einem einzigen Schritt, wie im folgenden Ausschnitt gezeigt:

   ```
   pipeline = Pipeline(
       name=pipeline-name,
       steps=[notebook_job_step],
       sagemaker_session=sagemaker-session,
   )
   ```

1. Führen Sie die Pipeline bei Bedarf aus oder planen Sie optional future Pipeline-Läufe. Verwenden Sie den folgenden Befehl, um eine sofortige Ausführung zu starten:

   ```
   execution = pipeline.start(
       parameters={...}
   )
   ```

   Optional können Sie einen einzelnen future Pipeline-Lauf oder mehrere Läufe in einem festgelegten Intervall planen. Sie geben Ihren Zeitplan in an `PipelineSchedule` und übergeben dann das Zeitplanobjekt mit an Ihre Pipeline`put_triggers`. Weitere Informationen zur Planung einer Pipeline finden Sie unter [Planen Sie eine Pipeline mit dem SageMaker Python-SDK](pipeline-eventbridge.md#build-and-manage-scheduling).

   Im folgenden Beispiel wird Ihre Pipeline so geplant, dass sie einmalig am 12. Dezember 2023 um 10:31:32 UTC ausgeführt wird.

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

   Das folgende Beispiel plant die Ausführung Ihrer Pipeline für 10:15 Uhr UTC am letzten Freitag jedes Monats in den Jahren 2022 bis 2023. [Einzelheiten zur cron-basierten Planung finden Sie unter Cron-basierte Zeitpläne.](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. (Optional) Sehen Sie sich Ihre Notizbuchaufträge im SageMaker Notizbuchauftrags-Dashboard an. Die Werte, die Sie für das `tags` Argument Ihres Notebook-Job-Schritts angeben, steuern, wie die Studio-Benutzeroberfläche den Job erfasst und anzeigt. Weitere Informationen finden Sie unter [Sehen Sie sich Ihre Notebook-Jobs im Studio-UI-Dashboard an](#create-notebook-auto-run-dash).

## Sehen Sie sich Ihre Notebook-Jobs im Studio-UI-Dashboard an
<a name="create-notebook-auto-run-dash"></a>

Die Notebookjobs, die Sie als Pipeline-Schritte erstellen, werden im Studio Notebook Job-Dashboard angezeigt, wenn Sie bestimmte Tags angeben.

**Anmerkung**  
Nur Notebook-Jobs, die in Studio oder lokalen JupyterLab Umgebungen erstellt wurden, erstellen Jobdefinitionen. Wenn Sie Ihren Notebook-Job mit dem SageMaker Python-SDK erstellen, werden Ihnen daher keine Jobdefinitionen im Notebook Jobs-Dashboard angezeigt. Sie können Ihre Notebook-Aufträge jedoch wie unter [Notebook-Aufträge anzeigen](view-notebook-jobs.md) beschrieben anzeigen. 

Mit den folgenden Tags können Sie steuern, welche Teammitglieder Ihre Notebookjobs sehen können:
+ Um das Notebook für alle Benutzerprofile oder [Bereiche](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl-user-guide.html) in einer Domain anzuzeigen, fügen Sie das Domain-Tag mit Ihrem Domainnamen hinzu. Ein Beispiel sehen Sie unten:
  + Schlüssel: `sagemaker:domain-name` Wert: `d-abcdefghij5k`
+ Um den Notebookjob einem bestimmten Benutzerprofil in einer Domain anzuzeigen, fügen Sie sowohl das Benutzerprofil als auch die Domain-Tags hinzu. Ein Beispiel für ein Benutzerprofil-Tag sehen Sie unten:
  + Schlüssel: `sagemaker:user-profile-name` Wert: `studio-user`
+ Um den Notebook-Job einem [Space](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl-user-guide.html) anzuzeigen, fügen Sie sowohl den Space als auch die Domain-Tags hinzu. Ein Beispiel für eine Raumkennzeichnung sehen Sie unten:
  + Schlüssel: `sagemaker:shared-space-name` Wert: `my-space-name`
+ Wenn Sie keine Domain-, Benutzerprofil- oder Bereich-Tags hinzufügen, zeigt die Studio-Benutzeroberfläche den durch den Pipeline-Schritt erstellten Notebook-Auftrag nicht an. In diesem Fall können Sie den zugrunde liegenden Trainingsjob in der Trainingsjob-Konsole oder den Status in der [Liste der Pipeline-Ausführungen](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-studio-view-execution.html) einsehen.

Nachdem Sie die erforderlichen Tags für die Anzeige Ihrer Jobs im Dashboard eingerichtet haben, finden Sie unter Anweisungen [Notebook-Aufträge anzeigen](view-notebook-jobs.md) zum Anzeigen Ihrer Jobs und zum Herunterladen der Ergebnisse.

## Sehen Sie sich Ihr Pipeline-Diagramm in Studio an
<a name="create-notebook-auto-run-graph"></a>

Da Ihr Notebook-Auftragsschritt Teil einer Pipeline ist, können Sie das Pipeline-Diagramm (DAG) in Studio anzeigen. Im Pipeline-Diagramm können Sie den Status des Pipeline-Laufs anzeigen und die Herkunft verfolgen. Details hierzu finden Sie unter [Anzeige der Details eines Pipeline-Laufs](pipelines-studio-view-execution.md).

## Parameter an Ihr Notebook übergeben
<a name="create-notebook-auto-run-passparam"></a>

Wenn Sie Parameter an Ihren Notebook-Job übergeben möchten (mit dem `parameters` Argument von`NotebookJobStep`), müssen Sie Ihr Eingabe-Notebook darauf vorbereiten, die Parameter zu empfangen. 

Der auf Papermill basierende Notebook-Auftrags-Executor sucht nach einer Jupyter-Zelle, die mit dem Tag `parameters` markiert ist, und wendet die neuen Parameter oder Parameterüberschreibungen unmittelbar nach dieser Zelle an. Details hierzu finden Sie unter [Parametrisieren Ihres Notebooks](notebook-auto-run-troubleshoot-override.md). 

Wenn Sie diesen Schritt ausgeführt haben, übergeben Sie Ihre Parameter an Ihre`NotebookJobStep`, wie im folgenden Beispiel gezeigt:

```
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,
    ...
)
```

## Herstellen einer Verbindung zu einem Amazon-EMR-Cluster in Ihrem Eingabe-Notebook
<a name="create-notebook-auto-run-emr"></a>

Wenn Sie von Ihrem Jupyter Notebook in Studio aus eine Verbindung zu einem Amazon EMR-Cluster herstellen, müssen Sie Ihr Jupyter Notebook möglicherweise weiter modifizieren. Prüfen Sie[Stellen Sie von Ihrem Studio-Notebook aus eine Connect zu einem Amazon-EMR-Cluster her](scheduled-notebook-connect-emr.md), ob Sie eine der folgenden Aufgaben in Ihrem Notebook ausführen müssen:
+ **Übergeben von Parametern an Ihren Amazon-EMR-Verbindungsbefehl**. Studio verwendet Papermill zur Ausführung von Notebooks. In SparkMagic Kerneln funktionieren Parameter, die Sie an Ihren Amazon EMR-Verbindungsbefehl übergeben, möglicherweise nicht wie erwartet, da Papermill Informationen an sie weitergibt. SparkMagic
+ **Weitergabe von Benutzeranmeldedaten an Kerberos-, LDAP- oder HTTP Basic Auth-authentifizierte Amazon EMR-Cluster**. Sie müssen Benutzeranmeldeinformationen über die übergeben AWS Secrets Manager.

## Richten Sie Standardoptionen ein
<a name="create-notebook-auto-run-intdefaults"></a>

Das SageMaker SDK bietet Ihnen die Möglichkeit, Standardwerte für eine Teilmenge von Parametern festzulegen, sodass Sie diese Parameter nicht jedes Mal angeben müssen, wenn Sie eine Instance erstellen. `NotebookJobStep` Diese Parameter sind `role`, `s3_root_uri`, `s3_kms_key`, `volume_kms_key`, `subnets` und `security_group_ids`. Verwenden Sie die SageMaker AI-Konfigurationsdatei, um die Standardeinstellungen für den Schritt festzulegen. Informationen zur SageMaker AI-Konfigurationsdatei finden Sie unter [Konfiguration und Verwendung von Standardwerten mit dem SageMaker Python-SDK](https://sagemaker.readthedocs.io/en/stable/overview.html#configuring-and-using-defaults-with-the-sagemaker-python-sdk). .

Um die Standardeinstellungen für Notebook-Jobs einzurichten, wenden Sie Ihre neuen Standardeinstellungen auf den Notebook-Job-Abschnitt der Konfigurationsdatei an, wie im folgenden Codeausschnitt gezeigt:

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

# Erstellen eines Notebook-Auftrags in Studio
<a name="create-notebook-auto-run-studio"></a>

**Anmerkung**  
Der Notebook-Scheduler basiert auf den Services Amazon EventBridge, SageMaker Training und Pipelines. Wenn Ihre Notebook-Aufträge fehlschlagen, werden Ihnen möglicherweise Fehler im Zusammenhang mit diesen Diensten angezeigt. Im Folgenden finden Sie Informationen zum Erstellen eines Notebook-Jobs in der Studio-Benutzeroberfläche.

SageMaker Notebook Jobs bietet Ihnen die Tools, mit denen Sie Ihre nicht interaktiven Notizbuchjobs mithilfe des Widgets Notizbuchjobs erstellen und verwalten können. Sie können Aufträge erstellen, die von Ihnen erstellten Aufträge anzeigen und bestehende Aufträge pausieren, beenden oder fortsetzen. Sie können auch Notebook-Zeitpläne ändern.

Wenn Sie Ihren geplanten Notebook-Auftrag mit dem Widget erstellen, versucht der Scheduler, eine Auswahl von Standardoptionen abzuleiten, und füllt das Formular automatisch aus, damit Sie schnell loslegen können. Wenn Sie Studio verwenden, können Sie zumindest einen On-Demand-Auftrag einreichen, ohne Optionen festzulegen. Sie können auch eine (geplante) Notebook-Auftragsdefinition einreichen, die nur die zeitspezifischen Zeitplaninformationen enthält. Sie können jedoch auch andere Felder anpassen, wenn Ihr geplantes Projekt spezielle Einstellungen erfordert. Wenn Sie ein lokales Jupyter Notebook ausführen, bietet die Scheduler-Erweiterung eine Funktion, mit der Sie Ihre eigenen Standardeinstellungen (für eine Teilmenge von Optionen) angeben können, sodass Sie nicht jedes Mal dieselben Werte manuell einfügen müssen.

Wenn Sie einen Notebook-Job erstellen, können Sie zusätzliche Dateien wie Datensätze, Bilder und lokale Skripts hinzufügen. Wählen Sie dazu **Job mit Eingabeordner ausführen**. Der Notebook-Job hat jetzt Zugriff auf alle Dateien im Ordner der Eingabedatei. Während der Notebook-Job ausgeführt wird, bleibt die Dateistruktur des Verzeichnisses unverändert.

Führen Sie die folgenden Schritte aus, um Ihren Notebook-Auftrag zu planen.

1. Öffnen Sie das Formular **Auftrag erstellen**.

   Wählen Sie in lokalen JupyterLab Umgebungen in der Taskleiste das Symbol **Einen Notizbuchjob erstellen** (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/notebook-schedule.png)) aus. Wenn Sie das Symbol nicht sehen, folgen Sie den Anweisungen unter [Installationshandbuch](scheduled-notebook-installation.md), um es zu installieren.

   Öffnen Sie das Formular in Studio auf zwei Arten:
   + Verwenden des **Dateibrowsers**

     1. Klicken Sie im **Dateibrowser** im linken Bereich mit der rechten Maustaste auf das Notebook, das Sie als geplanten Auftrag ausführen möchten.

     1. Wählen Sie **Notebook-Auftrag erstellen**.
   + Innerhalb des Studio-Notebooks
     + Wählen Sie in dem Studio-Notebook, das Sie als geplanten Auftrag ausführen möchten, in der Studio-Symbolleiste das Symbol **Notebook-Auftrag erstellen** (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/notebook-schedule.png)) aus.

1. Füllen Sie das Popup-Formular aus. Das Formular zeigt die folgenden Felder an:
   + **Auftragname**: Ein aussagekräftiger Name, den Sie für Ihren Auftrag angeben.
   + **Eingabedatei**: Der Name des Notebooks, das Sie im nicht interaktiven Modus ausführen möchten.
   + **Compute-Typ**: Der Typ der Amazon-EC2-Instance, in der Sie Ihr Notebook ausführen möchten.
   + **Parameter**: Benutzerdefinierte Parameter, die Sie optional als Eingaben für Ihr Notebook angeben können. Um diese Funktion verwenden zu können, möchten Sie optional eine bestimmte Zelle in Ihrem Jupyter Notebook mit dem **parameters** Tag kennzeichnen, um zu steuern, wo Ihre Parameter angewendet werden. Weitere Details finden Sie unter [Parametrisieren Ihres Notebooks](notebook-auto-run-troubleshoot-override.md).
   + **(Optional) **Job mit Eingabeordner ausführen**: Wenn diese Option ausgewählt ist, hat der geplante Job Zugriff auf alle Dateien, die sich im selben Ordner wie die Eingabedatei befinden.**
   + **Zusätzliche Optionen**: Sie können zusätzliche Anpassungen für Ihren Auftrag angeben. Sie können beispielsweise ein Image oder einen Kernel, Eingabe- und Ausgabeordner, Optionen für die Auftragswiederholung und das Timeout, Verschlüsselungsdetails und benutzerdefinierte Initialisierungsskripten angeben. Eine vollständige Liste der Anpassungen, die Sie anwenden können, finden Sie unter [Verfügbare Optionen](create-notebook-auto-execution-advanced.md).

1. Planen Sie Ihren Auftrag. Sie können Ihr Notebook bei Bedarf oder nach einem festen Zeitplan ausführen.
   + Um das Notebook bei Bedarf zu starten, führen Sie die folgenden Schritte aus:
     + Wählen Sie **Jetzt ausführen** aus.
     + Wählen Sie **Erstellen** aus.
     + Die Registerkarte **Notebook-Aufträge** wird angezeigt. Wählen Sie **Reload**, um Ihren Auftrag in das Dashboard zu laden.
   + Führen Sie zum Ausführen des Notebooks nach einem festen Zeitplan die folgenden Schritte aus:
     + Wählen Sie **Nach einem Zeitplan ausführen** aus.
     + Wählen Sie die Dropdown-Liste **Intervall** und wählen Sie ein Intervall aus. Die Intervalle reichen von jeder Minute bis hin zu einem Monat. Sie können auch **Benutzerdefinierter Zeitplan** auswählen.
     + Je nach ausgewähltem Intervall werden zusätzliche Felder angezeigt, mit denen Sie den gewünschten Ausführungstag und die Uhrzeit genauer angeben können. Wenn Sie beispielsweise **Tag** für einen täglichen Lauf auswählen, wird ein zusätzliches Feld angezeigt, in dem Sie die gewünschte Zeit angeben können. Beachten Sie, dass jede Uhrzeit, die Sie angeben, im UTC-Format angegeben ist. Beachten Sie auch, dass sich Ihre Aufträge überschneiden, wenn Sie ein kleines Intervall wählen, z. B. eine Minute, wenn der vorherige Auftrag nicht abgeschlossen ist, wenn der nächste Auftrag beginnt.

       Wenn Sie einen benutzerdefinierten Zeitplan auswählen, verwenden Sie die Cron-Syntax im Ausdrucksfeld, um Ihr genaues Ausführungsdatum und Ihre genaue Ausführungszeit anzugeben. Die Cron-Syntax ist eine durch Leerzeichen getrennte Liste von Ziffern, von denen jede eine Zeiteinheit von Sekunden bis Jahren darstellt. Wenn Sie Hilfe zur Cron-Syntax benötigen, können Sie unter dem Ausdrucksfeld die Option **Hilfe zur Cron-Syntax abrufen** auswählen.
     + Wählen Sie **Erstellen** aus.
     + Die Registerkarte **Notebook-Auftragsdefinitionen** wird angezeigt. Wählen Sie **Reload**, um Ihre Auftragsdefinition in das Dashboard zu laden.

# Richten Sie Standardoptionen für lokale Notebooks ein
<a name="create-notebook-auto-execution-advanced-default"></a>

**Wichtig**  
Seit dem 30. November 2023 heißt das vorherige Amazon SageMaker Studio-Erlebnis jetzt Amazon SageMaker Studio Classic. Der folgende Abschnitt bezieht sich konkret auf die Verwendung der Studio-Classic-Anwendung. Informationen zur Verwendung der aktualisierten Studio-Konfiguration finden Sie unter [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic wird weiterhin für bestehende Workloads beibehalten, ist aber nicht mehr für das Onboarding verfügbar. Sie können nur bestehende Studio Classic-Anwendungen beenden oder löschen und keine neuen erstellen. Wir empfehlen Ihnen, [Ihren Workload auf das neue Studio-Erlebnis zu migrieren](studio-updated-migrate.md).

Sie können beim Erstellen eines Notebook-Auftrags Standardoptionen einrichten. Dies kann Ihnen Zeit sparen, wenn Sie mehrere Notebookaufträge mit anderen Optionen als den bereitgestellten Standardoptionen erstellen möchten. Im Folgenden finden Sie Informationen zum Einrichten der Standardoptionen für lokale Notebooks.

Wenn Sie benutzerdefinierte Werte manuell in das Formular **Auftrag erstellen** eingeben (oder einfügen) müssen, können Sie neue Standardwerte speichern, und die Scheduler-Erweiterung fügt Ihre neuen Werte jedes Mal ein, wenn Sie eine neue Auftragsdefinition erstellen. Diese Funktion ist für die folgenden Optionen verfügbar:
+ **ARN der Rolle**
+ **S3-Eingabeordner**
+ **S3-Ausgangsordner**
+ **Ausgabeverschlüsselung KMS-Schlüssel** (wenn Sie **Auftragsverschlüsselung konfigurieren** aktivieren)
+ **KMS-Schlüssel für die Volumenverschlüsselung der Auftrags-Instance** (wenn Sie **Auftragsverschlüsselung konfigurieren** aktivieren)

Diese Funktion spart Ihnen Zeit, wenn Sie andere Werte als die angegebenen Standardwerte einfügen und diese Werte weiterhin für zukünftige Auftragsausführungen verwenden. Die von Ihnen ausgewählten Benutzereinstellungen werden auf dem Computer gespeichert, auf dem Ihr JupyterLab Server ausgeführt wird, und mit Hilfe der nativen API abgerufen. Wenn Sie neue Standardwerte für eine oder mehrere, aber nicht für alle fünf Optionen angeben, werden die vorherigen Standardwerte für diejenigen verwendet, die Sie nicht anpassen.

Die folgenden Anweisungen zeigen Ihnen, wie Sie die vorhandenen Standardwerte in der Vorschau anzeigen, neue Standardwerte festlegen und die Standardwerte für Ihre Notebook-Aufträge zurücksetzen können.

**Führen Sie die folgenden Schritte aus, um eine Vorschau vorhandener Standardwerte für Ihre Notebookaufträge anzuzeigen:**

1. Öffnen Sie die Amazon SageMaker Studio Classic-Konsole, indem Sie den Anweisungen unter folgen[Starten Sie Amazon SageMaker Studio Classic](studio-launch.md).

1. Klicken Sie im **Dateibrowser** im linken Bereich mit der rechten Maustaste auf das Notebook, das Sie als geplanten Auftrag ausführen möchten.

1. Wählen Sie **Notebook-Auftrag erstellen**.

1. Wählen Sie **Zusätzliche Optionen**, um die Registerkarte mit den Notebookauftragseinstellungen zu erweitern. Sie können die Standardeinstellungen hier anzeigen. 

**Führen Sie die folgenden Schritte aus, um neue Standardwerte für Ihre future Notebookaufträge festzulegen:**

1. Öffnen Sie die Amazon SageMaker Studio Classic-Konsole, indem Sie den Anweisungen unter folgen[Starten Sie Amazon SageMaker Studio Classic](studio-launch.md).

1. Wählen Sie im oberen Menü von Studio Classic **Einstellungen** und dann **Editor für erweiterte Einstellungen** aus.

1. Wählen Sie **Amazon SageMaker Scheduler** aus der Liste unter **Einstellungen** aus. Er ist möglicherweise bereits standardmäßig geöffnet.

1. Sie können die Standardeinstellungen direkt auf dieser UI-Seite oder mithilfe des JSON-Editors aktualisieren.
   + In der Benutzeroberfläche können Sie neue Werte für **Rolle ARN**, **S3 Input Folder, S3 Output Folder**, **Output** **Encryption KMS Key** oder **Job Instance Volume Encryption KMS-Schlüssel** einfügen. Wenn Sie diese Werte ändern, werden Ihnen die neuen Standardwerte für diese Felder angezeigt, wenn Sie Ihren nächsten Notebook-Auftrag unter **Zusätzliche Optionen** erstellen.
   + (Optional) Gehen Sie wie folgt vor, um die Benutzerstandardwerte mithilfe des **JSON-Einstellungseditors** zu aktualisieren:

     1. Wählen Sie in der oberen rechten Ecke den **JSON-Einstellungseditor** aus.

     1. Wählen Sie in der linken Seitenleiste **„Einstellungen“** **Amazon SageMaker AI Scheduler** aus. Er ist möglicherweise bereits standardmäßig geöffnet.

        Sie können Ihre aktuellen Standardwerte im Bereich **Benutzereinstellungen** sehen.

        Sie können die Standardwerte des Systems im Bereich **Systemstandardwerte** sehen.

     1. Um Ihre Standardwerte zu aktualisieren, kopieren Sie den JSON-Snippet, fügen Sie ihn aus dem Bereich **Systemstandardwerte** in den Bereich **Benutzereinstellungen** ein und aktualisieren Sie die Felder.

     1. Wenn Sie die Standardwerte aktualisiert haben, wählen Sie das Symbol **Benutzereinstellungen speichern** (![\[Icon of a cloud with an arrow pointing upward, representing cloud upload functionality.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/Notebook_save.png)) in der oberen rechten Ecke aus. Beim Schließen des Editors werden die Änderungen nicht gespeichert.

**Wenn Sie zuvor Änderungen vorgenommen haben und jetzt die benutzerdefinierten Standardwerte zurücksetzen möchten, gehen Sie wie folgt vor:**

1. Wählen Sie im oberen Menü von Studio Classic **Einstellungen** und dann **Editor für erweiterte Einstellungen** aus.

1. Wählen Sie **Amazon SageMaker Scheduler** aus der Liste unter **Einstellungen** aus. Er ist möglicherweise bereits standardmäßig geöffnet.

1. Sie können die Standardeinstellungen direkt über diese UI-Seite oder den JSON-Editor wiederherstellen.
   + In der Benutzeroberfläche können Sie in der oberen rechten Ecke die Option **Standardwerte wiederherstellen** auswählen. Ihre Standardwerte werden auf leere Zeichenketten zurückgesetzt. Sie sehen diese Option nur, wenn Sie zuvor Ihre Standardwerte geändert haben.
   + (Optional) Gehen Sie wie folgt vor, um Standardeinstellungen mithilfe des **JSON-Einstellungseditors** zu aktualisieren:

     1. Wählen Sie in der oberen rechten Ecke den **JSON-Einstellungseditor** aus.

     1. Wählen Sie in der linken Seitenleiste **„Einstellungen“** **Amazon SageMaker AI Scheduler** aus. Er ist möglicherweise bereits standardmäßig geöffnet.

        Sie können Ihre aktuellen Standardwerte im Bereich **Benutzereinstellungen** sehen.

        Sie können die Standardwerte des Systems im Bereich **Systemstandardwerte** sehen.

     1. Um Ihre aktuellen Standardeinstellungen wiederherzustellen, kopieren Sie den Inhalt aus dem Bereich **Systemstandardwerte** in den Bereich **Benutzereinstellungen**.

     1. Wählen Sie oben rechts in der Ecke das Symbol **Benutzereinstellungen speichern** (![\[Icon of a cloud with an arrow pointing upward, representing cloud upload functionality.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/Notebook_save.png)). Beim Schließen des Editors werden die Änderungen nicht gespeichert.

# Notebook-Auftragsworkflows
<a name="create-notebook-auto-run-dag"></a>

Da ein Notebook-Job Ihren benutzerdefinierten Code ausführt, können Sie eine Pipeline erstellen, die einen oder mehrere Notebook-Job-Schritte umfasst. ML-Workflows umfassen häufig mehrere Schritte, darunter einen Verarbeitungsschritt zur Vorverarbeitung der Daten, einen Trainingsschritt zum Aufbau Ihres Modells und einen Modellbewertungsschritt. Eine mögliche Verwendung von Notebook-Aufträgen ist die Vorverarbeitung. Sie könnten beispielsweise ein Notebook haben, das die Datenumwandlung oder -erfassung durchführt, einen EMR-Schritt, der die Datenbereinigung durchführt, und einen weiteren Notebook-Auftrag, der die Feature-Erstellung Ihrer Eingaben durchführt, bevor ein Trainingsschritt initiiert wird. Für einen Notebookjob sind möglicherweise Informationen aus vorherigen Schritten in der Pipeline oder aus benutzerdefinierten Anpassungen als Parameter im Eingabe-Notebook erforderlich. Beispiele, die zeigen, wie Sie Umgebungsvariablen und Parameter an Ihr Notebook übergeben und Informationen aus vorherigen Schritten abrufen können, finden Sie unter [Informationen zu und von Ihrem Notebook weiterleiten Schritt](create-notebook-auto-run-dag-seq.md).

In einem anderen Anwendungsfall kann es vorkommen, dass einer Ihrer Notebook-Aufträge ein anderes Notebook aufruft, um bestimmte Aufgaben während der Ausführung Ihres Notebooks auszuführen. In diesem Fall müssen Sie diese Quell-Notebooks als Abhängigkeiten für Ihren Notebook-Auftragsschritt angeben. Weitere Informationen zum Aufrufen eines anderen Notebooks finden Sie unter [Rufen Sie in Ihrem Notebookjob ein anderes Notebook auf](create-notebook-auto-run-dag-call.md).

Beispielnotizbücher, die zeigen, wie Notizbuchjobs mit dem SageMaker AI Python SDK geplant werden, finden Sie unter [Notizbuch-Beispielnotizbücher für Notizbücher](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-pipelines/notebook-job-step).

# Informationen zu und von Ihrem Notebook weiterleiten Schritt
<a name="create-notebook-auto-run-dag-seq"></a>

In den folgenden Abschnitten werden Möglichkeiten beschrieben, Informationen als Umgebungsvariablen und Parameter an Ihr Notebook zu übergeben.

## Umgebungsvariablen übergeben
<a name="create-notebook-auto-run-dag-seq-env-var"></a>

Übergeben Sie Umgebungsvariablen als Wörterbuch an Ihr `environment_variable` Argument`NotebookJobStep`, wie im folgenden Beispiel gezeigt:

```
environment_variables = {"RATE": 0.0001, "BATCH_SIZE": 1000}

notebook_job_step = NotebookJobStep(
    ...
    environment_variables=environment_variables,
    ...
)
```

Sie können die Umgebungsvariablen im Notebook verwenden`os.getenv()`, wie im folgenden Beispiel gezeigt:

```
# inside your notebook
import os
print(f"ParentNotebook: env_key={os.getenv('env_key')}")
```

## Parameter übergeben
<a name="create-notebook-auto-run-dag-seq-param"></a>

Wenn Sie Parameter an den ersten Notebook-Job-Schritt in Ihrer `NotebookJobStep` Instance übergeben, möchten Sie möglicherweise optional eine Zelle in Ihrem Jupyter-Notebook taggen, um anzugeben, wo neue Parameter oder Parameterüberschreibungen angewendet werden sollen. Anweisungen zum Markieren einer Zelle im Jupyter Notebook finden Sie unter [Parametrisieren Ihres Notebooks](notebook-auto-run-troubleshoot-override.md).

Sie übergeben Parameter über den `parameters` Parameter des Schritts Notebook Job, wie im folgenden Codeausschnitt dargestellt:

```
notebook_job_parameters = {
    "company": "Amazon",
}

notebook_job_step = NotebookJobStep(
    ...
    parameters=notebook_job_parameters,
    ...
)
```

In Ihrem Eingabe-Notebook werden Ihre Parameter nach der Zelle angewendet, die mit dem Tag markiert ist, `parameters` oder am Anfang des Notebookes, wenn Sie keine markierte Zelle haben.

```
# 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}')
```

## Rufen Sie Informationen aus einem vorherigen Schritt ab
<a name="create-notebook-auto-run-dag-seq-interstep"></a>

In der folgenden Diskussion wird erklärt, wie Sie Daten aus einem vorherigen Schritt extrahieren können, um sie an Ihren Notebook-Job-Schritt weiterzuleiten.

**`properties`Attribut verwenden**

Sie können die folgenden Eigenschaften mit dem `properties` Attribut des vorherigen Schritts verwenden:
+ `ComputingJobName` –Der Trainingsauftragsname
+ `ComputingJobStatus` – Der Status des Trainingsjobs
+ `NotebookJobInputLocation` –Der eingegebene Amazon-S3-Speicherort
+ `NotebookJobOutputLocationPrefix` – der Pfad zu Ihren Trainingsjob-Ausgaben, genauer gesagt: `{NotebookJobOutputLocationPrefix}/{training-job-name}/output/output.tar.gz`. mit Ausgaben
+ `InputNotebookName` – Der Name der Eingabe-Notebook-Datei
+ `OutputNotebookName` – Der Name der Ausgabe-Notebookdatei (der möglicherweise nicht im Ausgabeordner des Trainingsjobs vorhanden ist, falls der Job fehlschlägt)

Der folgende Codeausschnitt zeigt, wie Parameter aus dem Eigenschaftenattribut extrahiert werden.

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

**Verwenden Sie JsonGet**

Wenn Sie andere Parameter als die zuvor genannten übergeben möchten und sich die JSON-Ausgaben Ihres vorherigen Schritts in Amazon S3 befinden, verwenden Sie `JsonGet`. `JsonGet` ist ein allgemeiner Mechanismus, mit dem Daten direkt aus JSON-Dateien in Amazon S3 extrahiert werden können.

Führen Sie die folgenden Schritte aus`JsonGet`, um JSON-Dateien in Amazon S3 mit zu extrahieren:

1. Laden Sie Ihre JSON-Datei in Amazon S3 hoch. Wenn Ihre Daten bereits auf Amazon S3 hochgeladen wurden, überspringen Sie diesen Schritt. Das folgende Beispiel zeigt, wie Sie eine JSON-Datei in Amazon S3 hochladen.

   ```
   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. Geben Sie Ihre S3-URI und den JSON-Pfad zu dem Wert an, den Sie extrahieren möchten. Im folgenden Beispiel wird ein Objekt `JsonGet` zurückgegeben, das den Index 2 des mit key `key2` (`10`) verknüpften Werts darstellt.

   ```
   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" 
       }
   )
   ```

# Rufen Sie in Ihrem Notebookjob ein anderes Notebook auf
<a name="create-notebook-auto-run-dag-call"></a>

Sie können eine Pipeline einrichten, in der ein Notebookjob ein anderes Notebook aufruft. Im Folgenden wird ein Beispiel für eine Pipeline mit einem Notebook-Job-Schritt beschrieben, in dem das Notebook zwei andere Notebooks aufruft. Das Eingabe-Notebook enthält die folgenden Zeilen:

```
%run 'subfolder/notebook_to_call_in_subfolder.ipynb'
%run 'notebook_to_call.ipynb'
```

Übergeben Sie diese Notebooks mit `additional_dependencies` an Ihre `NotebookJobStep`-Instances, wie im folgenden Ausschnitt gezeigt. Beachten Sie, dass die Pfade für die Notebooks in vom Stammverzeichnis aus bereitgestellt `additional_dependencies` werden. Informationen darüber, wie SageMaker KI Ihre abhängigen Dateien und Ordner auf Amazon S3 hochlädt, sodass Sie die Pfade zu Ihren Abhängigkeiten korrekt angeben können, finden Sie `additional_dependencies` in [NotebookJobStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.notebook_job_step.NotebookJobStep)der Beschreibung für unter.

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

# Verfügbare Optionen
<a name="create-notebook-auto-execution-advanced"></a>

In der folgenden Tabelle sind alle verfügbaren Optionen aufgeführt, mit denen Sie Ihren Notebook-Job anpassen können, unabhängig davon, ob Sie Ihren Notebook-Job in Studio, einer lokalen Jupyter-Umgebung oder mit dem SageMaker Python-SDK ausführen. Die Tabelle enthält den Typ der benutzerdefinierten Option, eine Beschreibung, zusätzliche Richtlinien zur Verwendung der Option, einen Feldnamen für die Option in Studio (falls verfügbar) und den Parameternamen für den Notebook-Jobschritt im SageMaker Python-SDK (falls verfügbar).

Für einige Optionen können Sie auch benutzerdefinierte Standardwerte voreinstellen, sodass Sie sie nicht jedes Mal angeben müssen, wenn Sie einen Notebookjob einrichten. Für Studio sind dies die Optionen **Rolle**, **Eingabeordner**, **Ausgabeordner** und **KMS-Schlüssel-ID**, die in der folgenden Tabelle aufgeführt sind. Wenn Sie benutzerdefinierte Standardeinstellungen für diese Optionen voreinstellen, werden diese Felder im Formular „**Job erstellen**“ automatisch ausgefüllt, wenn Sie Ihren Notebookauftrag erstellen. Einzelheiten zum Erstellen benutzerdefinierter Standardeinstellungen in Studio und lokalen Jupyter-Umgebungen finden Sie unter [Richten Sie Standardoptionen für lokale Notebooks ein](create-notebook-auto-execution-advanced-default.md).

Das SageMaker SDK bietet Ihnen auch die Möglichkeit, intelligente Standardeinstellungen festzulegen, sodass Sie diese Parameter nicht angeben müssen, wenn Sie eine `NotebookJobStep` erstellen. Diese Parameter sind`role`,,`s3_root_uri`,`s3_kms_key`, `volume_kms_key` `subnets``security_group_ids`, und sind in der folgenden Tabelle angegeben. Weitere Informationen, wie Sie intelligente Standardeinstellungen festlegen können, finden Sie unter[Richten Sie Standardoptionen ein](create-notebook-auto-run-sdk.md#create-notebook-auto-run-intdefaults).


| Benutzerdefinierte Option | Description | Studiospezifische Richtlinie | Richtlinie für lokale Jupyter-Umgebungen | SageMaker Python-SDK-Richtlinie | 
| --- | --- | --- | --- | --- | 
| Job name (Auftragsname) | Ihr Jobname, so wie er im Notebook Jobs-Dashboard erscheinen sollte. | Feld Jobname. | Wie Studio. | Parameternotebook\$1job\$1name. Standardeinstellung: None. | 
| Image | Das Container-Image, das verwendet wurde, um das Notebook nicht interaktiv auf dem ausgewählten Compute-Typ auszuführen. | Feld Bild. In diesem Feld wird standardmäßig das aktuelle Bild Ihres Notebooks verwendet. Ändern Sie dieses Feld bei Bedarf vom Standardwert in einen benutzerdefinierten Wert. Wenn Studio diesen Wert nicht ableiten kann, zeigt das Formular einen Validierungsfehler an, in dem Sie ihn angeben müssen. Bei diesem Bild kann es sich um ein benutzerdefiniertes [bring-your-own Bild, ein Bild](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html) oder ein verfügbares SageMaker Amazon-Bild handeln. Eine Liste der verfügbaren SageMaker Bilder, die vom Notebook-Scheduler unterstützt werden, finden Sie unter[SageMaker Amazon-Bilder sind für die Verwendung mit Studio Classic-Notebooks verfügbar](notebooks-available-images.md). | Feld Bild. Für dieses Feld ist eine ECR-URI eines Docker-Images erforderlich, mit dem das bereitgestellte Notebook auf dem ausgewählten Rechnertyp ausgeführt werden kann. Standardmäßig verwendet die Scheduler-Erweiterung ein vorgefertigtes SageMaker KI-Docker-Image-Basis-Python 2.0. Dies ist das offizielle Python 3.8-Image von DockerHub boto3, AWS CLI, und dem Python 3-Kernel. Sie können auch eine beliebige ECR-URI angeben, die der Spezifikation für das benutzerdefinierte Notebook-Image entspricht. Details hierzu finden Sie unter [Benutzerdefinierte SageMaker Bildspezifikationen für Amazon SageMaker Studio Classic](studio-byoi-specs.md). Dieses Image sollte alle Kernel und Bibliotheken enthalten, die für die Ausführung des Notebooks benötigt werden. | Pflichtfeld Parameter. image\$1uri URI-Speicherort eines Docker-Images auf ECR. Sie können spezielle SageMaker Distributions-Images oder ein auf diesen Images basierendes benutzerdefiniertes Image oder Ihr eigenes Image mit vorinstallierten Notebook-Auftragsabhängigkeiten verwenden, das zusätzliche Anforderungen erfüllt. Details hierzu finden Sie unter [Bildeinschränkungen für SageMaker AI Python SDK-Notebook-Jobs](notebook-auto-run-constraints.md#notebook-auto-run-constraints-image-sdk). | 
| Instance-Typ | Der EC2-Instance-Typ, der zur Ausführung des Notebook-Aufträge verwendet werden soll. Der Notebook-Job verwendet einen SageMaker Trainingsjob als Rechenschicht, daher sollte es sich bei dem angegebenen Instance-Typ um einen vom SageMaker Training unterstützten Instance-Typ handeln. | Feld-Berechnungstyp. Standardeinstellung: ml.m5.large. | Wie Studio. | Parameterinstance\$1type. Standardeinstellung: ml.m5.large. | 
| Kernel | Der Jupyter-Kernel, der zur Ausführung des Notebook-Aufträge verwendet wurde. | Feld-Kernel. Dieses Feld ist standardmäßig auf den aktuellen Kernel Ihres Notebooks eingestellt. Ändern Sie dieses Feld bei Bedarf vom Standardwert in einen benutzerdefinierten Wert. Wenn Studio diesen Wert nicht ableiten kann, zeigt das Formular einen Validierungsfehler an, in dem Sie ihn angeben müssen. | Feld-Kernel. Dieser Kernel sollte im Image vorhanden sein und den Jupyter-Kernelspezifikationen entsprechen. Dieses Feld ist standardmäßig auf den Python3-Kernel eingestellt, der sich im Python 2.0-Basisimage befindet. SageMaker Ändern Sie dieses Feld bei Bedarf in einen benutzerdefinierten Wert. | Pflichtfeld Parameter. kernel\$1name Dieser Kernel sollte im Image vorhanden sein und den Jupyter-Kernelspezifikationen entsprechen. Die Kernel-Identifikatoren für Ihr Image finden Sie unter (LINK). | 
| SageMaker KI-Sitzung | Die zugrunde liegende SageMaker KI-Sitzung, an die SageMaker AI-Serviceanrufe delegiert werden. | – | – | Parametersagemaker\$1session. Falls nicht angegeben, wird eine mithilfe einer Standardkonfigurationskette erstellt. | 
| ARN der Rolle | Der Amazon Resource Name (ARN) der Rolle, der für den Notebook-Auftrag verwendet wird. | Feldrolle ARN. Dieses Feld ist standardmäßig auf die Studio-Ausführungsrolle eingestellt. Ändern Sie dieses Feld bei Bedarf in einen benutzerdefinierten Wert.  Wenn Studio diesen Wert nicht ableiten kann, ist das Feld **Role ARN** leer. Geben Sie in diesem Fall den ARN ein, den Sie verwenden möchten.  | Feldrolle ARN. In diesem Feld wird standardmäßig jede Rolle mit dem Präfix SagemakerJupyterScheduler angezeigt. Wenn Sie mehrere Rollen mit dem Präfix haben, wählt die Erweiterung eine aus. Ändern Sie dieses Feld bei Bedarf in einen benutzerdefinierten Wert. Für dieses Feld können Sie Ihren eigenen Benutzerstandard festlegen, der bei jeder Erstellung einer neuen Auftragsdefinition automatisch ausgefüllt wird. Details hierzu finden Sie unter [Richten Sie Standardoptionen für lokale Notebooks ein](create-notebook-auto-execution-advanced-default.md). | Kenngrößerole. Standardmäßig wird die SageMaker AI-Standard-IAM-Rolle verwendet, wenn das SDK in SageMaker Notebooks oder SageMaker Studio-Notebooks ausgeführt wird. Andernfalls wird eine ValueError geworfen. Ermöglicht intelligente Standardeinstellungen. | 
| Eingabe-Notebook | Der Name des Notebooks, das Sie ausführen möchten. | Pflichtfeld Feld-Eingabedatei. | Wie Studio. | Erforderlicher.Parameter input\$1notebook. | 
| Eingabeordner | Der Ordner, der Ihre Eingaben enthält. Die Auftragseingaben, einschließlich des Eingabe-Notebooks und aller optionalen Start- oder Initialisierungsskripten, werden in diesem Ordner gespeichert. | Ordner für die Feldeingabe. Wenn Sie keinen Ordner angeben, erstellt der Scheduler einen standardmäßigen Amazon-S3-Bucket für Ihre Eingaben. | Wie Studio. Für dieses Feld können Sie Ihren eigenen Benutzerstandard festlegen, der bei jeder Erstellung einer neuen Auftragsdefinition automatisch ausgefüllt wird. Details hierzu finden Sie unter [Richten Sie Standardoptionen für lokale Notebooks ein](create-notebook-auto-execution-advanced-default.md). | N/A. Der Eingabeordner befindet sich an dem durch den Parameter s3\$1root\$1uri angegebenen Speicherort. | 
| Ausgangsordner | Der Ordner, der Ihre Ausgaben enthält. Die Auftragsausgaben, einschließlich des Ausgabe-Notebooks und der Protokolle, werden in diesem Ordner gespeichert. | Feldausgabeordner. Wenn Sie keinen Ordner angeben, erstellt der Scheduler einen standardmäßigen Amazon-S3-Bucket für Ihre Ausgaben. | Wie Studio. Für dieses Feld können Sie Ihren eigenen Benutzerstandard festlegen, der bei jeder Erstellung einer neuen Auftragsdefinition automatisch ausgefüllt wird. Details hierzu finden Sie unter [Richten Sie Standardoptionen für lokale Notebooks ein](create-notebook-auto-execution-advanced-default.md). | N/A. Der Ausgabeordner befindet sich an dem durch den Parameter s3\$1root\$1uri angegebenen Speicherort. | 
| Parameters | Ein Wörterbuch mit Variablen und Werten, das Sie an Ihren Notebook-Job übergeben können. | Feldparameter. Sie müssen [Ihr Notebook parametrisieren](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-auto-run-troubleshoot-override.html), um Parameter zu akzeptieren. | Wie Studio. | Parameter. parameters Sie müssen [Ihr Notebook parametrisieren](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-auto-run-troubleshoot-override.html), um Parameter zu akzeptieren. | 
| Zusätzliche Abhängigkeiten (Datei oder Ordner) | Die Liste der Datei- oder Ordnerabhängigkeiten, die der Notebook-Job in den Staging-Ordner S3 hochlädt. | Nicht unterstützt | Nicht unterstützt | Kenngrößeadditional\$1dependencies. Der Notebook-Job lädt diese Abhängigkeiten in einen S3-Staging-Ordner hoch, sodass sie während der Ausführung verwendet werden können. | 
| S3-Stamm-URI | Der Ordner, der Ihre Eingaben enthält. Die Auftragseingaben, einschließlich des Eingabe-Notebooks und aller optionalen Start- oder Initialisierungsskripten, werden in diesem Ordner gespeichert. Dieser S3-Bucket muss sich in dem befinden AWS-Konto , mit dem Sie Ihren Notebookjob ausführen. | N/A. Verwenden Sie den Eingabeordner und den Ausgabeordner. | Wie Studio. | Kenngrößes3\$1root\$1uri. Standardmäßig ein Standard-S3-Bucket. Ermöglicht intelligente Standardeinstellungen. | 
| Umgebungsvariablen | Alle vorhandenen Umgebungsvariablen, die Sie überschreiben möchten, oder neue Umgebungsvariablen, die Sie in Ihrem Notebook einführen und verwenden möchten. | Feld Umgebungsvariablen. | Wie Studio. | Kenngrößeenvironment\$1variables. Standardeinstellung: None. | 
| Tags (Markierungen) | Eine Liste von Tags, die an den Auftrag angefügt sind. | – | – | Kenngrößetags. Standardeinstellung: None. Ihre Tags steuern, wie die Studio-Benutzeroberfläche den von der Pipeline erstellten Job erfasst und anzeigt. Details hierzu finden Sie unter [Sehen Sie sich Ihre Notebook-Jobs im Studio-UI-Dashboard an](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash). | 
| Startskript | Ein im Startmenü des Notebooks vorinstalliertes Skript, das Sie vor der Ausführung des Notebooks ausführen können. | Feld-Startskript. Wählen Sie ein LCC-Skript (Lifecycle Configuration) aus, das beim Start auf dem Image ausgeführt wird. Ein Startskript wird in einer Shell außerhalb der Studio-Umgebung ausgeführt. Daher kann dieses Skript nicht vom lokalen Studio-Speicher, den Umgebungsvariablen oder den App-Metadaten (in `/opt/ml/metadata`) abhängen. Wenn Sie ein Startskript und ein Initialisierungsskript verwenden, wird das Startskript außerdem zuerst ausgeführt.   | Nicht unterstützt | Nicht unterstützt | 
| Das Initialisierungsskript | Ein Pfad zu einem lokalen Skript, das Sie ausführen können, wenn Ihr Notebook gestartet wird. | Feld Initialisierungsskript. Geben Sie den EFS-Dateipfad ein, in dem sich ein lokales Skript oder ein Lifecycle Configuration (LCC) -Skript befindet. Wenn Sie ein Startskript und ein Initialisierungsskript verwenden, wird das Startskript zuerst ausgeführt. Ein Initialisierungsskript stammt aus derselben Shell wie der Notebook-Auftrag. Dies ist bei einem zuvor beschriebenen Startskript nicht der Fall. Wenn Sie ein Startskript und ein Initialisierungsskript verwenden, wird das Startskript außerdem zuerst ausgeführt.    | Feld Initialisierungsskript. Geben Sie den lokalen Dateipfad ein, in dem sich ein lokales Skript oder ein Lifecycle Configuration (LCC) -Skript befindet.  | Kenngrößeinitialization\$1script. Standardeinstellung: None. | 
| Max. Anzahl der Wiederholungsversuche | Gibt an, wie oft Studio versucht, eine fehlgeschlagene Auftragsausführung erneut auszuführen. | Field Max versucht es erneut. Standardeinstellung: 1. | Wie Studio. | Kenngrößemax\$1retry\$1attempts. Standardeinstellung: 1. | 
| Max. Laufzeit (in Sekunden) | Die maximale Zeitspanne in Sekunden, die der Notebook-Auftrag ausgeführt werden kann, bevor er gestoppt wird. Wenn Sie sowohl Max. Laufzeit als auch Max. Wiederholungsversuche konfigurieren, gilt die Laufzeit für jeden Wiederholungsversuch. Wenn ein Auftrag in dieser Zeit nicht abgeschlossen wird, wird sein Status auf Failed gesetzt. | Feld Max. Laufzeit (in Sekunden). Standardeinstellung: 172800 seconds (2 days). | Wie Studio. | Kenngrößemax\$1runtime\$1in\$1seconds. Standardeinstellung: 172800 seconds (2 days). | 
| Wiederholungsrichtlinien | Eine Liste von Richtlinien für Wiederholungsversuche, die die im Falle eines Fehlers zu ergreifenden Maßnahmen regeln. | Nicht unterstützt | Nicht unterstützt | Kenngrößeretry\$1policies. Standardeinstellung: None. | 
| Step oder StepCollection-Abhängigkeiten hinzufügen | Eine Liste von StepCollection Namen Step oder Instances, von denen der Job abhängt. | Nicht unterstützt | Nicht unterstützt | Kenngrößedepends\$1on. Standardeinstellung: None. Verwenden Sie dies, um explizite Abhängigkeiten zwischen Schritten in Ihrem Pipeline-Diagramm zu definieren. | 
| Volume-Größe | Die Größe des Speichervolumens in GB zum Speichern von Eingabe- und Ausgabedaten während des Trainings. | Nicht unterstützt | Nicht unterstützt | Kenngrößevolume\$1size. Der Standardwert ist 30 GB. | 
| Datenverkehr zwischen Containern verschlüsseln | Ein Flag, das angibt, ob der Verkehr zwischen Trainingscontainern für den Trainingsjob verschlüsselt ist. | N/A. Standardmäßig aktiviert. | N/A. Standardmäßig aktiviert. | Kenngrößeencrypt\$1inter\$1container\$1traffic. Standardeinstellung: True. | 
| Konfigurieren Sie die Auftragsverschlüsselung | Ein Indikator dafür, dass Sie die Auftragsausgaben Ihres Notebooks, das Volumen Ihrer Auftrags-Instance oder beides verschlüsseln möchten. | Feld Auftragsverschlüsselung konfigurieren. Markieren Sie dieses Kästchen, um Verschlüsselung auszuwählen. Wenn diese Option nicht aktiviert ist, werden die Auftrags-Ausgaben mit dem Standard-KMS-Schlüssel des Kontos verschlüsselt, und das Auftrags-Instance-Volume ist nicht verschlüsselt. | Wie Studio. | Nicht unterstützt | 
| Ausgabe Verschlüsselung KMS-Schlüssel | Ein KMS-Schlüssel, den Sie verwenden können, wenn Sie den Verschlüsselungsschlüssel anpassen möchten, der für Ihre Notebook-Auftragsausgaben verwendet wird. Dieses Feld ist nur relevant, wenn Sie die Option Auftragsverschlüsselung konfigurieren aktiviert haben. | Feld Ausgabeverschlüsselung KMS-Schlüssel. Wenn Sie dieses Feld nicht angeben, werden Ihre Notebook-Auftragsausgaben mit SSE-KMS unter Verwendung des Amazon S3-KMS-Standardschlüssels verschlüsselt. Auch wenn Sie den Amazon-S3-Bucket selbst erstellen und Verschlüsselung verwenden, bleibt Ihre Verschlüsselungsmethode erhalten. | Wie Studio. Für dieses Feld können Sie Ihren eigenen Benutzerstandard festlegen, der bei jeder Erstellung einer neuen Auftragsdefinition automatisch ausgefüllt wird. Details hierzu finden Sie unter [Richten Sie Standardoptionen für lokale Notebooks ein](create-notebook-auto-execution-advanced-default.md). | Kenngrößes3\$1kms\$1key. Standardeinstellung: None. Ermöglicht intelligente Standardeinstellungen. | 
| Verschlüsselung des Auftrags-Instance-Volumens KMS-Schlüssel | Ein KMS-Schlüssel, den Sie verwenden können, wenn Sie Ihr Auftrag-Instance-Volume verschlüsseln möchten. Dieses Feld ist nur relevant, wenn Sie die Option Auftragsverschlüsselung konfigurieren aktiviert haben. | Field Verschlüsselung des Auftrags-Instance-Volumens KMS-Schlüssel. | Field Verschlüsselung des Auftrags-Instance-Volumens KMS-Schlüssel. Für dieses Feld können Sie Ihren eigenen Benutzerstandard festlegen, der bei jeder Erstellung einer neuen Auftragsdefinition automatisch ausgefüllt wird. Details hierzu finden Sie unter [Richten Sie Standardoptionen für lokale Notebooks ein](create-notebook-auto-execution-advanced-default.md). | Kenngrößevolume\$1kms\$1key. Standardeinstellung: None. Ermöglicht intelligente Standardeinstellungen. | 
| Verwenden Sie eine Virtual Private Cloud, um diesen Auftrag auszuführen (für VPC-Benutzer) | Ein Indikator dafür, dass Sie diesen Auftrag in einer Virtual Private Cloud (VPC) ausführen möchten. Für eine bessere Sicherheit wird empfohlen, eine private VPC zu verwenden. | Feld Eine Virtual Private Cloud verwenden, um diesen Auftrag auszuführen. Markieren Sie dieses Kästchen, wenn Sie eine VPC verwenden möchten. Erstellen Sie mindestens die folgenden VPC-Endpunkte, damit Ihr Notebook-Job eine private Verbindung zu diesen AWS Ressourcen herstellen kann: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/create-notebook-auto-execution-advanced.html)Wenn Sie sich für die Verwendung einer VPC entscheiden, müssen Sie in den folgenden Optionen mindestens ein privates Subnetz und mindestens eine Sicherheitsgruppe angeben. Wenn Sie keine privaten Subnetze verwenden, müssen Sie andere Konfigurationsoptionen in Betracht ziehen. Einzelheiten finden Sie unter Öffentliche VPC-Subnetze, die nicht unterstützt werden in [Einschränkungen und Überlegungen](notebook-auto-run-constraints.md). | Wie Studio. | – | 
| Subnetz(e) (für VPC-Benutzer) | Ihre Subnetze. Dieses Feld muss mindestens eines und höchstens fünf enthalten, und alle von Ihnen angegebenen Subnetze sollten privat sein. Einzelheiten finden Sie unter Öffentliche VPC-Subnetze, die nicht unterstützt werden in [Einschränkungen und Überlegungen](notebook-auto-run-constraints.md). | Feld Subnetz (e). Dieses Feld enthält standardmäßig die Subnetze, die der Studio-Domain zugeordnet sind. Sie können dieses Feld jedoch bei Bedarf ändern. | Feld Subnetz (e). Der Scheduler kann Ihre Subnetze nicht erkennen, daher müssen Sie alle Subnetze eingeben, die Sie für Ihre VPC konfiguriert haben. | Parameter. subnets Standardeinstellung: None. Ermöglicht intelligente Standardeinstellungen. | 
| Sicherheitsgruppe(n) (für VPC-Benutzer) | Ihre Sicherheitsgruppen. Dieses Feld muss mindestens eine und maximal 15 enthalten. Einzelheiten finden Sie unter Öffentliche VPC-Subnetze, die nicht unterstützt werden in. [Einschränkungen und Überlegungen](notebook-auto-run-constraints.md) | Feld Sicherheitsgruppen. Dieses Feld enthält standardmäßig die Sicherheitsgruppen, die der Domain-VPC zugeordnet sind. Sie können dieses Feld jedoch bei Bedarf ändern. | Feld Sicherheitsgruppen. Der Scheduler kann Ihre Sicherheitsgruppen nicht erkennen, daher müssen Sie alle Sicherheitsgruppen eingeben, die Sie für Ihre VPC konfiguriert haben. | Kenngrößesecurity\$1group\$1ids. Standardeinstellung: None. Ermöglicht intelligente Standardeinstellungen. | 
| Name | Der Name des Notebook-Auftragsschritts. | – | – | Kenngrößename. Falls nicht angegeben, wird er vom Namen der Notebookdatei abgeleitet. | 
| Anzeigename | Ihr Jobname, so wie er in Ihrer Liste der Pipeline-Ausführungen erscheinen sollte. | – | – | Kenngrößedisplay\$1name. Standardeinstellung: None. | 
| Description | Eine Beschreibung Ihres Auftrags. | – | – | Kenngrößedescription. | 

# Parametrisieren Ihres Notebooks
<a name="notebook-auto-run-troubleshoot-override"></a>

Um neue Parameter oder Parameterüberschreibungen an Ihren geplanten Notebook-Auftrag zu übergeben, möchten Sie möglicherweise optional Ihr Jupyter Notebook ändern, wenn Ihre neuen Parameterwerte nach einer Zelle angewendet werden sollen. Wenn Sie einen Parameter übergeben, verwendet der Notebook-Auftrags-Executor die von Papermill erzwungene Methode. Der Notebook-Auftrags-Executor sucht nach einer Jupyter-Zelle, die mit dem Tag `parameters` markiert ist, und wendet die neuen Parameter oder Parameterüberschreibungen unmittelbar nach dieser Zelle an. Wenn Sie keine Zellen haben, die mit `parameters` markiert sind, werden die Parameter am Anfang des Notebooks angewendet. Wenn Sie mehr als eine Zelle mit `parameters` markiert haben, werden die Parameter nach der ersten Zelle angewendet, die mit `parameters` markiert ist.

Führen Sie die folgenden Schritte aus, um eine Zelle in Ihrem Notebook mit dem `parameters` Tag zu kennzeichnen:

1. Wählen Sie die Zelle aus, die Sie parametrisieren möchten.

1. Wählen Sie in der rechten Seitenleiste das Symbol **Eigenschafteninspektor** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/gears.png)) aus.

1. Geben Sie **parameters** in das Feld **Tag hinzufügen** ein.

1. Wählen Sie das **\$1**-Zeichen.

1. Das `parameters` Tag wird unter **Zellen-Tags** mit einem Häkchen angezeigt, was bedeutet, dass das Tag auf die Zelle angewendet wurde.

# Stellen Sie von Ihrem Studio-Notebook aus eine Connect zu einem Amazon-EMR-Cluster her
<a name="scheduled-notebook-connect-emr"></a>

Wenn Sie von Ihrem Jupyter Notebook in Studio aus eine Verbindung zu einem Amazon EMR-Cluster herstellen, müssen Sie möglicherweise zusätzliche Einstellungen vornehmen. In der folgenden Diskussion werden insbesondere zwei Probleme behandelt:
+ **Übergeben von Parametern an Ihren Amazon EMR-Verbindungsbefehl**. In SparkMagic Kerneln funktionieren Parameter, die Sie an Ihren Amazon EMR-Verbindungsbefehl übergeben, möglicherweise nicht wie erwartet, da Papermill Unterschiede in der Art und Weise hat, wie Papermill Parameter weitergibt und wie SparkMagic Parameter empfängt. Die Behelfslösung zur Behebung dieser Einschränkung besteht darin, Parameter als Umgebungsvariablen zu übergeben. Weitere Informationen zum Problem und zur Problemumgehung finden Sie unter [Übergeben Sie Parameter an Ihren EMR-Verbindungsbefehl](#scheduled-notebook-connect-emr-pass-param).
+ **Weitergabe von Benutzeranmeldedaten an Kerberos-, LDAP- oder HTTP Basic Auth-authentifizierte Amazon EMR-Cluster**. Im interaktiven Modus fragt Studio in einem Popup-Formular nach Anmeldeinformationen, in das Sie Ihre Anmeldeinformationen eingeben können. In Ihrem nicht-interaktiven Notebook müssen Sie sie durch das AWS Secrets Manager durchreichen. Weitere Informationen zur Verwendung der Jobs AWS Secrets Manager in Ihrem geplanten Notizbuch finden Sie unter. [Übergeben Sie Benutzeranmeldeinformationen an Ihren Kerberos-, LDAP- oder HTTP Basic Auth-authentifizierten Amazon EMR-Cluster](#scheduled-notebook-connect-emr-credentials)

## Übergeben Sie Parameter an Ihren EMR-Verbindungsbefehl
<a name="scheduled-notebook-connect-emr-pass-param"></a>

Wenn Sie Images mit dem SparkMagic PySpark und Spark-Kernel verwenden und Ihren EMR-Verbindungsbefehl parametrisieren möchten, geben Sie Ihre Parameter im Feld **Umgebungsvariablen** statt im Feld Parameter im Formular Job erstellen (im Dropdownmenü **Zusätzliche Optionen**) an. Stellen Sie sicher, dass Ihr EMR-Verbindungsbefehl im Jupyter Notebook diese Parameter als Umgebungsvariablen übergibt. Nehmen wir zum Beispiel an, Sie übergeben `cluster-id` als Umgebungsvariable, wenn Sie Ihren Auftrag erstellen. Ihr EMR-Verbindungsbefehl sollte wie folgt aussehen:

```
%%local
import os
```

```
%sm_analytics emr connect —cluster-id {os.getenv('cluster_id')} --auth-type None
```

Sie benötigen diese Problemumgehung, um die Anforderungen von und Papermill zu erfüllen. SparkMagic Für den Hintergrundkontext erwartet der SparkMagic Kernel, dass der `%%local` magische Befehl allen lokalen Variablen, die Sie definieren, beiliegt. Papermill gibt den `%%local` magischen Befehl jedoch nicht zusammen mit Ihren Überschreibungen weiter. Um diese Papermill-Einschränkung zu umgehen, müssen Sie Ihre Parameter als Umgebungsvariablen im Feld **Umgebungsvariablen** angeben.

## Übergeben Sie Benutzeranmeldeinformationen an Ihren Kerberos-, LDAP- oder HTTP Basic Auth-authentifizierten Amazon EMR-Cluster
<a name="scheduled-notebook-connect-emr-credentials"></a>

Um eine sichere Verbindung zu einem Amazon EMR-Cluster herzustellen, der Kerberos-, LDAP- oder HTTP Basic Auth-Authentifizierung verwendet, verwenden Sie den Befehl AWS Secrets Manager to pass user credentials to your connection. Informationen zum Erstellen eines Geheimnisses im Secrets Manager finden Sie unter [Erstellen eines AWS Secrets Manager -Geheimnisses](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). Das Secret muss Ihren Benutzernamen und Ihr Passwort enthalten. Sie übergeben das Geheimnis mit dem `--secrets` Argument, wie im folgenden Beispiel dargestellt:

```
%sm_analytics emr connect --cluster-id j_abcde12345 
    --auth Kerberos 
    --secret aws_secret_id_123
```

Ihr Administrator kann eine flexible Zugriffsrichtlinie mithilfe einer attribute-based-access-control (ABAC-) Methode einrichten, die den Zugriff auf der Grundlage spezieller Tags zuweist. Sie können flexiblen Zugriff einrichten, um ein einzelnes Geheimnis für alle Benutzer im Konto oder ein Geheimnis für jeden Benutzer zu erstellen. Die folgenden Codebeispiele veranschaulichen diese Szenarien:

**Erstellen Sie ein einzelnes Geheimnis für alle Benutzer im Konto**

------
#### [ 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"
            ]
        }
    ]
}
```

------

**Erstellen Sie für jeden Benutzer ein anderes Geheimnis**

Mit dem `PrincipleTag` Tag können Sie für jeden Benutzer ein anderes Geheimnis erstellen, wie im folgenden Beispiel gezeigt:

------
#### [ 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"
            ]
        }
    ]
}
```

------

# Einzelheiten zu Notebook-Jobs in Amazon SageMaker Studio
<a name="track-jobs-jobdefs"></a>

SageMaker Notebook-Jobs-Dashboards helfen Ihnen dabei, die von Ihnen geplanten Jobdefinitionen zu organisieren und den Überblick über die tatsächlichen Jobs zu behalten, die anhand Ihrer Jobdefinitionen ausgeführt werden. Bei der Planung von Notebook-Aufträge sind zwei wichtige Konzepte zu beachten: *Auftragsdefinitionen* und *Auftragsausführungen*. Auftragsdefinitionen sind Zeitpläne, die Sie für die Ausführung bestimmter Notebooks festlegen. Sie können beispielsweise eine Auftragsdefinition erstellen, die jeden Mittwoch notebook XYZ.ipynb ausführt. Mit dieser Auftragsdefinition werden die eigentlichen Auftragsausführungen gestartet, die am kommenden Mittwoch, nächsten Mittwoch, den Mittwoch danach usw. stattfinden. 

**Anmerkung**  
Der Notizbuch-Jobschritt des SageMaker Python SDK erstellt keine Jobdefinitionen. Sie können Ihre Jobs jedoch im Notebook-Jobs-Dashboard einsehen. Sowohl Jobs als auch Jobdefinitionen sind verfügbar, wenn Sie Ihren Job in einer JupyterLab Umgebung planen.

Die Benutzeroberfläche bietet zwei Hauptregister, mit denen Sie Ihre vorhandenen Auftragsdefinitionen und Auftragsausführungen verfolgen können:
+ Registerkarte **Notebook-Aufträge**: Auf dieser Registerkarte wird eine Liste all Ihrer Auftragsausführungen anhand Ihrer On-Demand-Aufträge und Auftragsdefinitionen angezeigt. Von dieser Registerkarte aus können Sie direkt auf die Details einer einzelnen Auftragsausführung zugreifen. Sie können sich beispielsweise einen einzelnen Auftragsauf ansehen, der vor zwei Mittwochen stattgefunden hat.
+ Registerkarte **Notebook-Auftragsdefinitionen**: Auf dieser Registerkarte wird eine Liste all Ihrer Auftragsdefinitionen angezeigt. Von dieser Registerkarte aus können Sie direkt auf die Details einer einzelnen Auftragsdefinition zugreifen. Sie können beispielsweise den Zeitplan anzeigen, den Sie für die Ausführung von XYZ.ipynb an jedem Mittwoch erstellt haben.

Einzelheiten zur Registerkarte **Notebook-Aufträge** finden Sie unter [Notebook-Aufträge anzeigen](view-notebook-jobs.md).

Einzelheiten zur Registerkarte **Notebook-Auftragsdefinitionen** finden Sie unter [Anzeigen von Notebook-Auftragsdefinitionen](view-def-detail-notebook-auto-run.md).

# Notebook-Aufträge anzeigen
<a name="view-notebook-jobs"></a>

**Anmerkung**  
Sie können Ihre Notebook-Jobs automatisch anzeigen, wenn Sie Ihren Notebook-Job über die Studio-Benutzeroberfläche geplant haben. Wenn Sie das SageMaker Python-SDK verwendet haben, um Ihren Notebook-Job zu planen, müssen Sie bei der Erstellung des Notebook-Job-Schritts zusätzliche Tags angeben. Details hierzu finden Sie unter [Sehen Sie sich Ihre Notebook-Jobs im Studio-UI-Dashboard an](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash).

Das folgende Thema enthält Informationen über die Registerkarte **Notebookaufträge** und darüber, wie Sie die Details eines einzelnen Notebookauftrags anzeigen können. Auf der Registerkarte **Notebook-Aufträge** (auf die Sie zugreifen, indem Sie in der Studio-Symbolleiste auf das Symbol **Notebook-Auftrag erstellen** (![\[Blue icon of a calendar with a checkmark, representing a scheduled task or event.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/notebook-schedule.png)) klicken) wird ein Verlauf Ihrer On-Demand-Aufträge und aller Aufträge angezeigt, die anhand der von Ihnen erstellten Auftragsdefinitionen ausgeführt wurden. Diese Registerkarte wird geöffnet, nachdem Sie einen On-Demand-Auftrag erstellt haben, oder Sie können diese Registerkarte einfach selbst aufrufen, um eine Historie vergangener und aktueller Aufträge zu sehen. Wenn Sie den **Auftragsnamen** für einen Auftrag auswählen, können Sie die Details für einen einzelnen Auftrag auf der Seite mit den **Auftragsdetails** anzeigen. Weitere Informationen zur Seite mit den **Auftragsdetails** finden Sie im folgenden Abschnitt [Einen einzelnen Auftrag anzeigen](#view-jobs-detail-notebook-auto-run).

Die Registerkarte **Notebook-Aufträge** enthält die folgenden Informationen für jeden Auftrag:
+ **Ausgabedateien**: Zeigt die Verfügbarkeit von Ausgabedateien an. Diese Spalte kann eine der folgenden Werte enthalten:
  + Ein Download-Symbol (![\[Cloud icon with downward arrow, representing download or cloud storage functionality.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/File_download.png)): Das Ausgabe-Notebook und das Protokoll stehen zum Herunterladen zur Verfügung. Wählen Sie diese Schaltfläche, um sie herunterzuladen. Beachten Sie, dass bei einem fehlgeschlagenen Auftrag immer noch Ausgabedateien generiert werden können, wenn der Fehler erst nach der Erstellung der Dateien aufgetreten ist. In diesem Fall ist es hilfreich, sich das Ausgabe-Notebook anzusehen, um die Fehlerquelle zu identifizieren.
  + Links zum **Notebook** und zum **Ausgabeprotokoll**: Das Notebook und das Ausgabeprotokoll werden heruntergeladen. Wählen Sie die Links aus, um deren Inhalt anzuzeigen.
  + (leer): Der Auftrag wurde vom Benutzer gestoppt, oder es ist ein Fehler bei der Ausführung des Auftrags aufgetreten, bevor Ausgabedateien generiert werden konnten. Netzwerkfehler könnten beispielsweise verhindern, dass der Auftrag gestartet wird.

  Das Ausgabe-Notebook ist das Ergebnis der Ausführung aller Zellen im Notebook und enthält auch alle neuen oder übergeordneten Parameter oder Umgebungsvariablen, die Sie hinzugefügt haben. Das Ausgabeprotokoll zeichnet die Details des ausgeführten Aufträge auf, um Ihnen bei der Behebung fehlgeschlagener Aufträge zu helfen.
+ **Erstellt am**: Der Zeitpunkt, zu dem der On-Demand-Auftrag oder der geplante Auftrag erstellt wurde.
+ **Status**: Der aktuelle Status des Auftrags, der einer der folgenden Werte ist:
  + **In Bearbeitung**: Der Auftrag wird ausgeführt
  + **Fehlgeschlagen**: Der Auftrag ist aufgrund von Konfigurations- oder Notebook-Logikfehlern fehlgeschlagen
  + **Gestoppt**: Der Auftrag wurde vom Benutzer angehalten
  + **Abgeschlossen**: Der Auftrag wurde abgeschlossen
+ **Aktionen**: Diese Spalte enthält Tastenkombinationen, mit denen Sie Aufträge direkt in der Benutzeroberfläche beenden oder entfernen können.

## Einen einzelnen Auftrag anzeigen
<a name="view-jobs-detail-notebook-auto-run"></a>

Auf der Registerkarte **Notebook-Aufträge** können Sie einen Auftragsnamen auswählen, um die Seite mit den **Auftragsdetails** für einen bestimmten Auftrag anzuzeigen. Die Seite **Auftragsdetails** enthält alle Details, die Sie im Formular **Auftrag erstellen** angegeben haben. Verwenden Sie diese Seite, um die Einstellungen zu bestätigen, die Sie bei der Erstellung der Auftragsdefinition angegeben haben. 

Darüber hinaus können Sie auf der Seite selbst auf Verknüpfungen zugreifen, mit denen Sie die folgenden Aktionen ausführen können:
+ **Auftrag löschen**: Entfernen Sie den Auftrag aus dem Tab **Notebook-Aufträge**.
+ **Auftrag stoppen**: Stoppen Sie Ihren laufenden Auftrag.

# Anzeigen von Notebook-Auftragsdefinitionen
<a name="view-def-detail-notebook-auto-run"></a>

**Anmerkung**  
Wenn Sie Ihren Notebook-Job mit dem SageMaker Python-SDK geplant haben, überspringen Sie diesen Abschnitt. Nur Notebook-Jobs, die in Studio oder lokalen JupyterLab Umgebungen erstellt wurden, erstellen Jobdefinitionen. Wenn Sie Ihren Notebook-Job mit dem SageMaker Python-SDK erstellt haben, werden Ihnen daher keine Jobdefinitionen im Notebook Jobs-Dashboard angezeigt. Sie können Ihre Notebook-Aufträge jedoch wie unter [Notebook-Aufträge anzeigen](view-notebook-jobs.md) beschrieben anzeigen. 

Wenn Sie eine Auftragsdefinition erstellen, erstellen Sie einen Zeitplan für einen Auftrag. Auf der Registerkarte **Notebook-Auftragsdefinitionen** sind diese Zeitpläne sowie Informationen zu bestimmten Notebook-Auftragsdefinitionen aufgeführt. Sie können beispielsweise eine Auftragsdefinition erstellen, die jede Minute ein bestimmtes Notebook ausführt. Sobald diese Auftragsdefinition aktiv ist, sehen Sie jede Minute einen neuen Auftrag auf der Registerkarte **Notebook-Aufträge**. Auf der folgenden Seite finden Sie Informationen zur Registerkarte **Notebook-Auftragsdefinitionen** sowie zum Anzeigen einer Notebook-Auftragsdefinition.

Auf der Registerkarte **Notebook-Auftragsdefinitionen** wird ein Dashboard mit all Ihren Auftragsdefinitionen angezeigt. Es enthält das Eingabe-Notebook, die Erstellungszeit, den Zeitplan und den Status für jede Auftragsdefinition. Der Wert in der Spalte **Status** enthält ist eine der folgenden Werte:
+ **Unterbrochen**: Sie haben die Auftragsdefinition angehalten. Studio initiiert keine Aufträge, bis Sie die Definition wieder aufnehmen.
+ **Aktiv**: Der Zeitplan ist aktiviert und Studio kann das Notebook gemäß dem von Ihnen angegebenen Zeitplan ausführen.

Darüber hinaus enthält die Spalte **Aktionen** Verknüpfungen, mit denen Sie die folgenden Aufgaben direkt in der Benutzeroberfläche ausführen können:
+ Pause: Hält die Auftragsdefinition an. Studio erstellt keine Aufträge, bis Sie mit der Definition fortfahren.
+ Löschen: Entfernt die Auftragsdefinition von der Registerkarte **Notebook-Auftragsdefinitionen**.
+ Wiederaufnehmen: Setzt eine angehaltene Auftragsdefinition fort, sodass Aufträge damit gestartet werden können.

Wenn Sie eine Auftragsdefinition erstellt haben, diese aber keine Aufträge initiiert, finden Sie weitere Informationen in [Auftragsdefinition erstellt keine Aufträge](notebook-auto-run-troubleshoot.md#notebook-auto-run-troubleshoot-no-jobs) in der [Anleitung zur Fehlerbehebung](notebook-auto-run-troubleshoot.md).

## Eine einzelne Auftragsdefinition anzeigen
<a name="view-job-definition-detail-page"></a>

Wenn Sie auf der Registerkarte **Notebook-Auftragsdefinitionen** einen Namen für eine Auftragsdefinition auswählen, wird die Seite mit der **Auftragsdefinition** angezeigt, auf der Sie spezifische Details für eine Auftragsdefinition anzeigen können. Verwenden Sie diese Seite, um die Einstellungen zu bestätigen, die Sie bei der Erstellung der Auftragsdefinition angegeben haben. Wenn Sie keine Aufträge sehen, die anhand Ihrer Auftragsdefinition erstellt wurden, finden Sie weitere Informationen unter [Auftragsdefinition erstellt keine Aufträge](notebook-auto-run-troubleshoot.md#notebook-auto-run-troubleshoot-no-jobs) in der [Anleitung zur Fehlerbehebung](notebook-auto-run-troubleshoot.md).

Diese Seite enthält auch einen Abschnitt, in dem die Aufträge aufgeführt sind, die anhand dieser Auftragsdefinition ausgeführt werden. Das Anzeigen Ihrer Aufträge auf der Seite **Auftragsdefinition** ist möglicherweise eine produktivere Methode, um Ihre Aufträge zu organisieren, als Aufträge auf der Registerkarte **Notebook-Aufträge** anzuzeigen, in der alle Aufträge aus all Ihren Auftragsdefinitionen zusammengefasst sind.

Darüber hinaus bietet diese Seite Tastenkombinationen für die folgenden Aktionen:
+ **Pause/Wiederaufnahme**: Unterbrechen Sie Ihre Auftragsdefinition oder setzen Sie eine angehaltene Definition fort. Beachten Sie, dass Studio einen Auftrag, der gerade für diese Definition ausgeführt wird, nicht beendet.
+ **Ausführen**: Führt einen einzelnen On-Demand-Auftrag aus dieser Auftragsdefinition aus. Mit dieser Option können Sie auch verschiedene Eingabeparameter für Ihr Notebook angeben, bevor Sie den Auftrag starten.
+ **Auftragsdefinition bearbeiten**: Ändern Sie den Zeitplan Ihrer Auftragsdefinition. Sie können ein anderes Zeitintervall oder einen benutzerdefinierten Zeitplan mithilfe der Cron-Syntax wählen.
+ **Auftragsdefinition löschen**: Entfernen Sie die Auftragsdefinition aus der Registerkarte **Notebook-Auftragsdefinitionen**. Beachten Sie, dass Studio einen Auftrag, der gerade für diese Definition ausgeführt wird, nicht beendet.

# Anleitung zur Fehlerbehebung
<a name="notebook-auto-run-troubleshoot"></a>

In diesem Leitfaden zur Fehlerbehebung finden Sie Informationen zum Debuggen von Fehlern, die bei der Ausführung Ihres geplanten Notebook-Auftrags auftreten können.

## Auftragsdefinition erstellt keine Aufträge
<a name="notebook-auto-run-troubleshoot-no-jobs"></a>

Wenn Ihre Jobdefinition keine Jobs initiiert, wird der Notizbuch- oder Schulungsjob möglicherweise nicht im Bereich **Jobs** in der linken Navigationsleiste in Amazon SageMaker Studio angezeigt. In diesem Fall finden Sie Fehlermeldungen im Abschnitt **Pipelines** in der linken Navigationsleiste in Studio. Jede Notebook- oder Trainingsjobdefinition gehört zu einer Ausführungspipeline. Im Folgenden sind die häufigsten Ursachen für das Fehlschlagen beim Initiieren von Notebook-Aufträgen aufgeführt.

**Fehlende Berechtigungen**
+ Die der Stellendefinition zugewiesene Rolle unterhält kein Vertrauensverhältnis zu Amazon EventBridge. Das heißt, die Rolle EventBridge kann nicht übernommen werden.
+ Die der Auftragsdefinition zugewiesene Rolle hat nicht die Berechtigung, `SageMaker AI:StartPipelineExecution` aufzurufen.
+ Die der Auftragsdefinition zugewiesene Rolle hat nicht die Berechtigung, `SageMaker AI:CreateTrainingJob` aufzurufen.

**EventBridge Kontingent überschritten**

Wenn Sie einen `Put*` Fehler wie das folgende Beispiel sehen, haben Sie ein EventBridge Kontingent überschritten. Um dieses Problem zu beheben, können Sie ungenutzte EventBridge Läufe löschen oder eine Erhöhung Ihres Kontingents beantragen AWS Support .

```
LimitExceededException) when calling the PutRule operation: 
The requested resource exceeds the maximum number allowed
```

Weitere Informationen zu EventBridge Kontingenten finden Sie unter [ EventBridge Amazon-Kontingente](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html).

**Das Pipeline-Kontingent wurde überschritten**

Wenn Ihnen ein Fehler ähnlich dem folgenden Beispiel angezeigt wird, haben Sie die Anzahl der Pipelines überschritten, die Sie ausführen können. Um dieses Problem zu beheben, können Sie ungenutzte Pipelines in Ihrem Konto löschen oder eine Erhöhung Ihres Kontingents bei AWS Support beantragen.

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

Weitere Informationen zu Pipeline-Kontingenten finden Sie unter [Amazon SageMaker AI-Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

**Das Limit für Trainingsaufträge wurde überschritten**

Wenn Sie einen Fehler wie das folgende Beispiel sehen, haben Sie die Anzahl der Trainingsaufträge überschritten, die Sie ausführen können. Um dieses Problem zu lösen, reduzieren Sie die Anzahl der Schulungsjobs in Ihrem Konto oder bitten Sie AWS Support um eine Erhöhung Ihres Kontingents.

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

Weitere Informationen zu den Quoten für Schulungsjobs finden Sie unter [Amazon SageMaker AI-Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

## Automatische Visualisierungen sind in Notizbüchern deaktiviert SparkMagic
<a name="notebook-auto-run-troubleshoot-visualization"></a>

Wenn Ihr Notebook den SparkMagic PySpark Kernel verwendet und Sie das Notebook als Notebook-Job ausführen, stellen Sie möglicherweise fest, dass Ihre auto Visualisierungen in der Ausgabe deaktiviert sind. Das Einschalten der auto Visualisierung führt dazu, dass der Kernel hängen bleibt, sodass der Notebook-Job-Executor derzeit auto Visualisierungen als Workaround deaktiviert.

# Einschränkungen und Überlegungen
<a name="notebook-auto-run-constraints"></a>

Lesen Sie sich die folgenden Einschränkungen durch, um sicherzustellen, dass Ihre Notebook-Aufträge erfolgreich abgeschlossen werden. Studio verwendet Papermill zur Ausführung von Notebooks. Möglicherweise müssen Sie die Jupyter Notebooks aktualisieren, um sie an die Anforderungen von Papermill anzupassen. Es gibt auch Einschränkungen in Bezug auf den Inhalt von LCC-Skripten und wichtige Informationen zur VPC-Konfiguration, die es zu verstehen gilt.

## JupyterLab Version
<a name="notebook-auto-run-constraints-jpt"></a>

JupyterLab Version 4.0 wird unterstützt.

## Installation von Paketen, die einen Kernel-Neustart erfordern
<a name="notebook-auto-run-constraints-pmill-pkg"></a>

Papermill unterstützt nicht den Aufruf von `pip install` zur Installation von Paketen, die einen Neustart des Kernels erfordern. Verwenden Sie es in diesem Fall `pip install` in einem Initialisierungsskript. Bei einer Paketinstallation, für die kein Kernel-Neustart erforderlich ist, können Sie trotzdem `pip install` in das Notebook aufnehmen. 

## Bei Jupyter registrierte Kernel- und Sprachnamen
<a name="notebook-auto-run-constraints-pmill-names"></a>

Papermill registriert einen Übersetzer für bestimmte Kernel und Sprachen. Wenn Sie Ihre eigene Instance (BYOI) mitbringen, verwenden Sie einen Standard-Kernelnamen, wie im folgenden Codeausschnitt dargestellt:

```
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 und Grenzwerte für Umgebungsvariablen
<a name="notebook-auto-run-constraints-var-limits"></a>

**Parameter und Grenzwerte für Umgebungsvariablen.** Wenn Sie Ihren Notebook-Auftrag erstellen, erhält er die von Ihnen angegebenen Parameter und Umgebungsvariablen. Sie können bis zu 100 Parameter übergeben. Jeder Parametername kann bis zu 256 Zeichen lang sein, und der zugehörige Wert kann bis zu 2500 Zeichen lang sein. Wenn Sie Umgebungsvariablen übergeben, können Sie bis zu 28 Variablen übergeben. Der Variablenname und der zugehörige Wert können bis zu 512 Zeichen lang sein. Wenn Sie mehr als 28 Umgebungsvariablen benötigen, verwenden Sie zusätzliche Umgebungsvariablen in einem Initialisierungsskript, bei dem die Anzahl der Umgebungsvariablen, die Sie verwenden können, unbegrenzt ist.

## Jobs und Jobdefinitionen anzeigen
<a name="notebook-auto-run-constraints-view-job"></a>

**Jobs und Jobdefinitionen anzeigen** Wenn Sie Ihren Notebook-Job in der Studio-Benutzeroberfläche im JupyterLab Notizbuch planen, können Sie [Ihre Notebook-Jobs und Ihre [Notebook-Jobdefinitionen](https://docs.aws.amazon.com/sagemaker/latest/dg/view-def-detail-notebook-auto-run.html) in der Studio-Benutzeroberfläche anzeigen](https://docs.aws.amazon.com/sagemaker/latest/dg/view-notebook-jobs.html). Wenn Sie Ihren Notebook-Job mit dem SageMaker Python SDK geplant haben, können Sie nur Ihre Jobs anzeigen — der SageMaker Python SDK-Notebook-Job-Schritt erstellt keine Jobdefinitionen. Um Ihre Jobs anzuzeigen, müssen Sie Ihrer Notebook-Job-Step-Instance außerdem zusätzliche Tags hinzufügen. Details hierzu finden Sie unter [Sehen Sie sich Ihre Notebook-Jobs im Studio-UI-Dashboard an](create-notebook-auto-run-sdk.md#create-notebook-auto-run-dash).

## Image
<a name="notebook-auto-run-constraints-image"></a>

Sie müssen Bildeinschränkungen verwalten, je nachdem, ob Sie Notebook-Jobs in Studio oder den SageMaker Python SDK-Notebook-Job-Schritt in einer Pipeline ausführen.

### Bildeinschränkungen für SageMaker KI-Notebook-Jobs (Studio)
<a name="notebook-auto-run-constraints-image-studio"></a>

**Image- und Kernel-Unterstützung.** Der Treiber, der Ihren Notebook-Auftrag startet, geht von folgenden Voraussetzungen aus:
+ Eine grundlegende Python-Laufzeitumgebung ist in den Studio- oder bring-your-own (BYO-) Images installiert und ist die Standardeinstellung in der Shell.
+ Die grundlegende Python-Laufzeitumgebung umfasst den Jupyter-Client mit ordnungsgemäß konfigurierten Kernelspezifikationen.
+ Die grundlegende Python-Laufzeitumgebung enthält die `pip` Funktion, sodass der Notebook-Auftrag Systemabhängigkeiten installieren kann.
+ Bei Images mit mehreren Umgebungen sollte Ihr Initialisierungsskript zur richtigen kernelspezifischen Umgebung wechseln, bevor Sie notebookspezifische Pakete installieren. Sie sollten nach der Konfiguration der Kernel-Python-Laufzeitumgebung zur Standard-Python-Laufzeitumgebung zurückkehren, falls sie sich von der Kernel-Laufzeitumgebung unterscheidet.

Der Treiber, der Ihren Notebook-Auftrag startet, ist ein Bash-Skript, und Bash v4 muss unter /bin/bash verfügbar sein. 

**Root-Rechte auf bring-your-own-images (BYOI).** Sie benötigen Root-Rechte für Ihre eigenen Studio-Images, entweder als Root-Benutzer oder über `sudo` Access. Wenn Sie kein Root-Benutzer sind, aber über `sudo` auf Root-Rechte zugreifen, verwenden Sie **1000/100** als `UID/GID`.

### Bildeinschränkungen für SageMaker AI Python SDK-Notebook-Jobs
<a name="notebook-auto-run-constraints-image-sdk"></a>

Der Notebook-Job-Schritt unterstützt die folgenden Bilder:
+ SageMaker Verteilung Die Bilder sind unter aufgeführt[SageMaker Amazon-Bilder sind für die Verwendung mit Studio Classic-Notebooks verfügbar](notebooks-available-images.md).
+ Ein benutzerdefiniertes Image, das auf den SageMaker Distributions-Images in der vorherigen Liste basiert. Verwenden Sie ein [SageMaker Distribution-Image](https://github.com/aws/sagemaker-distribution) als Basis.
+ Ein benutzerdefiniertes Image (BYOI) mit vorinstallierten Notebook-Job-Abhängigkeiten (d. h. [sagemaker-headless-execution-driver](https://pypi.org/project/sagemaker-headless-execution-driver/) Ihr Image muss die folgenden Anforderungen erfüllen:
  + Das Image ist mit den Abhängigkeiten von Notebook-Aufträgen vorinstalliert.
  + Eine Python-Basislaufzeitumgebung ist installiert und in der Shell-Umgebung standardmäßig vorhanden.
  + Die grundlegende Python-Laufzeitumgebung umfasst den Jupyter-Client mit ordnungsgemäß konfigurierten Kernelspezifikationen.
  + Sie verfügen über Root-Rechte, entweder als Root-Benutzer oder durch `sudo`-Zugriff. Wenn Sie kein Root-Benutzer sind, aber über `sudo` auf Root-Rechte zugreifen, verwenden Sie **1000/100** als `UID/GID`.

## Bei der Schaffung von Arbeitsplätzen verwendete VPC-Subnetze
<a name="notebook-auto-run-constraints-vpc"></a>

Wenn Sie eine VPC verwenden, verwendet Studio Ihre privaten Subnetze, um Ihren Auftrag zu erstellen. Geben Sie ein bis fünf private Subnetze (und 1–15 Sicherheitsgruppen) an.

Wenn Sie eine VPC mit privaten Subnetzen verwenden, müssen Sie eine der folgenden Optionen wählen, um sicherzustellen, dass der Notebook-Auftrag eine Verbindung zu abhängigen Diensten oder Ressourcen herstellen kann:
+ Wenn der Job Zugriff auf einen AWS Dienst benötigt, der VPC-Schnittstellen-Endpunkte unterstützt, erstellen Sie einen Endpunkt, um eine Verbindung mit dem Dienst herzustellen. Eine Liste der Dienste, die Schnittstellen-Endpunkte unterstützen, finden Sie unter [AWS Services that integration with](https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html). AWS PrivateLink Informationen zum Erstellen eines Schnittstellen-VPC-Endpunkts finden Sie unter [Zugreifen auf einen AWS Dienst mithilfe eines Schnittstellen-VPC-Endpunkts](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html). Es muss mindestens ein Amazon-S3-VPC-Endpunkt-Gateway bereitgestellt werden.
+ Wenn ein Notebook-Job Zugriff auf einen AWS Dienst benötigt, der keine VPC-Schnittstellen-Endpunkte unterstützt, oder auf eine Ressource außerhalb von AWS, erstellen Sie ein NAT-Gateway und konfigurieren Sie Ihre Sicherheitsgruppen so, dass ausgehende Verbindungen zugelassen werden. Informationen zum Einrichten eines NAT-Gateways für Ihre VPC finden Sie unter *VPC mit öffentlichen und privaten Subnetzen (NAT)* im [Amazon Virtual Private Cloud Benutzerhandbuch](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html).

## Service Limits
<a name="notebook-auto-run-constraints-service-limit"></a>

Da der Notebook-Job-Scheduler auf Pipelines, SageMaker Training und Amazon EventBridge Services basiert, unterliegen Ihre Notebook-Jobs ihren dienstspezifischen Kontingenten. Wenn Sie diese Kontingente überschreiten, werden Ihnen möglicherweise Fehlermeldungen im Zusammenhang mit diesen Diensten angezeigt. Beispielsweise gibt es Grenzwerte für die Anzahl der Pipelines, die Sie gleichzeitig ausführen können, und für die Anzahl der Regeln, die Sie für einen einzelnen Event-Bus einrichten können. Weitere Informationen zu SageMaker KI-Kontingenten finden Sie unter [Amazon SageMaker AI Endpoints and Quotas](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html). Weitere Informationen zu EventBridge Kontingenten finden Sie unter [ EventBridge Amazon-Kontingente](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html).

# Preise für SageMaker Notebook-Jobs
<a name="notebook-auto-run-pricing"></a>

Wenn Sie Notebook-Jobs planen, werden Ihre Jupyter-Notebooks auf SageMaker Trainingsinstanzen ausgeführt. Nachdem Sie in Ihrem Formular **Auftrag erstellen** ein **Image** und einen **Kernel** ausgewählt haben, enthält das Formular eine Liste der verfügbaren Berechnungstypen. Ihnen wird der von Ihnen gewählte Berechnungstyp auf der Grundlage der kombinierten Nutzungsdauer für alle Notebook-Aufträge, die anhand der Auftragsdefinition ausgeführt werden, in Rechnung gestellt. Wenn Sie keinen Berechnungstyp angeben, weist Ihnen SageMaker AI den standardmäßigen Amazon EC2 EC2-Instance-Typ zu. `ml.m5.large` Eine Aufschlüsselung der SageMaker KI-Preise nach Compute-Typ finden Sie unter [Amazon SageMaker AI-Preise](https://aws.amazon.com/sagemaker/pricing).

# Planen Sie Ihre ML-Workflows
<a name="workflow-scheduling"></a>

Mit Amazon SageMaker AI können Sie Ihren gesamten ML-Workflow verwalten, indem Sie Datensätze erstellen, Datentransformationen durchführen, Modelle aus Daten erstellen und Ihre Modelle zur Inferenz an Endpunkten bereitstellen. Wenn Sie eine Teilmenge von Schritten Ihres Workflows regelmäßig ausführen, können Sie sich auch dafür entscheiden, diese Schritte nach einem Zeitplan auszuführen. Beispielsweise möchten Sie vielleicht einen Job in SageMaker Canvas so planen, dass jede Stunde eine Transformation für neue Daten ausgeführt wird. In einem anderen Szenario möchten Sie vielleicht einen wöchentlichen Job planen, um die Modellabweichung Ihres bereitgestellten Modells zu überwachen. Sie können einen wiederkehrenden Zeitplan mit einem beliebigen Zeitintervall angeben – Sie können jede Sekunde, Minute, täglich, wöchentlich, monatlich oder am dritten Freitag eines jeden Monats um 15 Uhr wiederholen.

**Die folgenden Szenarien fassen die Optionen zusammen, die Ihnen je nach Anwendungsfall zur Verfügung stehen.**
+ Anwendungsfall 1: **Erstellen und planen Sie Ihren ML-Workflow in einer Umgebung ohne Code.** Für Anfänger oder SageMaker KI-Neulinge können Sie Amazon SageMaker Canvas verwenden, um sowohl Ihren ML-Workflow zu erstellen als auch geplante Läufe mit dem auf der Canvas-Benutzeroberfläche basierenden Scheduler zu erstellen.
+ Anwendungsfall 2: **Erstellen Sie Ihren Workflow in einem einzigen Jupyter-Notebook und verwenden Sie einen No-Code-Scheduler**. Erfahrene ML-Praktiker können Code verwenden, um ihren ML-Workflow in einem Jupyter-Notebook zu erstellen, und die im Widget „Notebookjobs“ verfügbare Planungsoption ohne Code verwenden. Wenn Ihr ML-Workflow aus mehreren Jupyter-Notebooks besteht, können Sie die in Anwendungsfall 3 beschriebene Planungsfunktion im Python-SDK von Pipelines verwenden.
+ Anwendungsfall 3: **Erstellen und planen Sie Ihren ML-Workflow** mithilfe von Pipelines. Fortgeschrittene Benutzer können das [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable), den visuellen Editor von Amazon SageMaker Pipelines oder die in Pipelines verfügbaren EventBridge Amazon-Planungsoptionen verwenden. Sie können einen ML-Workflow erstellen, der aus Schritten besteht, die Operationen mit verschiedenen SageMaker KI-Funktionen und AWS -Services wie Amazon EMR beinhalten.


| Deskriptor | Anwendungsfall 1 | Anwendungsfall 2 | Anwendungsfall 3 | 
| --- | --- | --- | --- | 
| SageMaker KI-Funktion | Amazon SageMaker Canvas-Datenverarbeitung und ML-Workflow-Planung | Widget zum Zeitplan für Notebook-Jobs (UI) | Planungsoptionen für das Python-SDK für Pipelines | 
| Description | Mit Amazon SageMaker Canvas können Sie automatische Durchläufe von Datenverarbeitungsschritten und in einem separaten Verfahren automatische Datensatzaktualisierungen planen. Sie können Ihren gesamten ML-Workflow auch indirekt planen, indem Sie eine Konfiguration einrichten, die bei jeder Aktualisierung eines bestimmten Datensatzes eine Batch-Vorhersage ausführt. Sowohl für die automatisierte Datenverarbeitung als auch für Datensatzaktualisierungen bietet SageMaker Canvas ein Basisformular, in dem Sie eine Startzeit und ein Startdatum sowie ein Zeitintervall zwischen den Durchläufen auswählen (oder einen Cron-Ausdruck, wenn Sie einen Datenverarbeitungsschritt planen). Weitere Informationen zur Planung von Datenverarbeitungsschritten finden Sie unter [Erstellen eines Zeitplans für die automatische Verarbeitung neuer Daten](canvas-data-export-schedule-job.md). Weitere Informationen zum Planen von Aktualisierungen von Datenmengen und Batch finden Sie unter [So verwalten Sie Automatisierungen](canvas-manage-automations.md). | Wenn Sie Ihren Datenverarbeitungs- und Pipeline-Workflow in einem einzigen Jupyter-Notebook erstellt haben, können Sie das Widget Notebookjobs verwenden, um Ihr Notebook bei Bedarf oder nach einem Zeitplan auszuführen. Das Widget „Notebookjobs“ zeigt ein einfaches Formular an, in dem Sie den Berechnungstyp, den Ausführungsplan und optionale benutzerdefinierte Einstellungen angeben. Sie definieren Ihren Ausführungsplan, indem Sie ein zeitbasiertes Intervall auswählen oder einen Cron-Ausdruck einfügen. Das Widget wird automatisch in Studio installiert, oder Sie können eine zusätzliche Installation durchführen, um diese Funktion in Ihrer lokalen JupyterLab Umgebung zu verwenden. Weitere Informationen zu Notebook-Aufträgen finden Sie unter [SageMaker Notizbuch-Jobs](notebook-auto-run.md). | Sie können die Planungsfunktionen im SageMaker SDK verwenden, wenn Sie Ihren ML-Workflow mit Pipelines implementiert haben. Ihre Pipeline kann Schritte wie Feinabstimmung, Datenverarbeitung und Bereitstellung umfassen. Pipelines unterstützt zwei Möglichkeiten, Ihre Pipeline zu planen. Sie können eine EventBridge Amazon-Regel erstellen oder den SageMaker [PipelineSchedule](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.triggers.PipelineSchedule)SDK-Konstruktor oder den visuellen Editor von Amazon SageMaker Pipelines verwenden, um einen Zeitplan zu definieren. Weitere Informationen zu den in Pipelines verfügbaren Planungsoptionen finden Sie unter [Planen von Pipeline-Läufen](pipeline-eventbridge.md). | 
| Optimiert für | Bietet eine Planungsoption für einen SageMaker Canvas-ML-Workflow | Bietet eine UI-basierte Planungsoption für Jupyter-Notebook-basierte ML-Workflows | Stellt ein SageMaker SDK oder eine EventBridge Planungsoption für ML-Workflows bereit | 
| Überlegungen | Sie können Ihren Workflow mit dem Canvas-Framework ohne Code planen, aber Datensatzaktualisierungen und Batch-Transformationsaktualisierungen können bis zu 5 GB an Daten verarbeiten. | Sie können ein Notebook über das UI-basierte Planungsformular planen, jedoch nicht mehrere Notebooks im selben Auftrag. Um mehrere Notebooks zu planen, verwenden Sie die in Anwendungsfall 3 beschriebene codebasierte Lösung des Pipelines SDK. | Sie können die fortschrittlicheren (SDK-basierten) Planungsfunktionen von Pipelines verwenden. Sie müssen jedoch auf die API-Dokumentation zurückgreifen, um die richtigen Optionen anzugeben, anstatt aus einem auf der Benutzeroberfläche basierenden Optionsmenü auszuwählen. | 
| Empfohlene Umgebung | Amazon SageMaker Leinwand | Studio, lokale JupyterLab Umgebung | Studio, lokale JupyterLab Umgebung, beliebiger Code-Editor | 

## Weitere Ressourcen
<a name="workflow-scheduling-addit"></a>

**SageMaker KI bietet die folgenden zusätzlichen Optionen für die Planung Ihrer Workflows.**
+ [Was ist Amazon EventBridge Scheduler?](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html) . Die in diesem Abschnitt erörterten Planungsoptionen umfassen vorgefertigte Optionen, die in SageMaker Canvas, Studio und dem SageMaker AI Python SDK verfügbar sind. Alle Optionen erweitern die Funktionen von Amazon EventBridge, und Sie können damit auch Ihre eigene benutzerdefinierte Planungslösung erstellen EventBridge.
+ [Geplante und ereignisbasierte Ausführungen für Feature-Prozessor-Pipelines](feature-store-feature-processor-schedule-pipeline.md). Mit Amazon SageMaker Feature Store Feature Processing können Sie Ihre Feature Processing-Pipelines so konfigurieren, dass sie nach einem Zeitplan oder als Ergebnis eines anderen AWS Serviceereignisses ausgeführt werden.

# AWS Batch Unterstützung für SageMaker KI-Ausbildungsjobs
<a name="training-job-queues"></a>

In einer [AWS Batch Job-Warteschlange](https://docs.aws.amazon.com/batch/latest/userguide/job_queues.html) werden eingereichte Jobs gespeichert und priorisiert, bevor sie auf Rechenressourcen ausgeführt werden. Sie können SageMaker KI-Schulungsjobs an eine Job-Warteschlange senden, um die Vorteile der von bereitgestellten Tools zur serverlosen Jobplanung und Priorisierung zu nutzen. AWS Batch

## Funktionsweise
<a name="training-job-queues-how-it-works"></a>

In den folgenden Schritten wird der Arbeitsablauf zur Verwendung einer AWS Batch Job-Warteschlange mit SageMaker KI-Schulungsaufträgen beschrieben. Weitere Informationen und Beispiel-Notebooks finden Sie im [Erste Schritte](#training-job-queues-get-started) Abschnitt.
+ Einrichtung AWS Batch und alle erforderlichen Berechtigungen. Weitere Informationen finden Sie unter [Einrichten von AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/get-set-up-for-aws-batch.html) im *Benutzerhandbuch für AWS Batch *.
+ Erstellen Sie die folgenden AWS Batch Ressourcen in der Konsole oder mithilfe von AWS CLI:
  + [Serviceumgebung](https://docs.aws.amazon.com/batch/latest/userguide/service-environments.html) — Enthält Konfigurationsparameter für die Integration mit SageMaker KI.
  + [SageMaker Warteschlange für KI-Schulungsjobs](https://docs.aws.amazon.com/batch/latest/userguide/create-sagemaker-job-queue.html) — Integriert sich in SageMaker KI, um Schulungsjobs einzureichen.
+ Konfigurieren Sie Ihre Daten und fordern Sie einen SageMaker KI-Schulungsjob an, z. B. Ihr Schulungscontainer-Image. Um einen Trainingsjob an eine AWS Batch Warteschlange zu senden, können Sie das AWS CLI AWS SDK für Python (Boto3), oder das SageMaker AI Python SDK verwenden.
+ Reichen Sie Ihre Trainingsjobs in der Auftragswarteschlange ein. Sie können die folgenden Optionen verwenden, um Aufträge einzureichen:
  + Verwenden Sie die AWS Batch [SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)-API.
  + Verwenden Sie das [`aws_batch`Modul](https://github.com/aws/sagemaker-python-sdk/tree/master/src/sagemaker/aws_batch) aus dem SageMaker AI Python SDK. Nachdem Sie ein TrainingQueue Objekt und ein Modell-Trainingsobjekt (z. B. einen Estimator oder ModelTrainer) erstellt haben, können Sie TrainingQueue mithilfe der `queue.submit()` Methode Trainingsjobs an die senden.
+ Nachdem Sie Jobs eingereicht haben, können Sie Ihre Job-Warteschlange und den Job-Status mit der AWS Batch Konsole, der AWS Batch [DescribeServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html)API oder der SageMaker [DescribeTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html)KI-API einsehen.

## Kosten und Verfügbarkeit
<a name="training-job-queues-cost-availability"></a>

Detaillierte Preisinformationen zu Schulungsjobs finden Sie unter [Amazon SageMaker AI-Preise](https://aws.amazon.com/sagemaker-ai/pricing/). Mit AWS Batch zahlen Sie nur für alle genutzten AWS Ressourcen, wie z. B. Amazon EC2 EC2-Instances. Weitere Informationen finden Sie unter [AWS Batch Preise](https://aws.amazon.com/batch/pricing/).

Sie können es AWS Batch für SageMaker KI-Schulungsjobs überall dort nutzen AWS-Region , wo Schulungsjobs verfügbar sind. Weitere Informationen finden Sie unter [Amazon SageMaker AI-Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

Um sicherzustellen, dass Sie über die erforderliche Kapazität verfügen, wenn Sie sie benötigen, können Sie flexible SageMaker AI-Trainingspläne (FTP) verwenden. Diese Pläne ermöglichen es Ihnen, Kapazitäten für Ihre Trainingsjobs zu reservieren. In Kombination mit AWS Batch den Warteschlangenfunktionen können Sie die Auslastung während der Laufzeit Ihres Plans maximieren. Weitere Informationen finden Sie unter [Trainingspläne für Ihre Schulungsjobs oder HyperPod -cluster reservieren](https://docs.aws.amazon.com/sagemaker/latest/dg/reserve-capacity-with-training-plans.html).

## Erste Schritte
<a name="training-job-queues-get-started"></a>

Ein Tutorial zum Einrichten einer AWS Batch Job-Warteschlange und zum Einreichen von SageMaker KI-Schulungsjobs finden Sie unter [Erste Schritte mit AWS Batch SageMaker KI](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-sagemaker.html) im *AWS Batch Benutzerhandbuch*.

Jupyter-Notebooks, die zeigen, wie das `aws_batch` Modul im SageMaker AI Python SDK verwendet wird, finden Sie in den [Notebook-Beispielen AWS Batch für SageMaker AI-Training-Jobs im Repository](https://github.com/aws/amazon-sagemaker-examples/tree/default/%20%20%20%20%20%20build_and_train_models/sm-training-queues). amazon-sagemaker-examples GitHub 

# Amazon SageMaker ML Lineage Tracking
<a name="lineage-tracking"></a>

**Wichtig**  
Seit dem 30. November 2023 heißt das vorherige Amazon SageMaker Studio-Erlebnis jetzt Amazon SageMaker Studio Classic. Der folgende Abschnitt bezieht sich konkret auf die Verwendung der Studio-Classic-Anwendung. Informationen zur Verwendung der aktualisierten Studio-Konfiguration finden Sie unter [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic wird weiterhin für bestehende Workloads beibehalten, ist aber nicht mehr für das Onboarding verfügbar. Sie können nur bestehende Studio Classic-Anwendungen beenden oder löschen und keine neuen erstellen. Wir empfehlen Ihnen, [Ihren Workload auf das neue Studio-Erlebnis zu migrieren](studio-updated-migrate.md).

Amazon SageMaker ML Lineage Tracking erstellt und speichert Informationen über die Schritte eines Machine Learning-Workflows (ML) von der Datenvorbereitung bis zur Modellbereitstellung. Mit den Tracking-Informationen können Sie die Workflow-Schritte reproduzieren, die Herkunft von Modellen und Datensätzen verfolgen und Standards für Modellverwaltung und Prüfung festlegen.

SageMaker Die Lineage Tracking-Funktion von AI funktioniert im Backend, um alle Metadaten zu verfolgen, die mit Ihren Workflows für Modelltraining und -bereitstellung verknüpft sind. Dazu gehören Ihre Trainingsaufträge, die verwendeten Datensätze, Pipelines, Endpunkte und die tatsächlichen Modelle. Sie können den Lineage Service jederzeit abfragen, um genau die Artefakte zu finden, die zum Trainieren eines Modells verwendet wurden. Mithilfe dieser Artefakte können Sie denselben ML-Workflow neu erstellen, um das Modell zu reproduzieren, sofern Sie Zugriff auf den genauen Datensatz haben, der verwendet wurde. Eine Testkomponente verfolgt den Trainingsjob. Diese Testkomponente enthält alle Parameter, die im Rahmen des Trainingsauftrags verwendet wurden. Wenn Sie nicht den gesamten Workflow erneut ausführen müssen, können Sie den Trainingsjob reproduzieren, um dasselbe Modell abzuleiten.

Mit SageMaker AI Lineage Tracking können Datenwissenschaftler und Modellbauer Folgendes tun:
+ Behalten Sie einen laufenden Verlauf der Experimente zur Modellentdeckung bei.
+ Richten Sie die Modell-Governance ein, indem Sie die Artefakte der Modellherkunft zur Prüfung und Überprüfung der Einhaltung von Vorschriften verfolgen.

Das folgende Diagramm zeigt ein Beispiel für ein Liniendiagramm, das Amazon SageMaker AI automatisch in einem ML-Workflow für end-to-end Modelltraining und -bereitstellung erstellt.

![\[\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/pipelines/PipelineLineageWorkflow.png)


**Topics**
+ [Entitäten zur Abstammungsverfolgung](lineage-tracking-entities.md)
+ [Von Amazon SageMaker AI erstellte Tracking-Entitäten](lineage-tracking-auto-creation.md)
+ [Tracking-Entitäten manuell erstellen](lineage-tracking-manual-creation.md)
+ [Abfragen von Lineage-Entitäten](querying-lineage-entities.md)
+ [Kontoübergreifende Nachverfolgung von Lineage](xaccount-lineage-tracking.md)

# Entitäten zur Abstammungsverfolgung
<a name="lineage-tracking-entities"></a>

Tracking-Entitäten enthalten eine Darstellung aller Elemente Ihres Workflows für end-to-end maschinelles Lernen. Sie können diese Darstellung verwenden, um die Modellverwaltung festzulegen, Ihren Arbeitsablauf zu reproduzieren und Ihre Arbeitshistorie aufzuzeichnen.

Amazon SageMaker AI erstellt automatisch Tracking-Entitäten für Testkomponenten und die zugehörigen Versuche und Experimente, wenn Sie SageMaker KI-Jobs wie Verarbeitungsaufträge, Schulungsaufträge und Batch-Transformationsaufträge erstellen. Zusätzlich zur automatischen Verfolgung können Sie mit [Tracking-Entitäten manuell erstellen](lineage-tracking-manual-creation.md) auch benutzerdefinierte Schritte in Ihrem Arbeitsablauf modellieren. Weitere Informationen finden Sie unter [SageMaker Amazon-Experimente in Studio Classic](experiments.md).

SageMaker KI erstellt auch automatisch Tracking-Entitäten für die anderen Schritte in einem Workflow, sodass Sie den Workflow von Anfang bis Ende verfolgen können. Weitere Informationen finden Sie unter [Von Amazon SageMaker AI erstellte Tracking-Entitäten](lineage-tracking-auto-creation.md).

Sie können zusätzliche Entitäten erstellen, um die von SageMaker KI erstellten Entitäten zu ergänzen. Weitere Informationen finden Sie unter [Tracking-Entitäten manuell erstellen](lineage-tracking-manual-creation.md).

SageMaker KI verwendet alle vorhandenen Entitäten wieder, anstatt neue zu erstellen. Zum Beispiel kann nur ein Artefakt mit einem eindeutigen `SourceUri` verwendet werden.

**Wichtige Konzepte für die Abfrage der Herkunft**
+ **Herkunft** – Metadaten, die die Beziehungen zwischen verschiedenen Entitäten in Ihren ML-Workflows verfolgen.
+ **QueryLineage**— Die Aktion, um deine Herkunft zu untersuchen und Beziehungen zwischen Entitäten zu entdecken.
+ **Lineage-Entitäten** – Die Metadatenelemente, aus denen sich Ihre Abstammung zusammensetzt.
+ **Kontoübergreifende Herkunft** – Ihr ML-Workflow kann sich über mehr als ein Konto erstrecken. Mit der kontenübergreifenden Herkunft können Sie mehrere Konten so konfigurieren, dass automatisch Abstammungszuordnungen zwischen gemeinsam genutzten Entitätsressourcen erstellt werden. QueryLineage kann dann auch Entitäten von diesen gemeinsamen Konten zurückgeben.

Die folgenden Tracking-Entitäten sind definiert:

**Experimentientitäten**
+ [Testkomponente](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrialComponent.html) – Eine Phase einer Studie zum Machine Learning. Beinhaltet Verarbeitungsaufträge, Trainingsaufträge und Batch-Transformationsaufträge.
+ [Versuch](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrial.html) – Eine Kombination von Testkomponenten, aus der in der Regel ein Modell entsteht.
+ [Experiment](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateExperiment.html) – Eine Gruppierung von Studien, die sich im Allgemeinen auf die Lösung eines bestimmten Anwendungsfalls konzentriert.

**Abstammungsentitäten**
+ [Testkomponente](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrialComponent.html) – Stellt Verarbeitungs-, Trainings- und Transformationsaufgaben in der Produktlinie dar. Ebenfalls Teil der Versuchsverwaltung.
+ [Kontext](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateContext.html) – Stellt eine logische Gruppierung anderer Verfolgungs- oder Experimentiereinheiten bereit. Konzeptionell gesehen handelt es sich bei Experimenten und Versuchen um Kontexte. Einige Beispiele sind ein Endpunkt und ein Modellpaket.
+ [Aktion](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAction.html) – Stellt eine Aktion oder Aktivität dar. Im Allgemeinen umfasst eine Aktion mindestens ein Eingabe- oder Ausgabeartefakt. Einige Beispiele sind ein Workflow-Schritt und eine Modellbereitstellung.
+ [Artifact](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateArtifact.html) – Stellt ein URI-adressierbares Objekt oder Daten dar. Ein Artefakt ist im Allgemeinen entweder eine Eingabe oder eine Ausgabe einer Testkomponente oder -aktion. Einige Beispiele beinhalten einen Datensatz (S3-Bucket-URI) oder ein Bild (Amazon ECR-Registry-Pfad).
+ [Zuordnung](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddAssociation.html) – Verknüpft andere Tracking- oder Experimentiereinheiten, z. B. eine Zuordnung zwischen dem Speicherort von Trainingsdaten und einem Trainingsjob.

  Eine Assoziation hat eine optionale `AssociationType` Eigenschaft. Die folgenden Werte sind zusammen mit der empfohlenen Verwendung für jeden Typ verfügbar. SageMaker KI schränkt ihre Verwendung nicht ein:
  + `ContributedTo` – Die Quelle hat zum Ziel beigetragen oder war an der Aktivierung des Ziels beteiligt. Zum Beispiel haben das Trainingsdaten zur Ausbildung beigetragen.
  + `AssociatedWith` – Die Quelle ist mit dem Ziel verbunden. Beispielsweise ist ein Genehmigungsworkflow mit einer Modellbereitstellung verknüpft.
  + `DerivedFrom` – Das Ziel ist eine Änderung der Quelle. Beispielsweise wird eine Digest-Ausgabe eines Kanaleingangs für einen Verarbeitungsauftrag aus den ursprünglichen Eingaben abgeleitet.
  + `Produced` – Die Quelle hat das Ziel generiert. Bei einem Ausbildungsauftrag wurde beispielsweise ein Modellartefakt erzeugt.
  + `SameAs` – Wenn dieselbe Abstammungseinheit in verschiedenen Konten verwendet wird.

**Gemeinsame Eigenschaften**
+ **Typ Eigenschaft**

  Die Entitäten Action, Artifact und Context haben jeweils die *Typ*eigenschaft, `ActionType`, `ArtifactType` und `ContextType`. Diese Eigenschaft ist eine benutzerdefinierte Zeichenfolge, die der Entität aussagekräftige Informationen zuordnen kann und als Filter in der Liste verwendet werden kann APIs.
+ **Quelleigenschaft**

  Die Entitäten Action, Artifact und Context haben eine `Source` Eigenschaft. Diese Eigenschaft stellt den zugrunde liegenden URI bereit, den die Entität darstellt. Einige Beispiele sind:
  + Eine `UpdateEndpoint` Aktion, bei der die Quelle die `EndpointArn` ist.
  + Ein Bildartefakt für einen Verarbeitungsauftrag, bei dem die Quelle die `ImageUri` ist.
  + Ein `Endpoint` Kontext, in dem die Quelle der `EndpointArn` ist.
+ **Eigenschaft der Metadaten**

  Die Entitäten Action und Artifact verfügen über eine optionale `Metadata` Eigenschaft, die die folgenden Informationen bereitstellen kann:
  + `ProjectId`— Zum Beispiel die ID des SageMaker MLOps KI-Projekts, zu dem ein Modell gehört.
  + `GeneratedBy`— Zum Beispiel die SageMaker AI-Pipeline-Ausführung, bei der eine Modellpaketversion registriert wurde.
  + `Repository` – Zum Beispiel das Repository, das einen Algorithmus enthält.
  + `CommitId` – Zum Beispiel die Commit-ID einer Algorithmusversion.

# Von Amazon SageMaker AI erstellte Tracking-Entitäten
<a name="lineage-tracking-auto-creation"></a>

Amazon SageMaker AI erstellt automatisch Tracking-Entitäten für SageMaker KI-Jobs, Modelle, Modellpakete und Endpunkte, sofern die Daten verfügbar sind. Die Anzahl der von KI erstellten Lineage-Entitäten ist unbegrenzt. SageMaker 

Informationen darüber, wie Sie Tracking-Entitäten manuell erstellen können, finden Sie unter [Tracking-Entitäten manuell erstellen](lineage-tracking-manual-creation.md).

**Topics**
+ [Entitäten für SageMaker KI-Jobs verfolgen](#lineage-tracking-auto-creation-jobs)
+ [Entitäten für Modellpakete nachverfolgen](#lineage-tracking-auto-creation-model-package)
+ [Entitäten für Endgeräte nachverfolgen](#lineage-tracking-auto-creation-endpoint)

## Entitäten für SageMaker KI-Jobs verfolgen
<a name="lineage-tracking-auto-creation-jobs"></a>

SageMaker KI erstellt für jeden SageMaker KI-Job eine Testkomponente und ist diesem zugeordnet. SageMaker KI erstellt Artefakte, um die Job-Metadaten und die Verknüpfungen zwischen jedem Artefakt und dem Job nachzuverfolgen.

Artefakte werden für die folgenden Jobeigenschaften erstellt und mit dem Amazon-Ressourcennamen (ARN) des SageMaker AI-Jobs verknüpft. Das Artefakt `SourceUri` ist in Klammern angegeben.

**Trainingsjob**
+ Das Bild, das den Trainingsalgorithmus enthält (`TrainingImage`).
+ Die Datenquelle jedes Eingangskanals (`S3Uri`).
+ Der Standort für das Modell (`S3OutputPath)`.
+ Der Standort für die verwalteten Spot-Checkpoint-Daten (`S3Uri`).

**Verarbeitungsauftrag**
+ Der Container, der von dem Verarbeitungsauftrag ausgeführt werden soll (`ImageUri`).
+ Der Datenspeicherort für jede Verarbeitungseingabe und Verarbeitungsausgabe (`S3Uri`).

**Transformationsauftrag**
+ Die zu transformierende Eingabedatenquelle (`S3Uri`).
+ Die Ergebnisse der Transformation (`S3OutputPath`).

**Anmerkung**  
Amazon Simple Storage Service (Amazon S3) -Artefakte werden beispielsweise anhand der Amazon S3 S3-URI-Werte nachverfolgt, die der Create-API zur Verfügung gestellt werden [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html), und nicht anhand des Amazon S3 S3-Schlüssels und der Hash- oder Etag-Werte aus jeder Datei.

## Entitäten für Modellpakete nachverfolgen
<a name="lineage-tracking-auto-creation-model-package"></a>

Die folgenden Entitäten werden erstellt:

**Modellpakete**
+ Ein Kontext für jede Modellpaketgruppe.
+ Ein Artefakt für jedes Modellpaket.
+ Eine Zuordnung zwischen jedem Modellpaket-Artefakt und dem Kontext für jede Modellpaketgruppe, zu der das Paket gehört.
+ Eine Aktion zur Erstellung einer Modellpaketversion.
+ Eine Assoziation zwischen dem Modellpaket-Artefakt und der Erstellungsaktion.
+ Eine Zuordnung zwischen dem Modellpaket-Artefakt und jedem Modellpaketgruppenkontext, zu dem das Paket gehört.
+ Inferenzcontainer
  + Ein Artefakt für das Bild, das in jedem im Modellpaket definierten Container verwendet wird.
  + Ein Artefakt für das Modell, das in jedem Container verwendet wird.
  + Eine Assoziation zwischen jedem Artefakt und dem Artefakt des Modellpakets.
+ Algorithmen
  + Ein Artefakt für jeden im Modellpaket definierten Algorithmus.
  + Ein Artefakt für das Modell, das von jedem Algorithmus erstellt wurde.
  + Eine Assoziation zwischen jedem Artefakt und dem Artefakt des Modellpakets.

## Entitäten für Endgeräte nachverfolgen
<a name="lineage-tracking-auto-creation-endpoint"></a>

Die folgenden Entitäten wurden von Amazon SageMaker AI erstellt:

**Endpunkte**
+ Ein Kontext für jeden Endpunkt
+ Eine Aktion für die Modellbereitstellung, bei der jeder Endpunkt erstellt wurde
+ Ein Artefakt für jedes Modell, das auf dem Endpunkt bereitgestellt wird
+ Ein Artefakt für das im Modell verwendete Bild
+ Ein Artefakt für das Modellpaket für das Modell
+ Ein Artefakt für jedes Bild, das auf dem Endpunkt bereitgestellt wird
+ Eine Assoziation zwischen jedem Artefakt und der Aktion zur Modellbereitstellung

# Tracking-Entitäten manuell erstellen
<a name="lineage-tracking-manual-creation"></a>

Sie können manuell Tracking-Entitäten für jede Eigenschaft erstellen, um die Modellverwaltung einzurichten, Ihren Workflow zu reproduzieren und eine Aufzeichnung Ihrer Arbeitshistorie zu führen. Informationen zu den Tracking-Entitäten, die Amazon SageMaker AI automatisch erstellt, finden Sie unter[Von Amazon SageMaker AI erstellte Tracking-Entitäten](lineage-tracking-auto-creation.md). Das folgende Tutorial zeigt die Schritte, die erforderlich sind, um Artefakte manuell zu erstellen und zwischen einem SageMaker Trainingsjob und einem Endpunkt zu verknüpfen und anschließend den Arbeitsablauf nachzuverfolgen. 

Sie können allen Entitäten außer Assoziationen Tags hinzufügen. Tags sind beliebige Schlüssel-Wert-Paare, die benutzerdefinierte Informationen bereitstellen. Sie können eine Liste oder eine Suchabfrage nach Stichwörtern filtern oder sortieren. Weitere Informationen finden Sie unter [AWS Ressourcen taggen](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in der *Allgemeine AWS-Referenz*.

Ein Beispielnotizbuch, das demonstriert, wie Lineage-Entitäten erstellt werden, finden Sie im [Amazon SageMaker AI Lineage-Notizbuch](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-lineage) im [ SageMaker GitHub Amazon-Beispiel-Repository](https://github.com/awslabs/amazon-sagemaker-examples).

**Topics**
+ [Manuell Entitäten erstellen](#lineage-tracking-manual-create)
+ [Manuelles Verfolgen eines Workflows](#lineage-tracking-manual-track)
+ [Einschränkungen](#lineage-tracking-manual-track-limits)

## Manuell Entitäten erstellen
<a name="lineage-tracking-manual-create"></a>

Das folgende Verfahren zeigt Ihnen, wie Sie Artefakte erstellen und zwischen einem SageMaker KI-Trainingsjob und einem Endpunkt verknüpfen. Führen Sie die folgenden Schritte aus:

**Importieren Sie Tracking-Entitäten und -Verknüpfungen**

1. Importieren Sie die Entitäten zur Herkunftsverfolgung.

   ```
   import sys
   !{sys.executable} -m pip install -q sagemaker
   
   from sagemaker import get_execution_role
   from sagemaker.session import Session
   from sagemaker.lineage import context, artifact, association, action
   
   import boto3
   boto_session = boto3.Session(region_name=region)
   sagemaker_client = boto_session.client("sagemaker")
   ```

1. Erstellen Sie die Eingabe- und Ausgabe-Artefakte.

   ```
   code_location_arn = artifact.Artifact.create(
       artifact_name='source-code-location',
       source_uri='s3://...',
       artifact_type='code-location'
   ).artifact_arn
   
   # Similar constructs for train_data_location_arn and test_data_location_arn
   
   model_location_arn = artifact.Artifact.create(
       artifact_name='model-location',
       source_uri='s3://...',
       artifact_type='model-location'
   ).artifact_arn
   ```

1. Schjulen Sie das Modell und holen Sie sich `trial_component_arn`, der den Trainingsjob represäntiert.

1. Ordnen Sie die Eingabeartefakte und Ausgabeartefakte dem Trainingsjob zu (Testkomponente).

   ```
   input_artifacts = [code_location_arn, train_data_location_arn, test_data_location_arn]
   for artifact_arn in input_artifacts:
       try:
           association.Association.create(
               source_arn=artifact_arn,
               destination_arn=trial_component_arn,
               association_type='ContributedTo'
           )
       except:
           logging.info('association between {} and {} already exists', artifact_arn, trial_component_arn)
   
   output_artifacts = [model_location_arn]
   for artifact_arn in output_artifacts:
       try:
            association.Association.create(
               source_arn=trial_component_arn,
               destination_arn=artifact_arn,
               association_type='Produced'
           )
       except:
           logging.info('association between {} and {} already exists', artifact_arn, trial_component_arn)
   ```

1. Erstellen Sie den Inferenzendpunkt.

   ```
   predictor = mnist_estimator.deploy(initial_instance_count=1,
                                        instance_type='ml.m4.xlarge')
   ```

1. Erstellen Sie den Endpunktkontext.

   ```
   from sagemaker.lineage import context
   
   endpoint = sagemaker_client.describe_endpoint(EndpointName=predictor.endpoint_name)
   endpoint_arn = endpoint['EndpointArn']
   
   endpoint_context_arn = context.Context.create(
       context_name=predictor.endpoint_name,
       context_type='Endpoint',
       source_uri=endpoint_arn
   ).context_arn
   ```

1. Ordnen Sie den Trainingsjob (Testkomponente) und den Endpunktkontext zu.

   ```
   association.Association.create(
       source_arn=trial_component_arn,
       destination_arn=endpoint_context_arn
   )
   ```

## Manuelles Verfolgen eines Workflows
<a name="lineage-tracking-manual-track"></a>

Sie können den im vorherigen Abschnitt erstellten Workflow manuell verfolgen.

Ausgehend vom Endpunkt Amazon-Ressourcenname (ARN) aus dem vorherigen Beispiel zeigt Ihnen das folgende Verfahren, wie Sie den Workflow bis zu den Datensätzen zurückverfolgen können, die zum Trainieren des Modells verwendet wurden, das für den Endpunkt bereitgestellt wurde. Führen Sie die folgenden Schritte aus:

**Um einen Workflow vom Endpunkt bis zur Trainingsdatenquelle zu verfolgen**

1. Importieren Sie die Tracking-Entitäten.

   ```
   import sys
   !{sys.executable} -m pip install -q sagemaker
   
   from sagemaker import get_execution_role
   from sagemaker.session import Session
   from sagemaker.lineage import context, artifact, association, action
   
   import boto3
   boto_session = boto3.Session(region_name=region)
   sagemaker_client = boto_session.client("sagemaker")
   ```

1. Ruft den Endpunktkontext vom Endpunkt-ARN ab.

   ```
   endpoint_context_arn = sagemaker_client.list_contexts(
       SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn']
   ```

1. Ruft die Testkomponente aus der Zuordnung zwischen der Testkomponente und dem Endpunktkontext ab.

   ```
   trial_component_arn = sagemaker_client.list_associations(
       DestinationArn=endpoint_context_arn)['AssociationSummaries'][0]['SourceArn']
   ```

1. Ruft das Artefakt zum Standort der Trainingsdaten aus der Assoziation zwischen der Testkomponente und dem Endpunktkontext ab.

   ```
   train_data_location_artifact_arn = sagemaker_client.list_associations(
       DestinationArn=trial_component_arn, SourceType='Model')['AssociationSummaries'][0]['SourceArn']
   ```

1. Ruft den Standort der Trainingsdaten aus dem Artefakt für den Standort der Trainingsdaten ab.

   ```
   train_data_location = sagemaker_client.describe_artifact(
       ArtifactArn=train_data_location_artifact_arn)['Source']['SourceUri']
       print(train_data_location)
   ```

   Antwort:

   ```
   s3://sagemaker-sample-data-us-east-2/mxnet/mnist/train
   ```

## Einschränkungen
<a name="lineage-tracking-manual-track-limits"></a>

Sie können eine Assoziation zwischen beliebigen Entitäten, Experimenten und Abstammungen erstellen, mit Ausnahme der folgenden:
+ Sie können keine Assoziation zwischen zwei Experimententitäten erstellen. Experimententitäten bestehen aus Experimenten, Versuchen und Versuchskomponenten.
+ Sie können eine Assoziation mit einer anderen Assoziation erstellen.

Wenn Sie versuchen, eine Entität zu erstellen, die bereits vorhanden ist, tritt ein Fehler auf.

**Maximale Anzahl manuell erstellter Lineage-Entitäten**
+ Aktionen: 3000
+ Artefakte: 6000
+ Zuordnungen: 6000
+ Kontexte: 500

Die Anzahl der automatisch von Amazon SageMaker AI erstellten Lineage-Entitäten ist unbegrenzt.

# Abfragen von Lineage-Entitäten
<a name="querying-lineage-entities"></a>

Amazon SageMaker AI generiert automatisch Diagramme von Lineage-Entitäten, während Sie sie verwenden. Sie können diese Daten abfragen, um eine Vielzahl von Fragen zu beantworten. Im Folgenden finden Sie Anweisungen zur Abfrage dieser Daten im SDK für Python. 

Informationen zum Anzeigen einer registrierten Modelllinie in Amazon SageMaker Studio finden Sie unter[Details zur Modellabstammung in Studio anzeigen](model-registry-lineage-view-studio.md).

Sie können Ihre Lineage-Entitäten abfragen, um:
+ Rufen Sie alle Datensätze ab, die bei der Erstellung eines Modells verwendet wurden.
+ Ruft alle Aufträge ab, die zur Erstellung eines Endpunkts verwendet wurden.
+ Rufen Sie alle Modelle ab, die einen Datensatz verwenden.
+ Ruft alle Endpunkte ab, die ein Modell verwenden.
+ Rufen Sie ab, welche Endpunkte aus einem bestimmten Datensatz abgeleitet wurden.
+ Rufen Sie die Pipeline-Ausführung ab, die einen Trainingsjob erstellt hat.
+ Rufen Sie die Beziehungen zwischen Entitäten zur Untersuchung, Steuerung und Reproduzierbarkeit ab.
+ Rufen Sie alle nachgeschalteten Studien ab, die das Artefakt verwenden.
+ Ruft alle Upstream-Versuche ab, die das Artefakt verwenden.
+ Ruft eine Liste von Artefakten ab, die die angegebene S3-URI verwenden.
+ Ruft Upstream-Artefakte ab, die das Datensatz-Artefakt verwenden.
+ Ruft Downstream-Artefakte ab, die das Datensatz-Artefakt verwenden.
+ Ruft Datensätze ab, die das Bildartefakt verwenden.
+ Rufen Sie Aktionen ab, die den Kontext verwenden.
+ Rufen Sie Verarbeitungsaufträge ab, die den Endpunkt verwenden.
+ Rufen Sie Transformationsaufträge ab, die den Endpunkt verwenden.
+ Rufen Sie Testkomponenten ab, die den Endpunkt verwenden.
+ Rufen Sie den ARN für die Pipeline-Ausführung ab, die der Modellpaketgruppe zugeordnet ist.
+ Ruft alle Artefakte ab, die die Aktion verwenden.
+ Ruft alle Upstream-Datensätze ab, die die Aktion zur Genehmigung des Modellpakets verwenden.
+ Rufen Sie das Modellpaket aus der Aktion zur Genehmigung von Modellpaketen ab.
+ Ruft Downstream-Endpunktkontexte ab, die den Endpunkt verwenden.
+ Rufen Sie den ARN für die Pipeline-Ausführung ab, die der Testkomponente zugeordnet ist.
+ Rufen Sie Datensätze ab, die die Testkomponente verwenden.
+ Rufen Sie Modelle ab, die die Testkomponente verwenden.
+ Erkunden Sie Ihre Herkunft zur Veranschaulichung.

**Einschränkungen**
+ Die Abfrage der Herkunft ist in den folgenden Regionen nicht verfügbar:
  + Afrika (Kapstadt) – af-south
  + Asien-Pazifik (Jakarta) – ap-southeast-3
  + Asien-Pazifik (Osaka) – ap-northeast-3
  + Europa (Mailand) – eu-south-1
  + Europa (Spanien) – eu-south-2
  + Israel (Tel Aviv) – il-central-1
+ Die maximale Tiefe der zu entdeckenden Beziehungen ist derzeit auf 10 begrenzt.
+ Die Filterung ist auf die folgenden Eigenschaften beschränkt: Datum der letzten Änderung, Erstellungsdatum, Typ und Entitätstyp der Herkunft. 

**Topics**
+ [Erste Schritte mit dem Abfragen von Lineage-Entitäten](#querying-lineage-entities-getting-started)

## Erste Schritte mit dem Abfragen von Lineage-Entitäten
<a name="querying-lineage-entities-getting-started"></a>

Der einfachste Weg, um loszulegen, ist entweder über:
+ [Amazon SageMaker AI SDK für Python](https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/lineage/artifact.py#L397), das viele gängige Anwendungsfälle definiert hat.
+ [Ein Notizbuch, das demonstriert, wie SageMaker AI Lineage verwendet wird, APIs um Beziehungen im Lineage-Diagramm abzufragen, finden Sie unter sagemaker-lineage-multihop-queries .ipynb.](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-lineage/sagemaker-lineage-multihop-queries.ipynb)

Die folgenden Beispiele zeigen, wie Sie mit `LineageQuery` und Abfragen erstellen können `LineageFilter` APIs , um Fragen zum Lineage Graph zu beantworten und Entitätsbeziehungen für einige Anwendungsfälle zu extrahieren.

**Example Verwenden der `LineageQuery` API zum Auffinden von Entitätszuordnungen**  

```
from sagemaker.lineage.context import Context, EndpointContext
from sagemaker.lineage.action import Action
from sagemaker.lineage.association import Association
from sagemaker.lineage.artifact import Artifact, ModelArtifact, DatasetArtifact

from sagemaker.lineage.query import (
    LineageQuery,
    LineageFilter,
    LineageSourceEnum,
    LineageEntityEnum,
    LineageQueryDirectionEnum,
)
# Find the endpoint context and model artifact that should be used for the lineage queries.

contexts = Context.list(source_uri=endpoint_arn)
context_name = list(contexts)[0].context_name
endpoint_context = EndpointContext.load(context_name=context_name)
```

**Example Finden Sie alle Datensätze, die einem Endpunkt zugeordnet sind**  

```
# Define the LineageFilter to look for entities of type `ARTIFACT` and the source of type `DATASET`.

query_filter = LineageFilter(
    entities=[LineageEntityEnum.ARTIFACT], sources=[LineageSourceEnum.DATASET]
)

# Providing this `LineageFilter` to the `LineageQuery` constructs a query that traverses through the given context `endpoint_context`
# and find all datasets.

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[endpoint_context.context_arn],
    query_filter=query_filter,
    direction=LineageQueryDirectionEnum.ASCENDANTS,
    include_edges=False,
)

# Parse through the query results to get the lineage objects corresponding to the datasets
dataset_artifacts = []
for vertex in query_result.vertices:
    dataset_artifacts.append(vertex.to_lineage_object().source.source_uri)

pp.pprint(dataset_artifacts)
```

**Example Finden Sie die Modelle, die einem Endpunkt zugeordnet sind**  

```
# Define the LineageFilter to look for entities of type `ARTIFACT` and the source of type `MODEL`.

query_filter = LineageFilter(
    entities=[LineageEntityEnum.ARTIFACT], sources=[LineageSourceEnum.MODEL]
)

# Providing this `LineageFilter` to the `LineageQuery` constructs a query that traverses through the given context `endpoint_context`
# and find all datasets.

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[endpoint_context.context_arn],
    query_filter=query_filter,
    direction=LineageQueryDirectionEnum.ASCENDANTS,
    include_edges=False,
)

# Parse through the query results to get the lineage objects corresponding to the model
model_artifacts = []
for vertex in query_result.vertices:
    model_artifacts.append(vertex.to_lineage_object().source.source_uri)

# The results of the `LineageQuery` API call return the ARN of the model deployed to the endpoint along with
# the S3 URI to the model.tar.gz file associated with the model
pp.pprint(model_artifacts)
```

**Example Finden Sie die zum Endpunkt gehörenden Komponenten der Studie**  

```
# Define the LineageFilter to look for entities of type `TRIAL_COMPONENT` and the source of type `TRAINING_JOB`.

query_filter = LineageFilter(
    entities=[LineageEntityEnum.TRIAL_COMPONENT],
    sources=[LineageSourceEnum.TRAINING_JOB],
)

# Providing this `LineageFilter` to the `LineageQuery` constructs a query that traverses through the given context `endpoint_context`
# and find all datasets.

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[endpoint_context.context_arn],
    query_filter=query_filter,
    direction=LineageQueryDirectionEnum.ASCENDANTS,
    include_edges=False,
)

# Parse through the query results to get the ARNs of the training jobs associated with this Endpoint
trial_components = []
for vertex in query_result.vertices:
    trial_components.append(vertex.arn)

pp.pprint(trial_components)
```

**Example Änderung des Schwerpunkts der Abstammung**  
Der `LineageQuery` kann so geändert werden, dass er einen unterschiedlichen `start_arns` hat, wodurch sich der Schwerpunkt der Abstammung ändert. Darüber hinaus kann `LineageFilter` mehrere Quellen und Entitäten verwenden, um den Umfang der Abfrage zu erweitern.  
Im Folgenden verwenden wir das Modell als Abstammungsschwerpunkt und ermitteln die damit verbundenen Endpunkte und Datensätze.  

```
# Get the ModelArtifact

model_artifact_summary = list(Artifact.list(source_uri=model_package_arn))[0]
model_artifact = ModelArtifact.load(artifact_arn=model_artifact_summary.artifact_arn)
query_filter = LineageFilter(
    entities=[LineageEntityEnum.ARTIFACT],
    sources=[LineageSourceEnum.ENDPOINT, LineageSourceEnum.DATASET],
)

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[model_artifact.artifact_arn],  # Model is the starting artifact
    query_filter=query_filter,
    # Find all the entities that descend from the model, i.e. the endpoint
    direction=LineageQueryDirectionEnum.DESCENDANTS,
    include_edges=False,
)

associations = []
for vertex in query_result.vertices:
    associations.append(vertex.to_lineage_object().source.source_uri)

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[model_artifact.artifact_arn],  # Model is the starting artifact
    query_filter=query_filter,
    # Find all the entities that ascend from the model, i.e. the datasets
    direction=LineageQueryDirectionEnum.ASCENDANTS,
    include_edges=False,
)

for vertex in query_result.vertices:
    associations.append(vertex.to_lineage_object().source.source_uri)

pp.pprint(associations)
```

**Example `LineageQueryDirectionEnum.BOTH` wird verwendet, um aufsteigende und absteigende Beziehungen zu finden**  
Wenn die Richtung auf `BOTH` eingestellt ist, durchläuft die Abfrage den Graphen, um Beziehungen zwischen aufsteigenden und untergeordneten Werten zu finden. Diese Durchquerung erfolgt nicht nur vom Startknoten aus, sondern auch von jedem Knoten aus, der besucht wird. Beispiel: Wenn ein Trainingsjob zweimal ausgeführt wird und beide durch den Trainingsjob generierten Modelle auf Endpunkten bereitgestellt werden, `BOTH` zeigt das Ergebnis der Abfrage mit eingeschalteter Richtung beide Endpunkte an. Das liegt daran, dass dasselbe Bild für das Training und die Bereitstellung des Modells verwendet wird. Da das Bild dem Modell gemeinsam ist, erscheinen das `start_arn` und die beiden Endpunkte im Abfrageergebnis.  

```
query_filter = LineageFilter(
    entities=[LineageEntityEnum.ARTIFACT],
    sources=[LineageSourceEnum.ENDPOINT, LineageSourceEnum.DATASET],
)

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[model_artifact.artifact_arn],  # Model is the starting artifact
    query_filter=query_filter,
    # This specifies that the query should look for associations both ascending and descending for the start
    direction=LineageQueryDirectionEnum.BOTH,
    include_edges=False,
)

associations = []
for vertex in query_result.vertices:
    associations.append(vertex.to_lineage_object().source.source_uri)

pp.pprint(associations)
```

**Example Anweisungen in `LineageQuery` – `ASCENDANTS` vs. `DESCENDANTS`**  
Um die Richtung im Lineage Graph zu verstehen, verwenden Sie das folgende Entitätsbeziehungsdiagramm: Datensatz -> Trainingsjob -> Modell -> Endpunkt  
Der Endpunkt ist ein Nachkomme des Modells, und das Modell ist ein Nachkomme des Datensatzes. In ähnlicher Weise ist das Modell ein Aszendent des Endpunkts. Der `direction` Parameter kann verwendet werden, um anzugeben, ob die Abfrage Entitäten zurückgeben soll, die von der Entität in `start_arns` abstammen oder aufsteigend sind. Wenn der `start_arns` ein Modell enthält und die Richtung `DESCENDANTS` lautet, gibt die Abfrage den Endpunkt zurück. Wenn die Richtung `ASCENDANTS` lautet, gibt die Abfrage den Datensatz zurück.  

```
# In this example, we'll look at the impact of specifying the direction as ASCENDANT or DESCENDANT in a `LineageQuery`.

query_filter = LineageFilter(
    entities=[LineageEntityEnum.ARTIFACT],
    sources=[
        LineageSourceEnum.ENDPOINT,
        LineageSourceEnum.MODEL,
        LineageSourceEnum.DATASET,
        LineageSourceEnum.TRAINING_JOB,
    ],
)

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[model_artifact.artifact_arn],
    query_filter=query_filter,
    direction=LineageQueryDirectionEnum.ASCENDANTS,
    include_edges=False,
)

ascendant_artifacts = []

# The lineage entity returned for the Training Job is a TrialComponent which can't be converted to a
# lineage object using the method `to_lineage_object()` so we extract the TrialComponent ARN.
for vertex in query_result.vertices:
    try:
        ascendant_artifacts.append(vertex.to_lineage_object().source.source_uri)
    except:
        ascendant_artifacts.append(vertex.arn)

print("Ascendant artifacts : ")
pp.pprint(ascendant_artifacts)

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[model_artifact.artifact_arn],
    query_filter=query_filter,
    direction=LineageQueryDirectionEnum.DESCENDANTS,
    include_edges=False,
)

descendant_artifacts = []
for vertex in query_result.vertices:
    try:
        descendant_artifacts.append(vertex.to_lineage_object().source.source_uri)
    except:
        # Handling TrialComponents.
        descendant_artifacts.append(vertex.arn)

print("Descendant artifacts : ")
pp.pprint(descendant_artifacts)
```

**Example SDK-Hilfsfunktionen zur Vereinfachung von Abstammungsabfragen**  
Die Klassen `EndpointContext`, `ModelArtifact` und `DatasetArtifact` verfügen über Hilfsfunktionen, die die `LineageQuery` API überlagern, um die Nutzung bestimmter Abstammungsabfragen zu vereinfachen. Das folgende Beispiel zeigt, wie diese Hilfsfunktionen verwendet werden können.  

```
# Find all the datasets associated with this endpoint

datasets = []
dataset_artifacts = endpoint_context.dataset_artifacts()
for dataset in dataset_artifacts:
    datasets.append(dataset.source.source_uri)
print("Datasets : ", datasets)

# Find the training jobs associated with the endpoint
training_job_artifacts = endpoint_context.training_job_arns()
training_jobs = []
for training_job in training_job_artifacts:
    training_jobs.append(training_job)
print("Training Jobs : ", training_jobs)

# Get the ARN for the pipeline execution associated with this endpoint (if any)
pipeline_executions = endpoint_context.pipeline_execution_arn()
if pipeline_executions:
    for pipeline in pipelines_executions:
        print(pipeline)

# Here we use the `ModelArtifact` class to find all the datasets and endpoints associated with the model

dataset_artifacts = model_artifact.dataset_artifacts()
endpoint_contexts = model_artifact.endpoint_contexts()

datasets = [dataset.source.source_uri for dataset in dataset_artifacts]
endpoints = [endpoint.source.source_uri for endpoint in endpoint_contexts]

print("Datasets associated with this model : ")
pp.pprint(datasets)

print("Endpoints associated with this model : ")
pp.pprint(endpoints)

# Here we use the `DatasetArtifact` class to find all the endpoints hosting models that were trained with a particular dataset
# Find the artifact associated with the dataset

dataset_artifact_arn = list(Artifact.list(source_uri=training_data))[0].artifact_arn
dataset_artifact = DatasetArtifact.load(artifact_arn=dataset_artifact_arn)

# Find the endpoints that used this training dataset
endpoint_contexts = dataset_artifact.endpoint_contexts()
endpoints = [endpoint.source.source_uri for endpoint in endpoint_contexts]

print("Endpoints associated with the training dataset {}".format(training_data))
pp.pprint(endpoints)
```

**Example Holen Sie sich eine Visualisierung eines Lineage-Diagramms**  
Im Beispiel-Notebook [visualizer.py](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-lineage/visualizer.py) steht eine Hilfsklasse `Visualizer` zur Verfügung, die beim Zeichnen des Liniendiagramms hilft. Wenn die Abfrageantwort gerendert wird, wird ein Diagramm mit den Abstammungsbeziehungen von `StartArns` angezeigt. Aus der `StartArns` Visualisierung gehen die Beziehungen zu den anderen Abstammungsentitäten hervor, die in der `query_lineage` API-Aktion zurückgegeben wurden.  

```
# Graph APIs
# Here we use the boto3 `query_lineage` API to generate the query response to plot.

from visualizer import Visualizer

query_response = sm_client.query_lineage(
    StartArns=[endpoint_context.context_arn], Direction="Ascendants", IncludeEdges=True
)

viz = Visualizer()
viz.render(query_response, "Endpoint")
        
        query_response = sm_client.query_lineage(
    StartArns=[model_artifact.artifact_arn], Direction="Ascendants", IncludeEdges=True
)
viz.render(query_response, "Model")
```

# Kontoübergreifende Nachverfolgung von Lineage
<a name="xaccount-lineage-tracking"></a>

Amazon SageMaker AI unterstützt die Nachverfolgung von Herkunftsentitäten von einem anderen AWS Konto aus. Andere AWS Konten können ihre Herkunftsentitäten mit Ihnen teilen, und Sie können über direkte API-Aufrufe oder SageMaker KI-Abstammungsabfragen auf diese Abstammungsentitäten zugreifen.

SageMaker KI hilft Ihnen dabei [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html), Ihre Lineage-Ressourcen sicher zu teilen. Sie können Ihre Ressourcen über die [AWS RAM Konsole](https://console.aws.amazon.com/ram/home) teilen.



## Einrichten der kontoübergreifenden Abstammungsverfolgung
<a name="setup-xaccount-lineage-tracking"></a>

Sie können Ihre [Entitäten zur Abstammungsverfolgung](lineage-tracking-entities.md) über eine Abstammungsgruppe in Amazon SageMaker AI gruppieren und teilen. SageMaker AI unterstützt nur eine Standard-Abstammungsgruppe pro Konto. SageMaker AI erstellt die Standard-Abstammungsgruppe immer dann, wenn in Ihrem Konto eine Abstammungsentität erstellt wird. Jede Lineage-Entität, die Ihrem Konto gehört, ist dieser Standard-Abstammungsgruppe zugewiesen. Um Abstammungsentitäten mit einem anderen Konto zu teilen, teilen Sie diese Standard-Herkunftsgruppe mit diesem Konto.

**Anmerkung**  
Sie können alle Entitäten zur Abstammungsverfolgung in einer Abstammungsgruppe gemeinsam nutzen oder keine.

Erstellen Sie mithilfe der Konsole eine Ressourcenfreigabe für Ihre Lineage-Entitäten. AWS Resource Access Manager Weitere Informationen finden Sie unter [Freigeben Ihrer AWS -Ressourcen](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html) im *AWS Resource Access Manager -Benutzerhandbuch*.

**Anmerkung**  
Nachdem die Ressourcenfreigabe erstellt wurde, kann es einige Minuten dauern, bis die Zuordnung von Ressource und Prinzipal abgeschlossen ist. Sobald die Zuordnung eingerichtet ist, erhält das gemeinsam genutzte Konto eine Einladung, um dem Ressourcenfreigabe beizutreten. Das gemeinsame Konto muss die Einladung annehmen, um Zugriff auf gemeinsam genutzte Ressourcen zu erhalten. Weitere Informationen zum Annehmen einer Einladung zur gemeinsamen Nutzung von Ressourcen finden Sie unter [Verwenden von gemeinsam genutzten AWS Ressourcen](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-shared.html) im *AWS Resource Access Manager Manager-Benutzerhandbuch*. AWS RAM

### Ihre kontoübergreifende Ressourcenrichtlinie zur Nachverfolgung der Herkunft
<a name="setup-xaccount-lineage-tracking-resource-policy"></a>

Amazon SageMaker AI unterstützt nur eine Art von Ressourcenrichtlinie. Die SageMaker KI-Ressourcenrichtlinie muss alle der folgenden Operationen zulassen:

```
"sagemaker:DescribeAction"
"sagemaker:DescribeArtifact"
"sagemaker:DescribeContext"
"sagemaker:DescribeTrialComponent"
"sagemaker:AddAssociation"
"sagemaker:DeleteAssociation"
"sagemaker:QueryLineage"
```

**Example Im Folgenden finden Sie eine SageMaker KI-Ressourcenrichtlinie, die AWS Resource Access Manager zum Erstellen einer gemeinsamen Nutzung einer Ressource für eine Accounts Lineage-Gruppe erstellt wurde.**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "FullLineageAccess",
      "Effect": "Allow",
      "Principal": {
        "AWS": "111122223333"
      },
      "Action": [
        "sagemaker:DescribeAction",
        "sagemaker:DescribeArtifact",
        "sagemaker:DescribeContext",
        "sagemaker:DescribeTrialComponent",
        "sagemaker:AddAssociation",
        "sagemaker:DeleteAssociation",
        "sagemaker:QueryLineage"
      ],
      "Resource": "arn:aws:sagemaker:us-west-2:111111111111:lineage-group/sagemaker-default-lineage-group"
    }
  ]
}
```

## Einrichten von kontoübergreifenden Lineage-Entitäten
<a name="tracking-lineage-xaccount"></a>

Mit der kontoübergreifenden Abstammungsverfolgung können Sie mithilfe derselben `AddAssociation` API-Aktion Abstammungseinheiten in verschiedenen Konten verknüpfen. Wenn Sie zwei Lineage-Entitäten verknüpfen, überprüft SageMaker AI, ob Sie über die erforderlichen Berechtigungen verfügen, um die `AddAssociation` API-Aktion für beide Lineage-Entitäten durchzuführen. SageMaker AI stellt dann die Zuordnung her. Wenn Sie nicht über die erforderlichen Berechtigungen verfügen, erstellt SageMaker KI die Zuordnung *nicht*. Sobald die kontenübergreifende Verknüpfung eingerichtet ist, können Sie über die `QueryLineage` API-Aktion von der anderen aus auf eine der beiden Lineage-Entitäten zugreifen. Weitere Informationen finden Sie unter [Abfragen von Lineage-Entitäten](querying-lineage-entities.md).

Wenn Sie kontenübergreifenden Zugriff haben, erstellt SageMaker KI nicht nur automatisch Lineage-Entitäten, sondern verbindet auch Artefakte, SageMaker die auf dasselbe Objekt oder dieselben Daten verweisen. Wenn die Daten aus einem Konto von verschiedenen Konten für die Nachverfolgung der Herkunft verwendet werden, erstellt SageMaker KI in jedem Konto ein Artefakt, um diese Daten nachzuverfolgen. Bei der kontoübergreifenden Abstammung überprüft SageMaker KI jedes Mal, wenn SageMaker KI neue Artefakte erstellt, ob weitere Artefakte für dieselben Daten erstellt wurden, die ebenfalls mit Ihnen geteilt werden. SageMaker KI stellt dann Verknüpfungen zwischen dem neu erstellten Artefakt und jedem der Artefakte her, die mit Ihnen geteilt wurden, wobei die `AssociationType` Einstellung auf eingestellt ist. `SameAs` Sie können dann die `[QueryLineage](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_QueryLineage.html)` API-Aktion verwenden, um die Lineage-Entitäten in Ihrem eigenen Konto zu Lineage-Entitäten zu durchsuchen, die mit Ihnen geteilt werden, aber einem anderen AWS Konto gehören. Weitere Informationen finden Sie unter [Abfragen von Lineage-Entitäten](querying-lineage-entities.md).

**Topics**
+ [Von einem anderen Konto aus auf Lineage-Ressourcen zugreifen](#tracking-lineage-xaccount-accessing-resources)
+ [Autorisierung für die Abfrage von kontenübergreifenden Lineage-Entitäten](#tracking-lineage-xaccount-authorization)

### Von einem anderen Konto aus auf Lineage-Ressourcen zugreifen
<a name="tracking-lineage-xaccount-accessing-resources"></a>

Sobald der kontoübergreifende Zugriff für die gemeinsame Nutzung von Lineage eingerichtet wurde, können Sie die folgenden SageMaker API-Aktionen direkt mit dem ARN aufrufen, um die gemeinsam genutzten Lineage-Entitäten von einem anderen Konto aus zu beschreiben:
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAction.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAction.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeArtifact.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeArtifact.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeContext.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeContext.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrialComponent.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrialComponent.html)

Mithilfe der folgenden API-Aktionen können Sie auch [Verknüpfungen](https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking-entities.html) für Lineage-Entitäten verwalten, die verschiedenen Konten gehören, die mit Ihnen gemeinsam genutzt werden: SageMaker 
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddAssociation.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddAssociation.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteAssociation.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteAssociation.html)

[Ein Notizbuch, das demonstriert, wie SageMaker KI Lineage verwendet wird, um die Herkunft von Konten APIs abzufragen, finden Sie unter -with-ram.ipynb. sagemaker-lineage-cross-account](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-lineage/sagemaker-lineage-cross-account-with-ram.ipynb)

### Autorisierung für die Abfrage von kontenübergreifenden Lineage-Entitäten
<a name="tracking-lineage-xaccount-authorization"></a>

Amazon SageMaker AI muss überprüfen, ob Sie berechtigt sind, die `QueryLineage` API-Aktion auf dem durchzuführen`StartArns`. Dies wird durch die Ressourcenrichtlinie durchgesetzt, die `LineageGroup` beigefügt ist. Das Ergebnis dieser Aktion umfasst alle Lineage-Entitäten, auf die Sie Zugriff haben, unabhängig davon, ob sie Ihrem Konto gehören oder von einem anderen Konto gemeinsam genutzt werden. Weitere Informationen finden Sie unter [Abfragen von Lineage-Entitäten](querying-lineage-entities.md).

# Bereitstellung von Modellregistrierung mit Model Registry
<a name="model-registry"></a>

Mit der Amazon SageMaker Model Registry können Sie Folgendes tun:
+ Katalogmodelle für die Produktion.
+ Verwalten von Modellversionen.
+ Ordnen Sie einem Modell Metadaten wie Trainingsmetriken zu.
+ Sehen Sie sich Informationen von Amazon SageMaker Model Cards in Ihren registrierten Modellen an. 
+ Sehen Sie sich die Modellherkunft an, um die Rückverfolgbarkeit und Reproduzierbarkeit zu gewährleisten.
+ Definieren Sie ein Staging-Konstrukt, das Modelle während Ihres gesamten Modelllebenszyklus durchlaufen können.
+ Verwalten Sie den Genehmigungsstatus eines Modells.
+ Stellen Sie Modelle für die Produktion bereit.
+ Automatisieren Sie die Modellbereitstellung mit CI/CD.
+ Geben Sie Modelle für andere -Benutzer frei.

Katalogisieren Sie Modelle, indem Sie SageMaker Model Registry Model (Package) -Gruppen erstellen, die verschiedene Versionen eines Modells enthalten. Sie können eine Modellgruppe erstellen, die alle Modelle verfolgt, die Sie zur Lösung eines bestimmten Problems trainiert haben. Anschließend können Sie jedes Modell, das Sie trainieren, registrieren und das Model Registry fügt es der Modellgruppe als neue Modellversion hinzu. Schließlich können Sie Kategorien von Modellgruppen erstellen, indem Sie sie weiter in SageMaker Modellregistrierungssammlungen organisieren. Ein typischer Workflow könnte wie folgt aussehen:
+ Erstellen Sie eine Modellgruppe.
+ Erstellen Sie eine ML-Pipeline, die ein Modell schult. Informationen zu SageMaker Pipelines finden Sie unter[Pipeline-Aktionen](pipelines-build.md).
+ Erstellen Sie für jeden Lauf der ML-Pipeline eine Modellversion, die Sie in der Modellgruppe registrieren, die Sie im ersten Schritt erstellt haben.
+ Fügen Sie Ihre Modellgruppe zu einer oder mehreren Modellregistrierungssammlungen hinzu.

Einzelheiten zum Erstellen von Modellen, Modellversionen und Modellgruppen und zum Arbeiten mit ihnen finden Sie unter [Modelle, Modellversionen und Modellgruppen aus der Modellregistrierung](model-registry-models.md). Wenn Sie Ihre Modellgruppen optional weiter in Sammlungen gruppieren möchten, finden Sie weitere Informationen unter [Modellregistrierungs-Sammlungen](modelcollections.md).

# Modelle, Modellversionen und Modellgruppen aus der Modellregistrierung
<a name="model-registry-models"></a>

Die SageMaker Model Registry ist in mehrere Modell- (Package-) Gruppen mit Modellpaketen in jeder Gruppe strukturiert. Diese Modellgruppen können optional zu einer oder mehreren Sammlungen hinzugefügt werden. Jedes Modellpaket in einer Modellgruppe entspricht einem trainierten Modell. Die Version jedes Modellpakets ist ein numerischer Wert, der bei 1 beginnt und mit jedem neuen Modellpaket, das einer Modellgruppe hinzugefügt wird, inkrementiert wird. Wenn beispielsweise 5 Modellpakete zu einer Modellgruppe hinzugefügt werden, lauten die Modellpaketversionen 1, 2, 3, 4 und 5. 

 Ein Modellpaket ist das eigentliche Modell, das als versionierte Entität in der Model Registry registriert ist. In SageMaker AI gibt es zwei Arten von Modellpaketen. Ein Typ wird im AWS Marketplace und der andere in der Model Registry verwendet. Im AWS Marketplace verwendete Modellpakete sind keine versionierbaren Entitäten und nicht mit Modellgruppen in der Modellregistrierung verknüpft. Die Model Registry empfängt jedes neue Modell, das Sie neu trainieren, gibt ihm eine Version und weist es einer Modellgruppe innerhalb der Model Registry zu. Die folgende Abbildung zeigt ein Beispiel für eine Modellgruppe mit 25 Modellen mit aufeinanderfolgenden Versionen. Weitere Informationen zu Modellpaketen, die im AWS Marketplace verwendet werden, finden Sie unter[Algorithmen und Pakete in der AWS Marketplace](sagemaker-marketplace.md).

Die in der Model Registry verwendeten Modellpakete sind versioniert und **müssen** einer Modellgruppe zugeordnet sein. Der ARN dieses Modellpakettyps hat die Struktur: `'arn:aws:sagemaker:region:account:model-package-group/version'`

In den folgenden Themen erfahren Sie, wie Sie Modelle, Modellversionen und Modellgruppen in der Modellregistrierung erstellen und mit ihnen arbeiten.

**Topics**
+ [Erstellen einer Modellgruppe](model-registry-model-group.md)
+ [Löschen einer Modellgruppe](model-registry-delete-model-group.md)
+ [Registrieren Sie eine Modellversion](model-registry-version.md)
+ [Modellgruppen und Versionen anzeigen](model-registry-view.md)
+ [Aktualisieren der Details einer Modellversion](model-registry-details.md)
+ [Vergleichen von Modellversionen](model-registry-version-compare.md)
+ [Anzeigen und Verwalten von Modellgruppen- und Modellversions-Tags](model-registry-tags.md)
+ [Eine Modellversion löschen](model-registry-delete-model-version.md)
+ [Staging Construct für Ihren Modelllebenszyklus](model-registry-staging-construct.md)
+ [Aktualisieren des Genehmigungsstatus eines Modells](model-registry-approve.md)
+ [Bereitstellen eines Modells aus der Registrierung mit Python](model-registry-deploy.md)
+ [Bereitstellen eines Modells in Studio](model-registry-deploy-studio.md)
+ [Kontoübergreifende Auffindbarkeit](model-registry-ram.md)
+ [Den Bereitstellungsverlauf eines Modells anzeigen](model-registry-deploy-history.md)
+ [Details zur Modellabstammung in Studio anzeigen](model-registry-lineage-view-studio.md)

# Erstellen einer Modellgruppe
<a name="model-registry-model-group"></a>

Eine Modellgruppe enthält verschiedene Versionen eines Modells. Sie können eine Modellgruppe erstellen, die alle Modelle verfolgt, die Sie zur Lösung eines bestimmten Problems trainiert haben. Erstellen Sie eine Modellgruppe, indem Sie entweder die AWS SDK für Python (Boto3) oder die Amazon SageMaker Studio-Konsole verwenden.

## Erstellen einer Modellgruppe (Boto3)
<a name="model-registry-package-group-api"></a>

**Wichtig**  
Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Tagging erlaubt, können "AccessDenied" Fehler beim Versuch, Ressourcen zu erstellen, auftreten. Weitere Informationen finden Sie unter [Erteilen Sie Berechtigungen für das Taggen von SageMaker KI-Ressourcen](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS verwaltete Richtlinien für Amazon SageMaker AI](security-iam-awsmanpol.md)die Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, beinhalten bereits Berechtigungen zum Hinzufügen von Tags beim Erstellen dieser Ressourcen.

Um eine Modellgruppe mithilfe von Boto3 zu erstellen, rufen Sie die `create_model_package_group`-API-Operation auf und geben Sie einen Namen und eine Beschreibung als Parameter an. Im folgenden Beispiel wird gezeigt, wie eine Modellgruppe erstellt wird. Die Antwort auf den `create_model_package_group` Anruf ist der Amazon-Ressourcenname (ARN) der neuen Modellgruppe.

Importieren Sie zunächst die erforderlichen Pakete und richten Sie den SageMaker AI Boto3-Client ein.

```
import time
import os
from sagemaker import get_execution_role, session
import boto3

region = boto3.Session().region_name

role = get_execution_role()

sm_client = boto3.client('sagemaker', region_name=region)
```

Erstellen Sie nun die Modellgruppe.

```
import time
model_package_group_name = "scikit-iris-detector-" + str(round(time.time()))
model_package_group_input_dict = {
 "ModelPackageGroupName" : model_package_group_name,
 "ModelPackageGroupDescription" : "Sample model package group"
}

create_model_package_group_response = sm_client.create_model_package_group(**model_package_group_input_dict)
print('ModelPackageGroup Arn : {}'.format(create_model_package_group_response['ModelPackageGroupArn']))
```

## Eine Modellgruppe erstellen (Studio oder Studio Classic)
<a name="model-registry-package-group-studio"></a>

Um eine Modellgruppe in der Amazon SageMaker Studio-Konsole zu erstellen, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Models (Modelle)** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie „**Registrieren**“ und anschließend „**Modellgruppe“**.

1. Geben Sie in das Dialogfeld **Modellgruppe registrieren** die folgenden Informationen ein:
   + den Name der neuen Modellgruppe in das Feld **Modellgruppenname**
   + (Optional) eine Beschreibung für die Modellgruppe im Feld **Beschreibung**
   + (Optional) alle Schlüssel-Wert-Paare, die Sie mit der Modellgruppe verknüpfen möchten, in das Feld **Tags** Weitere Informationen zu Tags finden Sie unter [Ressourcen AWS kennzeichnen](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) im *Allgemeine AWS-Referenz*.

1. Wählen Sie **Modellgruppe registrieren**.

1. (Optional) Wählen Sie auf der Seite **Modelle** die Registerkarte **Registrierte Modelle** und dann **Modellgruppen** aus. Vergewissern Sie sich, dass Ihre neu erstellte Modellgruppe in der Liste der Modellgruppen angezeigt wird.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellregistrierung**.

1. Wählen Sie **Aktionen** und anschließend **Protokollgruppe erstellen** aus.

1. Geben Sie in das Dialogfeld **Modellgruppe erstellen** die folgenden Informationen ein:
   + Geben Sie den Namen der neuen Modellgruppe in das Feld **Modellgruppenname** ein.
   + (Optional) Geben Sie eine Beschreibung für die Modellgruppe im Feld **Beschreibung** ein.
   + (Optional) Geben Sie alle Schlüssel-Wert-Paare, die Sie mit der Modellgruppe verknüpfen möchten, in das Feld **Tags** ein. Weitere Informationen zu Tags finden Sie unter [Ressourcen AWS kennzeichnen](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) im *Allgemeine AWS-Referenz*.
   + (Optional) Wählen Sie im Feld **Projekt** ein Projekt aus, dem Sie die Modellgruppe zuordnen möchten. Weitere Informationen zu Projekten finden Sie unter [MLOps Automatisierung mit SageMaker Projekten](sagemaker-projects.md).

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

------

# Löschen einer Modellgruppe
<a name="model-registry-delete-model-group"></a>

Dieses Verfahren zeigt, wie eine Modellgruppe in der Amazon SageMaker Studio-Konsole gelöscht wird. Wenn Sie eine Modellgruppe löschen, verlieren Sie den Zugriff auf die Modellversionen in der Modellgruppe.

## Eine Modellgruppe löschen (Studio oder Studio Classic)
<a name="model-registry-delete-model-group-studio"></a>

**Wichtig**  
Sie können nur eine leere Modellgruppe löschen. Bevor Sie Ihre Modellgruppe löschen, entfernen Sie deren Modellversionen, falls vorhanden.

Um eine Modellgruppe in der Amazon SageMaker Studio-Konsole zu löschen, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Models (Modelle)** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Aktivieren Sie in der Liste der Modellgruppen das Kontrollkästchen neben dem Namen der Modellgruppe aus, die Sie löschen möchten.

1. Wählen Sie die vertikale Ellipse über der oberen rechten Ecke der Modellgruppenliste und wählen Sie **Löschen** aus.

1. Wählen **Sie im Dialogfeld Modellgruppe löschen** die Option **Ja, Modellgruppe löschen** aus.

1. Wählen Sie **Löschen** aus.

1. Vergewissern Sie sich, dass Ihre gelöschten Modellgruppen nicht mehr in der Liste der Modellgruppen angezeigt werden.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**. Eine Liste Ihrer Modellgruppen wird angezeigt.

1. Wählen Sie in der Liste der Modellgruppen den Namen der Modellgruppe aus, die Sie löschen möchten.

1. Wählen Sie in der oberen rechten Ecke die Option **Entfernen** aus.

1. Geben Sie im Bestätigungsdialogfeld `REMOVE` ein.

1. Wählen Sie **Remove (Entfernen)** aus.

------

# Registrieren Sie eine Modellversion
<a name="model-registry-version"></a>

Sie können ein Amazon SageMaker AI-Modell registrieren, indem Sie eine Modellversion erstellen, die die Modellgruppe angibt, zu der es gehört. Eine Modellversion muss sowohl die Modellartefakte (die trainierten Gewichte eines Modells) als auch optional den Inferenzcode für das Modell enthalten.

Eine *Inferenz-Pipeline* ist ein SageMaker KI-Modell, das aus einer linearen Abfolge von zwei bis fünfzehn Containern besteht, die Inferenzanfragen verarbeiten. Sie registrieren eine Inferenz-Pipeline, indem Sie die Container und die zugehörigen Umgebungsvariablen angeben. Weitere Informationen zu Inferenz-Pipelines finden Sie unter [Inferenz-Pipelines in Amazon AI SageMaker](inference-pipelines.md).

Sie können ein Modell bei einer Inferenz-Pipeline registrieren, indem Sie die Container und die zugehörigen Umgebungsvariablen angeben. Gehen Sie wie folgt vor, um eine Modellversion mit einer Inferenzpipeline zu erstellen AWS SDK für Python (Boto3), indem Sie entweder die Amazon SageMaker Studio-Konsole verwenden oder indem Sie einen Schritt in einer SageMaker KI-Modellerstellungspipeline erstellen. 

**Topics**
+ [Registrieren Sie eine Modellversion (SageMaker AI-Pipelines)](#model-registry-pipeline)
+ [Registrieren einer Modellversion (Boto3)](#model-registry-version-api)
+ [Registrieren einer Modellversion (Studio oder Studio Classic)](#model-registry-studio)
+ [Registrieren Sie eine Modellversion von einem anderen Konto aus](#model-registry-version-xaccount)

## Registrieren Sie eine Modellversion (SageMaker AI-Pipelines)
<a name="model-registry-pipeline"></a>

Um eine Modellversion mithilfe einer SageMaker KI-Modellerstellungspipeline zu registrieren, erstellen Sie einen `RegisterModel` Schritt in Ihrer Pipeline. Weitere Informationen zum Erstellen eines `RegisterModel` als Teil einer Pipeline finden Sie unter [Schritt 8: Definieren Sie einen RegisterModel Schritt zum Erstellen eines Modellpakets](define-pipeline.md#define-pipeline-register).

## Registrieren einer Modellversion (Boto3)
<a name="model-registry-version-api"></a>

Um eine Modellversion mithilfe von Boto3 zu registrieren, rufen Sie die `create_model_package`-API-Operation auf.

Zunächst richten Sie das Parameterwörterbuch ein, das an die `create_model_package`-API-Operation übergeben werden soll.

```
# Specify the model source
model_url = "s3://your-bucket-name/model.tar.gz"

modelpackage_inference_specification =  {
    "InferenceSpecification": {
      "Containers": [
         {
            "Image": image_uri,
	    "ModelDataUrl": model_url
         }
      ],
      "SupportedContentTypes": [ "text/csv" ],
      "SupportedResponseMIMETypes": [ "text/csv" ],
   }
 }

# Alternatively, you can specify the model source like this:
# modelpackage_inference_specification["InferenceSpecification"]["Containers"][0]["ModelDataUrl"]=model_url

create_model_package_input_dict = {
    "ModelPackageGroupName" : model_package_group_name,
    "ModelPackageDescription" : "Model to detect 3 different types of irises (Setosa, Versicolour, and Virginica)",
    "ModelApprovalStatus" : "PendingManualApproval"
}
create_model_package_input_dict.update(modelpackage_inference_specification)
```

Dann rufen Sie die `create_model_package`-API-Operation auf und übergeben das Parameterwörterbuch, das Sie gerade eingerichtet haben.

```
create_model_package_response = sm_client.create_model_package(**create_model_package_input_dict)
model_package_arn = create_model_package_response["ModelPackageArn"]
print('ModelPackage Version ARN : {}'.format(model_package_arn))
```

## Registrieren einer Modellversion (Studio oder Studio Classic)
<a name="model-registry-studio"></a>

Um eine Modellversion in der Amazon SageMaker Studio-Konsole zu registrieren, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Modelle** aus dem Menu aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Optionen **Modellgruppen** und **Meine Modelle** aus, sofern diese nicht bereits ausgewählt sind.

1. Wählen Sie **Registrieren** aus. Dadurch wird die Seite **Modell registrieren** geöffnet.

1. Befolgen Sie die Anweisungen auf der Seite **Modell registrieren** 

1. Nachdem Sie Ihre Auswahl überprüft haben, wählen Sie **Registrieren**. Sobald Sie fertig sind, werden Sie zur Seite mit der **Übersicht über** die Modellversionen weitergeleitet.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Öffnen Sie das Formular **Version registrieren**. Dafür stehen Ihnen zwei Optionen zur Verfügung:
   + Wählen Sie **Aktionen** und dann **Flow-Protokoll erstellen** aus.
   + Wählen Sie den Namen der Modellgruppe aus, für die Sie eine Modellversion erstellen möchten, und wählen Sie dann **Modellversion erstellen**.

1. Geben **Sie im Formular Modellversion registrieren** die folgenden Informationen ein:
   + Wählen Sie in der Dropdown-Liste **Name der Modellpaketgruppe** den Namen der Modellgruppe aus.
   + (Optional) Geben Sie eine Beschreibung für Ihre Modellversion ein.
   + Wählen Sie in der Dropdown-Liste **Status der Modellgenehmigung** den Status der Versionsgenehmigung aus.
   + (Optional) Fügen Sie im Feld **Benutzerdefinierte Metadaten** benutzerdefinierte Tags als Schlüssel-Wert-Paare hinzu.

1. Wählen Sie **Weiter** aus.

1. Geben Sie im Formular **Inferenzspezifikation** die folgenden Informationen ein:
   + Geben Sie den Speicherort Ihres Inferenz-Image ein.
   + Geben Sie den Speicherort Ihrer Modelldatenartefakte ein.
   + (Optional) Geben Sie Informationen zu Images ein, die für Transformations- und Echtzeit-Inferenzaufträge verwendet werden, sowie zu unterstützten Eingabe- und Ausgabe-MIME-Typen.

1. Wählen Sie **Weiter** aus.

1. (Optional) Geben Sie Details an, um Empfehlungen für Endgeräte zu geben.

1. Wählen Sie **Weiter** aus.

1. (Optional) Wählen Sie Modellmetriken aus, die Sie einbeziehen möchten.

1. Wählen Sie **Weiter** aus.

1. Stellen Sie sicher, dass die angezeigten Einstellungen korrekt sind, und wählen Sie **Modellversion registrieren** aus. Wenn Sie anschließend ein modales Fenster mit einer Fehlermeldung sehen, wählen Sie **Ansicht** (neben der Meldung), um die Ursache des Fehlers anzuzeigen.

1. Vergewissern Sie sich, dass Ihre neue Modellversion auf der Seite der übergeordneten Modellgruppe angezeigt wird.

------

## Registrieren Sie eine Modellversion von einem anderen Konto aus
<a name="model-registry-version-xaccount"></a>

Um Modellversionen bei einer Modellgruppe zu registrieren, die mit einem anderen AWS Konto erstellt wurde, müssen Sie eine kontoübergreifende AWS Identity and Access Management Ressourcenrichtlinie hinzufügen, um dieses Konto zu aktivieren. Beispielsweise ist ein AWS Konto in Ihrer Organisation für Schulungsmodelle zuständig, und ein anderes Konto ist für die Verwaltung, Bereitstellung und Aktualisierung von Modellen verantwortlich. Sie erstellen IAM-Ressourcenrichtlinien und wenden die Richtlinien auf die spezifische Kontoressource an, der Sie in diesem Fall Zugriff gewähren möchten. Weitere Informationen zu kontenübergreifenden Ressourcenrichtlinien finden Sie unter [Bewertungslogik für kontenübergreifende Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) im *AWS Identity and Access Management Benutzerhandbuch*. AWS

Informationen zur kontenübergreifenden Auffindbarkeit, sodass andere Konten Modellpaketgruppen vom Konto des Ressourceneigentümers aus einsehen können, finden Sie unter [Kontoübergreifende Auffindbarkeit](model-registry-ram.md).

**Anmerkung**  
Sie müssen außerdem einen KMS-Schlüssel verwenden, um die Aktion zur [Konfiguration der Ausgabedaten](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html) während des Trainings für die kontenübergreifende Bereitstellung zu verschlüsseln.

Um die kontenübergreifende Modellregistrierung in SageMaker AI zu aktivieren, müssen Sie eine kontenübergreifende Ressourcenrichtlinie für die Modellgruppe angeben, die die Modellversionen enthält. Im Folgenden finden Sie ein Beispiel, das kontenübergreifende Richtlinien für die Modellgruppe erstellt und diese Richtlinien auf diese spezifische Ressource anwendet.

Die folgende Konfiguration muss für das Quellkonto festgelegt werden, das kontenübergreifende Modelle in einer Modellgruppe registriert. In diesem Beispiel ist das Quellkonto das Modelltrainingskonto, das das Modellkonto schult und anschließend in der Modellregistrierung des Modellregistrierungskontos registriert.

Das Beispiel geht davon aus, dass Sie zuvor die folgenden Variablen definiert haben:
+ `sm_client`— Ein SageMaker AI Boto3-Client.
+ `model_package_group_name` – die Modellgruppe, der Sie Zugriff gewähren möchten.
+ `model_package_group_arn` – der Modellgruppen-ARN, für den Sie kontoübergreifenden Zugriff gewähren möchten.
+ `bucket` – der Amazon-S3-Bucket, in dem das Trainingsartefakte des Modells gespeichert sind.

Um ein Modell bereitstellen zu können, das in einem anderen Konto erstellt wurde, muss der Benutzer über eine Rolle verfügen, die Zugriff auf SageMaker KI-Aktionen hat, z. B. eine Rolle mit der `AmazonSageMakerFullAccess` verwalteten Richtlinie. Informationen zu von SageMaker KI verwalteten Richtlinien finden Sie unter[AWS verwaltete Richtlinien für Amazon SageMaker AI](security-iam-awsmanpol.md).

### Erforderliche IAM-Ressourcenrichtlinien
<a name="model-registry-version-xaccount-policies"></a>

Das folgende Diagramm zeigt die Richtlinien, die für die Registrierung eines kontenübergreifenden Modells erforderlich sind. Wie gezeigt, müssen diese Richtlinien während der Modelltraining aktiv sein, damit das Modell ordnungsgemäß im Model Registry-Konto registriert werden kann.

![\[\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/model_registry_cross_account.png)


Amazon ECR, Amazon S3 und AWS KMS Richtlinien werden in den folgenden Codebeispielen demonstriert. 

**Beispiel für eine Amazon ECR-Richtlinie**

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "ecr:BatchGetImage",
                "ecr:Describe*"
            ]
        }
    ]
}
```

------

**Beispiel für eine Amazon S3-Richtlinie**

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetBucketAcl",
                "s3:GetObjectAcl"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------

**Beispiel für eine Richtlinie AWS KMS **

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### Wenden Sie Ressourcenrichtlinien auf Konten an
<a name="model-registry-version-xaccount-policy-usage"></a>

Die folgende Richtlinienkonfiguration wendet die im vorherigen Abschnitt erläuterten Richtlinien an und muss in das Modelltrainingskonto aufgenommen werden.

```
import json

# The Model Registry account id of the Model Group 
model_registry_account = "111111111111"

# The model training account id where training happens
model_training_account = "222222222222"

# 1. Create a policy for access to the ECR repository 
# in the model training account for the Model Registry account Model Group
ecr_repository_policy = {"Version": "2012-10-17",		 	 	 
    "Statement": [{"Sid": "AddPerm",
        "Effect": "Allow",
        "Principal": {
          "AWS": f"arn:aws:iam::{model_registry_account}:root"
        },
        "Action": [
          "ecr:BatchGetImage",
          "ecr:Describe*"
        ]
    }]
}

# Convert the ECR policy from JSON dict to string
ecr_repository_policy = json.dumps(ecr_repository_policy)

# Set the new ECR policy
ecr = boto3.client('ecr')
response = ecr.set_repository_policy(
    registryId = model_training_account,
    repositoryName = "decision-trees-sample",
    policyText = ecr_repository_policy
)

# 2. Create a policy in the model training account for access to the S3 bucket 
# where the model is present in the Model Registry account Model Group
bucket_policy = {"Version": "2012-10-17",		 	 	 
    "Statement": [{"Sid": "AddPerm",
        "Effect": "Allow",
        "Principal": {"AWS": f"arn:aws:iam::{model_registry_account}:root"
        },
        "Action": [
          "s3:GetObject",
          "s3:GetBucketAcl",
          "s3:GetObjectAcl"
        ],
        "Resource": [
          "arn:aws:s3:::{bucket}/*",
	  "Resource: arn:aws:s3:::{bucket}"
        ]
    }]
}

# Convert the S3 policy from JSON dict to string
bucket_policy = json.dumps(bucket_policy)

# Set the new bucket policy
s3 = boto3.client("s3")
response = s3.put_bucket_policy(
    Bucket = bucket,
    Policy = bucket_policy)

# 3. Create the KMS grant for the key used during training for encryption
# in the model training account to the Model Registry account Model Group
client = boto3.client("kms")

response = client.create_grant(
    GranteePrincipal=model_registry_account,
    KeyId=kms_key_id
    Operations=[
        "Decrypt",
        "GenerateDataKey",
    ],
)
```

Die folgende Konfiguration muss in das Model Registry-Konto übernommen werden, in dem sich die Modellgruppe befindet.

```
# The Model Registry account id of the Model Group 
model_registry_account = "111111111111"

# 1. Create policy to allow the model training account to access the ModelPackageGroup
model_package_group_policy = {"Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPermModelPackageVersion",
            "Effect": "Allow",
            "Principal": {"AWS": f"arn:aws:iam::{model_training_account}:root"},
            "Action": ["sagemaker:CreateModelPackage"],
            "Resource": f"arn:aws:sagemaker:{region}:{model_registry_account}:model-package/{model_package_group_name}/*"
        }
    ]
}

# Convert the policy from JSON dict to string
model_package_group_policy = json.dumps(model_package_group_policy)

# Set the new policy
response = sm_client.put_model_package_group_policy(
    ModelPackageGroupName = model_package_group_name,
    ResourcePolicy = model_package_group_policy)
```

Verwenden Sie abschließend die `create_model_package` Aktion aus dem Modelltrainingskonto, um das Modellpaket im Cross-Konto zu registrieren.

```
# Specify the model source
model_url = "s3://{bucket}/model.tar.gz"

#Set up the parameter dictionary to pass to the create_model_package API operation
modelpackage_inference_specification =  {
    "InferenceSpecification": {
        "Containers": [
            {
                "Image": f"{model_training_account}.dkr.ecr.us-east-2.amazonaws.com/decision-trees-sample:latest",
                "ModelDataUrl": model_url
            }
        ],
        "SupportedContentTypes": [ "text/csv" ],
        "SupportedResponseMIMETypes": [ "text/csv" ],
    }
}

# Alternatively, you can specify the model source like this:
# modelpackage_inference_specification["InferenceSpecification"]["Containers"][0]["ModelDataUrl"]=model_url

create_model_package_input_dict = {
    "ModelPackageGroupName" : model_package_group_arn,
    "ModelPackageDescription" : "Model to detect 3 different types of irises (Setosa, Versicolour, and Virginica)",
    "ModelApprovalStatus" : "PendingManualApproval"
}
create_model_package_input_dict.update(modelpackage_inference_specification)

# Create the model package in the Model Registry account
create_model_package_response = sm_client.create_model_package(**create_model_package_input_dict)
model_package_arn = create_model_package_response["ModelPackageArn"]
print('ModelPackage Version ARN : {}'.format(model_package_arn))
```

# Modellgruppen und Versionen anzeigen
<a name="model-registry-view"></a>

Modellgruppen und Versionen helfen Ihnen bei der Organisation Ihrer Modelle. Sie können eine Liste der Modellversionen in einer Modellgruppe entweder mit der AWS SDK für Python (Boto3) (Boto3) - oder der Amazon SageMaker Studio-Konsole anzeigen.

## Eine Liste der Modellversionen in einer Gruppe anzeigen
<a name="model-registry-view-list"></a>

Sie können alle Modellversionen anzeigen, die einer Modellgruppe zugeordnet sind. Wenn eine Modellgruppe alle Modelle repräsentiert, die Sie für ein bestimmtes ML-Problem trainieren, können Sie sich alle zugehörigen Modelle ansehen.

### Eine Liste der Modellversionen in einer Gruppe anzeigen (Boto3)
<a name="model-registry-view-list-api"></a>

Um mit Boto3 einer Modellgruppe zugeordnete Modellversionen anzuzeigen, rufen Sie die `list_model_packages`-API-Operation auf und übergeben Sie den Namen der Modellgruppe als Wert des `ModelPackageGroupName`-Parameters. Der folgende Code listet die Modellversionen auf, die der Modellgruppe zugeordnet sind, die Sie in [Erstellen einer Modellgruppe (Boto3)](model-registry-model-group.md#model-registry-package-group-api) erstellt haben.

```
sm_client.list_model_packages(ModelPackageGroupName=model_package_group_name)
```

### Eine Liste der Modellversionen in einer Gruppe anzeigen (Studio oder Studio Classic)
<a name="model-registry-view-list-studio"></a>

Um eine Liste der Modellversionen in einer Modellgruppe in der Amazon SageMaker Studio-Konsole anzuzeigen, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Modelle** aus dem Menu aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie in der Liste der Modellgruppen die spitze Klammer aus.

1. Eine Liste der Modellversionen in der Modellgruppe wird angezeigt.

1. (Optional) Wählen Sie **Alle anzeigen**, falls angezeigt, um weitere Modellversionen anzuzeigen.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie aus der Liste der Modellgruppen den Namen der Modellgruppe aus, die Sie anzeigen möchten.

1. Eine neue Registerkarte mit einer Liste der Modellversionen in der Modellgruppe wird angezeigt.

------

# Aktualisieren der Details einer Modellversion
<a name="model-registry-details"></a>

Sie können Details einer bestimmten Modellversion entweder mit der AWS SDK für Python (Boto3) oder der Amazon SageMaker Studio-Konsole anzeigen und aktualisieren.

**Wichtig**  
Amazon SageMaker AI integriert Model Cards in Model Registry. Ein im Model Registry registriertes Modellpaket enthält eine vereinfachte Model Card als Bestandteil des Modellpakets. Weitere Informationen finden Sie unter [Modellpaket, Modellkartenschema (Studio)](#model-card-schema).

## Anzeigen und Aktualisieren der Details einer Modellversion (Boto3)
<a name="model-registry-details-api"></a>

Führen Sie die folgenden Schritte aus, um die Details einer Modellversion mithilfe von Boto3 anzuzeigen.

1. Rufen Sie die `list_model_packages`-API-Operation auf, um die Modellversionen in einer Modellgruppe anzuzeigen.

   ```
   sm_client.list_model_packages(ModelPackageGroupName="ModelGroup1")
   ```

   Die Antwort ist eine Liste mit Zusammenfassungen von Modellpaketen. Sie können den Amazon-Ressourcennamen (ARN) der Modellversionen aus dieser Liste abrufen.

   ```
   {'ModelPackageSummaryList': [{'ModelPackageGroupName': 'AbaloneMPG-16039329888329896',
      'ModelPackageVersion': 1,
      'ModelPackageArn': 'arn:aws:sagemaker:us-east-2:123456789012:model-package/ModelGroup1/1',
      'ModelPackageDescription': 'TestMe',
      'CreationTime': datetime.datetime(2020, 10, 29, 1, 27, 46, 46000, tzinfo=tzlocal()),
      'ModelPackageStatus': 'Completed',
      'ModelApprovalStatus': 'Approved'}],
    'ResponseMetadata': {'RequestId': '12345678-abcd-1234-abcd-aabbccddeeff',
     'HTTPStatusCode': 200,
     'HTTPHeaders': {'x-amzn-requestid': '12345678-abcd-1234-abcd-aabbccddeeff',
      'content-type': 'application/x-amz-json-1.1',
      'content-length': '349',
      'date': 'Mon, 23 Nov 2020 04:56:50 GMT'},
     'RetryAttempts': 0}}
   ```

1. Rufen Sie `describe_model_package` auf, um die Details der Modellversion zu erfahren. Sie übergeben den ARN einer Modellversion, den Sie in der Ausgabe des Aufrufs an `list_model_packages` erhalten haben.

   ```
   sm_client.describe_model_package(ModelPackageName="arn:aws:sagemaker:us-east-2:123456789012:model-package/ModelGroup1/1")
   ```

   Die Ausgabe dieses Aufrufs ist ein JSON-Objekt mit den Details zur Modellversion.

   ```
   {'ModelPackageGroupName': 'ModelGroup1',
    'ModelPackageVersion': 1,
    'ModelPackageArn': 'arn:aws:sagemaker:us-east-2:123456789012:model-package/ModelGroup/1',
    'ModelPackageDescription': 'Test Model',
    'CreationTime': datetime.datetime(2020, 10, 29, 1, 27, 46, 46000, tzinfo=tzlocal()),
    'InferenceSpecification': {'Containers': [{'Image': '257758044811.dkr.ecr.us-east-2.amazonaws.com/sagemaker-xgboost:1.0-1-cpu-py3',
       'ImageDigest': 'sha256:99fa602cff19aee33297a5926f8497ca7bcd2a391b7d600300204eef803bca66',
       'ModelDataUrl': 's3://sagemaker-us-east-2-123456789012/ModelGroup1/pipelines-0gdonccek7o9-AbaloneTrain-stmiylhtIR/output/model.tar.gz'}],
     'SupportedTransformInstanceTypes': ['ml.m5.xlarge'],
     'SupportedRealtimeInferenceInstanceTypes': ['ml.t2.medium', 'ml.m5.xlarge'],
     'SupportedContentTypes': ['text/csv'],
     'SupportedResponseMIMETypes': ['text/csv']},
    'ModelPackageStatus': 'Completed',
    'ModelPackageStatusDetails': {'ValidationStatuses': [],
     'ImageScanStatuses': []},
    'CertifyForMarketplace': False,
    'ModelApprovalStatus': 'PendingManualApproval',
    'LastModifiedTime': datetime.datetime(2020, 10, 29, 1, 28, 0, 438000, tzinfo=tzlocal()),
    'ResponseMetadata': {'RequestId': '12345678-abcd-1234-abcd-aabbccddeeff',
     'HTTPStatusCode': 200,
     'HTTPHeaders': {'x-amzn-requestid': '212345678-abcd-1234-abcd-aabbccddeeff',
      'content-type': 'application/x-amz-json-1.1',
      'content-length': '1038',
      'date': 'Mon, 23 Nov 2020 04:59:38 GMT'},
     'RetryAttempts': 0}}
   ```

### Modellpaket, Modellkartenschema (Studio)
<a name="model-card-schema"></a>

Alle Informationen zur Modellversion sind auf der Modellkarte des Modellpakets zusammengefasst. Die Modellkarte eines Modellpakets ist eine spezielle Verwendung der Amazon SageMaker Model Card und ihr Schema ist vereinfacht. Das Modellkartenschema des Modellpakets wird in der folgenden erweiterbaren Dropdownliste angezeigt.

#### Modell, Paket, Modell, Kartenschema
<a name="collapsible-section-model-package-model-card-schema"></a>

```
{
  "title": "SageMakerModelCardSchema",
  "description": "Schema of a model package’s model card.",
  "version": "0.1.0",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "model_overview": {
      "description": "Overview about the model.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "model_creator": {
          "description": "Creator of model.",
          "type": "string",
          "maxLength": 1024
        },
        "model_artifact": {
          "description": "Location of the model artifact.",
          "type": "array",
          "maxContains": 15,
          "items": {
            "type": "string",
            "maxLength": 1024
          }
        }
      }
    },
    "intended_uses": {
      "description": "Intended usage of model.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "purpose_of_model": {
          "description": "Reason the model was developed.",
          "type": "string",
          "maxLength": 2048
        },
        "intended_uses": {
          "description": "Intended use cases.",
          "type": "string",
          "maxLength": 2048
        },
        "factors_affecting_model_efficiency": {
          "type": "string",
          "maxLength": 2048
        },
        "risk_rating": {
          "description": "Risk rating for model card.",
          "$ref": "#/definitions/risk_rating"
        },
        "explanations_for_risk_rating": {
          "type": "string",
          "maxLength": 2048
        }
      }
    },
    "business_details": {
      "description": "Business details of model.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "business_problem": {
          "description": "Business problem solved by the model.",
          "type": "string",
          "maxLength": 2048
        },
        "business_stakeholders": {
          "description": "Business stakeholders.",
          "type": "string",
          "maxLength": 2048
        },
        "line_of_business": {
          "type": "string",
          "maxLength": 2048
        }
      }
    },
    "training_details": {
      "description": "Overview about the training.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "objective_function": {
          "description": "The objective function for which the model is optimized.",
          "function": {
            "$ref": "#/definitions/objective_function"
          },
          "notes": {
            "type": "string",
            "maxLength": 1024
          }
        },
        "training_observations": {
          "type": "string",
          "maxLength": 1024
        },
        "training_job_details": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "training_arn": {
              "description": "SageMaker Training job ARN.",
              "type": "string",
              "maxLength": 1024
            },
            "training_datasets": {
              "description": "Location of the model datasets.",
              "type": "array",
              "maxContains": 15,
              "items": {
                "type": "string",
                "maxLength": 1024
              }
            },
            "training_environment": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "container_image": {
                  "description": "SageMaker training image URI.",
                  "type": "array",
                  "maxContains": 15,
                  "items": {
                    "type": "string",
                    "maxLength": 1024
                  }
                }
              }
            },
            "training_metrics": {
              "type": "array",
              "items": {
                "maxItems": 50,
                "$ref": "#/definitions/training_metric"
              }
            },
            "user_provided_training_metrics": {
              "type": "array",
              "items": {
                "maxItems": 50,
                "$ref": "#/definitions/training_metric"
              }
            },
            "hyper_parameters": {
              "type": "array",
              "items": {
                "maxItems": 100,
                "$ref": "#/definitions/training_hyper_parameter"
              }
            },
            "user_provided_hyper_parameters": {
              "type": "array",
              "items": {
                "maxItems": 100,
                "$ref": "#/definitions/training_hyper_parameter"
              }
            }
          }
        }
      }
    },
    "evaluation_details": {
      "type": "array",
      "default": [],
      "items": {
        "type": "object",
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "pattern": ".{1,63}"
          },
          "evaluation_observation": {
            "type": "string",
            "maxLength": 2096
          },
          "evaluation_job_arn": {
            "type": "string",
            "maxLength": 256
          },
          "datasets": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 1024
            },
            "maxItems": 10
          },
          "metadata": {
            "description": "Additional attributes associated with the evaluation results.",
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "maxLength": 1024
            }
          },
          "metric_groups": {
            "type": "array",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "name",
                "metric_data"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "pattern": ".{1,63}"
                },
                "metric_data": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "$ref": "#/definitions/simple_metric"
                      },
                      {
                        "$ref": "#/definitions/linear_graph_metric"
                      },
                      {
                        "$ref": "#/definitions/bar_chart_metric"
                      },
                      {
                        "$ref": "#/definitions/matrix_metric"
                      }
                    ]

                  }
                }
              }
            }
          }
        }
      }
    },
    "additional_information": {
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "ethical_considerations": {
          "description": "Ethical considerations for model users.",
          "type": "string",
          "maxLength": 2048
        },
        "caveats_and_recommendations": {
          "description": "Caveats and recommendations for model users.",
          "type": "string",
          "maxLength": 2048
        },
        "custom_details": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/custom_property"
          }
        }
      }
    }
  },
  "definitions": {
    "source_algorithms": {
      "type": "array",
      "minContains": 1,
      "maxContains": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "algorithm_name"
        ],
        "properties": {
          "algorithm_name": {
            "description": "The name of the algorithm used to create the model package. The algorithm must be either an algorithm resource in your SageMaker AI account or an algorithm in AWS Marketplace that you are subscribed to.",
            "type": "string",
            "maxLength": 170
          },
          "model_data_url": {
            "description": "Amazon S3 path where the model artifacts, which result from model training, are stored.",
            "type": "string",
            "maxLength": 1024
          }
        }
      }
    },
    "inference_specification": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "containers"
      ],
      "properties": {
        "containers": {
          "description": "Contains inference related information used to create model package.",
          "type": "array",
          "minContains": 1,
          "maxContains": 15,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "image"
            ],
            "properties": {
              "model_data_url": {
                "description": "Amazon S3 path where the model artifacts, which result from model training, are stored.",
                "type": "string",
                "maxLength": 1024
              },
              "image": {
                "description": "Inference environment path. The Amazon Elastic Container Registry (Amazon ECR) path where inference code is stored.",
                "type": "string",
                "maxLength": 255
              },
              "nearest_model_name": {
                "description": "The name of a pre-trained machine learning benchmarked by an Amazon SageMaker Inference Recommender model that matches your model.",
                "type": "string"
              }
            }
          }
        }
      }
    },
    "risk_rating": {
      "description": "Risk rating of model.",
      "type": "string",
      "enum": [
        "High",
        "Medium",
        "Low",
        "Unknown"
      ]
    },
    "custom_property": {
      "description": "Additional property.",
      "type": "string",
      "maxLength": 1024
    },
    "objective_function": {
      "description": "Objective function for which the training job is optimized.",
      "additionalProperties": false,
      "properties": {
        "function": {
          "type": "string",
          "enum": [
            "Maximize",
            "Minimize"
          ]
        },
        "facet": {
          "type": "string",
          "maxLength": 63
        },
        "condition": {
          "type": "string",
          "maxLength": 63
        }
      }
    },
    "training_metric": {
      "description": "Training metric data.",
      "type": "object",
      "required": [
        "name",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "notes": {
          "type": "string",
          "maxLength": 1024
        },
        "value": {
          "type": "number"
        }
      }
    },
    "training_hyper_parameter": {
      "description": "Training hyperparameter.",
      "type": "object",
      "required": [
        "name",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "value": {
          "type": "string",
          "pattern": ".{1,255}"
        }
      }
    },
    "linear_graph_metric": {
      "type": "object",
      "required": [
        "name",
        "type",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "notes": {
          "type": "string",
          "maxLength": 1024
        },
        "type": {
          "type": "string",
          "enum": [
            "linear_graph"
          ]
        },
        "value": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 2,
                "maxItems": 2
              },
              "minItems": 1
            }
          ]
        },
        "x_axis_name": {
          "$ref": "#/definitions/axis_name_string"
        },
        "y_axis_name": {
          "$ref": "#/definitions/axis_name_string"
        }
      }
    },
    "bar_chart_metric": {
      "type": "object",
      "required": [
        "name",
        "type",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "notes": {
          "type": "string",
          "maxLength": 1024
        },
        "type": {
          "type": "string",
          "enum": [
            "bar_chart"
          ]
        },
        "value": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "number"
              },
              "minItems": 1
            }
          ]
        },
        "x_axis_name": {
          "$ref": "#/definitions/axis_name_array"
        },
        "y_axis_name": {
          "$ref": "#/definitions/axis_name_string"
        }
      }
    },
    "matrix_metric": {
      "type": "object",
      "required": [
        "name",
        "type",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "notes": {
          "type": "string",
          "maxLength": 1024
        },
        "type": {
          "type": "string",
          "enum": [
            "matrix"
          ]
        },
        "value": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 1,
                "maxItems": 20
              },
              "minItems": 1,
              "maxItems": 20
            }
          ]
        },
        "x_axis_name": {
          "$ref": "#/definitions/axis_name_array"
        },
        "y_axis_name": {
          "$ref": "#/definitions/axis_name_array"
        }
      }
    },
    "simple_metric": {
      "description": "Metric data.",
      "type": "object",
      "required": [
        "name",
        "type",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "notes": {
          "type": "string",
          "maxLength": 1024
        },
        "type": {
          "type": "string",
          "enum": [
            "number",
            "string",
            "boolean"
          ]
        },
        "value": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "maxLength": 63
            },
            {
              "type": "boolean"
            }
          ]
        },
        "x_axis_name": {
          "$ref": "#/definitions/axis_name_string"
        },
        "y_axis_name": {
          "$ref": "#/definitions/axis_name_string"
        }
      }
    },
    "axis_name_array": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 63
      }
    },
    "axis_name_string": {
      "type": "string",
      "maxLength": 63
    }
  }
}
```

## Details einer Modellversion anzeigen und aktualisieren (Studio oder Studio Classic)
<a name="model-registry-details-studio"></a>

Führen Sie die folgenden Schritte aus, um die Details einer Modellversion anzuzeigen und zu aktualisieren, je nachdem, ob Sie Studio oder Studio Classic verwenden. In Studio Classic können Sie den Genehmigungsstatus für eine Modellversion aktualisieren. Details hierzu finden Sie unter [Aktualisieren des Genehmigungsstatus eines Modells](model-registry-approve.md). In Studio hingegen erstellt SageMaker KI eine Modellkarte für ein Modellpaket, und die Benutzeroberfläche der Modellversion bietet Optionen zum Aktualisieren von Details auf der Modellkarte.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Modelle** aus dem Menu aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie den Namen der Modellgruppe aus, die die anzuzeigende Modellversion enthält.

1. Wählen Sie in der Liste der Modellversionen diejenige aus, die Sie anzeigen möchten.

1. Wählen Sie eine der folgenden Registerkarten.
   + **Schulung**: Zum Anzeigen oder Bearbeiten von Details zu Ihrem Trainingsjob, einschließlich Leistungskennzahlen, Artefakten, IAM-Rolle und Verschlüsselung sowie Containern. Weitere Informationen finden Sie unter [Fügen Sie einen Trainingsjob hinzu (Studio)](model-registry-details-studio-training.md).
   + **Evaluieren**: Zum Anzeigen oder Bearbeiten von Details zu Ihrem Trainingsjob, z. B. Leistungskennzahlen, Bewertungsdatensätze und Sicherheit. Weitere Informationen finden Sie unter [Fügen Sie einen Bewertungsjob hinzu (Studio)](model-registry-details-studio-evaluate.md).
   + **Prüfung**: Zum Anzeigen oder Bearbeiten allgemeiner Details in Bezug auf den Geschäftszweck, die Nutzung, das Risiko und technische Details wie Algorithmus und Leistungseinschränkungen des Modells. Weitere Informationen finden Sie unter [Aktualisieren Sie die Prüfungsinformationen (Governance) (Studio)](model-registry-details-studio-audit.md).
   + **Bereitstellen**: Um den Speicherort Ihres Inferenz-Image-Containers und der Instances, aus denen der Endpunkt besteht, anzuzeigen oder zu bearbeiten. Weitere Informationen finden Sie unter [Bereitstellungsinformationen aktualisieren (Studio)](model-registry-details-studio-deploy.md).

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie aus der Liste der Modellgruppen den Namen der Modellgruppe aus, die Sie anzeigen möchten.

1. Eine neue Registerkarte mit einer Liste der Modellversionen in der Modellgruppe wird angezeigt.

1. Wählen Sie in der Liste der Modellversionen den Namen der Modellversion aus, für die Sie Details anzeigen möchten.

1. Wählen Sie auf der sich öffnenden Registerkarte Modellversion eine der folgenden Optionen aus, um Details zur Modellversion anzuzeigen:
   + **Aktivität**: Zeigt Ereignisse für die Modellversion an, z. B. Aktualisierungen des Genehmigungsstatus.
   + **Modellqualität**: Meldet Metriken im Zusammenhang mit Ihren Model Monitor-Modellqualitätsprüfungen, bei denen Modellvorhersagen mit Ground Truth verglichen werden. Weitere Informationen zu den Qualitätsprüfungen von Model Monitor-Modellen finden Sie unter [Modellqualität](model-monitor-model-quality.md). 
   + **Erklärbarkeit**: Meldet Metriken im Zusammenhang mit Ihren Model Monitor-Funktionszuordnungsprüfungen, mit denen die relative Rangfolge Ihrer Merkmale in Trainingsdaten mit Live-Daten verglichen wird. Weitere Informationen zu Model Monitor-Erläuterungsprüfungen finden Sie unter [Feature-Attributions-Drift für Modelle in der Produktion](clarify-model-monitor-feature-attribution-drift.md).
   + **Bias**: Meldet Metriken im Zusammenhang mit Ihren Model Monitor Bias-Drift-Prüfungen, bei denen die Verteilung von Live-Daten mit Trainingsdaten verglichen wird. Weitere Informationen zu Bias-Drift-Prüfungen in Model Monitor finden Sie unter [Bias-Drift bei Modellen in der Produktion](clarify-model-monitor-bias-drift.md).
   + **Empfehlung für Inferenzen**: Bietet Empfehlungen für erste Instances für eine optimale Leistung auf der Grundlage Ihres Modells und Ihrer Beispiel-Payloads.
   + **Auslastungstest**: Führt Lasttests für die Instance-Typen Ihrer Wahl durch, wenn Sie Ihre spezifischen Produktionsanforderungen wie Latenz- und Durchsatzbeschränkungen angeben.
   + **Inferenzspezifikation**: Zeigt Instance-Typen für Ihre Inferenz- und Transformationsaufträge in Echtzeit sowie Informationen zu Ihren Amazon ECR-Containern an.
   + **Informationen**: Zeigt Informationen wie das Projekt, mit dem die Modellversion verknüpft ist, die Pipeline, die das Modell generiert hat, die Modellgruppe und den Speicherort des Modells in Amazon S3 an.

------

# Fügen Sie einen Trainingsjob hinzu (Studio)
<a name="model-registry-details-studio-training"></a>

**Wichtig**  
Seit dem 30. November 2023 heißt das vorherige Amazon SageMaker Studio-Erlebnis jetzt Amazon SageMaker Studio Classic. Der folgende Abschnitt bezieht sich auf die Verwendung der aktualisierten Studio-Erfahrung. Informationen zur Verwendung der Studio-Classic-Anwendung finden Sie unter [Amazon SageMaker Studio Klassisch](studio.md).

Sie können Ihrem Modell einen Trainingsjob hinzufügen, der extern oder mit SageMaker KI erstellt wurde. **Wenn Sie einen SageMaker Schulungsjob hinzufügen, füllt SageMaker KI die Felder für alle Unterseiten auf der Registerkarte „Trainieren“ vorab aus.** Wenn Sie einen extern erstellten Trainingsjob hinzufügen, müssen Sie Details zu Ihrem Trainingsjob manuell hinzufügen. 

**Führen Sie die folgenden Schritte aus, um Ihrem Modellpaket einen Ausbildungsauftrag hinzuzufügen.**

1. Wählen Sie die Registerkarte **Trainieren** aus.

1. Wählen Sie **Hinzufügen** aus. Wenn Sie diese Option nicht sehen, wurde Ihnen möglicherweise bereits eine Ausbildungsstelle zugewiesen. Wenn Sie diesen Trainingsjob entfernen möchten, gehen Sie wie folgt vor, um einen Trainingsjob zu entfernen. 

1. Sie können einen Schulungsjob hinzufügen, den Sie in SageMaker KI erstellt haben, oder einen Schulungsjob, den Sie extern erstellt haben.

   1. Gehen Sie wie folgt vor, um einen Schulungsjob hinzuzufügen, den Sie in SageMaker AI erstellt haben.

      1. Wählen Sie **SageMaker KI**.

      1. Wählen Sie das Optionsfeld neben dem Trainingsjob aus, den Sie hinzufügen möchten.

      1. Wählen Sie **Hinzufügen** aus.

   1. Aktualisieren Sie eine Schulungsaufgabe, die Sie extern erstellt haben, indem Sie die folgenden Schritte ausführen.

      1. Wählen Sie **Custom (Benutzerdefiniert)** aus.

      1. Geben Sie im Feld **Name** den Namen Ihres benutzerdefinierten Trainingsjobs ein.

      1. Wählen Sie **Hinzufügen** aus.

# Einen Trainingsjob entfernen (Studio)
<a name="model-registry-details-studio-training-remove"></a>

Sie können einen extern oder mit SageMaker KI erstellten Schulungsjob aus Ihrem Modell entfernen, indem Sie die folgenden Schritte ausführen.

**Führen Sie die folgenden Schritte aus, um Ihren Schulungsauftrag aus Ihrem Modellpaket zu entfernen.**

1. Wählen Sie „**Zug**“.

1. Wählen Sie auf der Registerkarte „**Zug**“ das **Zahnradsymbol** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/Settings_squid.png)).

1. Wähle neben deinem Trainingsjob die Option **Entfernen** aus.

1. Wähle **Ja, ich möchte entfernen**<name of your training job>.

1. Wählen Sie **Fertig** aus.

# Details zum Trainingsjob aktualisieren (Studio)
<a name="model-registry-details-studio-training-update"></a>

Führen Sie die folgenden Schritte aus, um die Details eines Schulungsjobs zu aktualisieren, der extern oder mit SageMaker KI erstellt wurde und mit Ihrem Modell verknüpft ist.

**Um Details zum Trainingsjob zu aktualisieren (und anzuzeigen):**

1. Auf der Registerkarte **Trainieren** können Sie den Status des Trainingsauftrags anzeigen. Der Status gibt an, `Complete` ob Sie Ihrem Modellpaket einen Trainingsjob hinzugefügt haben und `Undefined` falls nicht.

1. Um Details zu Ihrem Trainingsjob wie Leistung, Hyperparameter und identifizierende Details einzusehen, wählen Sie die Registerkarte **Trainieren**.

1. Aktualisieren Sie Details zur Modellleistung, indem Sie die folgenden Schritte ausführen, um Details zur Modellleistung anzuzeigen.

   1. Wählen Sie in der linken Seitenleiste des Tabs „**Zug**“ die Option „**Leistung**“.

   1. Sieh dir **Kennzahlen** zu deinem Trainingsjob an. Auf der Seite „**Leistung**“ werden die Kennzahlen nach Name und Wert sowie alle Anmerkungen aufgeführt, die Sie zu der Metrik hinzugefügt haben.

   1. (Optional) Führen Sie die folgenden Schritte aus, um Anmerkungen zu vorhandenen Metriken hinzuzufügen.

      1. Wählen Sie die vertikale Ellipse in der oberen rechten Ecke der Seite mit der Modellversion und wählen Sie dann **„Bearbeiten“**.

      1. Fügen Sie Anmerkungen zu einer der aufgelisteten Metriken hinzu.

      1. Wählen Sie oben auf der Seite mit der Modellversion die Option In der **Bearbeitung der Modellversion **speichern**...** u-Banner.

   1. Sehen Sie sich **benutzerdefinierte Metriken** an, die sich auf Ihren Ausbildungsjob beziehen. Benutzerdefinierte Metriken sind ähnlich wie Kennzahlen formatiert.

   1. (Optional) Führen Sie die folgenden Schritte aus, um benutzerdefinierte Metriken hinzuzufügen.

      1. Wählen Sie **Hinzufügen** aus.

      1. Geben Sie einen Namen, einen Wert und optionale Anmerkungen für Ihre neue Metrik ein.

   1. (Optional) Um benutzerdefinierte Metriken zu entfernen, wählen Sie das **Papierkorbsymbol** neben der Metrik, die Sie entfernen möchten.

   1. Sieh dir im Textfeld „**Beobachtungen**“ alle Notizen an, die du im Zusammenhang mit der Leistung deines Trainingsjobs hinzugefügt hast.

   1. (Optional) Führen Sie die folgenden Schritte aus, um Beobachtungen hinzuzufügen oder zu aktualisieren.

      1. Wählen Sie die vertikale Ellipse in der oberen rechten Ecke der Seite mit der Modellversion und wählen Sie dann **„Bearbeiten“**.

      1. Fügen Sie Ihre Notizen im Textfeld **Beobachtungen** hinzu oder aktualisieren Sie sie.

      1. Wählen Sie oben auf der Seite mit der Modellversion die Option In der **Bearbeitung der Modellversion **speichern**...** u-Banner.

1. Aktualisieren Sie Details zu Modellartefakten, indem Sie die folgenden Schritte ausführen, um Details zu Modellartefakten anzuzeigen.

   1. Wählen Sie in der linken Seitenleiste der Registerkarte „**Zug**“ die Option „**Artefakte**“.

   1. Sehen Sie sich im Feld **Standort (S3 URI)** den Amazon S3 Speicherort Ihrer Trainingsdatensätze an.

   1. Sehen Sie sich im Feld **Modelle** den Namen und die Amazon-S3-Speicherorte von Modellartefakten aus anderen Modellen an, die Sie in den Trainingsjob aufgenommen haben.

   1. Aktualisieren eines der Felder auf der Seite **Artifacts**, indem Sie die folgenden Schritte ausführen, um eines der Felder zu aktualisieren.

      1. Wählen Sie die vertikale Ellipse oben rechts auf der Modellversionsseite und wählen Sie **Bearbeiten**.

      1. Geben Sie neue Werte in eines der Felder ein.

      1. Wählen Sie oben auf der Seite mit der Modellversion die Option In der **Bearbeitung der Modellversion **speichern**...** u-Banner.

1. Aktualisieren Sie Details zu Hyperparametern, indem Sie die folgenden Schritte ausführen, um Details zu Hyperparametern anzuzeigen.

   1. **Wählen Sie in der linken Seitenleiste der Registerkarte „Zug“ die Option „**Hyperparameter**“.**

   1. Sehen Sie sich die bereitgestellte SageMaker KI und die definierten benutzerdefinierten Hyperparameter an. Jeder Hyperparameter wird mit seinem Namen und Wert aufgeführt.

   1. Sehen Sie sich die benutzerdefinierten Hyperparameter an, die Sie hinzugefügt haben.

   1. (Optional) Führen Sie die folgenden Schritte aus, um einen zusätzlichen benutzerdefinierten Hyperparameter hinzuzufügen.

      1. **Wählen Sie oberhalb der oberen rechten Ecke der Tabelle **Benutzerdefinierte Hyperparameter** die Option Hinzufügen aus.** Ein Paar neuer leerer Felder wird angezeigt.

      1. Geben Sie den Namen und den Wert des neuen benutzerdefinierten Hyperparameters ein. Diese Werte werden automatisch gespeichert.

   1. (Optional) Um einen benutzerdefinierten Hyperparameter zu entfernen, wählen Sie das **Papierkorbsymbol** rechts neben dem Hyperparameter.

1. Aktualisieren Sie Details zur Umgebung des Trainingsauftrags, indem Sie die folgenden Schritte ausführen.

   1. Wählen Sie in der linken Seitenleiste des Tabs „**Trainieren**“ die Option „**Umgebung**“.

   1. Sehen Sie sich die Amazon ECR-URI-Standorte für alle Schulungsjob-Container an, die von SageMaker KI (für einen SageMaker Schulungsjob) oder von Ihnen (für einen benutzerdefinierten Schulungsjob) hinzugefügt wurden.

   1. (Optional) Um einen zusätzlichen Trainingsjob-Container hinzuzufügen, wählen Sie **Hinzufügen** und geben Sie dann die URI des neuen Trainingscontainers ein.

1. Gehen Sie wie folgt vor, um den Namen des Trainingsjobs und die Amazon-Ressourcennamen (ARN) für den Trainingsjob zu aktualisieren und anzuzeigen.

   1. Wählen Sie in der linken Seitenleiste des Tabs „**Zug**“ die Option „**Details**“.

   1. Sehen Sie sich den Namen des Trainingsaufträge und den ARN des Trainingsaufträge an.

# Fügen Sie einen Bewertungsjob hinzu (Studio)
<a name="model-registry-details-studio-evaluate"></a>

**Wichtig**  
Seit dem 30. November 2023 heißt das vorherige Amazon SageMaker Studio-Erlebnis jetzt Amazon SageMaker Studio Classic. Der folgende Abschnitt bezieht sich auf die Verwendung der aktualisierten Studio-Erfahrung. Informationen zur Verwendung der Studio-Classic-Anwendung finden Sie unter [Amazon SageMaker Studio Klassisch](studio.md).

Nachdem Sie Ihr Modell registriert haben, können Sie es mit einem oder mehreren Datensätzen testen, um seine Leistung zu beurteilen. Sie können einen oder mehrere Bewertungsaufträge aus Amazon S3 hinzufügen oder Ihren eigenen Bewertungsauftrag definieren, indem Sie alle Details manuell eingeben. **Wenn Sie einen Job aus Amazon S3 hinzufügen, füllt SageMaker AI die Felder für alle Unterseiten auf der Registerkarte Evaluieren vorab aus.** Wenn Sie Ihren eigenen Bewertungsjob definieren, müssen Sie Details zu Ihrem Bewertungsjob manuell hinzufügen.

**Führen Sie die folgenden Schritte aus, um Ihrem Modellpaket Ihren ersten Bewertungsauftrag hinzuzufügen.**

1. Wählen Sie die Registerkarte **Evaluieren**.

1. Wählen Sie **Hinzufügen** aus.

1. Sie können einen Bewertungsauftrag aus Amazon S3 oder einen benutzerdefinierten Bewertungsauftrag hinzufügen.

   1. Führen Sie die folgenden Schritte aus, um einen Bewertungsauftrag mit Begleitmaterial von Amazon S3 hinzuzufügen.

      1. Wählen Sie **S3** aus.

      1. Geben Sie einen Namen für den Bewertungsauftrag ein.

      1. Geben Sie den Amazon-S3-Standort für das Ausgabematerial Ihres Bewertungsauftrags ein.

      1. Wählen Sie **Hinzufügen** aus.

   1. Um einen benutzerdefinierten Bewertungsauftrag hinzuzufügen, führen Sie den folgenden Schritt aus, um Ihren Auftrag zur Bewertung hinzuzufügen:

      1. Wählen Sie **Custom (Benutzerdefiniert)** aus.

      1. Geben Sie einen Namen für den Bewertungsauftrag ein.

      1. Wählen Sie **Hinzufügen** aus.

**Führen Sie die folgenden Schritte aus, um Ihrem Modellpaket einen zusätzlichen Bewertungsauftrag hinzuzufügen.**

1. Wählen Sie die Registerkarte **Evaluieren**.

1. Wählen Sie auf der Registerkarte „**Zug**“ das **Zahnradsymbol** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/Settings_squid.png)).

1. Wählen Sie im Dialogfeld **Hinzufügen** aus.

1. Sie können einen Bewertungsauftrag aus Amazon S3 oder einen benutzerdefinierten Bewertungsauftrag hinzufügen.

   1. Führen Sie die folgenden Schritte aus, um einen Bewertungsauftrag mit Begleitmaterial von Amazon S3 hinzuzufügen.

      1. Wählen Sie **S3** aus.

      1. Geben Sie einen Namen für den Bewertungsauftrag ein.

      1. Geben Sie den Amazon-S3-Standort für das Ausgabematerial Ihres Bewertungsauftrags ein.

      1. Wählen Sie **Hinzufügen** aus.

   1. Um einen benutzerdefinierten Bewertungsauftrag hinzuzufügen, führen Sie den folgenden Schritt aus, um Ihren Auftrag zur Bewertung hinzuzufügen:

      1. Wählen Sie **Custom (Benutzerdefiniert)** aus.

      1. Geben Sie einen Namen für den Bewertungsauftrag ein.

      1. Wählen Sie **Hinzufügen** aus.

# Entfernen Sie einen Evaluierungsauftrag (Studio)
<a name="model-registry-details-studio-evaluate-remove"></a>

Sie können einen extern oder mit SageMaker KI erstellten Bewertungsauftrag aus Ihrem Modell entfernen, indem Sie die folgenden Schritte ausführen.

**Führen Sie die folgenden Schritte aus, um Ihren Evaluierungsauftrag aus Ihrem Modellpaket zu entfernen.**

1. Wählen Sie die Registerkarte **Evaluieren**.

1. Wählen Sie auf der Registerkarte „**Zug**“ das **Zahnradsymbol** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/icons/Settings_squid.png)).

1. (Optional) Um Ihren Bewertungsjob in der Liste zu finden, geben Sie einen Suchbegriff in das Suchfeld ein, um die Auswahlliste einzugrenzen.

1. Aktivieren Sie das Optionsfeld neben Ihrem Bewertungsauftrag.

1. Wählen Sie **Remove (Entfernen)** aus.

1. Wählen Sie **Ja, ich möchte löschen**<name of your evaluation job>.

1. Wählen Sie **Fertig** aus.

# Aktualisieren Sie einen Evaluierungsjob (Studio)
<a name="model-registry-details-studio-evaluate-update"></a>

Gehen Sie wie folgt vor, um die Details eines extern oder mit SageMaker KI erstellten Evaluierungsauftrags zu aktualisieren, der mit Ihrem Modell verknüpft ist.

**Um Details zum Evaluierungsjob zu aktualisieren (und anzuzeigen):**

1. Sehen **Sie sich auf der Registerkarte Evaluieren** den Status des Evaluierungsjobs an. Der Status gibt an`Complete`, ob Sie Ihrem Modellpaket einen Evaluierungsjob hinzugefügt haben und `Undefined` falls nicht.

1. Um Details zu Ihrem Evaluierungsjob, wie Leistung und Position der Artefakte, einzusehen, wählen Sie die Registerkarte **Evaluieren**.

1. Aktualisieren Sie Details zur Modellleistung während der Bewertung, indem Sie die folgenden Schritte ausführen.

   1. Wählen Sie in der Seitenleiste der Registerkarte **Evaluieren** die Option **Leistung** aus.

   1. Sehen Sie sich in der Metrikenliste **Kennzahlen** an, die sich auf Ihre Bewertungsaufgabe beziehen. In der **Metrikenliste** werden die einzelnen Metriken nach Namen, Wert und allen Anmerkungen angezeigt, die Sie zu der Metrik hinzugefügt haben.

   1. Sehen Sie sich im Textfeld **Beobachtungen** alle Notizen an, die Sie zur Leistung Ihrer Bewertungsaufgabe hinzugefügt haben.

   1. Gehen Sie wie folgt vor, um eines der **Notizfelder** für eine Metrik oder das Feld **Beobachtungen** zu aktualisieren.

      1. Wählen Sie die vertikale Ellipse oben rechts auf der Modellversionsseite und wählen Sie **Bearbeiten**.

      1. Geben Sie Anmerkungen für eine beliebige Metrik oder in das Textfeld **Beobachtungen** ein.

      1. Wählen Sie oben auf der Seite mit der Modellversion die Option In der **Bearbeitung der Modellversion **speichern**...** u-Banner.

1. Aktualisieren Sie Details zu Ihren Bewertungs-Job-Datensätzen, indem Sie die folgenden Schritte ausführen.

   1. Wählen Sie in der linken Seitenleiste der Seite **Evaluieren** die Option **Artefakte** aus.

   1. Sehen Sie sich die Datensätze an, die in Ihrem Bewertungsjob verwendet wurden.

   1. (Optional) Um einen Datensatz hinzuzufügen, wählen Sie **Hinzufügen** aus und geben Sie eine Amazon-S3-URI für den Datensatz ein.

   1. (Optional) Um einen Datensatz zu entfernen, wählen Sie das **Papierkorbsymbol** neben dem Datensatz, den Sie entfernen möchten.

1. Um den Jobnamen und den ARN des Evaluierungsjobs anzuzeigen, wählen Sie **Details** aus.

# Aktualisieren Sie die Prüfungsinformationen (Governance) (Studio)
<a name="model-registry-details-studio-audit"></a>

**Wichtig**  
Seit dem 30. November 2023 heißt das vorherige Amazon SageMaker Studio-Erlebnis jetzt Amazon SageMaker Studio Classic. Der folgende Abschnitt bezieht sich auf die Verwendung der aktualisierten Studio-Erfahrung. Informationen zur Verwendung der Studio-Classic-Anwendung finden Sie unter [Amazon SageMaker Studio Klassisch](studio.md).

Dokumentieren Sie wichtige Modelldetails, damit Ihr Unternehmen ein solides Framework für Modell-Governance einrichten kann. Sie und Ihre Teammitglieder können auf diese Details zurückgreifen, sodass sie das Modell für die entsprechenden Anwendungsfälle verwenden, den Geschäftsbereich und die Eigentümer des Modells kennen und die Modellrisiken verstehen. Sie können auch Details zur erwarteten Leistung des Modells und zu den Gründen für Leistungseinschränkungen speichern.

**Führen Sie die folgenden Schritte aus, um Details zur Modellsteuerung anzuzeigen oder zu aktualisieren.**

1. Zeigen Sie auf der Registerkarte **Audit** den Genehmigungsstatus der Musterkarte an. Der Status kann einer der folgenden sein:
   + **Entwurf**: Die Modellkarte ist immer noch ein Entwurf.
   + **Genehmigung ausstehend**: Die Modellkarte wartet auf ihre Genehmigung.
   + **Genehmigt**: Die Modellkarte wurde genehmigt.

1. Um den Genehmigungsstatus der Modellkarte zu aktualisieren, wählen Sie das Pulldown-Menü neben dem Genehmigungsstatus und wählen Sie den aktualisierten Genehmigungsstatus aus.

1. Aktualisieren Sie Details zu Ihrem Modellpaketrisiko, indem Sie die folgenden Schritte ausführen, um Details zu aktualisieren und anzuzeigen.

   1. Wählen Sie in der linken Seitenleiste der Registerkarte **Audit** die Option **Risiko** aus.

   1. Sehen Sie sich die aktuelle Risikobewertung und die Erläuterung der Risikoeinstufung an.

   1. Aktualisieren Sie die Bewertung oder Erklärung, indem Sie die folgenden Schritte ausführen.

      1. Wählen Sie die vertikale Ellipse in der oberen rechten Ecke der **Audit-Seite** und wählen Sie **Bearbeiten**.

      1. (Optional) Wählen Sie eine aktualisierte Risikoeinstufung.

      1. (Optional) Aktualisieren Sie die Erläuterung der Risikoeinstufung.

      1.  Wählen Sie oben auf der Seite mit der Modellversion die Option In der **Bearbeitung der Modellversion **speichern**...** u-Banner.

1. Aktualisieren Sie Details zur Verwendung Ihres Modellpakets, indem Sie die folgenden Schritte ausführen.

   1. Wählen Sie in der linken Seitenleiste der Registerkarte **Audit** die Option **Verwendung** aus.

   1. Sehen Sie sich den Text an, den Sie in den folgenden Feldern hinzugefügt haben:
      + **Problemtyp**: Die Kategorie des Algorithmus für maschinelles Lernen, der zur Erstellung Ihres Modells verwendet wurde.
      + **Algorithmustyp**: Der spezifische Algorithmus, der zur Erstellung Ihres Modells verwendet wurde.
      + **Verwendungszwecke**: Die aktuelle Anwendung des Modells in Ihrem Geschäftsproblem.
      + **Faktoren, die die Wirksamkeit des Modells beeinflussen**: Hinweise zu den Leistungseinschränkungen Ihres Modells.
      + **Empfohlene Verwendung**: Die Arten von Anwendungen, die Sie mit dem Modell erstellen können, die Szenarien, in denen Sie eine angemessene Leistung erwarten können, oder die Art der Daten, die mit dem Modell verwendet werden sollen.
      + **Ethische Überlegungen**: Eine Beschreibung, wie Ihr Modell aufgrund von Faktoren wie Alter oder Geschlecht diskriminieren könnte.

   1. Aktualisieren Sie eines der zuvor aufgelisteten Felder, indem Sie die folgenden Schritte ausführen.

      1. Wählen Sie die vertikale Ellipse in der oberen rechten Ecke der Seite mit der Modellversion und wählen Sie dann **„Bearbeiten“**.

      1. (Optional) Verwenden Sie die Dropdownmenüs für **Problemtyp** und **Algorithmustyp**, um bei Bedarf neue Werte auszuwählen.

      1. (Optional) Aktualisieren Sie die Textbeschreibungen in den verbleibenden Feldern.

      1.  Wählen Sie oben auf der Seite mit der Modellversion die Option In der **Bearbeitung der Modellversion **speichern**...** u-Banner.

1. Aktualisieren Sie Details zu den Beteiligten Ihres Modellpakets, indem Sie die folgenden Schritte ausführen.

   1. Wählen Sie in der linken Seitenleiste der Registerkarte **Audit** die Option **Stakeholder** aus.

   1. Sehen Sie sich den aktuellen Besitzer und Ersteller des Modells an, falls vorhanden.

   1. Aktualisieren des Besitzers oder Erstellers des Modells, indem Sie die folgenden Schritte ausführen:

      1. Wählen Sie die vertikale Ellipse in der oberen rechten Ecke der Seite mit der Modellversion und wählen Sie dann **„Bearbeiten“**.

      1. Aktualisieren Sie die Felder Modellbesitzer oder Modellersteller.

      1.  Wählen Sie oben auf der Seite mit der Modellversion die Option In der **Bearbeitung der Modellversion **speichern**...** u-Banner.

1. Gehen Sie wie folgt vor, um Details zu dem Geschäftsproblem, das mit Ihrem Modellpaket behoben wird, zu aktualisieren und einzusehen.

   1. Wählen Sie in der linken Seitenleiste der Registerkarte **Audit** die Option **Business** aus.

   1. Sehen Sie sich die aktuellen Beschreibungen, falls vorhanden, für das Geschäftsproblem an, das das Modell adressiert, für die Beteiligten am Geschäftsproblem und für den Geschäftsbereich.

   1. Gehen Sie wie folgt vor, um eines der Felder auf der Registerkarte „**Unternehmen**“ zu aktualisieren.

      1. Wählen Sie die vertikale Ellipse in der oberen rechten Ecke der Seite mit der Modellversion und wählen Sie dann **„Bearbeiten“**.

      1. Aktualisieren Sie die Beschreibungen in einem der Felder.

      1.  Wählen Sie oben auf der Seite mit der Modellversion die Option In der **Bearbeitung der Modellversion **speichern**...** u-Banner.

1. Gehen Sie wie folgt vor, um die vorhandene Dokumentation (dargestellt als Schlüssel-Wert-Paare) für Ihr Modell zu aktualisieren und anzuzeigen.

   1. **Wählen Sie in der linken Seitenleiste der Audit-Seite die Option **Dokumentation** aus.**

   1. Zeigen Sie vorhandene Schlüssel-Wert-Paare an.

   1. Führen Sie die folgenden Schritte aus, um Schlüssel-Wert-Paare hinzuzufügen.

      1. Wählen Sie die vertikale Ellipse in der oberen rechten Ecke der Seite mit der Modellversion und wählen Sie dann **„Bearbeiten“**.

      1. Wählen Sie **Hinzufügen** aus.

      1. Geben Sie einen neuen Schlüssel und den zugehörigen Wert ein.

      1.  Wählen Sie oben auf der Seite mit der Modellversion die Option In der **Bearbeitung der Modellversion **speichern**...** u-Banner.

   1. Gehen Sie wie folgt vor, um alle Schlüssel-Wert-Paare zu entfernen.

      1. Wählen Sie die vertikale Ellipse in der oberen rechten Ecke der Seite mit der Modellversion und wählen Sie dann **„Bearbeiten“**.

      1. Wählen Sie das **Papierkorbsymbol** neben dem Schlüssel-Wert-Paar, das Sie entfernen möchten.

      1.  Wählen Sie oben auf der Seite mit der Modellversion die Option In der **Bearbeitung der Modellversion **speichern**...** u-Banner.

# Bereitstellungsinformationen aktualisieren (Studio)
<a name="model-registry-details-studio-deploy"></a>

**Wichtig**  
Seit dem 30. November 2023 heißt das vorherige Amazon SageMaker Studio-Erlebnis jetzt Amazon SageMaker Studio Classic. Der folgende Abschnitt bezieht sich auf die Verwendung der aktualisierten Studio-Erfahrung. Informationen zur Verwendung der Studio-Classic-Anwendung finden Sie unter [Amazon SageMaker Studio Klassisch](studio.md).

Nachdem Sie die Leistung Ihres Modells bewertet und festgestellt haben, dass es für Produktionsworkloads einsatzbereit ist, können Sie den Genehmigungsstatus des Modells ändern, um die CI/CD Bereitstellung zu starten. Weitere Informationen zu Definitionen des Genehmigungsstatus finden Sie unter [Aktualisieren des Genehmigungsstatus eines Modells](model-registry-approve.md).

**Führen Sie die folgenden Schritte aus, um Details zur Bereitstellung des Modellpakets anzuzeigen oder zu aktualisieren.**

1. Sehen **Sie sich auf der Registerkarte Bereitstellen** den Genehmigungsstatus des Modellpakets an. Mögliche Werte können folgende sein:
   + **Ausstehende Genehmigung**: Das Modell ist registriert, aber noch nicht für die Bereitstellung genehmigt oder abgelehnt.
   + **Genehmigt**: Das Modell ist für den CI/CD-Einsatz zugelassen. Wenn es eine EventBridge Regel gibt, die die Modellbereitstellung bei einer Modellgenehmigung einleitet, wie dies bei einem Modell der Fall ist, das auf einer SageMaker KI-Projektvorlage basiert, stellt SageMaker KI das Modell ebenfalls bereit.
   + **Abgelehnt: Die Bereitstellung des Modells wurde abgelehnt**.

   Wenn Sie den Genehmigungsstatus ändern müssen, wählen Sie das Dropdownmenü neben dem Status und wählen Sie den aktualisierten Status aus.

1. Um den Genehmigungsstatus des Modellpakets zu aktualisieren, wählen Sie das Dropdown-Menü neben dem Genehmigungsstatus und wählen Sie den aktualisierten Genehmigungsstatus aus.

1. Sehen Sie sich in der **Containerliste die Container** für das Inferenzbild an.

1. Sehen Sie sich in der **Instancesliste** die Instances an, aus denen Ihr Bereitstellungsendpunkt besteht.

# Vergleichen von Modellversionen
<a name="model-registry-version-compare"></a>

Wenn Sie Modellversionen generieren, möchten Sie möglicherweise Modellversionen vergleichen, indem Sie sich relevante Modellqualitätskennzahlen ansehen side-by-side. Möglicherweise möchten Sie die Genauigkeit verfolgen, indem Sie die Werte des mittleren quadratischen Fehlers (MSE) vergleichen, oder Sie könnten sich dafür entscheiden, Modelle zu entfernen, die bei ausgewählten Messgrößen schlecht abschneiden. Das folgende Verfahren zeigt Ihnen, wie Sie den Modellversionsvergleich in Model Registry mithilfe der Amazon SageMaker Studio Classic-Konsole einrichten.

## Modellversionen vergleichen (Amazon SageMaker Studio Classic)
<a name="model-registry-version-compare-studio"></a>

**Anmerkung**  
Sie können nur Modellversionen der Amazon SageMaker Studio Classic-Konsole vergleichen.

Gehen Sie wie folgt vor, um Modellversionen innerhalb einer Modellgruppe zu vergleichen:

1. Melden Sie sich bei Studio an. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie aus der Liste der Modellgruppen den Namen der Modellgruppe aus, die Sie anzeigen möchten. Eine neue Registerkarte mit einer Liste der Modellversionen in der Modellgruppe wird geöffnet.

1. Markieren Sie in der Liste der Modellversionen die Kästchen neben den Modellversionen, die Sie vergleichen möchten.

1. Wählen Sie das Dropdown-Menü **Aktionen** und dann **Ändern** aus. Eine Liste der Modellqualitätskennzahlen für Ihre ausgewählten Modelle wird angezeigt.

# Anzeigen und Verwalten von Modellgruppen- und Modellversions-Tags
<a name="model-registry-tags"></a>

Model Registry hilft Ihnen beim Anzeigen und Verwalten von Tags, die sich auf Ihre Modellgruppen beziehen. Sie können Modellgruppen mit Hilfe von Tags nach Zweck, Besitzer, Umgebung oder anderen Kriterien kategorisieren. Die folgenden Anweisungen zeigen Ihnen, wie Sie Ihre Tags in der Amazon SageMaker Studio-Konsole anzeigen, hinzufügen, löschen und bearbeiten können.

**Anmerkung**  
Modellpakete in der SageMaker Model Registry unterstützen keine Tags — es handelt sich um versionierte Modellpakete. Stattdessen können Sie Schlüssel-Wert-Paare hinzufügen mit `CustomerMetadataProperties`. Modellpaketgruppen in der Modellregistrierung unterstützen Tagging. 

## Anzeigen und Verwalten von Modellgruppen-Tags
<a name="model-registry-tags-model-group"></a>

------
#### [ Studio ]

**Führen Sie zum Anzeigen eines Modellgruppen-Tags die folgenden Schritte aus:**

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Klicken Sie im linken Navigationsbereich auf **Modelle**, um eine Liste Ihrer Modellgruppen anzuzeigen.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie aus der Liste der Modellgruppen den Namen der Modellgruppe aus, die Sie anzeigen möchten.

1. Wählen Sie auf der Modellgruppenseite die Registerkarte **Tags** aus. Zeigen Sie die der Modellgruppe zugeordneten Tags an.

**Führen Sie zum Hinzufügen eines Modellgruppen-Tags die folgenden Schritte aus:**

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Klicken Sie im linken Navigationsbereich auf **Modelle**, um eine Liste Ihrer Modellgruppen anzuzeigen.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie in der Liste Modellgruppen den Namen der Modellgruppe aus, die Sie bearbeiten möchten.

1. Wählen Sie auf der Modellgruppenseite die Registerkarte **Tags** aus.

1. Wählen Sie **Tags hinzufügen/bearbeiten** aus.

1. Geben Sie über **\$1 Neues Tag hinzufügen** Ihren neuen Schlüssel in das leere **Schlüssel**-Feld ein.

1. (Optional) Geben Sie Ihren neuen Wert in das leere Feld **Wert** ein.

1. Wählen Sie **Änderungen bestätigen**.

1. Bestätigen Sie, dass Ihr neues Tag im Abschnitt **Tags** der **Informations**-Seite angezeigt wird.

**Führen Sie die folgenden Schritte aus, um Ihre Modellgruppenbezeichnung zu löschen:**

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Klicken Sie im linken Navigationsbereich auf **Modelle**, um eine Liste Ihrer Modellgruppen anzuzeigen.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie in der Liste Modellgruppen den Namen der Modellgruppe aus, die Sie bearbeiten möchten.

1. Wählen Sie auf der Modellgruppenseite die Registerkarte **Tags** aus.

1. Wählen Sie **Tags hinzufügen/bearbeiten** aus.

1. Wählen Sie neben dem Schlüssel-Wert-Paar, das Sie entfernen möchten, das **Papierkorbsymbol** aus.

1. Wählen Sie **Änderungen bestätigen**.

**Führen Sie zum Bearbeiten einer Modellgruppenbeschriftung die folgenden Schritte aus:**

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Klicken Sie im linken Navigationsbereich auf **Modelle**, um eine Liste Ihrer Modellgruppen anzuzeigen.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie in der Liste Modellgruppen den Namen der Modellgruppe aus, die Sie bearbeiten möchten.

1. Wählen Sie auf der Modellgruppenseite die Registerkarte **Tags** aus.

1. Wählen Sie **Tags hinzufügen/bearbeiten** aus.

1. Geben Sie einen neuen Wert in das Feld **Wert** des Schlüsselpaars ein, das Sie bearbeiten möchten.

1. Wählen Sie **Änderungen bestätigen**.

------
#### [ Studio Classic ]

**Führen Sie zum Anzeigen eines Modellgruppen-Tags die folgenden Schritte aus:**

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie in der Liste Modellgruppen den Namen der Modellgruppe aus, die Sie bearbeiten möchten.

1. Wählen Sie **Information** aus.

1. Sehen Sie sich Ihre Tags im Abschnitt „**Tags**“ der **Informationsseite** an.

**Führen Sie zum Hinzufügen eines Modellgruppen-Tags die folgenden Schritte aus:**

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie in der Liste Modellgruppen den Namen der Modellgruppe aus, die Sie bearbeiten möchten.

1. Wählen Sie **Information** aus.

1. Wenn Sie noch keine Tags haben, wählen Sie **Tags hinzufügen**.

1. Wenn Sie bereits Tags haben, wählen Sie im Abschnitt **Tags** die Option **Tags verwalten** aus. Eine Liste der Tags der Modellgruppe wird als Schlüssel-Wert-Paare angezeigt.

1. Geben Sie über **Neues Tag hinzufügen** Ihren neuen Schlüssel in das leere **Schlüssel**-Feld ein.

1. (Optional) Geben Sie Ihren neuen Wert in das leere Feld **Wert** ein.

1. Wählen Sie **Änderungen bestätigen**.

1. Bestätigen Sie, dass Ihr neues Tag im Abschnitt **Tags** der **Informations**-Seite angezeigt wird.

**Führen Sie die folgenden Schritte aus, um Ihre Modellgruppenbezeichnung zu löschen:**

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie in der Liste Modellgruppen den Namen der Modellgruppe aus, die Sie bearbeiten möchten.

1. Wählen Sie **Information** aus.

1. Wählen Sie im Abschnitt **Tags (Markierungen)** die Option **Manage tags (Tags (Markierungen) verwalten)**. Eine Liste der Tags der Modellgruppe wird als Schlüssel-Wert-Paare angezeigt.

1. Wählen Sie das Symbol **Papierkorb** rechts neben dem Tag, das Sie entfernen möchten.

1. Wählen Sie **Änderungen bestätigen**.

1. Bestätigen Sie, dass Ihr entferntes Tag nicht im Abschnitt **Tags** der Seite **Information** angezeigt wird.

**Führen Sie zum Bearbeiten einer Modellgruppenbeschriftung die folgenden Schritte aus:**

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie in der Liste Modellgruppen den Namen der Modellgruppe aus, die Sie bearbeiten möchten.

1. Wählen Sie **Information** aus.

1. Wählen Sie im Abschnitt **Tags (Markierungen)** die Option **Manage tags (Tags (Markierungen) verwalten)**. Eine Liste der Tags der Modellgruppe wird als Schlüssel-Wert-Paare angezeigt.

1. Bearbeiten Sie einen beliebigen Schlüssel oder Wert.

1. Wählen Sie **Änderungen bestätigen**.

1. Bestätigen Sie im Abschnitt **Tags** der Seite **Information**, ob Ihr Tag Ihre Änderungen enthält.

**Um Modellgruppen einem Projekt zuzuweisen oder zu kennzeichnen, führen Sie die folgenden Schritte aus:**

1. Rufen Sie mithilfe der [ListTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTags.html)API Tags mit Schlüssel `sagemaker:project-name` und `sagemaker:project-id` für das SageMaker KI-Projekt ab.

1. Wählen Sie eine der folgenden Methoden aus, um die Tags auf Ihre Modellpaketgruppe anzuwenden:
   + Wenn Sie eine neue Modellpaketgruppe erstellen und Tags hinzufügen möchten, übergeben Sie Ihre Tags aus Schritt 1 an die [CreateModelPackageGroup](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackageGroup.html)API.
   + Wenn Sie einer vorhandenen Modellpaketgruppe Tags hinzufügen möchten, verwenden Sie die [AddTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html) APIs.
   + Wenn Sie Ihre Modellpaketgruppe über Pipelines erstellen, verwenden Sie die `pipeline.upsert()` Methoden `pipeline.create()` oder oder übergeben Sie Ihre Tags an den [RegisterModel](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-register-model)Schritt.

------

# Eine Modellversion löschen
<a name="model-registry-delete-model-version"></a>

Dieses Verfahren zeigt, wie eine Modellversion in der Amazon SageMaker Studio-Konsole gelöscht wird.

## Eine Modellversion löschen (Studio oder Studio Classic)
<a name="model-registry-delete-model-version-studio"></a>

Um eine Modellversion in der Amazon SageMaker Studio-Konsole zu löschen, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Klicken Sie im linken Navigationsbereich auf **Modelle**, um eine Liste Ihrer Modellgruppen anzuzeigen.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie in der Liste der Modellgruppen die spitze Klammer aus.

1. Eine Liste der Modellversionen in der Modellgruppe wird angezeigt. Wenn Sie die Modellversion, die Sie löschen möchten, nicht sehen, wählen Sie **Alle anzeigen**.

1. Aktivieren Sie die Kontrollkästchen neben den Modellversionen, die Sie löschen möchten.

1. Wählen Sie die vertikale Ellipse über der oberen rechten Ecke der Tabelle und wählen Sie **Löschen** (oder **Modellversion löschen**, wenn Sie sich auf der Detailseite der Modellgruppe befinden).

1. Wählen **Sie im Dialogfeld Modellversion löschen** die Option **Ja, Modellversion löschen** aus.

1. Wählen Sie **Löschen** aus.

1. Vergewissern Sie sich, dass Ihre gelöschten Modellversionen nicht mehr in der Modellgruppe angezeigt werden.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**. Eine Liste Ihrer Modellgruppen wird angezeigt.

1. Wählen Sie in der Liste der Modellgruppen den Namen der Modellgruppe der Modellversion aus, die Sie löschen möchten.

1. Wählen Sie in der Modellversion den Namen der Modellversion aus, die Sie löschen möchten.

1. Wählen Sie das Dropdown-Menü **Aktionen** und dann **Entfernen** aus.

1. Im Bestätigungsdialogfeld geben Sie `REMOVE` ein.

1. Wählen Sie **Remove (Entfernen)** aus.

1. Vergewissern Sie sich, dass die entfernte Modellversion nicht in der Liste der Modellversionen der Modellgruppe angezeigt wird.

------

# Staging Construct für Ihren Modelllebenszyklus
<a name="model-registry-staging-construct"></a>

Mit dem Model Registry Staging-Konstrukt können Sie eine Reihe von Phasen definieren, die Modelle für Ihre Modell-Workflows und Ihren Lebenszyklus durchlaufen können. Dies vereinfacht die Nachverfolgung und Verwaltung von Modellen beim Übergang durch die Entwicklungs-, Test- und Produktionsphasen. Im Folgenden finden Sie Informationen zur Bereitstellung von Konstrukten und deren Verwendung in Ihrer Modell-Governance.

Das Stufenkonstrukt ermöglicht es Ihnen, eine Reihe von Phasen und Status zu definieren, die Modelle durchlaufen. In jeder Phase können bestimmte Personas mit den entsprechenden Berechtigungen den Status der Phase aktualisieren. Während ein Modell die einzelnen Phasen durchläuft, werden seine Metadaten übertragen, sodass ein umfassender Überblick über den Lebenszyklus des Modells möglich ist. Diese Metadaten können in jeder Phase von autorisierten Personen abgerufen und überprüft werden, sodass fundierte Entscheidungen getroffen werden können. Dies umfasst die folgenden Vorteile.
+ Berechtigungen für den Modelllebenszyklus – Legen Sie Berechtigungen für bestimmte Personas fest, um den Status eines Modells in der Phase zu aktualisieren und Genehmigungsschranken an kritischen Übergangspunkten durchzusetzen. Administratoren können Berechtigungen mithilfe von IAM-Richtlinien und Bedingungsschlüsseln mit der API zuweisen. Sie können beispielsweise verhindern, dass Ihr Data Scientist den Übergang von „Entwicklung“ zu „Produktion“ in der Phase „Model Lifecycle“ aktualisiert. Beispiele finden Sie unter [Beispiele für das Einrichten von Staging Construct](model-registry-staging-construct-set-up.md).
+ Modellieren von Lebenszyklusereignissen über Amazon EventBridge — Sie können die Ereignisse in der Lebenszyklusphase mithilfe von EventBridge. Auf diese Weise können Sie Ereignisbenachrichtigungen erhalten, wenn sich der Genehmigungs- oder Bereitstellungsstatus von Modellen ändert, was die Integration mit Governance-Tools von Drittanbietern ermöglicht. Ein Beispiel finden Sie unter [Erhalten Sie Ereignisbenachrichtigungen für ModelLifeCycle](model-registry-staging-construct-event-bridge.md).
+ Suche auf der Grundlage von Feldern für den Modelllebenszyklus – Mithilfe der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)API können Sie Phasen- und Phasenstatus suchen und filtern.
+ Prüfprotokolle für Modelllebenszyklusereignisse – Sie können den Verlauf der Modellgenehmigungs- und Bereitstellungsereignisse für die Übergänge im Modelllebenszyklus einsehen.

In den folgenden Themen erfahren Sie, wie Sie ein Stufenkonstrukt auf der Administratorseite einrichten und den Status einer Phase von der Benutzerseite aus aktualisieren.

**Topics**
+ [Beispiele für das Einrichten von Staging Construct](model-registry-staging-construct-set-up.md)
+ [Aktualisieren Sie die Phase und den Status eines Modellpakets in Studio](model-registry-staging-construct-update-studio.md)
+ [Beispiel für die Phase und den Status eines Modellpakets aktualisieren (boto3)](model-registry-staging-construct-update-boto3.md)
+ [Rufen ModelLifeCycle Sie anhand der Beispiele auf AWS CLI](model-registry-staging-construct-cli.md)
+ [Erhalten Sie Ereignisbenachrichtigungen für ModelLifeCycle](model-registry-staging-construct-event-bridge.md)

# Beispiele für das Einrichten von Staging Construct
<a name="model-registry-staging-construct-set-up"></a>

Um Stufenkonstrukte für Ihre Amazon SageMaker Model Registry einzurichten, muss der Administrator den vorgesehenen Rollen die entsprechenden Berechtigungen erteilen. Im Folgenden finden Sie Beispiele für die Einrichtung von Stufenkonstrukten für verschiedene Rollen.

**Anmerkung**  
Benutzer innerhalb einer Amazon SageMaker AI-Domain können alle innerhalb der Domain definierten Phasen einsehen, aber nur die Phasen verwenden, für die sie über Berechtigungen verfügen.

Stufen werden durch den `ModelLifeCycle` Parameter definiert und haben die folgende Struktur. Der Administrator richtet die Berechtigungen für welche Rollen ein `stage` und auf welche Rollen `stageStatus` kann darauf zugegriffen werden. Die Benutzer, die eine Rolle übernehmen, können die entsprechenden `stage` `stageStatus` und ihre eigenen hinzufügen`stageDescription`.

```
ModelLifeCycle {
    stage: String # Required (e.g., Development/QA/Production)
    stageStatus: String # Required (e.g., PendingApproval/Approved/Rejected)  
    stageDescription: String # Optional
}
```

Die folgende Tabelle enthält vordefinierte Vorlagen für das Stufenkonstrukt von Model Registry. Sie können auch eigene Bühnenkonstrukte auf der Grundlage Ihrer Anwendungsfälle definieren. Die entsprechenden Berechtigungen müssen eingerichtet werden, bevor Benutzer sie verwenden können.


| Stage | Status der Phase | 
| --- | --- | 
|  Vorschlag  |  PendingApproval  | 
|  Entwicklung  |  InProgress  | 
|  QA  |  OnHold  | 
|  PreProduction  |  Approved  | 
|  Produktion  |  Rejected (Abgelehnt)  | 
|  Archiviert  |  Veraltet  | 

Der `ModelLifeCycle` Parameter kann wie folgt aufgerufen werden: APIs
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeModelPackage.html)

------
#### [ Policy for a data scientist role ]

Im Folgenden finden Sie ein Beispiel für eine IAM-Richtlinie, die Bedingungsschlüssel für den Modelllebenszyklus verwendet. Sie können sie auf der Grundlage Ihrer eigenen Anforderungen ändern. In diesem Beispiel sind die Berechtigungen der Rolle darauf beschränkt, die Phase des Modelllebenszyklus wie folgt festzulegen oder zu definieren:
+ Erstellen oder aktualisieren Sie ein Modell mit der Phase `"Development"` und dem Status`"Approved"`.
+ Aktualisieren Sie ein Modellpaket mit den Stufen Qualitätssicherung und Status`"PendingApproval"`. `"QA"`

```
{
    "Action" : [
        "sagemaker:UpdateModelPackage",
        "sagemaker:CreateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage" : "Development"
            "sagemaker:ModelLifeCycle:stageStatus" : "Approved"       
        }
    }
},
{
    "Action" : [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage" : "Staging"
            "sagemaker:ModelLifeCycle:stageStatus" : "PendingApproval"       
        }
    }
}
```

------
#### [ Policy for a quality assurance specialist ]

Im Folgenden finden Sie ein Beispiel für eine IAM-Richtlinie, die Bedingungsschlüssel für den Modelllebenszyklus verwendet. Sie können sie auf der Grundlage Ihrer eigenen Anforderungen ändern. In diesem Beispiel sind die Berechtigungen der Rolle darauf beschränkt, die Phase des Modelllebenszyklus wie folgt festzulegen oder zu definieren:
+ Aktualisieren Sie ein Modellpaket mit:
  + Die Phase `"QA"` und der Status `"Approved"` oder`"Rejected"`.
  + Die Phase `"Production"` und der Status`"PendingApproval"`.

```
{
    "Action": [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage": "Staging",
            "sagemaker:ModelLifeCycle:stageStatus": "Approved"
        }
    }
}, {
    "Action": [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage": "Staging",
            "sagemaker:ModelLifeCycle:stageStatus": "Rejected"
        }
    }
}, {
    "Action": [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage": "Production",
            "sagemaker:ModelLifeCycle:stageStatus": "PendingApproval"
        }
    }
}
```

------
#### [ Policy for lead engineer role ]

Im Folgenden finden Sie ein Beispiel für eine IAM-Richtlinie, die Bedingungsschlüssel für den Modelllebenszyklus verwendet. Sie können sie auf der Grundlage Ihrer eigenen Anforderungen ändern. In diesem Beispiel sind die Berechtigungen der Rolle darauf beschränkt, die Phase des Modelllebenszyklus wie folgt festzulegen oder zu definieren:
+ Aktualisieren Sie ein Modellpaket mit:
  + Die Phase `"Production"` und der Status `"Approved"` oder`"Rejected"`.
  + Die Phase `"Development"` und der Status`"PendingApproval"`.

```
{
    "Action" : [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "ForAnyvalue:StringEquals" : {
            "sagemaker:ModelLifeCycle:stage" : "Production",
            "sagemaker:ModelLifeCycle:stageStatus" : "Approved"
        }
    }
},
{
    "Action" : [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals:" {
            "sagemaker:ModelLifeCycle:stage" : "Production"
            "sagemaker:ModelLifeCycle:stageStatus" : "Rejected"
        }
    }
},
{
    "Action" : [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage" : "Development"
            "sagemaker:ModelLifeCycle:stageStatus" : "PendingApproval"
        }
    }
}
```

------

Informationen zum Erhalt von EventBridge Amazon-Benachrichtigungen über Modellstatusaktualisierungen finden Sie im Beispiel unter[Erhalten Sie Ereignisbenachrichtigungen für ModelLifeCycle](model-registry-staging-construct-event-bridge.md). Ein Beispiel für eine EventBridge Nutzlast, die Sie möglicherweise erhalten, finden Sie unter[SageMaker Änderung des Status des Modellpakets](automating-sagemaker-with-eventbridge.md#eventbridge-model-package).

# Aktualisieren Sie die Phase und den Status eines Modellpakets in Studio
<a name="model-registry-staging-construct-update-studio"></a>

Um ein Stufenkonstrukt eines Modellpakets verwenden zu können, müssen Sie eine Ausführungsrolle mit den entsprechenden Berechtigungen übernehmen. Die folgende Seite enthält Informationen darüber, wie Sie den Status der Phase mithilfe von Amazon SageMaker Studio aktualisieren können.

Alle in der Domain definierten Stufenkonstrukte sind für alle Benutzer sichtbar. Um eine Phase zu aktualisieren, müssen Sie vom Administrator die entsprechenden Zugriffsberechtigungen einrichten lassen. Informationen dazu finden Sie unter [Beispiele für das Einrichten von Staging Construct](model-registry-staging-construct-set-up.md). 

Mit dem folgenden Verfahren gelangen Sie zur Studio-Benutzeroberfläche, auf der Sie die Phase Ihres Modellpakets aktualisieren können.

1. Melden Sie sich bei Amazon SageMaker Studio an. Weitere Informationen finden Sie unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md).

1. Wählen Sie im linken Navigationsbereich **Modelle** aus.

1. Suchen Ihres Modells.
   + Sie können die Tabs verwenden, um Ihre Modelle zu finden. Wählen Sie beispielsweise die Registerkarten **Registrierte Modelle** oder **Bereitstellbare Modelle** aus.
   + Sie können die Optionen **Meine Modelle** und **Mit mir geteilt** verwenden, um nach Modellen zu suchen, die Sie erstellt haben oder die von Ihnen gemeinsam genutzt wurden.

1. Aktivieren Sie das Kontrollkästchen neben dem Modell, das Sie aktualisieren möchten.

1. Wählen Sie das Symbol **Weitere Optionen**. 

1. Wählen Sie **Modelllebenszyklus aktualisieren** aus. Dadurch gelangen Sie zum Abschnitt **Modelllebenszyklus aktualisieren**.

1. Schließen Sie die Aufgaben ab, um die Phase zu aktualisieren. 

   Wenn Sie die Stufe nicht aktualisieren können, erhalten Sie eine Fehlermeldung. Ihr Administrator muss die entsprechenden Berechtigungen für Sie einrichten. Informationen zum Einrichten der Berechtigungen finden Sie unter [Beispiele für das Einrichten von Staging Construct](model-registry-staging-construct-set-up.md).

# Beispiel für die Phase und den Status eines Modellpakets aktualisieren (boto3)
<a name="model-registry-staging-construct-update-boto3"></a>

Um die Phase und den Status eines Modellpakets zu aktualisieren, müssen Sie eine Ausführungsrolle mit den entsprechenden Berechtigungen übernehmen. Im Folgenden finden Sie ein Beispiel dafür, wie Sie den Status der Phase mithilfe der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html)API aktualisieren können AWS SDK für Python (Boto3).

In diesem Beispiel wurden die `"Approved"` Bedingungsschlüssel für die `ModelLifeCycle` Phase `"Development"` und den Status der Phase für die [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html)API-Aktion Ihrer Ausführungsrolle zugewiesen. Sie können eine Beschreibung in `stage-description` eingeben. Weitere Informationen finden Sie unter [Beispiele für das Einrichten von Staging Construct](model-registry-staging-construct-set-up.md). 

```
from sagemaker import get_execution_role, session 
import boto3 

region = boto3.Session().region_name role = get_execution_role() 
sm_client = boto3.client('sagemaker', region_name=region)

model_package_update_input_dict = {
    "ModelLifeCycle" : { 
        "stage" : "Development",
        "stageStatus" : "Approved",
        "stageDescription" : "stage-description"
    }
} 
model_package_update_response = sm_client.update_model_package(**model_package_update_input_dict)
```

# Rufen ModelLifeCycle Sie anhand der Beispiele auf AWS CLI
<a name="model-registry-staging-construct-cli"></a>

Sie können das AWS CLI Tool verwenden, um Ihre AWS Ressourcen zu verwalten. [Zu den AWS CLI Befehlen gehören [Such- und Listenaktionen](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudsearchdomain/search.html).](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/list-actions.html) Auf der folgenden Seite finden Sie Beispiele zur Verwendung `ModelPackage` dieser Befehle. Informationen und Beispiele zur Einrichtung Ihres Bühnenkonstrukts finden Sie unter[Beispiele für das Einrichten von Staging Construct](model-registry-staging-construct-set-up.md).

Die Beispiele auf dieser Seite verwenden die folgenden Variablen.
+ `region`ist die Region, in der Ihr Modellpaket existiert.
+ `stage-name`ist der Name Ihrer definierten Phase.
+ `stage-status`ist der Name Ihres definierten Stufenstatus.

Im Folgenden finden Sie AWS CLI Beispielbefehle mit ModelLifeCycle.

Suchen Sie nach Ihren Modellpaketen mit einem, das *stage-name* Sie bereits definiert haben.

```
aws sagemaker search --region 'region' --resource ModelPackage --search-expression '{"Filters": [{"Name": "ModelLifeCycle.Stage","Value": "stage-name"}]}'
```

Listen Sie die mit `ModelLifeCycle` verbundenen Aktionen auf.

```
aws sagemaker list-actions --region 'region' --action-type ModelLifeCycle
```

Erstellen Sie ein Modellpaket mit ModelLifeCycle.

```
aws sagemaker create-model-package --model-package-group-name 'model-package-group-name' --source-uri 'source-uri' --region 'region' --model-life-cycle '{"Stage":"stage-name", "StageStatus":"stage-status", "StageDescription":"Your Staging Comment"}' 
```

Aktualisieren Sie ein Modellpaket mit ModelLifeCycle.

```
aws sagemaker update-model-package --model-package 'model-package-arn' --region 'region' --model-life-cycle '{"Stage":"stage-name", "StageStatus":"stage-status"}' 
```

Suchen Sie über das ModelLifeCycle Feld.

```
aws sagemaker search --region 'region' --resource ModelPackage --search-expression '{"Filters": [{"Name": "ModelLifeCycle.Stage","Value": "stage-name"}]}'
```

Rufen Sie Prüfdatensätze für ModelLifeField Aktualisierungen über [Amazon SageMaker ML Lineage Tracking](lineage-tracking.md) APIs ab.

```
aws sagemaker list-actions --region 'region' --action-type ModelLifeCycle
```

```
aws sagemaker describe-action --region 'region' --action-name 'action-arn or action-name'
```

# Erhalten Sie Ereignisbenachrichtigungen für ModelLifeCycle
<a name="model-registry-staging-construct-event-bridge"></a>

Sie können die ModelLifeCycle Update-Benachrichtigungen und Ereignisse EventBridge in Ihrem Konto abrufen. Das Folgende ist ein Beispiel für eine EventBridge Regel, die in Ihrem Konto konfiguriert werden muss, um die ModelLifeCycle Ereignisbenachrichtigungen zu erhalten.

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

Ein Beispiel für eine EventBridge Payload, die Sie möglicherweise erhalten, finden Sie unter[SageMaker Änderung des Status des Modellpakets](automating-sagemaker-with-eventbridge.md#eventbridge-model-package).

# Aktualisieren des Genehmigungsstatus eines Modells
<a name="model-registry-approve"></a>

Nachdem Sie eine Modellversion erstellt haben, möchten Sie in der Regel deren Leistung bewerten, bevor Sie sie auf einem Produktionsendpunkt bereitstellen. Wenn sie Ihren Anforderungen entspricht, können Sie den Genehmigungsstatus der Modellversion auf `Approved` ändern. Wenn Sie den Status auf festlegen, `Approved` kann die CI/CD Bereitstellung des Modells initiiert werden. Wenn die Modellversion nicht Ihren Anforderungen entspricht, können Sie den Genehmigungsstatus auf `Rejected` ändern.

Sie können den Genehmigungsstatus einer Modellversion manuell aktualisieren, nachdem Sie sie registriert haben, oder Sie können beim Erstellen einer SageMaker KI-Pipeline einen Bedingungsschritt erstellen, um das Modell zu evaluieren. Informationen zum Erstellen eines Bedingungsschritts in einer SageMaker AI-Pipeline finden Sie unter[Pipelines-Schritte](build-and-manage-steps.md).

Wenn Sie eine der von SageMaker KI bereitgestellten Projektvorlagen verwenden und sich der Genehmigungsstatus einer Modellversion ändert, erfolgt die folgende Aktion. Es werden nur gültige Übergänge angezeigt.
+ `PendingManualApproval`to `Approved` — initiiert die CI/CD Bereitstellung für die genehmigte Modellversion
+ `PendingManualApproval` zu `Rejected` – Keine Aktion
+ `Rejected` bis `Approved` – initiiert die CI/CD-Bereitstellung für die genehmigte Modellversion
+ `Approved`to `Rejected` — leitet die CI/CD Bereitstellung der neuesten Modellversion mit einem Status ein `Approved`

Sie können den Genehmigungsstatus einer Modellversion mithilfe der AWS SDK für Python (Boto3) oder mithilfe der Amazon SageMaker Studio-Konsole aktualisieren. Sie können den Genehmigungsstatus einer Modellversion auch als Teil eines Bedingungsschritts in einer SageMaker AI-Pipeline aktualisieren. Informationen zur Verwendung eines Modellgenehmigungsschritts in einer SageMaker AI-Pipeline finden Sie unter[Übersicht über die Pipelines](pipelines-overview.md).

## Aktualisieren Sie den Genehmigungsstatus eines Modells (Boto3)
<a name="model-registry-approve-api"></a>

Als Sie die Modellversion in [Registrieren Sie eine Modellversion](model-registry-version.md) erstellt haben, haben Sie `ModelApprovalStatus` auf `PendingManualApproval` gesetzt. Sie aktualisieren den Genehmigungsstatus für das Modell, indem Sie `update_model_package` anrufen. Beachten Sie, dass Sie diesen Prozess automatisieren können, indem Sie Code schreiben, der beispielsweise den Genehmigungsstatus eines Modells in Abhängigkeit vom Ergebnis einer Bewertung eines bestimmten Maßes für die Leistung des Modells festlegt. Sie können auch einen Schritt in einer Pipeline erstellen, der automatisch eine neue Modellversion bereitstellt, wenn sie genehmigt wurde. Der folgende Codeausschnitt zeigt, wie Sie den Genehmigungsstatus manuell auf `Approved` ändern können.

```
model_package_update_input_dict = {
    "ModelPackageArn" : model_package_arn,
    "ModelApprovalStatus" : "Approved"
}
model_package_update_response = sm_client.update_model_package(**model_package_update_input_dict)
```

## Aktualisieren des Genehmigungsstatus eines Modells (Studio oder Studio Classic)
<a name="model-registry-approve-studio"></a>

Um den Genehmigungsstatus in der Amazon SageMaker Studio-Konsole manuell zu ändern, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Klicken Sie im linken Navigationsbereich auf **Modelle**, um eine Liste Ihrer Modellgruppen anzuzeigen.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie in der Liste der Modellgruppen die spitze Klammer aus.

1. Eine Liste der Modellversionen in der Modellgruppe wird angezeigt. Wenn Sie die Modellversion, die Sie löschen möchten, nicht sehen, wählen Sie **Alle anzeigen**, um die vollständige Liste der Modellversionen auf der Detailseite der Modellgruppe anzuzeigen.

1. Wählen Sie den Namen der Modellversion aus, die Sie aktualisieren möchten.

1. Auf der Registerkarte **Bereitstellen** wird der aktuelle Genehmigungsstatus angezeigt. Wählen Sie das Dropdownmenü neben dem aktuellen Genehmigungsstatus und wählen Sie den aktualisierten Genehmigungsstatus aus.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie aus der Liste der Modellgruppen den Namen der Modellgruppe aus, die Sie anzeigen möchten. Eine neue Registerkarte mit einer Liste der Modellversionen in der Modellgruppe wird geöffnet.

1. Wählen Sie in der Liste der Modellversionen die Bezeichnung der Modellversion aus, die Sie aktualisieren möchten.

1. Im Dropdown-Menü **Aktionen** können Sie eine von zwei möglichen Menüoptionen auswählen, um den Status der Modellversion zu aktualisieren.
   + Verwenden Sie die Option **Status aktualisieren**

     1. Wählen Sie im Dropdown-Menü **Aktionen** das Dropdown-Menü **Status aktualisieren** und wählen Sie den Status der neuen Modellversion aus.

     1. (Optional) Fügen Sie im Feld **Kommentar** weitere Details hinzu.

     1. Wählen Si **Speichern und Aktualisieren**.
   + Verwenden Sie die Option **Bearbeiten**

     1. Wählen Sie im Auswahlmenü **Aktionen** **Ändern** aus.

     1. (Optional) Fügen Sie im Feld **Kommentar** weitere Details hinzu.

     1. Wählen Sie **Änderungen speichern ** aus.

1. Vergewissern Sie sich, dass der Status der Modellversion auf der Modellversionsseite auf den richtigen Wert aktualisiert wurde.

------

Für`us-east-1`, `us-west-2``ap-northeast-1`, und `eu-west-1` Regionen können Sie die folgenden Anweisungen verwenden, um auf die Herkunftsdetails für protokollierte und registrierte Modellversionen zuzugreifen:

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Modelle** aus.

1. Wählen Sie die Registerkarte Protokollierte **Modelle**, falls diese noch nicht ausgewählt ist, und wählen Sie dann **Registrierte Modelle** aus.

1. Wählen Sie ein Modell aus und klicken Sie auf „**Aktuelle Version anzeigen**“.

1. Wählen Sie die Registerkarte „**Governance**“.

1. Im Abschnitt **Bereitstellen** unter **Governance-Übersicht** wird der aktuelle Genehmigungsstatus angezeigt. Wählen Sie den aktualisierten Genehmigungsstatus aus dem Drop-down-Menü aus.

# Bereitstellen eines Modells aus der Registrierung mit Python
<a name="model-registry-deploy"></a>

Nachdem Sie eine Modellversion registriert und für die Bereitstellung genehmigt haben, stellen Sie sie auf einem SageMaker KI-Endpunkt bereit, um Inferenzen in Echtzeit zu erhalten. Sie können Ihr Modell mithilfe des SageMaker KI-SDK oder des AWS SDK für Python (Boto3) bereitstellen.

Wenn Sie ein Projekt für Machine-Learning-Operationen (MLOps) erstellen und eine MLOps Projektvorlage auswählen, die die Modellbereitstellung beinhaltet, werden genehmigte Modellversionen in der Modellregistrierung automatisch für die Produktion bereitgestellt. Informationen zur Verwendung von SageMaker MLOps KI-Projekten finden Sie unter[MLOps Automatisierung mit SageMaker Projekten](sagemaker-projects.md).

Sie können einem AWS Konto auch die Bereitstellung von Modellversionen ermöglichen, die in einem anderen Konto erstellt wurden, indem Sie eine kontoübergreifende Ressourcenrichtlinie hinzufügen. Beispielsweise kann ein Team in Ihrer Organisation für Trainingsmodelle verantwortlich sein, und ein anderes Team ist für die Bereitstellung und Aktualisierung von Modellen verantwortlich.

**Topics**
+ [Stellen Sie ein Modell aus der Registrierung (SageMaker SDK) bereit](#model-registry-deploy-smsdk)
+ [Stellen Sie ein Modell aus der Registrierung bereit (Boto3)](#model-registry-deploy-api)
+ [Stellen Sie eine Modellversion von einem anderen Konto aus bereit](#model-registry-deploy-xaccount)

## Stellen Sie ein Modell aus der Registrierung (SageMaker SDK) bereit
<a name="model-registry-deploy-smsdk"></a>

Verwenden Sie den folgenden Codeausschnitt, um eine Modellversion mit dem [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) bereitzustellen:

```
from sagemaker import ModelPackage
from time import gmtime, strftime

model_package_arn = 'arn:aws:sagemaker:us-east-2:12345678901:model-package/modeltest/1'
model = ModelPackage(role=role, 
                     model_package_arn=model_package_arn, 
                     sagemaker_session=sagemaker_session)
model.deploy(initial_instance_count=1, instance_type='ml.m5.xlarge')
```

## Stellen Sie ein Modell aus der Registrierung bereit (Boto3)
<a name="model-registry-deploy-api"></a>

Gehen Sie wie folgt vor AWS SDK für Python (Boto3), um eine Modellversion mit dem bereitzustellen:

1. Der folgende Codeausschnitt geht davon aus, dass Sie bereits den SageMaker AI Boto3-Client `sm_client` und eine Modellversion erstellt haben, deren ARN in der Variablen gespeichert ist. `model_version_arn`

   Erstellen Sie ein Modellobjekt aus der Modellversion, indem Sie die [create\$1model](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_model)-API-Operation aufrufen. Übergeben Sie den Amazon-Ressourcennamen (ARN) der Modellversion als Teil des `Containers` für das Modellobjekt.

   ```
   model_name = 'DEMO-modelregistry-model-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
   print("Model name : {}".format(model_name))
   container_list = [{'ModelPackageName': model_version_arn}]
   
   create_model_response = sm_client.create_model(
       ModelName = model_name,
       ExecutionRoleArn = role,
       Containers = container_list
   )
   print("Model arn : {}".format(create_model_response["ModelArn"]))
   ```

1. Erstellen Sie eine Endpunktkonfiguration, indem Sie `create_endpoint_config` aufrufen. Die Endpunktkonfiguration gibt die Anzahl und den Typ der Amazon-EC2-Instances an, die für den Endpunkt verwendet werden sollen.

   ```
   endpoint_config_name = 'DEMO-modelregistry-EndpointConfig-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
   print(endpoint_config_name)
   create_endpoint_config_response = sm_client.create_endpoint_config(
       EndpointConfigName = endpoint_config_name,
       ProductionVariants=[{
           'InstanceType':'ml.m4.xlarge',
           'InitialVariantWeight':1,
           'InitialInstanceCount':1,
           'ModelName':model_name,
           'VariantName':'AllTraffic'}])
   ```

1. Erstellen Sie den Endpunkt, indem Sie `create_endpoint` aufrufen.

   ```
   endpoint_name = 'DEMO-modelregistry-endpoint-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
   print("EndpointName={}".format(endpoint_name))
   
   create_endpoint_response = sm_client.create_endpoint(
       EndpointName=endpoint_name,
       EndpointConfigName=endpoint_config_name)
   print(create_endpoint_response['EndpointArn'])
   ```

## Stellen Sie eine Modellversion von einem anderen Konto aus bereit
<a name="model-registry-deploy-xaccount"></a>

Sie können einem AWS Konto erlauben, Modellversionen bereitzustellen, die in einem anderen Konto erstellt wurden, indem Sie eine kontoübergreifende Ressourcenrichtlinie hinzufügen. Beispielsweise kann ein Team in Ihrer Organisation für Trainingsmodelle verantwortlich sein, und ein anderes Team ist für die Bereitstellung und Aktualisierung von Modellen verantwortlich. Wenn Sie diese Ressourcenrichtlinien erstellen, wenden Sie die Richtlinie auf die spezifische Ressource an, auf die Sie Zugriff gewähren möchten. *Weitere Informationen zu kontenübergreifenden Ressourcenrichtlinien finden Sie unter [Bewertungslogik für kontenübergreifende Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) im AWS Identity and Access Management Benutzerhandbuch. AWS*

**Anmerkung**  
Sie müssen während des Trainings für die Bereitstellung eines kontenübergreifenden Modells einen KMS-Schlüssel verwenden, um die Aktion zur [Konfiguration der Ausgabedaten](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html) zu verschlüsseln.

Um die kontenübergreifende Modellbereitstellung in SageMaker KI zu ermöglichen, müssen Sie eine kontenübergreifende Ressourcenrichtlinie für die Modellgruppe bereitstellen, die die Modellversionen enthält, die Sie bereitstellen möchten, das Amazon ECR-Repository, in dem sich das Inferenz-Image für die Modellgruppe befindet, und den Amazon S3 S3-Bucket, in dem die Modellversionen gespeichert sind.

Um ein Modell bereitstellen zu können, das in einem anderen Konto erstellt wurde, benötigen Sie eine Rolle, die Zugriff auf SageMaker KI-Aktionen hat, z. B. eine Rolle mit der `AmazonSageMakerFullAccess` verwalteten Richtlinie. Informationen zu von SageMaker KI verwalteten Richtlinien finden Sie unter[AWS verwaltete Richtlinien für Amazon SageMaker AI](security-iam-awsmanpol.md).

Das folgende Beispiel erstellt kontenübergreifende Richtlinien für alle drei Ressourcen und wendet die Richtlinien auf die Ressourcen an. Das Beispiel geht auch davon aus, dass Sie zuvor die folgenden Variablen definiert haben:
+ `bucket` – Amazon-S3-Bucket, in dem die Modellversionen gespeichert sind.
+ `kms_key_id` – KMS-Schlüssel, der zum Verschlüsseln der Trainingsausgabe verwendet wird.
+ `sm_client`— Ein SageMaker KI-Boto3-Client.
+ `model_package_group_name` – Modellgruppe, für die Sie kontoübergreifenden Zugriff gewähren möchten.
+ `model_package_group_arn` – der Modellgruppen-ARN, für den Sie kontoübergreifenden Zugriff gewähren möchten.

```
import json

# The cross-account id to grant access to
cross_account_id = "123456789012"

# Create the policy for access to the ECR repository
ecr_repository_policy = {
    'Version': '2012-10-17		 	 	 ',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': {
            'AWS': f'arn:aws:iam::{cross_account_id}:root'
        },
        'Action': ['ecr:*']
    }]
}

# Convert the ECR policy from JSON dict to string
ecr_repository_policy = json.dumps(ecr_repository_policy)

# Set the new ECR policy
ecr = boto3.client('ecr')
response = ecr.set_repository_policy(
    registryId = account,
    repositoryName = 'decision-trees-sample',
    policyText = ecr_repository_policy
)

# Create a policy for accessing the S3 bucket
bucket_policy = {
    'Version': '2012-10-17		 	 	 ',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': {
            'AWS': f'arn:aws:iam::{cross_account_id}:root'
        },
        'Action': 's3:*',
        'Resource': f'arn:aws:s3:::{bucket}/*'
    }]
}

# Convert the policy from JSON dict to string
bucket_policy = json.dumps(bucket_policy)

# Set the new policy
s3 = boto3.client('s3')
response = s3.put_bucket_policy(
    Bucket = bucket,
    Policy = bucket_policy)

# Create the KMS grant for encryption in the source account to the
# Model Registry account Model Group
client = boto3.client('kms')

response = client.create_grant(
    GranteePrincipal=cross_account_id,
    KeyId=kms_key_id
    Operations=[
        'Decrypt',
        'GenerateDataKey',
    ],
)

# 3. Create a policy for access to the Model Group.
model_package_group_policy = {
    'Version': '2012-10-17		 	 	 ',
    'Statement': [{
        'Sid': 'AddPermModelPackageGroup',
        'Effect': 'Allow',
        'Principal': {
            'AWS': f'arn:aws:iam::{cross_account_id}:root'
        },
        'Action': ['sagemaker:DescribeModelPackageGroup'],
        'Resource': f'arn:aws:sagemaker:{region}:{account}:model-package-group/{model_package_group_name}'
    },{
        'Sid': 'AddPermModelPackageVersion',
        'Effect': 'Allow',
        'Principal': {
            'AWS': f'arn:aws:iam::{cross_account_id}:root'
        },
        'Action': ["sagemaker:DescribeModelPackage",
                   "sagemaker:ListModelPackages",
                   "sagemaker:UpdateModelPackage",
                   "sagemaker:CreateModel"],
        'Resource': f'arn:aws:sagemaker:{region}:{account}:model-package/{model_package_group_name}/*'
    }]
}

# Convert the policy from JSON dict to string
model_package_group_policy = json.dumps(model_package_group_policy)

# Set the policy to the Model Group
response = sm_client.put_model_package_group_policy(
    ModelPackageGroupName = model_package_group_name,
    ResourcePolicy = model_package_group_policy)

print('ModelPackageGroupArn : {}'.format(create_model_package_group_response['ModelPackageGroupArn']))
print("First Versioned ModelPackageArn: " + model_package_arn)
print("Second Versioned ModelPackageArn: " + model_package_arn2)

print("Success! You are all set to proceed for cross-account deployment.")
```

# Bereitstellen eines Modells in Studio
<a name="model-registry-deploy-studio"></a>

Nachdem Sie eine Modellversion registriert und für die Bereitstellung genehmigt haben, stellen Sie sie auf einem Amazon SageMaker AI-Endpunkt bereit, um Rückschlüsse in Echtzeit zu ziehen. Sie können Ihr Modell in Amazon SageMaker Studio bereitstellen [Bereitstellen eines Modells aus der Registrierung mit Python](model-registry-deploy.md) oder bereitstellen. Im Folgenden finden Sie Anweisungen zur Bereitstellung Ihres Modells in Studio.

Diese Funktion ist in Amazon SageMaker Studio Classic nicht verfügbar.
+ Wenn Studio Ihre Standardkonfiguration ist, ähnelt die Benutzeroberfläche den Images in [Überblick über die Amazon SageMaker Studio-Benutzeroberfläche](studio-updated-ui.md).
+ Wenn Studio Classic Ihre Standardkonfiguration ist, ähnelt die Benutzeroberfläche den Images in [Überblick über die Amazon SageMaker Studio Classic-Benutzeroberfläche](studio-ui.md).

Um ein Modellpaket bereitstellen zu können, müssen die folgenden Anforderungen für das Modellpaket erfüllt sein:
+ Eine gültige Inferenzspezifikation ist verfügbar. Weitere Informationen finden Sie unter [InferenceSpecification](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-InferenceSpecification).
+ Modell mit dem Status „Genehmigt“. Weitere Informationen finden Sie unter [Aktualisieren des Genehmigungsstatus eines Modells](model-registry-approve.md).

Im Folgenden finden Sie Anweisungen zur Bereitstellung eines Modells in Studio.

**So stellen Sie ein Modell in Studio bereit**

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich **Modelle** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. (Optional) Wenn Sie Modelle haben, die mit Ihnen geteilt wurden, können Sie zwischen „**Meine Modelle**“ oder „**Für mich freigegeben**“ wählen.

1. Aktivieren Sie die Kontrollkästchen für die registrierten Modelle. Wenn die oben genannten Anforderungen erfüllt sind, steht die Schaltfläche **Bereitstellen** zur Auswahl.

1. Wählen Sie **Bereitstellen**, um die Seite **Modell auf Endpunkt bereitstellen zu** öffnen.

1. Konfigurieren Sie die Bereitstellungsressourcen in den **Endpunkteinstellungen**. 

1. Nachdem Sie die Einstellungen überprüft haben, wählen Sie **Deploy**. Das Modell wird dann auf dem Endpunkt mit dem Status **In Betrieb** bereitgestellt.

Für`us-east-1`, `us-west-2``ap-northeast-1`, und `eu-west-1` Regionen können Sie die folgenden Anweisungen verwenden, um Modelle bereitzustellen:

**So stellen Sie ein Modell in Studio bereit**

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich **Modelle** aus.

1. Wählen Sie die Registerkarte **Meine Modelle**.

1. Wählen Sie die Registerkarte Protokollierte **Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie ein Modell aus und klicken Sie auf „**Letzte Version anzeigen**“.

1. Wählen Sie **Deploy** und wählen Sie zwischen SageMaker AI oder Amazon Bedrock.

1. Nachdem Sie die Einstellungen überprüft haben, wählen Sie **Deploy**. Das Modell wird dann auf dem Endpunkt mit dem Status **In Betrieb** bereitgestellt.

# Kontoübergreifende Auffindbarkeit
<a name="model-registry-ram"></a>

Datenwissenschaftler und Dateningenieure können von der Erkundung und dem Zugriff auf Features profitieren, die sich über mehrere Konten erstrecken, um die Datenkonsistenz zu fördern, die Zusammenarbeit zu optimieren und Doppelarbeit zu reduzieren. Mit Amazon SageMaker Model Registry können Sie Modellpaketgruppen für mehrere Konten gemeinsam nutzen. Es gibt zwei Kategorien von Berechtigungen im Zusammenhang mit der gemeinsamen Nutzung von Ressourcen:
+ **Auffindbarkeit**: *Auffindbarkeit ist die Fähigkeit* des Ressourcennutzerkontos, die Modellpaketgruppen zu sehen, die von einem oder mehreren Ressourcenbesitzerkonten gemeinsam genutzt werden. Auffindbarkeit ist nur möglich, wenn der Besitzer der Ressource die erforderlichen Ressourcenrichtlinien an die gemeinsam genutzten Modellpaketgruppen anhängt. Der Ressourcennutzer kann alle gemeinsam genutzten Modellpaketgruppen in der AWS RAM Benutzeroberfläche und einsehen AWS CLI.
+ **Barrierefreiheit**: *Barrierefreiheit* ist die Fähigkeit des Ressourcennutzerkontos, die gemeinsam genutzten Modellpaketgruppen zu verwenden. Beispielsweise kann der Ressourcennutzer ein Modellpaket von einem anderen Konto aus registrieren oder bereitstellen, wenn er über die erforderlichen Berechtigungen verfügt.

**Topics**
+ [Modellgruppe in Studio teilen](model-registry-ram-studio-share.md)
+ [Geteilte Modellgruppen in Studio anzeigen](model-registry-ram-studio-view.md)
+ [Zugriffsmöglichkeiten](model-registry-ram-accessibility.md)
+ [Richten Sie Auffindbarkeit ein](model-registry-ram-discover.md)
+ [Gemeinsam genutzte Modellpaketgruppen anzeigen](model-registry-ram-view-shared.md)
+ [Trennen Sie Prinzipale von einer Ressourcenfreigabe und entfernen Sie eine Ressourcenfreigabe](model-registry-ram-dissociate.md)
+ [Werben Sie für die Berechtigung und die gemeinsame Nutzung der Ressource](model-registry-ram-promote.md)

# Modellgruppe in Studio teilen
<a name="model-registry-ram-studio-share"></a>

Sie können Ihre Modellgruppen mithilfe der Studio-Benutzeroberfläche für andere AWS Prinzipale (AWS-Konten oder AWS Organizations) gemeinsam nutzen. Dieser optimierte Freigabeprozess ermöglicht die teamübergreifende Zusammenarbeit, fördert bewährte Verfahren und erleichtert die Wiederverwendung von Modellen in Ihren Teams. Im Folgenden finden Sie Anweisungen zum Teilen von Modellgruppen in Studio.

Diese Funktion ist in Amazon SageMaker Studio Classic nicht verfügbar.
+ Wenn Studio Ihre Standardkonfiguration ist, ähnelt die Benutzeroberfläche den Images in [Überblick über die Amazon SageMaker Studio-Benutzeroberfläche](studio-updated-ui.md).
+ Wenn Studio Classic Ihre Standardkonfiguration ist, ähnelt die Benutzeroberfläche den Images in [Überblick über die Amazon SageMaker Studio Classic-Benutzeroberfläche](studio-ui.md).

Um Modellgruppen gemeinsam zu nutzen, müssen Sie zunächst sicherstellen, dass der Ausführungsrolle, von der Sie die Ressourcen gemeinsam nutzen, die folgende Berechtigung hinzugefügt wurde.

1. [Rufen Sie Ihre Ausführungsrolle ab](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. [Aktualisieren Sie die Rollenberechtigungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html) wie folgt:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ram:ListPermissions",
                   "ram:GetPermission",
                   "ram:GetResourceShareAssociations",
                   "ram:ListResourceSharePermissions",
                   "ram:DeleteResourceShare",
                   "ram:GetResourceShareInvitations",
                   "ram:AcceptResourceShareInvitation"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

Im Folgenden finden Sie Anweisungen zur gemeinsamen Nutzung einer Modellgruppe mit anderen AWS Prinzipalen.

**Um eine Modellgruppe mit anderen AWS Principals zu teilen**

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich **Modelle** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie ein registriertes Modell aus.

1. Wählen Sie in der oberen rechten Ecke die Option **Teilen** aus. Dadurch wird der Abschnitt **Modellgruppe teilen** geöffnet.

   Wenn Sie am unteren Bildschirmrand eine Fehlermeldung sehen, müssen Sie Ihrer Ausführungsrolle die entsprechenden Berechtigungen hinzufügen. Weitere Informationen finden Sie in den oben genannten Berechtigungen.

1. Wählen Sie unter **Ressourcenfreigaben** eine Ressourcenfreigabe aus, die Sie aktualisieren möchten, oder erstellen Sie eine neue Ressourcenfreigabe. 

1. Wählen Sie unter **Verwaltete Berechtigung** eine verwaltete Berechtigung aus, um die Zugriffsebene für Ihr Modell zu steuern. 

   Zu den sichtbaren Optionen gehören Berechtigungen, die bereits für Sie erstellt wurden, oder Ihre benutzerdefinierten Berechtigungen in AWS RAM. Weitere Informationen finden Sie im *AWS Resource Access Manager*Benutzerhandbuch unter [Erstellen und Verwenden von vom Kunden verwalteten Berechtigungen](https://docs.aws.amazon.com/ram/latest/userguide/create-customer-managed-permissions.html).

1. Geben Sie unter **AWS Principals** den AWS Organizations ARN ein, für den AWS-Konto IDs Sie teilen möchten, und wählen Sie dann **Hinzufügen** aus. Auf diese Weise können Sie mehrere AWS Principals hinzufügen.

1. Wenn die Mindestanforderungen erfüllt sind, kann auf die Schaltfläche **Teilen** zugegriffen werden. Sobald Sie Ihre Einstellungen überprüft haben, wählen Sie **Teilen**.

   Eine erfolgreiche Weitergabe führt zu einer grünen Bannernachricht unten auf dem Bildschirm.

# Geteilte Modellgruppen in Studio anzeigen
<a name="model-registry-ram-studio-view"></a>

Sie können Modellgruppen anzeigen, die mit Ihnen oder einem zugehörigen Konto geteilt wurden AWS Organizations. Wenn eine Modellgruppe mit einem Konto geteilt wird, das zu derselben gehört AWS Organizations, wird die gemeinsam genutzte Modellgruppe automatisch genehmigt und steht Ihnen in Studio zur Verfügung. Andernfalls müssen Sie die ausstehende Einladung genehmigen, bevor Sie die gemeinsam genutzte Modellgruppe in Studio anzeigen können. Im Folgenden finden Sie Anweisungen zum Anzeigen von gemeinsam genutzten Modellgruppen und zum Annehmen von Einladungen zur gemeinsamen Nutzung von Modellgruppen in Studio.

Diese Funktion ist in Amazon SageMaker Studio Classic nicht verfügbar.
+ Wenn Studio Ihre Standardkonfiguration ist, ähnelt die Benutzeroberfläche den Images in [Überblick über die Amazon SageMaker Studio-Benutzeroberfläche](studio-updated-ui.md).
+ Wenn Studio Classic Ihre Standardkonfiguration ist, ähnelt die Benutzeroberfläche den Images in [Überblick über die Amazon SageMaker Studio Classic-Benutzeroberfläche](studio-ui.md).

Im Folgenden finden Sie Anweisungen zum Anzeigen und Akzeptieren von Modellgruppen, die mit Ihnen geteilt wurden.

**Modellgruppen, die mit Ihnen geteilt wurden, anzeigen und akzeptieren**

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich **Modelle** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie **Für mich freigegeben**, um die Modellgruppen anzuzeigen, die mit Ihnen geteilt wurden.

1. So akzeptieren Sie ausstehende Einladungen zu Modellgruppen:

   1. Wählen Sie „**Ausstehende Genehmigungen anzeigen**“, um die Liste „**Ausstehende Einladungen“** zu öffnen.

   1. Wenn Sie die Einladung annehmen möchten, wählen Sie **Annehmen**.

# Zugriffsmöglichkeiten
<a name="model-registry-ram-accessibility"></a>

Wenn der Ressourcennutzer über Zugriffsberechtigungen für die Verwendung einer gemeinsam genutzten Modellpaketgruppe verfügt, kann er eine Version der Modellpaketgruppe registrieren oder bereitstellen. Einzelheiten dazu, wie der Ressourcennutzer eine gemeinsam genutzte Modellpaketgruppe registrieren kann, finden Sie unter[Registrieren Sie eine Modellversion von einem anderen Konto aus](model-registry-version.md#model-registry-version-xaccount). Einzelheiten dazu, wie der Ressourcennutzer eine gemeinsam genutzte Modellpaketgruppe bereitstellen kann, finden Sie unter[Stellen Sie eine Modellversion von einem anderen Konto aus bereit](model-registry-deploy.md#model-registry-deploy-xaccount).

# Richten Sie Auffindbarkeit ein
<a name="model-registry-ram-discover"></a>

Der Ressourcenbesitzer kann die Auffindbarkeit von Modellpaketgruppen einrichten, indem er Ressourcenfreigaben erstellt und den Entitäten Ressourcenrichtlinien anhängt. Ausführliche Anweisungen zum Erstellen einer allgemeinen Ressourcenfreigabe in finden Sie in AWS RAM der [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)Dokumentation unter [Erstellen einer Ressourcenfreigabe](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-create).

Gehen Sie wie folgt vor, um die Auffindbarkeit von Modellpaketgruppen mithilfe der AWS RAM Konsole oder der Model Registry Resource Policy APIs einzurichten.

------
#### [ AWS CLI ]

1. Erstellen Sie eine Ressourcenfreigabe im Modellbesitzerkonto.

   1. Der Modellbesitzer fügt der Modellpaketgruppe mithilfe der SageMaker AI Resource Policy API [put-model-package-group-policy](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/put-model-package-group-policy.html) eine Ressourcenrichtlinie hinzu, wie im folgenden Befehl gezeigt.

      ```
      aws sagemaker put-model-package-group-policy
      --model-package-group-name <model-package-group-name>
      --resource-policy "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Sid\":
      \"ExampleResourcePolicy\",\"Effect\":\"Allow\",\"Principal\":<principal>,
      \"Action\":[\"sagemaker:DescribeModelPackage\",
      \"sagemaker:ListModelPackages\",\"sagemaker:DescribeModelPackageGroup\"],
      \"Resource\":[\"<model-package-group-arn>,\"
      \"arn:aws:sagemaker:<region>:<owner-account-id>:model-package/
      <model-package-group-name>/*\"]}]}"
      ```
**Anmerkung**  
Verschiedene Kombinationen von Aktionen können an die Ressourcenrichtlinie angehängt werden. Bei benutzerdefinierten Richtlinien sollte die erstellte Berechtigung vom Eigentümer der Modellpaketgruppe heraufgestuft werden, sodass nur Entitäten mit angehängten hochgestuften Berechtigungen auffindbar sind. Ressourcenfreigaben, die nicht heraufgestuft werden können, können nicht auffindbar gemacht oder verwaltet werden. AWS RAM

   1. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob der Resource Share ARN AWS RAM erstellt wurde:

      ```
      aws ram get-resource-share-associations --association-type resource --resource-arn <model-package-group-arn>
      ```

      Die Antwort enthält die *resource-share-arn* für die Entität.

   1. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob es sich bei der angehängten Richtlinienberechtigung um eine verwaltete oder benutzerdefinierte Richtlinie handelt:

      ```
      aws ram list-resource-share-permissions --resource-share-arn <resource-share-arn>
      ```

      Das `featureSet` Feld kann Werte `CREATED_FROM_POLICY` oder annehmen`STANDARD`, die wie folgt definiert sind:
      + `STANDARD`: Die Erlaubnis ist bereits vorhanden.
      + `CREATED_FROM_POLICY`: Die Berechtigung muss erhöht werden, damit die Entität auffindbar ist. Weitere Informationen finden Sie unter [Werben Sie für die Berechtigung und die gemeinsame Nutzung der Ressource](model-registry-ram-promote.md).

1. Nehmen Sie die Einladung zur gemeinsamen Nutzung von Ressourcen im Modell-Kundenkonto an.

   1. Der Nutzer der Modellpaketgruppe akzeptiert die Einladung zur gemeinsamen Nutzung von Ressourcen. Führen Sie den folgenden Befehl aus, um alle Ressourceneinladungen anzuzeigen:

      ```
      aws ram get-resource-share-invitations
      ```

      Identifizieren Sie die Anfragen, die Status haben `PENDING` und die Konto-ID des Eigentümerkontos enthalten.

   1. Nehmen Sie die Einladung zur gemeinsamen Nutzung von Ressourcen durch den Modellbesitzer an, indem Sie den folgenden Befehl verwenden:

      ```
      aws ram accept-resource-share-invitation --resource-share-invitation-arn <resource-share-invitation-arn>
      ```

------
#### [ AWS RAM console ]

1. Melden Sie sich an der [AWS RAM -Konsole](https://console.aws.amazon.com/ram/home) an.

1. Gehen Sie folgendermaßen vor, um eine Ressourcenfreigabe über das Konto des Modellpaketgruppen-Eigentümers zu erstellen.

   1. Führen Sie die folgenden Schritte aus, um Details zur Ressourcenfreigabe anzugeben.

      1. Fügen Sie im Feld **Name** einen eindeutigen Namen für Ihre Ressource hinzu.

      1. Wählen Sie auf der Karte **Ressourcen** das Dropdownmenü aus und wählen Sie **SageMaker AI Model Package Groups** aus.

      1. Aktivieren Sie das Kontrollkästchen neben der ARN der Ressourcenfreigabe für Modellpaketgruppen.

      1. Aktivieren Sie auf der Karte **„Ressourcen** auswählen“ das Kontrollkästchen für die Ressourcenfreigabe Ihrer Modellpaketgruppe.

      1. Fügen Sie auf der Karte „**Tags**“ Schlüssel-Wert-Paare für Tags hinzu, die Sie Ihrer Ressourcenfreigabe hinzufügen möchten.

      1. Wählen Sie **Weiter** aus.

   1. Führen Sie die folgenden Schritte aus, um der Ressourcenfreigabe verwaltete Berechtigungen zuzuweisen.

      1. Wenn Sie eine verwaltete Berechtigung verwenden, wählen Sie im Dropdownmenü **Verwaltete Berechtigungen eine verwaltete** Berechtigung aus.

      1. Wenn Sie eine benutzerdefinierte Berechtigung verwenden, wählen Sie vom **Kunden verwaltete Berechtigung** aus. In diesem Fall ist die Modellpaketgruppe nicht sofort auffindbar. Nachdem Sie die Ressourcenfreigabe erstellt haben, müssen Sie die Berechtigung und die Ressourcenrichtlinie heraufstufen. Weitere Informationen zum Heraufstufen von Berechtigungen und zur gemeinsamen Nutzung von Ressourcen finden Sie unter[Werben Sie für die Berechtigung und die gemeinsame Nutzung der Ressource](model-registry-ram-promote.md). Weitere Informationen zum anfügen benutzerdefinierter Berechtigungen finden Sie unter Vom [Kunden verwaltete Berechtigungen erstellen und verwenden in AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/create-customer-managed-permissions.html).

      1. Wählen Sie **Weiter** aus.

   1. Führen Sie die folgenden Schritte aus, um den Hauptbenutzern Zugriff zu gewähren.

      1. Wählen Sie **Teilen mit anderen** zulassen, um das Teilen mit Konten außerhalb Ihrer Organisation zuzulassen, oder wählen Sie **Teilen nur innerhalb Ihrer Organisation zulassen** aus.

      1. Fügen **Sie im Dropdownmenü Prinzipaltyp auswählen** die Prinzipaltypen und die ID für die Principals hinzu, die Sie hinzufügen möchten.

      1. Fügen Sie die ausgewählten Principals für die Aktie hinzu und wählen Sie sie aus.

      1. Wählen Sie **Weiter** aus.

   1. Überprüfen Sie die angezeigte Freigabekonfiguration und wählen Sie dann **Create resource share** aus.

1. Nehmen Sie die Einladung zur gemeinsamen Nutzung von Ressourcen vom Kundenkonto an. Sobald der Modellbesitzer die Ressourceneinheit und die Prinzipalzuordnungen erstellt hat, erhalten die angegebenen Ressourcennutzerkonten eine Einladung, der Ressourceneinheit beizutreten. Die Ressourcennutzerkonten können die Einladungen in der AWS RAM -Konsole auf der Seite [Für mich freigegeben: Ressourcenfreigaben](https://console.aws.amazon.com/ram/home#SharedResourceShares:) anzeigen und annehmen. Weitere Informationen zum Akzeptieren und Anzeigen von Ressourcen finden Sie unter [Zugreifen auf mit Ihnen geteilte AWS Ressourcen](https://docs.aws.amazon.com//ram/latest/userguide/working-with-shared.html). AWS RAM

------

# Gemeinsam genutzte Modellpaketgruppen anzeigen
<a name="model-registry-ram-view-shared"></a>

Nachdem der Ressourcenbesitzer die vorherigen Schritte zum Erstellen einer Ressourcenfreigabe abgeschlossen hat und der Verbraucher die Einladung zur gemeinsamen Nutzung angenommen hat, kann der Benutzer die gemeinsam genutzten Modellpaketgruppen mithilfe der AWS CLI oder in der AWS RAM Konsole anzeigen.

## AWS CLI
<a name="model-registry-ram-view-shared-cli"></a>

Verwenden Sie den folgenden Befehl im Modellverbraucherkonto, um die gemeinsam genutzten Modellpaketgruppen anzuzeigen:

```
aws sagemaker list-model-package-groups --cross-account-filter-option CrossAccount
```

## AWS RAM Konsole
<a name="model-registry-ram-view-shared-ram"></a>

In der AWS RAM Konsole können der Besitzer und der Nutzer der Ressource gemeinsam genutzte Modellpaketgruppen einsehen. Der Besitzer der Ressource kann die Modellpaketgruppen, die für den Benutzer freigegeben wurden, anzeigen, indem er die Schritte unter [Ressourcenfreigaben anzeigen ausführt, die Sie in erstellt haben AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-view-rs.html). Der Ressourcennutzer kann die vom Besitzer gemeinsam genutzten Modellpaketgruppen anzeigen, indem er die Schritte unter Für [Sie gemeinsam genutzte Ressourcen anzeigen ausführt](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared-view-rs.html).

# Trennen Sie Prinzipale von einer Ressourcenfreigabe und entfernen Sie eine Ressourcenfreigabe
<a name="model-registry-ram-dissociate"></a>

Der Ressourcenbesitzer kann Principals für eine Reihe von Berechtigungen von der Ressourcenfreigabe trennen oder die gesamte Ressourcenfreigabe mithilfe der Konsole AWS CLI oder der Konsole löschen. AWS RAM Einzelheiten dazu, wie Sie Prinzipale von einer Ressourcenfreigabe trennen, finden Sie in der Dokumentation unter [Aktualisieren einer](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html) Ressourcenfreigabe. [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) Einzelheiten zum Löschen einer Ressourcenfreigabe finden Sie in der Dokumentation unter [Löschen einer Ressourcenfreigabe](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.html). [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)

## AWS CLI
<a name="model-registry-ram-dissociate-cli"></a>

Um Prinzipale von einer Ressourcenfreigabe zu trennen, verwenden Sie den Befehl [dissociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html)wie folgt:

```
aws ram disassociate-resource-share --resource-share-arn <resource-share-arn> --principals <principal>
```

Verwenden Sie den Befehl [delete-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/delete-resource-share.html)wie folgt, um eine Ressourcenfreigabe zu löschen:

```
aws ram delete-resource-share --resource-share-arn <resource-share-arn>
```

## AWS RAM Konsole
<a name="model-registry-ram-dissociate-ram"></a>

Weitere Informationen zum Trennen von Prinzipalen von einer Ressourcenfreigabe finden Sie in der Dokumentation unter [Aktualisieren einer Ressourcenfreigabe](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html). [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) Weitere Informationen zum Löschen einer Ressourcenfreigabe finden Sie in der Dokumentation unter [Löschen einer Ressourcenfreigabe](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.html). [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)

# Werben Sie für die Berechtigung und die gemeinsame Nutzung der Ressource
<a name="model-registry-ram-promote"></a>

Wenn Sie benutzerdefinierte (vom Kunden verwaltete) Berechtigungen verwenden, müssen Sie die Berechtigung und die zugehörige Ressourcenfreigabe heraufstufen, damit die Modellpaketgruppe auffindbar ist. Führen Sie die folgenden Schritte aus, um die Genehmigung und die gemeinsame Nutzung von Ressourcen zu bewerben.

1. Verwenden Sie den folgenden Befehl AWS RAM, um für Ihre benutzerdefinierte Zugriffsberechtigung zu werben:

   ```
   aws ram promote-permission-created-from-policy —permission-arn <permission-arn>
   ```

1. Bewerben Sie die Ressourcenfreigabe mit dem folgenden Befehl:

   ```
   aws ram promote-resource-share-created-from-policy --resource-share-arn <resource-share-arn>
   ```

Wenn der `OperationNotPermittedException` Fehler bei der Ausführung der vorherigen Schritte auftritt, ist die Entität nicht auffindbar, aber sie ist zugänglich. Wenn der Besitzer der Ressource beispielsweise eine Ressourcenrichtlinie mit einer übernommenen Rolle als Principal anhängt`“Principal”: {“AWS”: “arn:aws:iam::3333333333:role/Role-1”}`, oder wenn die Ressourcenrichtlinie dies zulässt`“Action”: “*”`, ist die zugehörige Modellpaketgruppe weder heraufstufbar noch auffindbar.

# Den Bereitstellungsverlauf eines Modells anzeigen
<a name="model-registry-deploy-history"></a>

Um die Bereitstellungen für eine Modellversion in der Amazon SageMaker Studio-Konsole anzuzeigen, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

**Den Bereitstellungsverlauf für eine Modellversion anzeigen**

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Klicken Sie im linken Navigationsbereich auf **Modelle**, um eine Liste Ihrer Modellgruppen anzuzeigen.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Wählen Sie in der Liste der Modellgruppen die spitze Klammer aus.

1. Eine Liste der Modellversionen in der Modellgruppe wird angezeigt. Wenn Sie die Modellversion, die Sie löschen möchten, nicht sehen, wählen Sie **Alle anzeigen**.

1. Wählen Sie den Namen der Modellversion aus, die Sie anzeigen möchten.

1. Wählen Sie die Registerkarte **Aktivität**. Bereitstellungen für die Modellversion werden in der Aktivitätsliste als Ereignisse mit dem **Ereignistyp** angezeigt. **ModelDeployment**

------
#### [ Studio Classic ]

**Den Bereitstellungsverlauf für eine Modellversion anzeigen**

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie aus der Liste der Modellgruppen den Namen der Modellgruppe aus, die Sie anzeigen möchten.

1. Eine neue Registerkarte mit einer Liste der Modellversionen in der Modellgruppe wird angezeigt.

1. Wählen Sie in der Liste der Modellversionen den Namen der Modellversion aus, für die Sie Details anzeigen möchten.

1. Wählen Sie auf der sich öffnenden Registerkarte Modellversion die Option **Aktivität** aus. Bereitstellungen für die Modellversion werden in der Aktivitätsliste als Ereignisse mit dem **Ereignistyp** angezeigt. **ModelDeployment**

------

# Details zur Modellabstammung in Studio anzeigen
<a name="model-registry-lineage-view-studio"></a>

Sie können die Abstammungsdetails eines registrierten Modells in Amazon SageMaker Studio einsehen. Im Folgenden finden Sie Anweisungen zum Zugriff auf die Lineage-Ansicht in Studio. Weitere Informationen [Amazon SageMaker ML Lineage Tracking](lineage-tracking.md) zur Abstammungsverfolgung in Amazon SageMaker Studio finden Sie unter.

Diese Funktion ist in Amazon SageMaker Studio Classic nicht verfügbar.
+ Wenn Studio Ihre Standardkonfiguration ist, ähnelt die Benutzeroberfläche den Images in [Überblick über die Amazon SageMaker Studio-Benutzeroberfläche](studio-updated-ui.md).
+ Wenn Studio Classic Ihre Standardkonfiguration ist, ähnelt die Benutzeroberfläche den Images in [Überblick über die Amazon SageMaker Studio Classic-Benutzeroberfläche](studio-ui.md).

Die Lineage-Ansicht ist eine interaktive Visualisierung der Ressourcen, die Ihren registrierten Modellen zugeordnet sind. Zu diesen Ressourcen gehören Datensätze, Schulungsaufträge, Genehmigungen, Modelle und Endpunkte. In der Herkunft können Sie auch die zugehörigen Ressourcendetails einsehen, einschließlich der Quell-URI, des Erstellungszeitstempels und anderer Metadaten.

Die folgenden Funktionen sind in`us-east-1`, `us-west-2``ap-northeast-1`, und `eu-west-1` Regionen verfügbar: 

Sie können die Herkunft der protokollierten und registrierten Modelle verfolgen. Darüber hinaus umfassen die Ressourcen zur Herkunft von Modellen Datensätze, Evaluatoren, Schulungsaufgaben, Genehmigungen, Modelle, Inferenzkomponenten und Endpunkte. In der Herkunft können Sie auch die zugehörigen Ressourcendetails einsehen, einschließlich der Quell-URI, des Erstellungszeitstempels und anderer Metadaten.

Im Folgenden finden Sie Anweisungen zum Zugriff auf die Herkunftsdetails für eine registrierte Modellversion.

**So greifen Sie auf die Abstammungsdetails für eine registrierte Modellversion zu**

1. Öffnen Sie die Studioconsole, indem Sie den Anweisungen unter folgen. [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md)

1. Wählen Sie im linken Navigationsbereich **Modelle** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. (Optional) Wenn Sie Modelle haben, die mit Ihnen geteilt wurden, können Sie zwischen „**Meine Modelle**“ oder „**Für mich freigegeben**“ wählen.

1. Wählen Sie ein registriertes Modell aus.

1. Wählen Sie die Registerkarte **Versionen** aus, falls sie noch nicht ausgewählt ist.

1. Wählen Sie eine bestimmte Modellversion aus der **Versionsliste** aus.

1. Wählen Sie die **Registerkarte Herkunft**. 

Auf der **Registerkarte Herkunft** können Sie durch die Ressourcen navigieren, die der Modellversion zugeordnet sind. Sie können auch eine Ressource auswählen, um die Ressourcendetails anzuzeigen. 

Beachten Sie, dass die Lineage-Ansicht nur zu Visualisierungszwecken dient. Das Neuanordnen oder Verschieben der Komponenten in dieser Ansicht hat keine Auswirkungen auf die tatsächlich registrierten Modellressourcen.

Für`us-east-1`, `us-west-2``ap-northeast-1`, und `eu-west-1` Regionen können Sie die folgenden Anweisungen verwenden, um auf die Herkunftsdetails für protokollierte und registrierte Modellversionen zuzugreifen:

1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter [Starten Sie Amazon SageMaker Studio](studio-updated-launch.md) folgen.

1. Wählen Sie im linken Navigationsbereich **Modelle** aus.

1. Wählen Sie die Registerkarte **Meine Modelle**.

1. (Optional) Wenn Sie Modelle haben, die mit Ihnen geteilt wurden, können Sie zwischen **Von mir erstellt** oder **Mit mir geteilt** wählen.

1. Wählen Sie ein Modell aus und wählen Sie „**Aktuelle Version anzeigen**“.

1. Wählen Sie die **Registerkarte Herkunft**.

# Modellregistrierungs-Sammlungen
<a name="modelcollections"></a>

Sie können Sammlungen verwenden, um registrierte Modelle, die miteinander verwandt sind, zu gruppieren und sie in Hierarchien zu organisieren, um die Auffindbarkeit von Modellen in großem Maßstab zu verbessern. Mit Sammlungen können Sie registrierte Modelle organisieren, die miteinander verknüpft sind. Sie könnten Ihre Modelle beispielsweise anhand der Domäne des Problems, das sie lösen, in Sammlungen mit den Titeln *NLP-Models, *CV-Models* oder* kategorisieren. * Speech-recognition-models* Um Ihre registrierten Modelle in einer Baumstruktur zu organisieren, können Sie Sammlungen ineinander verschachteln. Alle Operationen, die Sie an einer Sammlung ausführen, z. B. das Erstellen, Lesen, Aktualisieren oder Löschen, wirken sich nicht auf Ihre registrierten Modelle aus. Sie können die Amazon SageMaker Studio-Benutzeroberfläche oder das Python SDK verwenden, um Ihre Sammlungen zu verwalten.

Auf der Registerkarte **Sammlungen** in der Model Registry wird eine Liste aller Sammlungen in Ihrem Konto angezeigt. In den folgenden Abschnitten wird beschrieben, wie Sie die Optionen auf der Registerkarte **Sammlungen** für folgende Zwecke verwenden können:
+ Erstellen von Sammlungen
+ Fügen Sie Modellgruppen zu einer Sammlung hinzu
+ Modellgruppen zwischen Sammlungen verschieben
+ Modellgruppen oder Sammlungen aus anderen Sammlungen entfernen

Jeder Vorgang, den Sie an Ihren Sammlungen durchführen, hat keinen Einfluss auf die Integrität der einzelnen Modellgruppen, die sie enthalten – die zugrunde liegenden Modellgruppen-Artefakte in Amazon S3 und Amazon ECR werden nicht geändert.

Sammlungen bieten zwar eine größere Flexibilität bei der Organisation Ihrer Modelle, aber die interne Darstellung bringt einige Einschränkungen in Bezug auf die Größe Ihrer Hierarchie mit sich. Eine Zusammenfassung dieser Einschränkungen finden Sie unter [Beschränkungen](modelcollections-limitations.md).

In den folgenden Themen wird erläutert, wie Sie Sammlungen in der Model Registry erstellen und mit ihnen arbeiten.

**Topics**
+ [Einrichten erforderlicher Berechtigungen](modelcollections-permissions.md)
+ [Erstellen einer Sammlung](modelcollections-create.md)
+ [Fügen Sie Modellgruppen zu einer Sammlung hinzu](modelcollections-add-models.md)
+ [Modellgruppen oder Sammlungen aus einer Sammlung entfernen](modelcollections-remove-models.md)
+ [Verschieben Sie eine Modellgruppe zwischen Sammlungen](modelcollections-move-models.md)
+ [Sehen Sie sich die übergeordnete Kollektion einer Modelgruppe an](modelcollections-view-parent.md)
+ [Beschränkungen](modelcollections-limitations.md)

# Einrichten erforderlicher Berechtigungen
<a name="modelcollections-permissions"></a>

Erstellen Sie eine benutzerdefinierte Richtlinie, die die folgenden erforderlichen Ressourcengruppenaktionen enthält:
+ `resource-groups:CreateGroup`
+ `resource-groups:DeleteGroup`
+ `resource-groups:GetGroupQuery`
+ `resource-groups:ListGroupResources`
+ `resource-groups:Tag`
+ `tag:GetResources`

Anweisungen zum Hinzufügen einer Inline-Richtlinie finden Sie unter [IAM-Identitätsberechtigungen hinzufügen (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console). Wenn Sie das Richtlinienformat wählen, wählen Sie das JSON-Format und fügen Sie die folgende Richtlinie hinzu:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "resource-groups:ListGroupResources"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "resource-groups:GetGroupQuery"
            ],
            "Resource": "arn:aws:resource-groups:*:*:group/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "resource-groups:CreateGroup",
                "resource-groups:Tag"
            ],
            "Resource": "arn:aws:resource-groups:*:*:group/*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": "sagemaker:collection"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "resource-groups:DeleteGroup",
            "Resource": "arn:aws:resource-groups:*:*:group/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:collection": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        }
    ]
}
```

------

# Erstellen einer Sammlung
<a name="modelcollections-create"></a>

**Wichtig**  
Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Tagging erlaubt, können "AccessDenied" Fehler beim Versuch, Ressourcen zu erstellen, auftreten. Weitere Informationen finden Sie unter [Erteilen Sie Berechtigungen für das Taggen von SageMaker KI-Ressourcen](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS verwaltete Richtlinien für Amazon SageMaker AI](security-iam-awsmanpol.md)die Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, beinhalten bereits Berechtigungen zum Hinzufügen von Tags beim Erstellen dieser Ressourcen.

Sie können eine Sammlung in der Amazon SageMaker Studio-Konsole erstellen. Aktualisieren Sie eine Sammlung, indem Sie die folgenden Schritte ausführen, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Models (Modelle)** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie unmittelbar unter der Registerkarte **Registrierte Modelle** die Option **Sammlungen** aus.

1. (Optional) Um eine Sammlung innerhalb einer anderen Sammlung zu erstellen, navigieren Sie zu der Hierarchie, der Sie Ihre Sammlung hinzufügen möchten. Andernfalls wird Ihre Sammlung auf der Root-Ebene erstellt.

1. Wählen Sie im Dropdown-Menü **Aktionen** oben rechts die Option **Neue Sammlung erstellen** aus.

1. Geben Sie im Feld Name des Dialogfelds einen **Namen** für Ihre Sammlung ein.
**Anmerkung**  
Wenn Sie in dieser Sammlung mehrere Hierarchien erstellen möchten, sollten Sie Ihre Sammlungsnamen kurz halten. Der absolute Pfad, bei dem es sich um eine String handelt, die den Speicherort Ihrer Sammlungen von der Stammebene aus darstellt, darf maximal 256 Zeichen lang sein. Weitere Details finden Sie unter [Kennzeichnung von Sammlungen und Modellgruppen](modelcollections-limitations.md#modelcollections-tagging).

1. (Optional) Um Modellgruppen zu Ihrer Sammlung hinzuzufügen, führen Sie die folgenden Schritte aus:

   1. Wählen Sie **Modellgruppen auswählen** aus.

   1. Wählen Sie die Modellgruppen aus, die Sie hinzufügen möchten. Sie können bis zu 10 auswählen.

1. Wählen Sie **Erstellen** aus.

1. Vergewissern Sie sich, dass Ihre Sammlung in der aktuellen Hierarchie erstellt wurde. Wenn Sie Ihre neue Sammlung nicht sofort sehen, wählen Sie **Aktualisieren**.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie die Registerkarte **Verbindungen** aus.

1. (Optional) Um eine Sammlung innerhalb einer anderen Sammlung zu erstellen, navigieren Sie zu der Hierarchie, der Sie Ihre Sammlung hinzufügen möchten. Andernfalls wird Ihre Sammlung auf der Root-Ebene erstellt.

1. Wählen Sie im Dropdown-Menü **Aktionen** oben rechts die Option **Neue Sammlung erstellen** aus.

1. Geben Sie im Feld Name des Dialogfelds einen **Namen** für Ihre Sammlung ein.
**Anmerkung**  
Wenn Sie in dieser Sammlung mehrere Hierarchien erstellen möchten, sollten Sie Ihre Sammlungsnamen kurz halten. Der absolute Pfad, bei dem es sich um eine String handelt, die den Speicherort Ihrer Sammlungen von der Stammebene aus darstellt, darf maximal 256 Zeichen lang sein. Weitere Details finden Sie unter [Kennzeichnung von Sammlungen und Modellgruppen](modelcollections-limitations.md#modelcollections-tagging).

1. (Optional) Um Modellgruppen zu Ihrer Sammlung hinzuzufügen, führen Sie die folgenden Schritte aus:

   1. Wählen Sie **Modellgruppen auswählen** aus.

   1. Wählen Sie die Modellgruppen aus, die Sie hinzufügen möchten. Sie können bis zu 10 auswählen.

1. Wählen Sie **Erstellen** aus.

1. Vergewissern Sie sich, dass Ihre Sammlung in der aktuellen Hierarchie erstellt wurde. Wenn Sie Ihre neue Sammlung nicht sofort sehen, wählen Sie **Aktualisieren**.

------

# Fügen Sie Modellgruppen zu einer Sammlung hinzu
<a name="modelcollections-add-models"></a>

Sie können Modellgruppen zu einer Sammlung in der Amazon SageMaker Studio-Konsole hinzufügen. Führen Sie die folgenden Schritte aus, um Modellgruppen zu einer Sammlung hinzuzufügen. Dies hängt davon ab, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Models (Modelle)** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modelle** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Aktivieren Sie das Kontrollkästchen neben den Modellgruppen, die Sie hinzufügen möchten. Sie können bis zu 10 Modellgruppen auswählen. Wenn Sie mehr als 10 auswählen, ist die UI-Option zum Hinzufügen Ihrer Modellgruppen zu einer Sammlung inaktiv.

1. Klicken Sie auf die vertikale Ellipse neben **Erstellen** und wählen Sie **Zur Sammlung hinzufügen** aus.

1. Wählen Sie das Optionsfeld für die Sammlung aus, zu der Sie Ihre ausgewählten Modellgruppen hinzufügen möchten.

1. Wählen **Sie Zur Sammlung hinzufügen**.

1. Überprüfen Sie, ob Ihre Modellgruppen zur Sammlung hinzugefügt wurden. In der Spalte **Sammlungen** der ausgewählten Modellgruppen sollte der Name der Sammlung angezeigt werden, zu der Sie die Modellgruppen hinzugefügt haben.

------
#### [ Studio Classic ]

Sie können Modellgruppen entweder über die Registerkarte **Modellgruppen** oder **Sammlungen** zu einer Sammlung hinzufügen.

Gehen Sie wie folgt vor, um über die Registerkarte **Sammlungen** einer Sammlung eine oder mehrere Modellgruppen hinzuzufügen:

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie die Registerkarte **Verbindungen** aus.

1. Wählen Sie die Sammlung aus, der Sie Modellgruppen hinzufügen möchten. Wenn sich die gewünschte Sammlung nicht auf der Stammebene befindet, navigieren Sie zu der Hierarchie, in der Sie Ihre Modellgruppen hinzufügen möchten.

1. Wählen Sie im Dropdown-Menü **Aktionen** oben rechts die Option **Modellgruppen hinzufügen** aus.

1. Wählen Sie die Modellgruppen aus, die Sie hinzufügen möchten. Sie können bis zu 10 Modellgruppen auswählen. Wenn Sie mehr als 10 auswählen, ist die UI-Option zum Hinzufügen Ihrer Modellgruppen zu einer Sammlung inaktiv.

1. Wählen Sie **Zur Sammlung hinzufügen**.

1. Vergewissern Sie sich, dass Ihre Modellgruppen zur aktuellen Hierarchie hinzugefügt wurden. Wenn Sie Ihre neuen Modellgruppen nicht sofort sehen, wählen Sie **Aktualisieren**.

Gehen Sie wie folgt vor, um über die Registerkarte **Modellgruppen** einer Sammlung eine oder mehrere Modellgruppen hinzuzufügen:

1. Melden Sie sich bei Studio an. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie die Registerkarte **Modellgruppen** aus.

1. Wählen Sie die Modellgruppen aus, die Sie hinzufügen möchten. Sie können bis zu 10 auswählen. Wenn Sie mehr als 10 auswählen, ist die UI-Option zum Hinzufügen Ihrer Modellgruppen zu einer Sammlung inaktiv.

1. Wählen Sie im Dropdown-Menü **Aktionen** oben rechts die Option **Zur Sammlung hinzufügen** aus.

1. Wählen Sie im Popup-Dialogfeld den Speicherort für den Root-Pfad `Collections` aus. Dieser Link zum Stammverzeichnis wird über der Tabelle angezeigt.

1. Navigieren Sie zu der Hierarchie, die Ihre Zielsammlung enthält, oder zu der Sie eine neue Sammlung erstellen möchten, zu der Sie Ihre Modelle hinzufügen möchten.

1. (Optional) Gehen Sie wie folgt vor, um Ihre Modellgruppen zu einer bestehenden Sammlung hinzuzufügen:

   1. Wählen Sie die Zielsammlung aus.

   1. Wählen **Sie Zur Sammlung hinzufügen**.

1. (Optional) Gehen Sie wie folgt vor, um Ihre Modellgruppen zu einer neuen Sammlung hinzuzufügen:

   1. Wählen Sie **Neue Sammlung**.

   1. Geben Sie einen Namen für Ihre Sammlung ein.

   1. Wählen Sie **Erstellen** aus.

------

# Modellgruppen oder Sammlungen aus einer Sammlung entfernen
<a name="modelcollections-remove-models"></a>

Wenn Sie Modellgruppen oder Sammlungen aus einer Sammlung entfernen, entfernen Sie sie aus einer bestimmten Gruppierung und nicht aus der Modellregistrierung. In der Amazon SageMaker Studio-Konsole können Sie Modellgruppen aus einer Sammlung entfernen.

Um eine oder mehrere Modellgruppen oder Sammlungen aus einer Sammlung zu entfernen, gehen Sie wie folgt vor, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Models (Modelle)** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie unmittelbar unter der Registerkarte **Registrierte Modelle** die Option **Sammlungen** aus.

1. Navigieren Sie zu der Sammlung, die die Modellgruppen oder Sammlungen enthält, die Sie entfernen möchten.

1. Wählen Sie die Modellgruppen oder Sammlungen aus, die Sie entfernen möchten. Sie können bis zu 10 auswählen. Wenn Sie mehr als 10 Modellgruppen oder Sammlungen auswählen, ist die UI-Option zum Entfernen dieser Gruppen oder Sammlungen inaktiv.
**Wichtig**  
Sie können Modellgruppen und Sammlungen nicht gleichzeitig zum Entfernen auswählen. Wenn Sie sowohl Modellgruppen als auch Sammlungen entfernen möchten, entfernen Sie zuerst Modellgruppen und dann Sammlungen.
**Wichtig**  
Sie können nicht leere Sammlungen nicht entfernen. Wenn Sie eine nicht leere Sammlung entfernen möchten, entfernen Sie zuerst ihren Inhalt.

1. Wählen Sie im Dropdown-Menü **Aktionen** oben rechts die Option **X Artikel aus der Sammlung entfernen** aus (wobei X für die Anzahl der ausgewählten Modellgruppen steht).

1. Bestätigen Sie, dass Sie die ausgewählten Modellgruppen entfernen möchten.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie die Registerkarte **Verbindungen** aus.

1. Navigieren Sie zu der Sammlung, die die Modellgruppen oder Sammlungen enthält, die Sie entfernen möchten.

1. Wählen Sie die Modellgruppen oder Sammlungen aus, die Sie entfernen möchten. Sie können bis zu 10 auswählen. Wenn Sie mehr als 10 Modellgruppen oder Sammlungen auswählen, ist die UI-Option zum Entfernen dieser Gruppen oder Sammlungen inaktiv.
**Wichtig**  
Sie können Modellgruppen und Sammlungen nicht gleichzeitig zum Entfernen auswählen. Wenn Sie sowohl Modellgruppen als auch Sammlungen entfernen möchten, entfernen Sie zuerst Modellgruppen und dann Sammlungen.
**Wichtig**  
Sie können nicht leere Sammlungen nicht entfernen. Wenn Sie eine nicht leere Sammlung entfernen möchten, entfernen Sie zuerst ihren Inhalt.

1. Wählen Sie im Dropdown-Menü **Aktionen** oben rechts die Option **X Artikel aus der Sammlung entfernen** aus (wobei X für die Anzahl der ausgewählten Modellgruppen steht).

1. Bestätigen Sie, dass Sie die ausgewählten Modellgruppen entfernen möchten.

------

# Verschieben Sie eine Modellgruppe zwischen Sammlungen
<a name="modelcollections-move-models"></a>

In der Amazon SageMaker Studio-Konsole können Sie eine oder mehrere Modellgruppen von einer Sammlung in eine andere verschieben.

Um Modellgruppen zu verschieben, führen Sie die folgenden Schritte aus, je nachdem, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Models (Modelle)** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie unmittelbar unter der Registerkarte **Registrierte Modelle** die Option **Sammlungen** aus.

1. Navigieren Sie zu der Sammlung, die die Modellgruppen enthält, die Sie verschieben möchten.

1. Wählen Sie die Modellgruppen aus, die Sie verschieben möchten. Sie können bis zu 10 auswählen. Wenn Sie mehr als 10 auswählen, ist die UI-Option zum Verschieben Ihrer Modellgruppen inaktiv.

1. Wählen Sie im Dropdown-Menü **Aktionen** oben rechts die Option **Hier verschieben** aus.

1. Wählen Sie im Dialogfeld den Speicherort für den Stammpfad `Collections` aus. Dieser Link zum Stammverzeichnis wird über der Tabelle angezeigt.

1. Navigieren Sie zu der Hierarchie, die Ihre Zielsammlung enthält.

1. Wählen Sie Ihre Zielsammlung in der Tabelle aus.

1. Wählen Sie **Hier verschieben**.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie die Registerkarte **Verbindungen** aus.

1. Navigieren Sie zu der Sammlung, die die Modellgruppen enthält, die Sie verschieben möchten.

1. Wählen Sie die Modellgruppen aus, die Sie verschieben möchten. Sie können bis zu 10 auswählen. Wenn Sie mehr als 10 auswählen, ist die UI-Option zum Verschieben Ihrer Modellgruppen inaktiv.

1. Wählen Sie im Dropdown-Menü **Aktionen** oben rechts die Option **Hier verschieben** aus.

1. Wählen Sie im Dialogfeld den Speicherort für den Stammpfad `Collections` aus. Dieser Link zum Stammverzeichnis wird über der Tabelle angezeigt.

1. Navigieren Sie zu der Hierarchie, die Ihre Zielsammlung enthält.

1. Wählen Sie Ihre Zielsammlung in der Tabelle aus.

1. Wählen Sie **Hier verschieben**.

------

# Sehen Sie sich die übergeordnete Kollektion einer Modelgruppe an
<a name="modelcollections-view-parent"></a>

Sie können die Sammlungen, die eine bestimmte Modellgruppe enthalten, in der Amazon SageMaker Studio-Konsole anzeigen.

Führen Sie die folgenden Schritte aus, um Sammlungen anzuzeigen, die eine bestimmte Modellgruppe enthalten. Dies hängt davon ab, ob Sie Studio oder Studio Classic verwenden.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Models (Modelle)** aus.

1. Wählen Sie die Registerkarte **Registrierte Modelle**, falls diese noch nicht ausgewählt ist.

1. Wählen Sie direkt unter der Registerkarte **Registrierte Modelle** die Option **Modellgruppen** aus, sofern diese Option nicht bereits ausgewählt ist.

1. Sehen Sie sich die Spalte **Sammlung** für Ihre Modellgruppe an, in der der Name der Sammlung angezeigt wird, die diese Modellgruppe enthält. Wenn mehrere Sammlungen diese Modellgruppe enthalten, wählen Sie den Eintrag in der Spalte **Sammlung**, um ein Pop-up mit den Sammlungen anzuzeigen, die diese Modellgruppe enthalten.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter [Amazon SageMaker Studio Classic starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Wählen Sie im linken Navigationsbereich das Symbol **Home** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png) ).

1. Wählen Sie **Modelle** und dann **Modellverzeichnis**.

1. Wählen Sie die Registerkarte **Modellgruppen** aus.

1. Suchen Sie in der Tabelle nach Ihrer Modellgruppe.

1. Sehen Sie sich die Spalte **Sammlung** für Ihre Modellgruppe an, in der der Name der Sammlung angezeigt wird, die diese Modellgruppe enthält. Wenn mehrere Sammlungen diese Modellgruppe enthalten, wählen Sie den Eintrag in der Spalte **Sammlung**, um ein Pop-up mit den Sammlungen anzuzeigen, die diese Modellgruppe enthalten.

------

# Beschränkungen
<a name="modelcollections-limitations"></a>

Bei der Verwendung von Sammlungen können Probleme im Zusammenhang mit Längenbeschränkungen für Tags oder Ratenbeschränkungen für Sammlungsvorgänge auftreten. Lesen Sie sich die folgende Liste mit Einschränkungen durch, damit Sie Probleme im Zusammenhang mit diesen Beschränkungen vermeiden können, wenn Sie mit Ihren Sammlungen arbeiten.

**VPC-Einschränkungen**
+ Sammlungen werden im VPC-Modus nicht unterstützt.

**Einschränkungen beim Sammlungsvorgang**
+ Sie können maximal 10 Modellgruppen gleichzeitig zu einer Sammlung hinzufügen.
+ Sie können maximal 10 Modellgruppen gleichzeitig aus einer Sammlung entfernen.
+ Sie können maximal 10 Modellgruppen gleichzeitig von einer Sammlung in eine andere verschieben.
+ Sie können eine Sammlung nur löschen, wenn sie leer ist.
+ Eine Modellgruppe kann zu mehreren Sammlungen gehören, aber eine Sammlung kann nur zu einer Sammlung gehören.

**Einschränkungen im Zusammenhang mit Tags**
+ Eine Modellgruppe kann maximal 48 Sammlungen angehören. Weitere Informationen finden Sie im Abschnitt [Kennzeichnung von Sammlungen und Modellgruppen](#modelcollections-tagging).
+ Der absolute Pfad einer Sammlung kann maximal 256 Zeichen lang sein. Da Sammlungsnamen vom Benutzer angegeben werden, können Sie die Pfadlänge steuern. Weitere Informationen finden Sie im Abschnitt [Kennzeichnung von Sammlungen und Modellgruppen](#modelcollections-tagging).

## Kennzeichnung von Sammlungen und Modellgruppen
<a name="modelcollections-tagging"></a>

Die SageMaker Model Registry verwendet Tag-Regeln und Tags, um Ihre Sammlungsgruppierungen und -hierarchien intern darzustellen. Sie können auf diese Tag-Elemente im AWS Resource Access Manager, im SageMaker SDK und im zugreifen AWS CLI, aber es ist wichtig, dass Sie sie nicht ändern oder löschen.

**Wichtig**  
Löschen oder ändern Sie keine Tag-Regeln oder Tags, die zu Ihren Sammlungen oder Modellgruppen gehören. Dadurch werden Sie daran gehindert, Sammlungsvorgänge durchzuführen\$1

Eine Tag-Regel ist ein Schlüssel-Wert-Paar, das SageMaker KI verwendet, um die Position einer Sammlung in der Hierarchie zu identifizieren. Kurz gesagt, der Schlüssel ist der Schlüssel der übergeordneten Sammlung, und der Wert ist der Pfad der Sammlung innerhalb der Hierarchie. SageMaker KI erlaubt Tag-Werte mit 256 Zeichen oder weniger. Wenn Sie also mehrere verschachtelte Hierarchien haben, sollten Sie Ihre Sammlungsnamen kurz halten.

**Wichtig**  
Halten Sie Ihre Sammlungsnamen kurz. Der absolute Pfad zu einer Sammlung muss 256 Zeichen oder weniger lang sein.

Modellgruppen haben dagegen keine Tag-Regeln, sondern verwenden Tags. Die Tags einer Modellgruppe beinhalten die Tag-Regeln für alle Sammlungen, die die Modellgruppe enthalten. *Wenn beispielsweise vier Collections model-group-1 enthalten, hat *model-group-1* vier Tags.* SageMaker KI ermöglicht es einer einzelnen AWS Ressource, maximal 50 Tags zu haben. Da zwei für allgemeine Zwecke vorab zugewiesen sind, kann eine Modellgruppe maximal 48 Tags haben. Zusammenfassend lässt sich sagen, dass eine Modellgruppe maximal 48 Sammlungen angehören kann.

# Modellbereitstellung in SageMaker KI
<a name="model-deploy-mlops"></a>

Sobald Sie ein Modell trainiert und für die Produktion freigegeben haben, verwenden Sie SageMaker KI, um Ihr Modell auf einem Endpunkt bereitzustellen, um daraus Rückschlüsse in Echtzeit ziehen zu können. SageMaker KI bietet mehrere Inferenzoptionen, sodass Sie die Option auswählen können, die am besten zu Ihrer Arbeitslast passt. Sie konfigurieren Ihren Endpunkt auch, indem Sie den Instance-Typ und die Anzahl der Instances auswählen, die Sie für eine optimale Leistung benötigen. Details zu den Modellbereitstellungen finden Sie unter [Modelle für Inference einsetzen](deploy-model.md).



Nachdem Sie Ihre Modelle in der Produktion eingesetzt haben, sollten Sie nach Möglichkeiten suchen, die Modellleistung weiter zu optimieren und gleichzeitig die Verfügbarkeit Ihrer aktuellen Modelle aufrechtzuerhalten. Sie können beispielsweise einen Shadow-Test einrichten, um ein anderes Modell oder eine andere Modell-Server-Infrastruktur auszuprobieren, bevor Sie sich für die Änderung entscheiden. SageMaker KI stellt das neue Modell, den Container oder die neue Instanz im Schattenmodus bereit und leitet eine Kopie der Inferenzanfragen in Echtzeit innerhalb desselben Endpunkts an diese weiter. Sie können die Antworten der Shadow-Variante zum Vergleich protokollieren. Einzelheiten zu Shadow-Tests finden Sie unter [Schattentests](shadow-tests.md). Wenn Sie sich entscheiden, Ihr Modell zu ändern, helfen Ihnen Deployment Guardrails dabei, die Umstellung vom aktuellen Modell auf ein neues zu kontrollieren. Sie können Methoden wie Tests blue/green oder kanarisches Testen des Traffic-Verschiebungsprozesses wählen, um während des Updates eine detaillierte Kontrolle zu behalten. Weitere Informationen zu Leitlinien zur Bereitstellung finden Sie unter [Bereitstellungsleitlinien für die Aktualisierung von Modellen in der Produktion](deployment-guardrails.md).

# SageMaker Modellmonitor
<a name="model-monitor-mlops"></a>

Sobald ein Modell in Produktion ist, können Sie seine Leistung mit Amazon SageMaker Model Monitor in Echtzeit überwachen. Model Monitor hilft Ihnen dabei, die Modellqualität aufrechtzuerhalten, indem Verstöße gegen benutzerdefinierte Schwellenwerte für Datenqualität, Modellqualität, Verzerrungen und Abweichungen bei der Merkmalszuweisung erkannt werden. Darüber hinaus können Sie Warnmeldungen konfigurieren, sodass Sie Verstöße sofort beheben und umgehend ein Neutraining einleiten können. Model Monitor ist in SageMaker Clarify integriert, um die Sichtbarkeit potenzieller Verzerrungen zu verbessern. 

Weitere Informationen zu SageMaker Model Monitor finden Sie unter[Überwachung der Daten- und Modellqualität mit Amazon SageMaker Model Monitor](model-monitor.md).

# MLOps Automatisierung mit SageMaker Projekten
<a name="sagemaker-projects"></a>

Erstellen Sie end-to-end ML-Lösungen mithilfe CI/CD von SageMaker Projects. 

Verwenden Sie SageMaker Projects, um eine MLOps Lösung für die Orchestrierung und Verwaltung von Folgendem zu erstellen:
+ Erstellung benutzerdefinierter Bilder für Verarbeitung, Training und Inferenz
+ Datenaufbereitung und Feature Engineering
+ Modelltraining
+ Auswerten von Modellen
+ Bereitstellen von Modellen
+ Überwachung und Aktualisierung von Modellen

**Topics**
+ [Was ist ein SageMaker KI-Projekt?](sagemaker-projects-whatis.md)
+ [Für die Verwendung von Projekten sind SageMaker Studio-Berechtigungen erforderlich](sagemaker-projects-studio-updates.md)
+ [Erstellen Sie ein MLOps Projekt mit Amazon SageMaker Studio oder Studio Classic](sagemaker-projects-create.md)
+ [MLOps Vorlagen für Projekte](sagemaker-projects-templates.md)
+ [Projektressourcen anzeigen](sagemaker-projects-resources.md)
+ [Ein MLOps Projekt in Amazon SageMaker Studio oder Studio Classic aktualisieren](sagemaker-projects-update.md)
+ [Löschen Sie ein MLOps Projekt mit Amazon SageMaker Studio oder Studio Classic](sagemaker-projects-delete.md)
+ [Gehen Sie mithilfe von Git-Repos von Drittanbietern durch ein SageMaker MLOps KI-Projekt](sagemaker-projects-walkthrough-3rdgit.md)

# Was ist ein SageMaker KI-Projekt?
<a name="sagemaker-projects-whatis"></a>

SageMaker Projekte helfen Unternehmen dabei, Entwicklungsumgebungen für Datenwissenschaftler und CI/CD Systeme für Ingenieure einzurichten und zu standardisieren. MLOps Projekte helfen Unternehmen auch bei der Einrichtung von Abhängigkeitsmanagement, Code-Repository-Management, Build-Reproduzierbarkeit und Artefakt-Sharing.

Sie können SageMaker Projekte mithilfe von benutzerdefinierten Vorlagen bereitstellen, die in Amazon S3 S3-Buckets gespeichert sind, oder mithilfe von Vorlagen von AWS Service Catalog oder SageMaker AI. Informationen zum AWS Service Catalog finden Sie unter [Was ist AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/dg/what-is-service-catalog.html). Mit SageMaker Projekten können MLOps Techniker und Organisationsadministratoren ihre eigenen Vorlagen definieren oder von SageMaker KI bereitgestellte Vorlagen verwenden. Die von der SageMaker KI bereitgestellten Vorlagen bieten einen Bootstrap für den ML-Workflow mit Quellversionsverwaltung, automatisierten ML-Pipelines und einem Codesatz, um schnell mit der Iteration von ML-Anwendungsfällen zu beginnen.

## Wann sollten Sie ein KI-Projekt verwenden? SageMaker
<a name="sagemaker-projects-when"></a>

**Wichtig**  
Ab dem 9. September 2024 werden Projektvorlagen, die das AWS CodeCommit Repository verwenden, nicht mehr unterstützt. Wählen Sie für neue Projekte aus den verfügbaren Projektvorlagen aus, die Git-Repositorys von Drittanbietern verwenden.

Notebooks sind zwar hilfreich bei der Modellbildung und beim Experimentieren, aber ein Team von Datenwissenschaftlern und ML-Ingenieuren, die Code gemeinsam nutzen, benötigt eine skalierbarere Methode, um die Codekonsistenz und eine strenge Versionskontrolle aufrechtzuerhalten.

Jede Organisation hat ihre eigenen Standards und Verfahren, die für Sicherheit und Steuerung ihrer AWS Umgebung sorgen. SageMaker KI bietet eine Reihe von Vorlagen von Erstanbietern für Unternehmen, die schnell mit ML-Workflows und CI/CD beginnen möchten. Zu den Vorlagen gehören Projekte, die AWS-native Dienste für CI/CD verwenden, wie, und. AWS CodeBuild AWS CodePipeline AWS CodeCommit Die Vorlagen bieten auch die Möglichkeit, Projekte zu erstellen, die Tools von Drittanbietern wie Jenkins und verwenden. GitHub Eine Liste der von SageMaker AI bereitgestellten Projektvorlagen finden Sie unter. [Verwenden Sie von SageMaker KI bereitgestellte Projektvorlagen](sagemaker-projects-templates-sm.md)

Organizations benötigen häufig eine strenge Kontrolle über die MLOps Ressourcen, die sie bereitstellen und verwalten. Diese Verantwortung beinhaltet bestimmte Aufgaben, darunter die Konfiguration von IAM-Rollen und -Richtlinien, die Durchsetzung von Ressourcen-Tags, die Durchsetzung von Verschlüsselung und die Entkopplung von Ressourcen über mehrere Konten hinweg. SageMaker Projekte können all diese Aufgaben durch benutzerdefinierte Vorlagenangebote unterstützen, bei denen Organisationen CloudFormation Vorlagen verwenden, um die für einen ML-Workflow benötigten Ressourcen zu definieren. Datenwissenschaftler können eine Vorlage für das Bootstrap auswählen und ihren ML-Workflow vorkonfigurieren.

Zu Beginn empfehlen wir Ihnen, benutzerdefinierte Vorlagen in einem Amazon S3 S3-Bucket zu erstellen und zu speichern. Auf diese Weise können Sie einen Bucket in jeder unterstützten Region für Ihre Organisation erstellen. S3 unterstützt Versionskontrolle, sodass Sie mehrere Versionen Ihrer Vorlagen verwalten und bei Bedarf ein Rollback durchführen können. Informationen zum Erstellen eines Projekts aus einem Vorlagenspeicher in einem Amazon S3 S3-Bucket finden Sie unter[Verwenden einer Vorlage aus einem Amazon S3 S3-Bucket](sagemaker-projects-templates-custom.md#sagemaker-projects-templates-s3).

Alternativ können Sie auch benutzerdefinierte Vorlagen als Service Catalog-Produkte erstellen und diese in der Studio- oder Studio Classic-Benutzeroberfläche unter **Organisationsvorlagen** bereitstellen. Der Service Catalog ist ein Service, der Unternehmen bei der Erstellung und Verwaltung von Produktkatalogen unterstützt, die für die Verwendung zugelassen sind. AWS Weitere Informationen zum Erstellen benutzerdefinierter Vorlagen finden Sie unter [Benutzerdefinierte SageMaker KI-Projektvorlagen erstellen — Bewährte Methoden](https://aws.amazon.com/blogs/machine-learning/build-custom-sagemaker-project-templates-best-practices/).

Sie können zwar beide Optionen verwenden, wir empfehlen jedoch, S3-Buckets anstelle des Service Catalog zu verwenden, sodass Sie in unterstützten Regionen, in denen SageMaker KI verfügbar ist, einen Bucket erstellen können, ohne die Komplexität des Service Catalog verwalten zu müssen.

SageMaker Projekte können dir helfen, deine Git-Repositorys zu verwalten, sodass du teamübergreifend effizienter zusammenarbeiten, die Codekonsistenz sicherstellen und CI/CD unterstützen kannst. SageMaker Projekte können dir bei den folgenden Aufgaben helfen:
+ Organisieren Sie alle Entitäten des ML-Lebenszyklus in einem Projekt.
+ Richten Sie mit nur einem Klick eine standardmäßige ML-Infrastruktur für Modelltraining und -bereitstellung ein, die bewährte Verfahren beinhaltet.
+ Erstellen und teilen Sie Vorlagen für die ML-Infrastruktur für mehrere Anwendungsfälle.
+ Nutzen Sie von SageMaker KI bereitgestellte vorgefertigte Vorlagen, um sich schnell auf die Modellbildung zu konzentrieren, oder erstellen Sie benutzerdefinierte Vorlagen mit unternehmensspezifischen Ressourcen und Richtlinien.
+ Integrieren Sie die Tools Ihrer Wahl, indem Sie die Projektvorlagen erweitern. Ein Beispiel finden Sie unter [Erstellen Sie ein SageMaker KI-Projekt für die Integration mit und Pipelines](https://aws.amazon.com/blogs/machine-learning/build-mlops-workflows-with-amazon-sagemaker-projects-gitlab-and-gitlab-pipelines/). GitLab GitLab
+ Organisieren Sie alle Entitäten des ML-Lebenszyklus in einem Projekt.

## Was ist in einem SageMaker KI-Projekt enthalten?
<a name="sagemaker-projects-within"></a>

Kunden haben die Flexibilität, ihre Projekte mit den Ressourcen einzurichten, die für ihren Anwendungsfall am besten geeignet sind. Das folgende Beispiel zeigt die MLOps Einrichtung für einen ML-Workflow, einschließlich Modelltraining und -bereitstellung.

![\[\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/projects/projects-ml-workflow.png)


Ein typisches Projekt mit einer von SageMaker KI bereitgestellten Vorlage könnte Folgendes beinhalten:
+ Ein oder mehrere Repositorys mit Beispielcode zum Erstellen und Bereitstellen von ML-Lösungen. Dies sind funktionierende Beispiele, die Sie an Ihre Bedürfnisse anpassen können. Sie besitzen diesen Code und können die versionskontrollierten Repositorys für Ihre Aufgaben nutzen.
+ Eine SageMaker KI-Pipeline, die Schritte für die Datenvorbereitung, das Training, die Modellevaluierung und die Modellbereitstellung definiert, wie in der folgenden Abbildung dargestellt.  
![\[\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/projects/pipeline-in-project-simple.png)
+ Eine CodePipeline oder Jenkins-Pipeline, die Ihre SageMaker KI-Pipeline jedes Mal ausführt, wenn Sie eine neue Version des Codes einchecken. Informationen zu finden Sie CodePipeline unter [Was ist](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html). AWS CodePipeline Informationen zu Jenkins finden Sie in der [Jenkins-Benutzerdokumentation](https://www.jenkins.io/doc/).
+ Eine Modellgruppe, die Modellversionen enthält. Jedes Mal, wenn Sie die aus einem SageMaker AI-Pipeline-Lauf resultierende Modellversion genehmigen, können Sie sie auf einem SageMaker KI-Endpunkt bereitstellen.

Jedes SageMaker KI-Projekt hat einen eindeutigen Namen und eine eindeutige ID, die als Tags auf alle im Projekt erstellten SageMaker KI und AWS Ressourcen angewendet werden. Mit dem Namen und der ID können Sie alle Entitäten anzeigen, die mit Ihrem Projekt verknüpft sind. Dazu zählen:
+ Pipelines
+ Registrierte Modelle
+ Bereitgestellte Modelle (Endpunkte)
+ Datensätze
+ Service Catalog
+ CodePipeline und Jenkins-Pipelines
+ CodeCommit und Git-Repositorys von Drittanbietern

## Muss ich ein Projekt erstellen, um SageMaker KI-Pipelines verwenden zu können?
<a name="sagemaker-projects-need"></a>

Nein. SageMaker Pipelines sind eigenständige Einheiten, genau wie Schulungsjobs, Verarbeitungsjobs und andere SageMaker KI-Jobs. Sie können Pipelines direkt in einem Notebook erstellen, aktualisieren und ausführen, indem Sie das SageMaker Python-SDK verwenden, ohne ein SageMaker KI-Projekt zu verwenden.

Projekte bieten eine zusätzliche Ebene, die Ihnen hilft, Ihren Code zu organisieren und betriebliche Best Practices zu übernehmen, die Sie für ein System mit Produktionsqualität benötigen.

# Für die Verwendung von Projekten sind SageMaker Studio-Berechtigungen erforderlich
<a name="sagemaker-projects-studio-updates"></a>

Der Administrator von Amazon SageMaker Studio (oder Studio Classic) und Studio (oder Studio Classic) -Benutzer, die Sie zu Ihrer Domain hinzufügen, können von SageMaker AI bereitgestellte Projektvorlagen einsehen und Projekte mit diesen Vorlagen erstellen. Standardmäßig kann der Administrator die SageMaker AI-Vorlagen in der Service Catalog-Konsole anzeigen. Der Administrator kann sehen, was ein anderer Benutzer erstellt, wenn der Benutzer berechtigt ist, SageMaker Projekte zu verwenden. Der Administrator kann die CloudFormation Vorlage, die die SageMaker AI-Projektvorlagen definieren, auch in der Service Catalog-Konsole anzeigen. Informationen zur Verwendung der Service Catalog-Konsole finden Sie unter [Was ist Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) im *Service Catalog-Benutzerhandbuch*.

Studio-Benutzer (und Studio Classic) der Domäne, die standardmäßig für die Verwendung derselben Ausführungsrolle wie die Domäne konfiguriert sind, sind berechtigt, Projekte mithilfe von SageMaker KI-Projektvorlagen zu erstellen.

**Wichtig**  
Erstellen Sie Ihre Rollen nicht manuell. Erstellen Sie Rollen immer über die **Studio-Einstellungen**, indem Sie die im folgenden Verfahren beschriebenen Schritte ausführen.

Für Benutzer, die eine andere Rolle als die Ausführungsrolle der Domain verwenden, um von SageMaker KI bereitgestellte Projektvorlagen anzusehen und zu verwenden, müssen Sie den einzelnen Benutzerprofilen **Projektberechtigungen** gewähren, indem Sie die Option Amazon ** SageMaker AI-Projektvorlagen und Amazon SageMaker JumpStart for Studio-Benutzer aktivieren aktivieren aktivieren aktivieren**, wenn Sie sie zu Ihrer Domain hinzufügen. Weitere Informationen zu diesem Schritt finden Sie unter [Benutzerprofil hinzufügen](domain-user-profile-add.md). 

Da SageMaker Projects von Service Catalog unterstützt wird, müssen Sie jede Rolle, die Zugriff auf SageMaker Projekte benötigt, dem **Amazon SageMaker AI Solutions- und ML Ops-Produktportfolio** im Servicekatalog hinzufügen. Sie können dies auf der Registerkarte **Gruppen, Rollen und Benutzer** tun, wie in der folgenden Abbildung dargestellt. Wenn jedes Benutzerprofil in Studio Classic eine andere Rolle hat, sollten Sie jede dieser Rollen dem Servicekatalog hinzufügen. Sie können dies auch tun, während Sie ein Benutzerprofil in Studio Classic erstellen.

## Gewähren neuer Domainrollen Zugriff auf Projekte
<a name="sagemaker-projects-grant-access"></a>

Wenn Sie die Ausführungsrolle Ihrer Domain ändern oder Benutzerprofile mit unterschiedlichen Rollen hinzufügen, müssen Sie diesen neuen Rollen Zugriff auf das Service Catalog-Portfolio gewähren, um SageMaker Projects verwenden zu können. Gehen Sie wie folgt vor, um sicherzustellen, dass alle Rollen über die erforderlichen Berechtigungen verfügen:

**So gewähren Sie neuen Domainrollen Zugriff auf Projekte**

1. Öffnen Sie die [Service-Quotas-Konsole](https://console.aws.amazon.com/servicecatalog/).

1. Wählen Sie im linken Navigationsmenü **Portfolios** aus.

1. Wählen Sie den Abschnitt **Importiert aus**.

1. Wählen Sie **Amazon SageMaker Solutions- und ML Ops-Produkte** aus.

1. Wählen Sie die Registerkarte **Zugriff** aus.

1. Wählen Sie **Grant access (Zugriff gewähren)**.

1. **Wählen Sie im Dialogfeld **Zugriff gewähren** die Option Rollen aus.**

1. Gewähren Sie Zugriff für alle Rollen, die von den Benutzerprofilen der Domain verwendet werden, einschließlich:
   + Die Ausführungsrolle der Domain
   + Alle benutzerdefinierten Ausführungsrollen, die einzelnen Benutzerprofilen zugewiesen sind

1. Wählen Sie zur Bestätigung **Zugriff gewähren** aus.

**Wichtig**  
Sie müssen diesen Vorgang immer dann abschließen, wenn Sie die Ausführungsrolle Ihrer Domain ändern oder Benutzerprofile mit neuen Ausführungsrollen hinzufügen. Ohne diesen Zugriff können Benutzer keine SageMaker Projekte erstellen oder verwenden.

Die folgenden Verfahren zeigen, wie Sie nach dem Onboarding bei Studio oder Studio Classic Berechtigungen für **Projekte** erteilen können. Weitere Informationen zum Onboarding in Studio oder Studio Classic finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

**Um zu überprüfen, ob Ihre SageMaker AI-Domain über aktive Berechtigungen für Projektvorlagen verfügt:**

1. Öffnen Sie die [SageMaker AI-Konsole](https://console.aws.amazon.com/sagemaker/).

1. Wählen Sie im linken Navigationsbereich **Admin-Konfigurationen**.

1. Wählen Sie unter **Admin-Konfigurationen** **Domains** aus. 

1. Wählen Sie Ihre Domain aus.

1. Wählen Sie den Tab **Domain-Einstellungen**.

1. Vergewissern Sie sich JumpStart, dass unter **SageMaker Projekte und** die folgenden Optionen aktiviert sind:
   + **Amazon SageMaker AI-Projektvorlagen und Amazon SageMaker JumpStart für dieses Konto aktivieren**
   + **Aktivieren Sie Amazon SageMaker AI-Projektvorlagen und Amazon SageMaker JumpStart for Studio-Benutzer**

**So zeigen Sie eine Liste Ihrer Rollen an:**

1. Öffnen Sie die [SageMaker AI-Konsole](https://console.aws.amazon.com/sagemaker/).

1. Wählen Sie im linken Navigationsbereich **Admin-Konfigurationen**.

1. Wählen Sie unter **Admin-Konfigurationen** **Domains** aus. 

1. Wählen Sie Ihre Domain aus.

1. Wählen Sie den Tab **Domain-Einstellungen**.

1. Eine Liste Ihrer Rollen wird auf der `Apps` Karte unter der Registerkarte **Studio** angezeigt.
**Wichtig**  
Seit dem 25. Juli benötigen wir zusätzliche Rollen, um Projektvorlagen verwenden zu können. Hier ist die vollständige Liste der Rollen, die Sie unter `Projects` finden sollten:  
`AmazonSageMakerServiceCatalogProductsLaunchRole` `AmazonSageMakerServiceCatalogProductsUseRole` `AmazonSageMakerServiceCatalogProductsApiGatewayRole` `AmazonSageMakerServiceCatalogProductsCloudformationRole` `AmazonSageMakerServiceCatalogProductsCodeBuildRole` `AmazonSageMakerServiceCatalogProductsCodePipelineRole` `AmazonSageMakerServiceCatalogProductsEventsRole` `AmazonSageMakerServiceCatalogProductsFirehoseRole` `AmazonSageMakerServiceCatalogProductsGlueRole` `AmazonSageMakerServiceCatalogProductsLambdaRole` `AmazonSageMakerServiceCatalogProductsExecutionRole`  
Beschreibungen dieser Rollen finden Sie unter [AWS Verwaltete Richtlinien für SageMaker Projekte und JumpStart](security-iam-awsmanpol-sc.md).

# Erstellen Sie ein MLOps Projekt mit Amazon SageMaker Studio oder Studio Classic
<a name="sagemaker-projects-create"></a>

**Wichtig**  
Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Tagging erlaubt, können "AccessDenied" Fehler beim Versuch, Ressourcen zu erstellen, auftreten. Weitere Informationen finden Sie unter [Erteilen Sie Berechtigungen für das Taggen von SageMaker KI-Ressourcen](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS verwaltete Richtlinien für Amazon SageMaker AI](security-iam-awsmanpol.md)die Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, beinhalten bereits Berechtigungen zum Hinzufügen von Tags beim Erstellen dieser Ressourcen.

Dieses Verfahren zeigt, wie Sie ein MLOps Projekt mit Amazon SageMaker Studio Classic erstellen.

**Voraussetzungen**
+ Ein IAM-Konto oder IAM Identity Center, um sich bei Studio oder Studio Classic anzumelden. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).
+ Erlaubnis zur Verwendung von SageMaker KI-bereitgestellten Projektvorlagen. Weitere Informationen finden Sie unter [Für die Verwendung von Projekten sind SageMaker Studio-Berechtigungen erforderlich](sagemaker-projects-studio-updates.md).
+ Grundlegende Vertrautheit mit der Studio-Classic-Benutzeroberfläche. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker Studio Classic-Benutzeroberfläche](studio-ui.md).

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Bereitstellungen** und anschließend **Projekte** aus.

1. Wählen Sie oben rechts über der Projektliste die Option Projekt **erstellen** aus.

1. Wählen Sie auf der Seite **Vorlagen** eine Vorlage aus, die Sie für Ihr Projekt verwenden möchten. Weitere Informationen zu Projektvorlagen finden Sie unter [MLOps Vorlagen für Projekte](sagemaker-projects-templates.md).

1. Wählen Sie **Weiter** aus.

1. Geben Sie auf der Seite **Projektdetails** die folgenden Informationen ein:
   + **Name**: ein Name für Ihr Projekt.
   + **Beschreibung**: eine optionale Beschreibung für Ihr Projekt.
   + Die Werte für die Service Catalog-Bereitstellungsparameter beziehen sich auf die von Ihnen gewählte Vorlage.

1. Wählen Sie **Projekt erstellen** und warten Sie, bis das Projekt in der **Projekt**-Liste angezeigt wird.

1. (Optional) Wählen Sie in der Studio-Seitenleiste **Pipelines** aus, um die aus Ihrem Projekt erstellte Pipeline anzuzeigen. Weitere Informationen zu Pipelines finden Sie unter [Pipelines](pipelines.md).

------
#### [ Studio Classic ]

1. Melden Sie sich bei Studio an. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Bereitstellungen** und dann **Projekte** aus.

1. Wählen Sie **Create project** (Projekt erstellen) aus.

   Die Registerkarte **Projekt erstellen** wird geöffnet und enthält eine Liste der verfügbaren Vorlagen.

1. Falls noch nicht ausgewählt, wählen Sie **SageMaker AI-Vorlagen**. Weitere Informationen zu Projektvorlagen finden Sie unter [MLOps Vorlagen für Projekte](sagemaker-projects-templates.md).

1. Wählen Sie die Vorlage **Modellerstellung, Training und Bereitstellung** aus.

1. Wählen Sie **Projektvorlage auswählen**.

   Die Registerkarte **Projekt erstellen** ändert sich und zeigt nun **Projektdetails** an.

1. Geben Sie die folgenden Informationen ein:
   + Geben Sie unter **Projektdetails** einen Namen und eine Beschreibung für Ihr Projekt ein.
   + Fügen Sie optional Tags hinzu, d. h. Schlüssel-Wert-Paare, die Sie zur Nachverfolgung Ihrer Projekte verwenden können.

1. Wählen Sie **Projekt erstellen** und warten Sie, bis das Projekt in der **Projekt**-Liste angezeigt wird.

------

# MLOps Vorlagen für Projekte
<a name="sagemaker-projects-templates"></a>

Eine Amazon SageMaker AI-Projektvorlage automatisiert die Einrichtung und Implementierung MLOps für Ihre Projekte. Eine SageMaker KI-Projektvorlage ist ein Service Catalog-Produkt, das SageMaker AI Benutzern von Amazon SageMaker Studio (oder Studio Classic) zur Verfügung stellt. Diese Service Catalog-Produkte sind in Ihrer Service Catalog-Konsole sichtbar, nachdem Sie beim Onboarding oder bei der Aktualisierung von Amazon SageMaker Studio (oder Studio Classic) die entsprechenden Berechtigungen aktiviert haben. Informationen zur Aktivierung von Berechtigungen zur Verwendung von SageMaker KI-Projektvorlagen finden Sie unter[Für die Verwendung von Projekten sind SageMaker Studio-Berechtigungen erforderlich](sagemaker-projects-studio-updates.md). Verwenden Sie SageMaker KI-Projektvorlagen, um ein Projekt zu erstellen, das eine end-to-end MLOps Lösung darstellt.

Sie können eine SageMaker Projektvorlage verwenden, um die Image-Erstellung CI/CD. With this template, you can automate the CI/CD von Images zu implementieren, die erstellt und an Amazon ECR übertragen wurden. Änderungen an den Containerdateien in den Quellcodeverwaltungs-Repositorys Ihres Projekts initiieren die ML-Pipeline und stellen die neueste Version für Ihren Container bereit. Weitere Informationen finden Sie im Blog [ SageMaker Amazon-Projekte mit CI/CD Pipelines zur Imageerstellung erstellen](https://aws.amazon.com/blogs/machine-learning/create-amazon-sagemaker-projects-with-image-building-ci-cd-pipelines/).

Wenn Sie ein Administrator sind, können Sie benutzerdefinierte Projektvorlagen von Grund auf neu erstellen oder eine der von SageMaker AI bereitgestellten Projektvorlagen ändern. Studio-Benutzer (oder Studio-Classic-Benutzer) in Ihrer Organisation können diese benutzerdefinierten Projektvorlagen verwenden, um ihre Projekte zu erstellen.

**Topics**
+ [Verwenden Sie von SageMaker KI bereitgestellte Projektvorlagen](sagemaker-projects-templates-sm.md)
+ [Erstellen Sie benutzerdefinierte Projektvorlagen](sagemaker-projects-templates-custom.md)

# Verwenden Sie von SageMaker KI bereitgestellte Projektvorlagen
<a name="sagemaker-projects-templates-sm"></a>

**Wichtig**  
Ab dem 28. Oktober 2024 wurden die AWS CodeCommit Vorlagen entfernt. Wählen Sie für neue Projekte aus den verfügbaren Projektvorlagen aus, die Git-Repositorys von Drittanbietern verwenden.

Amazon SageMaker AI bietet Projektvorlagen, die die Infrastruktur erstellen, die Sie für die Erstellung einer MLOps Lösung für die kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) von ML-Modellen benötigen. Verwenden Sie diese Vorlagen, um Daten zu verarbeiten, Funktionen zu extrahieren, Modelle zu trainieren und zu testen, die Modelle in der SageMaker Model Registry zu registrieren und die Modelle für Inferenz bereitzustellen. Sie können den Seed-Code und die Konfigurationsdateien an Ihre Anforderungen anpassen.

**Anmerkung**  
Für die Verwendung von Projektvorlagen sind zusätzliche Rollen erforderlich. Eine vollständige Liste der erforderlichen Rollen und Anweisungen zu ihrer Erstellung finden Sie unter [Für die Verwendung von Projekten sind SageMaker Studio-Berechtigungen erforderlich](sagemaker-projects-studio-updates.md). Wenn Sie nicht über die neuen Rollen verfügen, erhalten Sie die Fehlermeldung **CodePipeline is not authorized to perform AssumeRole on role arn:aws:iam: :xxx:**, role/service-role/AmazonSageMakerServiceCatalogProductsCodePipelineRole wenn Sie versuchen, ein neues Projekt zu erstellen und nicht fortfahren können.

SageMaker KI-Projektvorlagen bieten Ihnen die folgende Auswahl an Code-Repositorys, Tools zur Workflow-Automatisierung und Pipeline-Phasen:
+ **Code-Repository**: Git-Repositorys von Drittanbietern wie GitHub Bitbucket
+ **CI/CD-Workflow-Automatisierung**: oder Jenkins AWS CodePipeline 
+ **Phasen der Pipeline**: Modellerstellung und Training, Modellbereitstellung oder beides

Die folgende Diskussion bietet einen Überblick über jede Vorlage, die Sie bei der Erstellung Ihres KI-Projekts auswählen können. SageMaker Sie können die verfügbaren Vorlagen auch in Studio (oder Studio Classic) anzeigen, indem Sie den Anweisungen unter [Projekt erstellen](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-projects-walkthrough.html#sagemaker-proejcts-walkthrough-create) der [Projektanleitung](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-projects-walkthrough.html) folgen.

 step-by-stepAnweisungen zum Erstellen eines echten Projekts finden Sie in einer der exemplarischen Vorgehensweisen für das Projekt:
+ Wenn Sie die Vorlage [MLOps Vorlagen für Modellerstellung, Schulung und Bereitstellung mit Git eines Drittanbieters unter Verwendung von CodePipeline](#sagemaker-projects-templates-git-code-pipeline) verwenden möchten, siehe [Gehen Sie mithilfe von Git-Repos von Drittanbietern durch ein SageMaker MLOps KI-Projekt](sagemaker-projects-walkthrough-3rdgit.md).
+ Wenn Sie die Vorlage verwenden möchten[MLOps Vorlagen für Modellerstellung, Training und Bereitstellung mit Git-Repositorys von Drittanbietern mithilfe von Jenkins](#sagemaker-projects-templates-git-jenkins), finden Sie weitere Informationen unter [ SageMaker Amazon-Projekte mit Drittanbieter-Quellcodeverwaltung und Jenkins erstellen](https://aws.amazon.com/blogs/machine-learning/create-amazon-sagemaker-projects-using-third-party-source-control-and-jenkins/).

**Topics**

## MLOps Vorlagen für Modellerstellung, Schulung und Bereitstellung mit Git eines Drittanbieters unter Verwendung von CodePipeline
<a name="sagemaker-projects-templates-git-code-pipeline"></a>
+ **Code-Repository**: Git eines Drittanbieters.
**Anmerkung**  
Stellen Sie die AWS CodeStar Verbindung von Ihrem AWS Konto zu Ihrem GitHub Benutzer oder Ihrer Organisation her. Fügen Sie dieser AWS CodeStar Verbindung ein Tag mit dem Schlüssel `sagemaker` und `true` dem Wert hinzu.
+ Automatisierung des **CI/CD-Workflows**: AWS CodePipeline

### Modellbau und Training
<a name="sagemaker-projects-templates-git-code-pipeline-building-training"></a>

Diese Vorlage enthält die folgenden Ressourcen:
+ Verknüpfungen mit einem kundenspezifischen Git-Repository. Das Repository enthält Beispielcode, der eine Amazon SageMaker AI-Pipeline in Python-Code erstellt und zeigt, wie die SageMaker AI-Pipeline erstellt und aktualisiert wird. Dieses Repository enthält auch ein Python-Beispiel-Notebook, das Sie in Studio (oder Studio Classic) öffnen und ausführen können.
+ Eine AWS CodePipeline Pipeline mit Quell- und Build-Schritten. Der Quellschritt verweist auf das Git-Repository eines Drittanbieters. Der Build-Schritt ruft den Code aus diesem Repository ab, erstellt und aktualisiert die SageMaker AI-Pipeline, startet eine Pipeline-Ausführung und wartet, bis die Pipeline-Ausführung abgeschlossen ist.
+ Ein AWS CodeBuild Projekt zum Auffüllen der Git-Repositorys mit den Seed-Code-Informationen. Dies erfordert eine AWS CodeStar Verbindung von Ihrem AWS-Konto zu Ihrem Konto auf dem Git-Repository-Host.
+ Ein Amazon S3 S3-Bucket zum Speichern von Artefakten, einschließlich CodeBuild Artefakten, CodePipeline und aller Artefakte, die aus der SageMaker KI-Pipeline generiert wurden, wird ausgeführt.

### Modellbereitstellung
<a name="sagemaker-projects-templates-git-code-pipeline-deployment"></a>

Diese Vorlage enthält die folgenden Ressourcen:
+ Verknüpfungen mit einem kundenspezifischen Git-Repository. Das Repository enthält Beispielcode, der Modelle auf Endpunkten in Staging- und Produktionsumgebungen bereitstellt.
+ Eine AWS CodePipeline Pipeline mit Quelle deploy-to-staging, Build und deploy-to-production Schritten. Der Quellschritt verweist auf das Git-Repository eines Drittanbieters und der Build-Schritt ruft den Code aus diesem Repository ab und generiert CloudFormation Stacks zur Bereitstellung. Die deploy-to-production Schritte deploy-to-staging und stellen die CloudFormation Stacks in ihren jeweiligen Umgebungen bereit. Zwischen der Bereitstellungsphase und der Serienfertigung findet ein manueller Genehmigungsschritt statt, sodass ein MLOps Techniker das Modell genehmigen muss, bevor es in der Produktion eingesetzt wird.
+ Ein AWS CodeBuild Projekt zum Auffüllen der Git-Repositorys mit den Seed-Code-Informationen. Dies erfordert eine AWS CodeStar Verbindung von Ihrem AWS-Konto zu Ihrem Konto auf dem Git-Repository-Host.
+ Ein Amazon S3 S3-Bucket zum Speichern von Artefakten, einschließlich CodeBuild Artefakten, CodePipeline und aller Artefakte, die aus der SageMaker KI-Pipeline generiert wurden, wird ausgeführt.

### Modellerstellung, Training und Bereitstellung
<a name="sagemaker-projects-templates-git-code-pipeline-building-training-deployment"></a>

Diese Vorlage enthält die folgenden Ressourcen:
+ Verknüpfungen mit einem oder mehreren kundenspezifischen Git-Repositorys.
+ Eine AWS CodePipeline Pipeline mit Quellcode deploy-to-staging, Build und deploy-to-production Schritten. Der Quellschritt verweist auf das Git-Repository eines Drittanbieters, und im Build-Schritt wird der Code aus diesem Repository abgerufen und CloudFormation-Stacks für die Bereitstellung generiert. Die deploy-to-production Schritte deploy-to-staging und stellen die CloudFormation Stacks in ihren jeweiligen Umgebungen bereit. Zwischen der Bereitstellungsphase und der Serienfertigung findet ein manueller Genehmigungsschritt statt, sodass ein MLOps Techniker das Modell genehmigen muss, bevor es in der Produktion eingesetzt wird.
+ Ein AWS CodeBuild Projekt zum Auffüllen der Git-Repositorys mit den Seed-Code-Informationen. Dies erfordert eine AWS CodeStar Verbindung von Ihrem AWS Konto zu Ihrem Konto auf dem Git-Repository-Host.
+ Ein Amazon S3 S3-Bucket zum Speichern von Artefakten, einschließlich CodeBuild Artefakten, CodePipeline und aller Artefakte, die aus der SageMaker KI-Pipeline generiert wurden, wird ausgeführt.

Wie bereits erwähnt, finden Sie unter [Project Walkthrough Using Git Repos von Drittanbietern](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-projects-walkthrough-3rdgit.html) eine Demonstration, wie diese Vorlage verwendet wird, um ein echtes Projekt zu erstellen.

## MLOps Vorlage für Modellerstellung, Schulung, Bereitstellung und Verwendung von Amazon SageMaker Model Monitor CodePipeline
<a name="sagemaker-projects-template-model-monitor"></a>
+ **Code-Repository**: Git eines Drittanbieters.
**Anmerkung**  
Stellen Sie die AWS CodeStar Verbindung von Ihrem AWS Konto zu Ihrem GitHub Benutzer oder Ihrer Organisation her. Fügen Sie dieser AWS CodeStar Verbindung ein Tag mit dem Schlüssel `sagemaker` und `true` dem Wert hinzu.
+ Automatisierung des **CI/CD-Workflows**: AWS CodePipeline

Die folgenden Vorlagen enthalten eine zusätzliche Amazon SageMaker Model Monitor-Vorlage, die die folgenden Arten der Überwachung bietet:
+ [Datenqualität](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-quality.html) – Überwachen Sie Abweichungen bei der Datenqualität.
+ [Modellqualität](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality.html) – Überwachen Sie Abweichungen bei den Kennzahlen zur Modellqualität, z. B. bei der Genauigkeit.
+ [Verzerrungen bei Modellen in der Produktion](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-model-monitor-bias-drift.html): Überwachen Sie Verzerrungen bei den Vorhersagen eines Modells.

### Modellbau, Schulung, Bereitstellung und Amazon SageMaker Model Monitor
<a name="sagemaker-projects-template-model-monitor-training-deployment-model-monitor"></a>

Diese Vorlage ist eine Erweiterung der MLOps Vorlage für die Modellerstellung, das Training und die Bereitstellung mit Git-Repositorys unter Verwendung von CodePipeline. Sie umfasst sowohl die Modellerstellungs-, Schulungs- und Bereitstellungskomponenten der Vorlage als auch eine zusätzliche Amazon SageMaker Model Monitor-Vorlage, die die folgenden Arten der Überwachung bietet: 

### Überwachen eines bereitgestellten Modells
<a name="sagemaker-projects-template-model-monitor-deploy"></a>

Sie können diese Vorlage für eine MLOps Lösung verwenden, um einen oder mehrere der Amazon SageMaker AI-Monitore für Datenqualität, Modellqualität, Modellverzerrung und Modellerklärbarkeit bereitzustellen, um ein bereitgestelltes Modell auf einem SageMaker KI-Inferenzendpunkt zu überwachen. Diese Vorlage enthält die folgenden Ressourcen: 
+ Verknüpfungen mit einem oder mehreren kundenspezifischen Git-Repositorys. Das Repository enthält Python-Beispielcode, der die von den Monitoren verwendeten [Baselines](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-create-baseline.html) aus der Amazon SageMaker Model Registry abruft und die Parameter der Vorlage für die Staging- und Produktionsumgebungen aktualisiert. Es enthält auch eine CloudFormation Vorlage zur Erstellung der Amazon SageMaker Model Monitors.
+ Eine AWS CodePipeline Pipeline mit Schritten zur Beschaffung, Erstellung und Bereitstellung. Der Quellschritt verweist auf das CodePipeline Repository. Im Build-Schritt wird der Code aus diesem Repository abgerufen, die Baseline aus der Model Registry abgerufen und die Vorlagenparameter für die Staging- und Produktionsumgebung aktualisiert. In den Bereitstellungsschritten werden die konfigurierten Monitore in der Staging- und Produktionsumgebung bereitgestellt. Der manuelle Genehmigungsschritt innerhalb der `DeployStaging` Phase erfordert, dass Sie überprüfen, ob sich der SageMaker KI-Produktionsendpunkt befindet, `InService` bevor Sie die Genehmigung erteilen und zur `DeployProd` Phase übergehen.
+ Ein AWS CodeBuild Projekt zum Auffüllen der Git-Repositorys mit den Seed-Code-Informationen. Dies erfordert eine AWS CodeStar Verbindung von Ihrem AWS-Konto zu Ihrem Konto auf dem Git-Repository-Host.
+ Die Vorlage verwendet denselben Amazon S3 S3-Bucket, der von der MLOps Vorlage für Modellbildung, Schulung und Bereitstellung erstellt wurde, um die Ausgaben der Monitore zu speichern.
+ Zwei EventBridge Amazon-Event-Regeln initiieren den Amazon SageMaker Model Monitor AWS CodePipeline jedes Mal, wenn der SageMaker Staging-KI-Endpunkt aktualisiert wird.

## MLOps Vorlagen für Modellerstellung, Training und Bereitstellung mit Git-Repositorys von Drittanbietern mithilfe von Jenkins
<a name="sagemaker-projects-templates-git-jenkins"></a>
+ **Code-Repository**: Git eines Drittanbieters.
**Anmerkung**  
Stellen Sie die AWS CodeStar Verbindung von Ihrem AWS Konto zu Ihrem GitHub Benutzer oder Ihrer Organisation her. Fügen Sie dieser AWS CodeStar Verbindung ein Tag mit dem Schlüssel `sagemaker` und `true` dem Wert hinzu.
+ **CI/CD-Workflow-Automatisierung**: Jenkins

### Modellerstellung, Training und Bereitstellung
<a name="sagemaker-projects-templates-git-jenkins-building-training-deployment"></a>

Diese Vorlage enthält die folgenden Ressourcen:
+ Verknüpfungen mit einem oder mehreren kundenspezifischen Git-Repositorys.
+ Startcode zur Generierung von Jenkins-Pipelines mit Quellcode deploy-to-staging, Build und Schritten. deploy-to-production Der Quellschritt verweist auf das vom Kunden angegebene Git-Repository. Der Build-Schritt ruft den Code aus diesem Repository ab und generiert zwei Stacks. CloudFormation Bei den Bereitstellungsschritten werden die CloudFormation Stacks in ihren jeweiligen Umgebungen bereitgestellt. Zwischen dem Staging-Schritt und dem Produktionsschritt gibt es einen Genehmigungsschritt.
+ Ein AWS CodeBuild Projekt zum Auffüllen der Git-Repositorys mit den Seed-Code-Informationen. Dies erfordert eine AWS CodeStar Verbindung von Ihrem AWS Konto zu Ihrem Konto auf dem Git-Repository-Host.
+ Ein Amazon S3 S3-Bucket zum Speichern von Artefakten des SageMaker KI-Projekts und der SageMaker KI-Pipeline.

Die Vorlage stellt die Verknüpfung zwischen Ihrem Projekt und den Quellcodeverwaltungs-Repositorys her. Sie müssen jedoch zusätzliche manuelle Schritte ausführen, um die Kommunikation zwischen Ihrem AWS Konto und Jenkins herzustellen. Die detaillierten Schritte finden Sie unter [ SageMaker Amazon-Projekte mithilfe von Drittanbieter-Quellcodeverwaltung und Jenkins erstellen](https://aws.amazon.com/blogs/machine-learning/create-amazon-sagemaker-projects-using-third-party-source-control-and-jenkins/).

Die Anweisungen helfen Ihnen dabei, die im folgenden Diagramm gezeigte Architektur zu erstellen, die in diesem GitHub Beispiel als Quellcodeverwaltungs-Repository dient. Wie gezeigt, hängen Sie Ihr Git-Repository an das Projekt an, um Codeversionen einzuchecken und zu verwalten. Jenkins initiiert die Model-Build-Pipeline, wenn es Änderungen am Model-Build-Code im Git-Repository erkennt. Sie verbinden das Projekt auch mit Jenkins, um Ihre Schritte zur Modellbereitstellung zu orchestrieren. Diese beginnen, wenn Sie das in der Modellregistrierung registrierte Modell genehmigen oder wenn Jenkins Änderungen am Modellbereitstellungscode feststellt.



![\[\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/projects/projects-templates-gitjenkins.png)


Zusammenfassend führen Sie die folgenden Schritte durch die folgenden Aufgaben:

1. Stellen Sie die Verbindung zwischen Ihren GitHub Konten AWS und Ihren Konten her.

1. Erstellen Sie das Jenkins-Konto und importieren Sie die benötigten Plugins.

1. Erstellen Sie die Jenkins IAM-Benutzer- und Berechtigungsrichtlinie.

1. Legen Sie die AWS Anmeldeinformationen für den Jenkins IAM-Benutzer auf Ihrem Jenkins-Server fest.

1. Erstellen Sie ein API-Token für die Kommunikation mit Ihrem Jenkins-Server.

1. Verwenden Sie eine CloudFormation Vorlage, um eine EventBridge Regel zur Überwachung der Modellregistrierung auf neu zugelassene Modelle einzurichten.

1. Erstellen Sie das SageMaker KI-Projekt, das Ihre GitHub Repositorys mit Modellerstellungs- und Bereitstellungscode versorgt.

1. Erstellen Sie Ihre Jenkins-Modellbau-Pipeline mit dem Model-Build-Seedcode.

1. Erstellen Sie Ihre Jenkins-Modell-Deploy-Pipeline mit dem Modell-Deploy-Seedcode.

## MLOps Vorlage für Image-Erstellung, Modellerstellung und Modellbereitstellung
<a name="sagemaker-projects-templates-image-building-model-building-deployment"></a>

Diese Vorlage ist eine Erweiterung von [MLOps Vorlagen für Modellerstellung, Schulung und Bereitstellung mit Git eines Drittanbieters unter Verwendung von CodePipeline](#sagemaker-projects-templates-git-code-pipeline). Sie umfasst sowohl die Modellerstellungs-, Trainings- und Bereitstellungskomponenten dieser Vorlage als auch die folgenden Optionen:
+ Schließen Sie die Pipeline zur Erstellung von Verarbeitungsabbildern ein
+ Pipeline zur Erstellung von Trainings-Images einbeziehen
+ Pipeline zur Erstellung von Inferenz-Images einbeziehen

Für jede der Komponenten, die bei der Projekterstellung ausgewählt wurden, werden die folgenden Komponenten mithilfe der Vorlage erstellt:
+ Ein Amazon-ECR-Repository
+ [Ein SageMaker Bild](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateImage.html)
+ Ein CodeCommit Repository, das eine Dockerfile enthält, die Sie anpassen können
+ A CodePipeline , das durch Änderungen am Repository initiiert wird CodePipeline 
+ Ein CodeBuild Projekt, das ein Docker-Image erstellt und es im Amazon ECR-Repository registriert
+ Eine EventBridge Regel, die das nach einem Zeitplan initiiert CodePipeline 

Wenn der initiiert CodePipeline wird, erstellt er einen neuen Docker-Container und registriert ihn bei einem Amazon ECR-Repository. Wenn ein neuer Container im Amazon ECR-Repository registriert wird, `ImageVersion` wird dem SageMaker Image ein neuer hinzugefügt. Dadurch wird die Modellerstellungspipeline initiiert, die wiederum die Bereitstellungspipeline initiiert.

Das neu erstellte Image wird gegebenenfalls bei der Modellerstellung, beim Schulen und bei der Bereitstellung des Workflows verwendet.

## SageMaker Projekte aktualisieren, um Git-Repositorys von Drittanbietern zu verwenden
<a name="sagemaker-projects-templates-update"></a>

Die der `AmazonSageMakerServiceCatalogProductsUseRole` Rolle zugeordnete verwaltete Richtlinie wurde am 27. Juli 2021 für die Verwendung mit den Git-Vorlagen von Drittanbietern aktualisiert. Benutzer, die nach diesem Datum bei Amazon SageMaker Studio (oder Studio Classic) einsteigen und Projektvorlagen aktivieren, verwenden die neue Richtlinie. Benutzer, die sich vor diesem Datum angemeldet haben, müssen die Richtlinie aktualisieren, um diese Vorlagen verwenden zu können. Zum Aktualisieren der Richtlinie können Sie einen der folgenden Optionen verwenden:
+ Löschen der Rolle und Umschalten zwischen den Studio-Einstellungen (oder Studio-Classic-Einstellungen)

  1. Löschen Sie `AmazonSageMakerServiceCatalogProductsUseRole` in der IAM-Konsole.

  1. Wählen Sie in der Systemsteuerung von Studio (oder Studio Classic) die Option **Einstellungen bearbeiten** aus.

  1. Schalten Sie beide Einstellungen um und wählen Sie dann **Übermitteln**.
+ Fügen Sie in der IAM-Konsole die folgenden Berechtigungen hinzu: `AmazonSageMakerServiceCatalogProductsUseRole`

  ```
  {
        "Effect": "Allow",
        "Action": [
            "codestar-connections:UseConnection"
        ],
        "Resource": "arn:aws:codestar-connections:*:*:connection/*",
        "Condition": {
            "StringEqualsIgnoreCase": {
                "aws:ResourceTag/sagemaker": "true"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": [
            "s3:PutObjectAcl"
        ],
        "Resource": [
            "arn:aws:s3:::sagemaker-*"
        ]
    }
  ```

# Erstellen Sie benutzerdefinierte Projektvorlagen
<a name="sagemaker-projects-templates-custom"></a>

**Wichtig**  
Ab dem 28. Oktober 2024 wurden die AWS CodeCommit Vorlagen entfernt. Wählen Sie für neue Projekte aus den verfügbaren Projektvorlagen aus, die Git-Repositorys von Drittanbietern verwenden. Weitere Informationen finden Sie unter [MLOps Vorlagen für Projekte](sagemaker-projects-templates.md).

Wenn die von der SageMaker KI bereitgestellten Vorlagen nicht Ihren Anforderungen entsprechen (wenn Sie beispielsweise eine komplexere Orchestrierung CodePipeline mit mehreren Phasen oder benutzerdefinierten Genehmigungsschritten wünschen), erstellen Sie Ihre eigenen Vorlagen.

Wir empfehlen, zunächst von SageMaker KI bereitgestellte Vorlagen zu verwenden, um zu verstehen, wie Sie Ihren Code und Ihre Ressourcen organisieren und darauf aufbauen können. Melden Sie sich dazu, nachdem Sie den Administratorzugriff auf die SageMaker AI-Vorlagen aktiviert haben, bei der an [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/), wählen Sie **Portfolios** und dann **Importiert** aus. Informationen zu Service Catalog finden Sie unter Service Catalog [Übersicht des Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/what-is_concepts.html) im *Service Catalog-Benutzerhandbuch*.

Erstellen Sie Ihre eigenen Projektvorlagen, um Ihr MLOps Projekt anzupassen. SageMaker KI-Projektvorlagen sind von Service Catalog bereitgestellte Produkte zur Bereitstellung der Ressourcen für Ihr Projekt. MLOps 

Um eine benutzerdefinierte Projektvorlage zu erstellen, führen Sie die folgenden Schritte aus.

1. Erstellen Sie ein Portfolio. Weitere Informationen finden Sie unter [Schritt 3: Erstellen eines Service Catalog Portfolios](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-portfolio.html).

1. Erstellen Sie ein neues Produkt. Ein Produkt ist eine Vorlage. CloudFormation Sie können mehrere Versionen des Produkts erstellen. Weitere Informationen finden Sie unter [Schritt 4: Ein Service Catalog-Produkt erstellen](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-product.html).

   Damit das Produkt mit SageMaker Projekten funktioniert, fügen Sie Ihrer Produktvorlage die folgenden Parameter hinzu.

   ```
   SageMakerProjectName:
   Type: String
   Description: Name of the project
   
   SageMakerProjectId:
   Type: String
   Description: Service generated Id of the project.
   ```
**Wichtig**  
Wir empfehlen, das Repository in das CodeCommit SageMaker AI-Code-Repository einzubinden, damit die Projekt-Repositorys im VPC-Modus sichtbar sind. Die Beispielvorlage und der erforderliche Zusatz werden in den folgenden Codebeispielen gezeigt.  
Originalvorlage (Beispiel):  

   ```
   ModelBuildCodeCommitRepository:
       Type: AWS::CodeCommit::Repository
       Properties:
         # Max allowed length: 100 chars
         RepositoryName: !Sub sagemaker-${SageMakerProjectName}-${SageMakerProjectId}-modelbuild # max: 10+33+15+10=68
         RepositoryDescription: !Sub SageMaker Model building workflow infrastructure as code for the Project ${SageMakerProjectName}
         Code:
           S3:
             Bucket: SEEDCODE_BUCKETNAME
             Key: toolchain/model-building-workflow-v1.0.zip
           BranchName: main
   ```
Zusätzliche Inhalte, die im VPC-Modus hinzugefügt werden können:  

   ```
   SageMakerRepository:
       Type: AWS::SageMaker::CodeRepository
       Properties:
           GitConfig:
               RepositoryUrl: !GetAtt ModelBuildCodeCommitRepository.CloneUrlHttp
               Branch: main
   ```

1. Fügen Sie eine Starteinschränkung hinzu. Eine Starteinschränkung legt eine IAM-Rolle fest, die der Service Catalog annimmt, wenn ein Endbenutzer ein Produkt startet. Weitere Informationen finden Sie unter [Schritt 6: Hinzufügen einer Startbeschränkung, um eine IAM-Rolle zuzuweisen](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-launchconstraint.html).

1. Stellen Sie das Produkt bereit [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/), um die Vorlage zu testen. Wenn Sie mit Ihrer Vorlage zufrieden sind, fahren Sie mit dem nächsten Schritt fort, um die Vorlage in Studio (oder Studio Classic) verfügbar zu machen.

1. Gewähren Sie Ihrer Ausführungsrolle von Studio (oder Studio Classic) Zugriff auf das Service-Catalog-Portfolio, das Sie in Schritt 1 erstellt haben. Verwenden Sie entweder die Domainausführungsrolle oder eine Benutzerrolle mit Studio-Zugriff (oder Studio-Classic-Zugriff). Informationen zum Hinzufügen einer Rolle zum Portfolio finden Sie unter [Schritt 7: Endbenutzern Zugriff auf das Portfolio gewähren](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-deploy.html).

1. Um Ihre Projektvorlage in Ihrer **Organisationsvorlagen**-Liste in Studio (oder Studio Classic) verfügbar zu machen, erstellen Sie ein Tag mit dem folgenden Schlüssel und Wert für das Service-Catalog-Produkt, das Sie in Schritt 2 erstellt haben.
   + **Schlüssel**: `sagemaker:studio-visibility`
   + **Wert**: `true`

Nachdem Sie diese Schritte abgeschlossen haben, können Studio-Benutzer (oder Studio-Classic-Benutzer) in Ihrer Organisation ein Projekt mit der von Ihnen erstellten Vorlage erstellen, indem Sie die Schritte unter [Erstellen Sie ein MLOps Projekt mit Amazon SageMaker Studio oder Studio Classic](sagemaker-projects-create.md) befolgen und **Organisationsvorlagen** auswählen, wenn Sie eine Vorlage auswählen.

## Verwenden einer Vorlage aus einem Amazon S3 S3-Bucket
<a name="sagemaker-projects-templates-s3"></a>

Sie können SageMaker Projekte auch mithilfe von Vorlagen erstellen, die in Amazon S3 gespeichert sind.

**Anmerkung**  
Sie können zwar die Vorlagen in der verwenden AWS Service Catalog, wir empfehlen jedoch, Vorlagen in einem S3-Bucket zu speichern und Projekte mit diesen Vorlagen zu erstellen.

### Admin-Setup
<a name="sagemaker-projects-templates-s3-setup"></a>

Bevor Sie Projekte mithilfe von Vorlagen in einem S3-Bucket erstellen können, führen Sie die folgenden Schritte aus.

1. [Erstellen Sie einen S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) und laden Sie Ihre Vorlagen in den Bucket hoch.

1. [Richten Sie eine CORS-Richtlinie für Ihren S3-Bucket ein, um Zugriffsberechtigungen zu konfigurieren](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html).

1. Fügen Sie der Vorlage das folgende Schlüssel-Wert-Tag hinzu, damit sie für KI sichtbar werden. SageMaker 

   ```
   sagemaker:studio-visibility : true
   ```

1. [Erstellen Sie eine Domain](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-quick-start.html).

1. Nachdem SageMaker AI die Erstellung Ihrer Domain abgeschlossen hat, fügen Sie der Domain das folgende Key-Value-Tag hinzu:

   ```
   sagemaker:projectS3TemplatesLocation : s3://<amzn-s3-demo-bucket>
   ```

Verwenden Sie dann die AWS Konsolen-, Python- oder [UpdateProject](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateProject.html)API-Operationen, um ein SageMaker Projekt anhand von Vorlagen im S3-Bucket zu erstellen oder zu aktualisieren. [CreateProject](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProject.html)

------
#### [ Studio ]

**Erstellen eines Projekts**

1. Öffnen Sie die Amazon SageMaker AI-Konsole unter [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Bereitstellungen**, **Projekte**, **Projekt erstellen** aus.

1. Wählen Sie **Organisationsvorlagen** und dann **S3-Vorlagen** aus, um die Vorlagen zu sehen, die Ihnen zur Verfügung stehen. Wenn Sie keine Vorlage sehen, die Sie erwarten, benachrichtigen Sie Ihren Administrator.

1. Wählen Sie die Vorlage aus, die Sie verwenden möchten, und klicken Sie dann auf **Weiter**.

1. Geben Sie einen Namen für Ihr Projekt, eine optionale Beschreibung und die anderen erforderlichen Felder ein. Wählen Sie anschließend **Erstellen** aus.

**Aktualisieren Sie ein Projekt**

1. Öffnen Sie die Amazon SageMaker AI-Konsole unter [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie das Projekt aus, das Sie aktualisieren möchten. Wählen Sie „**Aktionen**“ und anschließend „**Projekt aktualisieren“**.

1. Wenn Sie ein Projekt aktualisieren, können Sie die Vorlagenparameter oder die Vorlagen-URL aktualisieren. Wählen Sie abschließend **Weiter**.

1. **Sehen Sie sich die Projektaktualisierungen in der Übersichtstabelle an und wählen Sie Aktualisieren aus.**

------
#### [ Python Boto3 ]

Nachdem Sie den S3-Bucket erstellt und Ihre Vorlagen hochgeladen haben, können Sie das folgende Beispiel verwenden, um ein SageMaker Projekt zu erstellen.

```
sagemaker_client = boto3.client('sagemaker', region_name='us-west-2')

response = sagemaker_client.create_project(
    ProjectName='my-custom-project',
    ProjectDescription='SageMaker project with custom CFN template stored in S3',
    TemplateProviders=[{
        'CfnTemplateProvider': {
            'TemplateName': 'CustomProjectTemplate',
            'TemplateURL': f'https://<bucket_name>.s3.us-west-2.amazonaws.com/custom-project-template.yml',
            'Parameters': [
                {'Key': 'ParameterKey', 'Value': 'ParameterValue'}
            ]
        }
    }]
)
print(f"Project ARN: {response['ProjectArn']}")
```

Informationen zum Aktualisieren eines SageMaker Projekts finden Sie im folgenden Beispiel.

```
sagemaker_client = boto3.client('sagemaker', region_name='us-west-2')

response = sagemaker_client.update_project(
    ProjectName='my-custom-project',
    ProjectDescription='SageMaker project with custom CFN template stored in S3',
    TemplateProvidersToUpdate=[{
        'CfnTemplateProvider': {
            'TemplateName': 'CustomProjectTemplate',
            'TemplateURL': f'https://<bucket_name>.s3.us-west-2.amazonaws.com/custom-project-template.yml',
            'Parameters': [
                {'Key': 'ParameterKey', 'Value': 'ParameterValue'}
            ]
        }
    }]
)
print(f"Project ARN: {response['ProjectArn']}")
```

------

# Projektressourcen anzeigen
<a name="sagemaker-projects-resources"></a>

Nachdem Sie ein Projekt erstellt haben, sehen Sie sich die mit dem Projekt verknüpften Ressourcen in Amazon SageMaker Studio Classic an.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Bereitstellungen** und anschließend **Projekte** aus.

1. Wählen Sie den Namen des Projekts aus, für das Sie Details anzeigen möchten. Eine Seite mit den Projektdetails wird angezeigt.

Auf der Projektdetailseite können Sie die folgenden Entitäten anzeigen. Sie können jede der folgenden Registerkarten öffnen, die der Entität entsprechen, die dem Projekt zugeordnet ist.
+ Repositorys: Code-Repositorys (Repos), die mit diesem Projekt verknüpft sind. Wenn Sie bei der Erstellung Ihres Projekts eine von SageMaker KI bereitgestellte Vorlage verwenden, wird damit ein Repo oder ein AWS CodeCommit Git-Repo eines Drittanbieters erstellt. [Weitere Informationen zu finden Sie unter CodeCommit Was ist. AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
+ Pipelines: SageMaker KI-ML-Pipelines, die Schritte zur Vorbereitung von Daten, zum Trainieren und Bereitstellen von Modellen definieren. Informationen zu SageMaker KI-ML-Pipelines finden Sie unter. [Pipeline-Aktionen](pipelines-build.md)
+ Experimente: Ein oder mehrere Amazon SageMaker Autopilot-Experimente im Zusammenhang mit dem Projekt. Weitere Informationen zu Autopilot finden Sie unter [SageMaker Autopilot](autopilot-automate-model-development.md).
+ Modellgruppen: Gruppen von Modellversionen, die durch Pipeline-Ausführungen im Projekt erstellt wurden. Informationen zu Modellgruppen finden Sie unter [Erstellen einer Modellgruppe](model-registry-model-group.md).
+ Endpunkte: SageMaker KI-Endpunkte, auf denen bereitgestellte Modelle für Inferenzen in Echtzeit gehostet werden. Wenn eine Modellversion genehmigt wurde, wird sie auf einem Endpunkt bereitgestellt.
+ Tags: Alle Tags, die dem Projekt zugeordnet sind. Weitere Informationen zu Tags finden Sie unter [Markieren von AWS -Ressourcen](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in der *Allgemeine AWS-Referenz*.
+ Metadaten: Metadaten, die dem Projekt zugeordnet sind. Dazu gehören die verwendete Vorlage und Version sowie der Startpfad der Vorlage.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Studio an. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Bereitstellungen** und dann **Projekte** aus.

1. Wählen Sie den Namen des Projekts aus, für das Sie Details anzeigen möchten.

   Eine Registerkarte mit den Projektdetails wird angezeigt.

Auf der Registerkarte Projektdetails können Sie die folgenden Entitäten anzeigen, die dem Projekt zugeordnet sind.
+ Repositorys: Code-Repositorys (Repos), die mit diesem Projekt verknüpft sind. Wenn Sie bei der Erstellung Ihres Projekts eine von SageMaker KI bereitgestellte Vorlage verwenden, wird damit ein Repo oder ein AWS CodeCommit Git-Repo eines Drittanbieters erstellt. [Weitere Informationen zu finden Sie unter CodeCommit Was ist. AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
+ Pipelines: SageMaker KI-ML-Pipelines, die Schritte zur Vorbereitung von Daten, zum Trainieren und Bereitstellen von Modellen definieren. Informationen zu SageMaker KI-ML-Pipelines finden Sie unter. [Pipeline-Aktionen](pipelines-build.md)
+ Experimente: Ein oder mehrere Amazon SageMaker Autopilot-Experimente im Zusammenhang mit dem Projekt. Weitere Informationen zu Autopilot finden Sie unter [SageMaker Autopilot](autopilot-automate-model-development.md).
+ Modellgruppen: Gruppen von Modellversionen, die durch Pipeline-Ausführungen im Projekt erstellt wurden. Informationen zu Modellgruppen finden Sie unter [Erstellen einer Modellgruppe](model-registry-model-group.md).
+ Endpunkte: SageMaker KI-Endpunkte, auf denen bereitgestellte Modelle für Inferenzen in Echtzeit gehostet werden. Wenn eine Modellversion genehmigt wurde, wird sie auf einem Endpunkt bereitgestellt.
+ Einstellungen: Einstellungen für das Projekt. Dazu gehören der Name und die Beschreibung des Projekts, Informationen zur Projektvorlage und `SourceModelPackageGroupName`, und Metadaten zum Projekt.

------

# Ein MLOps Projekt in Amazon SageMaker Studio oder Studio Classic aktualisieren
<a name="sagemaker-projects-update"></a>

Dieses Verfahren zeigt, wie ein MLOps Projekt in Amazon SageMaker Studio oder Studio Classic aktualisiert wird. Durch die Aktualisierung des Projekts haben Sie die Möglichkeit, Ihre end-to-end ML-Lösung zu ändern. Sie können die **Beschreibung**, die Vorlagenversion und die Vorlagenparameter aktualisieren.

**Voraussetzungen**
+ Ein IAM-Konto oder IAM Identity Center, um sich bei Studio oder Studio Classic anzumelden. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).
+ Grundlegende Vertrautheit mit der Benutzeroberfläche von Studio oder Studio Classic. Informationen zur Studio-Benutzeroberfläche finden Sie unter [Amazon SageMaker Studio](studio-updated.md). Weitere Informationen zu Studio Classic finden Sie unter [Überblick über die Amazon SageMaker Studio Classic-Benutzeroberfläche](studio-ui.md).
+ Fügen Sie den angegebenen Rollen die folgenden benutzerdefinierten Inline-Richtlinien hinzu:

  Vom Benutzer erstellte Rolle mit `AmazonSageMakerFullAccess`

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "servicecatalog:CreateProvisionedProductPlan",
                  "servicecatalog:DescribeProvisionedProductPlan",
                  "servicecatalog:DeleteProvisionedProductPlan"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------

  `AmazonSageMakerServiceCatalogProductsLaunchRole`

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "cloudformation:CreateChangeSet",
                  "cloudformation:DeleteChangeSet",
                  "cloudformation:DescribeChangeSet"
              ],
              "Resource": "arn:aws:cloudformation:*:*:stack/SC-*"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "codecommit:PutRepositoryTriggers"
              ],
              "Resource": "arn:aws:codecommit:*:*:sagemaker-*"
          }
      ]
  }
  ```

------

Aktualisieren Sie Ihr Projekt in Studio oder Studio Classic, indem Sie die folgenden Schritte ausführen.

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Bereitstellungen** und anschließend **Projekte** aus.

1. Wählen Sie das Optionsfeld neben dem Projekt aus, das Sie aktualisieren möchten.

1. **Wählen Sie die vertikale Ellipse über der rechten oberen Ecke der Projektliste und wählen Sie Aktualisieren.**

1. Wählen Sie **Weiter** aus.

1. **Sehen Sie sich die Projektaktualisierungen in der Übersichtstabelle an und wählen Sie Aktualisieren aus.** Die Projektaktualisierung kann einige Minuten dauern.

------
#### [ Studio Classic ]

**So aktualisieren Sie ein Projekt in Studio Classic**

1. Melden Sie sich bei Studio an. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Bereitstellungen** und dann **Projekte** aus. Eine Liste Ihrer Projekte wird angezeigt.

1. Wählen Sie in der Projektliste den Namen des Projekts aus, das Sie aktualisieren möchten.

1. Wählen Sie im **Aktionen**-Menü in der oberen rechten Ecke der Projektregisterkarte die Option **Aktualisieren** aus.

1. Im Dialogfeld **Projekt aktualisieren** können Sie die **Beschreibung** und die aufgelisteten Vorlagenparameter bearbeiten.

1. Wählen Sie **Unterschied anzeigen**.

   In einem Dialogfeld werden Ihre ursprünglichen und aktualisierten Projekteinstellungen angezeigt. Jede Änderung Ihrer Projekteinstellungen kann Ressourcen im aktuellen Projekt ändern oder löschen. Im Dialogfeld werden diese Änderungen ebenfalls angezeigt.

1. Möglicherweise müssen Sie einige Minuten warten, bis die Schaltfläche **Aktualisieren** aktiv wird. Wählen Sie **Aktualisieren** aus.

1. Die Projektaktualisierung kann einige Minuten dauern. Wählen Sie auf der Projekt-Registerkarte **Einstellungen** und stellen Sie sicher, dass die Parameter korrekt aktualisiert wurden.

------

# Löschen Sie ein MLOps Projekt mit Amazon SageMaker Studio oder Studio Classic
<a name="sagemaker-projects-delete"></a>

Dieses Verfahren zeigt, wie Sie ein MLOps Projekt mit Amazon SageMaker Studio oder Studio Classic löschen.

**Voraussetzungen**

**Anmerkung**  
Sie können nur Projekte in Studio oder Studio Classic löschen, die Sie erstellt haben. Diese Bedingung ist Teil der Servicekatalog-Berechtigung `servicecatalog:TerminateProvisionedProduct` in der `AmazonSageMakerFullAccess` Richtlinie. Bei Bedarf können Sie diese Richtlinie aktualisieren, um diese Bedingung zu entfernen.
+ Ein IAM-Konto oder IAM Identity Center, um sich bei Studio oder Studio Classic anzumelden. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).
+ Grundlegende Vertrautheit mit der Benutzeroberfläche von Studio oder Studio Classic. Informationen zur Studio-Benutzeroberfläche finden Sie unter [Amazon SageMaker Studio](studio-updated.md). Weitere Informationen zu Studio Classic finden Sie unter [Überblick über die Amazon SageMaker Studio Classic-Benutzeroberfläche](studio-ui.md).

------
#### [ Studio ]

1. Öffnen Sie die SageMaker Studio-Konsole, indem Sie den Anweisungen unter [Amazon SageMaker Studio starten](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) folgen.

1. Wählen Sie im linken Navigationsbereich **Bereitstellungen** und anschließend **Projekte** aus.

1. Wählen Sie das Optionsfeld neben dem Projekt aus, das Sie löschen möchten.

1. **Wählen Sie die vertikale Ellipse über der rechten oberen Ecke der Projektliste und wählen Sie Löschen.**

1. Überprüfen Sie die Informationen im Dialogfeld **Projekt löschen** und wählen Sie **Ja, Projekt löschen, wenn Sie das Projekt** trotzdem löschen möchten.

1. Wählen Sie **Löschen** aus.

1. Ihre Projektliste wird angezeigt. Vergewissern Sie sich, dass Ihr Projekt nicht mehr in der Liste erscheint.

------
#### [ Studio Classic ]

1. Melden Sie sich bei Studio an. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Bereitstellungen** und dann **Projekte** aus.

1. Wählen Sie das Zielprojekt aus der Dropdown-Liste aus. Wenn Sie Ihr Projekt nicht sehen, geben Sie den Projektnamen ein und wenden Sie den Filter an, um Ihr Projekt zu finden.

1. Wenn Sie Ihr Projekt gefunden haben, wählen Sie den Projektnamen aus, um Details anzuzeigen.

1. Wählen Sie im Menü **Aktionen** die Option **Löschen** aus.

1. Bestätigen Sie Ihre Auswahl, indem Sie im Fenster **Projekt löschen** die Option **Löschen** wählen.

------

# Gehen Sie mithilfe von Git-Repos von Drittanbietern durch ein SageMaker MLOps KI-Projekt
<a name="sagemaker-projects-walkthrough-3rdgit"></a>

**Wichtig**  
Seit dem 30. November 2023 heißt das vorherige Amazon SageMaker Studio-Erlebnis jetzt Amazon SageMaker Studio Classic. Der folgende Abschnitt bezieht sich konkret auf die Verwendung der Studio-Classic-Anwendung. Informationen zur Verwendung der aktualisierten Studio-Konfiguration finden Sie unter [Amazon SageMaker Studio](studio-updated.md).  
Studio Classic wird weiterhin für bestehende Workloads beibehalten, ist aber nicht mehr für das Onboarding verfügbar. Sie können nur bestehende Studio Classic-Anwendungen beenden oder löschen und keine neuen erstellen. Wir empfehlen Ihnen, [Ihren Workload auf das neue Studio-Erlebnis zu migrieren](studio-updated-migrate.md).

In dieser exemplarischen Vorgehensweise wird anhand der Vorlage [MLOps Vorlagen für Modellerstellung, Schulung und Bereitstellung mit Git eines Drittanbieters unter Verwendung von CodePipeline](sagemaker-projects-templates-sm.md#sagemaker-projects-templates-git-code-pipeline) veranschaulicht, wie Sie mithilfe von MLOps Projekten ein CI/CD System zum Erstellen, Trainieren und Bereitstellen von Modellen erstellen.

**Voraussetzungen**

Zum Abschließen dieser Vorgehensweise benötigen Sie:
+ Ein IAM oder IAM Identity Center-Konto, um sich bei Studio Classic anzumelden. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).
+ Erlaubnis zur Verwendung von SageMaker KI-bereitgestellten Projektvorlagen. Weitere Informationen finden Sie unter [Für die Verwendung von Projekten sind SageMaker Studio-Berechtigungen erforderlich](sagemaker-projects-studio-updates.md).
+ Grundlegende Vertrautheit mit der Studio-Classic-Benutzeroberfläche. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker Studio Classic-Benutzeroberfläche](studio-ui.md).
+ Zwei leere GitHub Repositorien. Sie geben diese Repositorys in die Projektvorlage ein, die diese Repos mit Modellerstellungs- und Bereitstellungscode versorgt.

**Topics**
+ [Schritt 1: Richten Sie die GitHub Verbindung ein](#sagemaker-proejcts-walkthrough-connect-3rdgit)
+ [Schritt 2: Erstellen des Projekts](#sagemaker-proejcts-walkthrough-create-3rdgit)
+ [Schritt 3: Nehmen Sie eine Änderung am Code vor](#sagemaker-projects-walkthrough-change-3rdgit)
+ [Schritt 4: Genehmigen des Modells](#sagemaker-proejcts-walkthrough-approve-3rdgit)
+ [(Optional) Schritt 5: Stellen Sie die Modellversion für die Produktion bereit](#sagemaker-projects-walkthrough-prod-3rdgit)
+ [Schritt 6: Bereinigen von Ressourcen](#sagemaker-projectcts-walkthrough-cleanup-3rdgit)

## Schritt 1: Richten Sie die GitHub Verbindung ein
<a name="sagemaker-proejcts-walkthrough-connect-3rdgit"></a>

In diesem Schritt stellen Sie über eine Verbindung eine Verbindung zu Ihren GitHub Repositorys [AWS CodeConnections her](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html). Das SageMaker AI-Projekt verwendet diese Verbindung, um auf Ihre Quellcode-Repositorys zuzugreifen.

**So richten Sie die GitHub Verbindung ein:**

1. Loggen Sie sich in die CodePipeline Konsole ein unter [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)

1. Wählen Sie im Navigationsbereich unter **Einstellungen** die Option **Verbindungen**.

1. Wählen Sie **Create Connection (Verbindung erstellen)** aus.

1. **Wählen Sie unter Anbieter** auswählen die Option aus **GitHub**.

1. Geben Sie für **Verbindungsname** einen Namen ein.

1. Wählen **Sie Connect GitHub**.

1. Wenn die AWS GitHub Connector-App noch nicht installiert ist, wählen Sie **Neue App installieren**.

   Daraufhin wird eine Liste aller GitHub persönlichen Konten und Organisationen angezeigt, auf die Sie Zugriff haben.

1. Wählen Sie das Konto aus, für das Sie Konnektivität für die Verwendung mit SageMaker Projekten und GitHub Repositorys einrichten möchten.

1. Wählen Sie **Konfigurieren** aus.

1. Sie können optional Ihre spezifischen Repositorys oder **Alle Repositorys** auswählen.

1. Wählen Sie **Speichern**. Wenn die App installiert ist, werden Sie auf die GitHub Seite **Connect to** umgeleitet und die Installations-ID wird automatisch eingetragen.

1. Wählen Sie **Connect** aus.

1. Fügen Sie dieser CodeConnections Verbindung ein Tag mit dem Schlüssel `sagemaker` und `true` dem Wert hinzu.

1. Kopieren Sie den Verbindungs-ARN, um ihn für später zu speichern. Sie verwenden den ARN als Parameter im Schritt der Projekterstellung.

## Schritt 2: Erstellen des Projekts
<a name="sagemaker-proejcts-walkthrough-create-3rdgit"></a>

In diesem Schritt erstellen Sie ein SageMaker MLOps KI-Projekt, indem Sie eine von KI SageMaker bereitgestellte Projektvorlage verwenden, um Modelle zu erstellen, zu trainieren und bereitzustellen.

**Um das SageMaker MLOps KI-Projekt zu erstellen**

1. Melden Sie sich bei Studio an. Weitere Informationen finden Sie unter [Überblick über die Amazon SageMaker AI-Domain](gs-studio-onboard.md).

1. Wählen Sie in der Studio-Seitenleiste das **Home**-Symbol ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Wählen Sie im Menü **Bereitstellungen** und dann **Projekte** aus.

1. Wählen Sie **Create project** (Projekt erstellen) aus.

   Die Registerkarte **Projekt erstellen** wird angezeigt.

1. Wählen Sie für **SageMaker KI-Projektvorlagen** die Option **Modellerstellung, Schulung und Bereitstellung mit Git-Repositorys von Drittanbietern** aus. CodePipeline

1. Wählen Sie **Weiter** aus.

1. Geben Sie unter **ModelBuild CodeRepository Info** die folgenden Parameter an:
   + Geben Sie für **Branch** den Branch ein, der aus Ihrem Git-Repository für Pipeline-Aktivitäten verwendet werden soll.
   + Geben Sie **unter Vollständiger Repository-Name** den Git-Repository-Namen im Format *username/repository name* oder ein*organization/repository name*.
   + Geben Sie für **Code Connection ARN** den ARN der CodeConnections Verbindung ein, die Sie in Schritt 1 erstellt haben.

1. Geben Sie unter **ModelDeploy CodeRepository Info** die folgenden Parameter an:
   + Geben Sie für **Branch** den Branch ein, der aus Ihrem Git-Repository für Pipeline-Aktivitäten verwendet werden soll.
   + Geben Sie **unter Vollständiger Repository-Name** den Git-Repository-Namen im Format *username/repository name* oder ein*organization/repository name*.
   + Geben Sie für **Code Connection ARN** den ARN der CodeConnections Verbindung ein, die Sie in Schritt 1 erstellt haben.

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

Das Projekt wird in der **Projekt**-Liste mit dem **Status** **Erstellt** angezeigt.

## Schritt 3: Nehmen Sie eine Änderung am Code vor
<a name="sagemaker-projects-walkthrough-change-3rdgit"></a>

Nehmen Sie nun eine Änderung am Pipeline-Code vor, der das Modell erstellt, und übernehmen Sie die Änderung, um einen neuen Pipeline-Lauf zu initiieren. Der Pipeline-Lauf registriert eine neue Modellversion.

**Um eine Codeänderung vorzunehmen**

1. Navigieren Sie in Ihrem GitHub Model-Build-Repo zu dem `pipelines/abalone` Ordner. Doppelklicken Sie `pipeline.py`, um die Codedatei zu öffnen.

1. Suchen Sie in der `pipeline.py` Datei nach der Zeile, die den Typ der Trainings-Instance festlegt.

   ```
   training_instance_type = ParameterString(
           name="TrainingInstanceType", default_value="ml.m5.xlarge"
   ```

   Öffnen Sie die Datei zur Bearbeitung, ändern Sie `ml.m5.xlarge` zu `ml.m5.large`, und bestätigen Sie sie.

Nachdem Sie Ihre Codeänderung übernommen haben, initiiert das MLOps System eine Ausführung der Pipeline, die eine neue Modellversion erstellt. Im nächsten Schritt genehmigen Sie die neue Modellversion, um sie für die Produktion bereitzustellen.

## Schritt 4: Genehmigen des Modells
<a name="sagemaker-proejcts-walkthrough-approve-3rdgit"></a>

Jetzt genehmigen Sie die neue Modellversion, die im vorherigen Schritt erstellt wurde, um eine Bereitstellung der Modellversion auf einem SageMaker KI-Endpunkt zu initiieren.

**Um die Modellversion zu genehmigen**

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Bereitstellungen** und dann **Projekte** aus.

1. Suchen Sie den Namen des Projekts, das Sie im ersten Schritt erstellt haben, und doppelklicken Sie darauf, um die Projekt-Registerkarte für Ihr Projekt zu öffnen.

1. Wählen Sie auf der Projektregisterkarte **Modellgruppen** aus und doppelklicken Sie dann auf den Namen der Modellgruppe, die angezeigt wird.

   Die Registerkarte Modellgruppe wird angezeigt.

1. Doppelklicken Sie auf der Registerkarte Modellgruppe auf **Version 1**. Die Registerkarte **Version 1** wird geöffnet. Wählen Sie **Status aktualisieren**.

1. Wählen Sie im Dialogfeld **Modellversionsstatus aktualisieren** in der Dropdown-Liste **Status** die Option **Genehmigen** und dann **Status aktualisieren** aus.

   Durch die Genehmigung der Modellversion wird das Modell vom MLOps System für die Staging-Bereitstellung bereitgestellt. Um den Endpunkt anzuzeigen, wählen Sie auf der Projektregisterkarte die Registerkarte **Endpunkte** aus.

## (Optional) Schritt 5: Stellen Sie die Modellversion für die Produktion bereit
<a name="sagemaker-projects-walkthrough-prod-3rdgit"></a>

Jetzt können Sie die Modellversion in der Produktionsumgebung bereitstellen.

**Anmerkung**  
Um diesen Schritt abschließen zu können, müssen Sie Administrator in Ihrer Studio-Classic-Domain sein. Wenn Sie kein Administrator sind, überspringen Sie diesen Schritt.

**Um die Modellversion in der Produktionsumgebung bereitzustellen**

1. Melden Sie sich bei der Konsole an unter CodePipeline [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)

1. Wählen Sie **Pipelines** und dann die Pipeline mit dem Namen **sagemaker- *projectname* - *projectid* -modeldeploy** aus, wobei *projectname* der Name Ihres Projekts und *projectid* die ID Ihres Projekts stehen.

1. **Wählen Sie in der Phase „Überprüfen“ aus **DeployStaging**.**

1. Wählen Sie im Dialogfeld **Prüfen** die Option **Genehmigen** aus.

   Wenn Sie die **DeployStaging**Phase genehmigen, führt das MLOps System das Modell für die Produktion ein. Um den Endpunkt anzuzeigen, wählen Sie in Studio Classic auf der Projektregisterkarte die Registerkarte **Endpunkte** aus.

## Schritt 6: Bereinigen von Ressourcen
<a name="sagemaker-projectcts-walkthrough-cleanup-3rdgit"></a>

Bereinigen Sie die Ressourcen, die in dieser Vorgehensweise erstellt wurden, damit keine Gebühren mehr anfallen.

**Anmerkung**  
Um den CloudFormation Stack und den Amazon S3 S3-Bucket zu löschen, müssen Sie Administrator in Studio Classic sein. Wenn Sie kein Administrator sind, bitten Sie Ihren Administrator, diese Schritte auszuführen.

1. Wählen Sie in der Studio-Classic Seitenleiste das Symbol **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie im Menü **Bereitstellungen** und dann **Projekte** aus.

1. Wählen Sie das Zielprojekt aus der Dropdown-Liste aus. Wenn Sie Ihr Projekt nicht sehen, geben Sie den Projektnamen ein und wenden Sie den Filter an, um Ihr Projekt zu finden.

1. Wählen Sie Ihr Projekt aus, um die Details im Hauptbereich anzuzeigen.

1. Wählen Sie im Menü **Aktionen** die Option **Löschen** aus.

1. Bestätigen Sie Ihre Auswahl, indem Sie im Fenster **Projekt löschen** die Option **Löschen** wählen.

   Dadurch wird das von Service Catalog bereitgestellte Produkt gelöscht, das das Projekt erstellt hat. Dazu gehören die CodeCommit für das Projekt erstellten CodeBuild Ressourcen CodePipeline, und.

1. Löschen Sie die CloudFormation Stapel, die das Projekt erstellt hat. Es gibt zwei Stacks, einen für das Staging und einen für die Produktion. Die Namen der Stacks lauten **sagemaker- *projectname* - *project-id* -deploy-staging** und **sagemaker- *projectname* - *project-id* -deploy-prod**, wobei der Name Ihres Projekts und die ID Ihres Projekts *projectname* stehen. *project-id*

   [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)

1. Löschen Sie den Amazon-S3-Bucket, den das Projekt erstellt hat. Der Name des Buckets lautet **sagemaker-project- *project-id***, wobei die ID Ihres Projekts *project-id* steht.

# Amazon SageMaker MLOps AI-Fehlerbehebung
<a name="mlopsfaq"></a>

Gehen Sie wie folgt vor, um Probleme mit SageMaker KI MLOps zu beheben. Dieses Thema enthält Informationen zu häufigen Fehlern und zu deren Behebung. 

## Wie kann ich das Projekt löschen, wenn ich versuche, ein SageMaker SageMaker KI-Projekt zu löschen, das aus einer AI-Vorlage erstellt wurde, und aufgrund nicht leerer Amazon S3 S3-Buckets oder Amazon ECR-Repositorys eine Fehlermeldung erhalte?
<a name="collapsible-section-14"></a>

Wenn Sie versuchen, Ihr SageMaker KI-Projekt zu löschen, und eine der folgenden Fehlermeldungen angezeigt wird:

```
The bucket you tried to delete is not empty
```

```
The repository with name 'repository-name' in registry 
        with id 'id' cannot be deleted because it still contains images
```

dann haben Sie nicht leere Amazon S3 S3-Buckets oder Amazon ECR-Repositorys, die Sie manuell löschen müssen, bevor Sie das AI-Projekt löschen. SageMaker CloudFormation löscht nicht leere Amazon S3 S3-Buckets oder Amazon ECR-Repositorys nicht automatisch für Sie.