

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.

# Verwenden Sie Komponenten, um Ihr Image Builder Builder-Image anzupassen
<a name="manage-components"></a>

Image Builder verwendet die Komponentenverwaltungsanwendung AWS Task Orchestrator and Executor (AWSTOE), um komplexe Workflows zu orchestrieren. Komponenten zum Erstellen und Testen, die mit der AWSTOE Anwendung funktionieren, basieren auf YAML-Dokumenten, in denen die Skripts zum Anpassen oder Testen Ihres Images definiert sind. Für AMI-Images installiert Image Builder Komponenten und die AWSTOE Komponentenverwaltungsanwendung auf seinen Amazon EC2 EC2-Build- und Test-Instances. Bei Container-Images werden die Komponenten und die AWSTOE Komponentenverwaltungsanwendung innerhalb des laufenden Containers installiert. 

Image Builder verwendet AWSTOE , um alle Aktivitäten auf der Instanz auszuführen. Es ist kein zusätzliches Setup erforderlich, mit dem Sie interagieren können AWSTOE , wenn Sie Image Builder Builder-Befehle ausführen oder die Image Builder Builder-Konsole verwenden.

**Anmerkung**  
Wenn eine von Amazon verwaltete Komponente das Ende ihrer Support-Laufzeit erreicht, wird sie nicht mehr gewartet. Ungefähr vier Wochen zuvor erhalten alle Konten, die die Komponente verwenden, eine Benachrichtigung und eine Liste der betroffenen Rezepte in ihrem Konto von ihrem AWS Health Dashboard Konto. Weitere Informationen AWS Health dazu finden Sie im [AWS Health Benutzerhandbuch](https://docs.aws.amazon.com/health/latest/ug/).

**Workflow-Phasen für die Erstellung eines neuen Images**  
Der Image Builder Builder-Workflow zum Erstellen neuer Images umfasst die folgenden zwei unterschiedlichen Phasen.

1. **Build-Phase** (Pre-Snapshot) — Während der Build-Phase nehmen Sie Änderungen an der Amazon EC2 EC2-Build-Instance vor, auf der Ihr Basis-Image ausgeführt wird, um die Baseline für Ihr neues Image zu erstellen. Ihr Rezept kann beispielsweise Komponenten enthalten, die eine Anwendung installieren oder die Firewall-Einstellungen des Betriebssystems ändern.

   Die folgenden Phasen aus Ihrem Komponentendokument laufen während der Erstellungsphase ab:
   + Build
   + validieren

   Nach erfolgreichem Abschluss dieser Phase erstellt Image Builder einen Snapshot oder ein Container-Image, das für die Testphase und darüber hinaus verwendet wird.

1. **Testphase** (nach dem Snapshot) — Während der Testphase gibt es einige Unterschiede zwischen Images, die AMIs erstellen, und Container-Images. Für AMI-Workflows startet Image Builder eine EC2-Instance aus dem Snapshot, den es als letzten Schritt der Buildphase erstellt hat. Tests werden auf der neuen Instance ausgeführt, um die Einstellungen zu überprüfen und sicherzustellen, dass die Instance wie erwartet funktioniert. Bei Container-Workflows werden die Tests auf derselben Instanz ausgeführt, die für die Erstellung verwendet wurde.

   Die folgende Phase aus Ihrem Komponentendokument wird für jede Komponente ausgeführt, die während der Testphase der Image-Erstellung im Rezept enthalten ist: 
   + Test

   Diese Komponentenphase gilt sowohl für den Build- als auch für den Test-Komponententyp. Nach erfolgreichem Abschluss dieser Phase kann Image Builder Ihr endgültiges Image aus dem Snapshot oder dem Container-Image erstellen und verteilen.

**Anmerkung**  
Mit dem AWSTOE Anwendungsframework können Sie zwar viele Phasen in einem Komponentendokument definieren, aber Image Builder hat strenge Regeln dafür, welche Phasen es ausführt und in welchen Phasen es sie ausführt. Damit eine Komponente während der Imageerstellungsphase ausgeführt werden kann, muss das Komponentendokument mindestens eine dieser Phasen definieren: `build` oder`validate`. Damit eine Komponente während der Image-Testphase ausgeführt werden kann, muss das Komponentendokument die `test` Phase und keine anderen Phasen definieren.  
Da Image Builder die Stufen unabhängig voneinander ausführt, kann die Verkettung von Verweisen in Komponentendokumenten keine Stufengrenzen überschreiten. Es ist nicht möglich, einen Wert aus einer Phase, die in der Buildphase ausgeführt wird, mit einer Phase, die in der Testphase ausgeführt wird, zu verknüpfen. Sie können jedoch Eingabeparameter für das vorgesehene Ziel definieren und Werte über die Befehlszeile übergeben. Weitere Informationen zum Einstellen von Komponentenparametern in Ihren Image Builder Builder-Rezepten finden Sie unter[Tutorial: Erstellen Sie eine benutzerdefinierte Komponente mit Eingabeparametern](tutorial-component-parameters.md).

Zur Unterstützung bei der Problembehandlung auf Ihrer Build- oder Testinstanz AWSTOE wird ein Protokollordner erstellt, der das Eingabedokument und die Protokolldateien enthält, um zu verfolgen, was bei jeder Ausführung einer Komponente passiert. Wenn Sie in Ihrer Pipeline-Konfiguration einen Amazon S3 S3-Bucket konfiguriert haben, werden die Protokolle auch dort geschrieben. Weitere Informationen zu YAML-Dokumenten und der Protokollausgabe finden Sie unter[Verwenden Sie das AWSTOE Component Document Framework für benutzerdefinierte Komponenten](toe-use-documents.md).

**Tipp**  
Wenn Sie viele Komponenten im Auge behalten müssen, hilft Ihnen das Tagging dabei, eine bestimmte Komponente oder Version anhand der Tags zu identifizieren, die Sie ihr zugewiesen haben. Weitere Informationen zum Taggen Ihrer Ressourcen mithilfe von Image Builder Builder-Befehlen finden Sie im AWS CLI[Markieren von Ressourcen](tag-resources.md) Abschnitt dieses Handbuchs.

In diesem Abschnitt wird beschrieben, wie Sie Komponenten mithilfe der Image Builder Builder-Konsole oder mit Befehlen in der auflisten, anzeigen, erstellen und importieren AWS CLI.

**Topics**
+ [Komponentendetails auflisten und anzeigen](component-details.md)
+ [Verwenden Sie AWS Marketplace Komponenten, um Ihr Image anzupassen](use-marketplace-components.md)
+ [Verwenden Sie verwaltete Komponenten, um Ihr Image Builder Builder-Image anzupassen](use-managed-components.md)
+ [Entwickeln Sie benutzerdefinierte Komponenten für Ihr Image Builder Builder-Image](create-custom-components.md)
+ [So verwendet Image Builder die AWS Task Orchestrator and Executor Anwendung zur Verwaltung von Komponenten](toe-component-manager.md)

# Komponentendetails auflisten und anzeigen
<a name="component-details"></a>

In diesem Abschnitt wird beschrieben, wie Sie Informationen finden und Details zu den Komponenten anzeigen können, die Sie in Ihren EC2 Image Builder Builder-Rezepten verwenden.

**Topics**
+ [Image Builder Builder-Komponenten auflisten](#list-components)
+ [Listet die Build-Versionen der Komponenten auf AWS CLI](#cli-list-component-versions)
+ [Details zu den Komponenten erhalten Sie von AWS CLI](#cli-get-component)
+ [Rufen Sie die Details zur Komponentenrichtlinie von AWS CLI](#cli-get-component-policy)

## Image Builder Builder-Komponenten auflisten
<a name="list-components"></a>

Sie können eine der folgenden Methoden verwenden, um Image Builder Builder-Komponenten aufzulisten und zu filtern.

------
#### [ AWS-Managementkonsole ]

Gehen Sie folgendermaßen vor AWS-Managementkonsole, um eine Liste der Komponenten in der anzuzeigen:

1. Öffnen Sie die EC2 Image Builder Builder-Konsole unter [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/).

1. Wählen Sie im Navigationsbereich **Komponenten** aus. Standardmäßig zeigt Image Builder eine Liste der Komponenten an, die Ihrem Konto gehören.

1. Sie können optional nach dem Besitz der Komponenten filtern. Um Komponenten zu sehen, die Sie nicht besitzen, auf die Sie aber Zugriff haben, erweitern Sie die Dropdownliste Besitzertyp und wählen Sie einen der Werte aus. Die Besitzertypliste befindet sich in der Suchleiste neben dem Suchtextfeld. Sie können aus den folgenden Werten auswählen:
   + **AWS Marketplace**— Komponenten, die direkt mit einem AWS Marketplace Produktabonnement verknüpft sind.
   + **Schnellstart (von Amazon verwaltet)** — Öffentlich verfügbare Komponenten, die Amazon erstellt und verwaltet.
   + **Gehört mir** — Komponenten, die Sie erstellt haben. Dies ist die Standardauswahl.
   + **Mit mir geteilt** — Komponenten, die andere über ihr Konto erstellt und mit Ihnen geteilt haben.
   + **Von Dritten verwaltet** — Komponenten, die einem Dritten gehören und die Sie abonniert AWS Marketplace haben.

------
#### [ AWS CLI ]

Das folgende Beispiel zeigt, wie Sie den **[list-components](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-components.html)** Befehl verwenden, um eine Liste von Image Builder Builder-Komponenten zurückzugeben, die Ihrem Konto gehören.

```
aws imagebuilder list-components
```

Sie können optional nach Komponentenbesitz filtern. Das Eigentümerattribut definiert, wem die Komponenten gehören, die Sie auflisten möchten. Standardmäßig gibt diese Anfrage eine Liste der Komponenten zurück, die Ihrem Konto gehören. Um die Ergebnisse nach dem Eigentümer der Komponente zu filtern, geben Sie bei der Ausführung des **list-components** Befehls einen der folgenden Werte mit dem `--owner` Parameter an.

**Werte für den Eigentümer der Komponente**
+ `AWSMarketplace`
+ `Amazon`
+ `Self`
+ `Shared`
+ `ThirdParty`

Die folgenden Beispiele zeigen den **list-components** Befehl mit dem `--owner` Parameter zum Filtern von Ergebnissen.

```
aws imagebuilder list-components --owner Self
{
    "requestId": "012a3456-b789-01cd-e234-fa5678b9012b",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/sample-component01/1.0.0",
            "name": "sample-component01",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/sample-component01/1.0.1",
            "name": "sample-component01",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

```
aws imagebuilder list-components --owner Amazon
```

```
aws imagebuilder list-components --owner Shared
```

```
aws imagebuilder list-components --owner ThirdParty
```

------

## Listet die Build-Versionen der Komponenten auf AWS CLI
<a name="cli-list-component-versions"></a>

Das folgende Beispiel zeigt, wie der **[list-component-build-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-component-build-versions.html)** Befehl verwendet wird, um Komponenten-Build-Versionen aufzulisten, die eine bestimmte semantische Version haben. Weitere Informationen zur semantischen Versionierung für Image Builder Builder-Ressourcen finden Sie unter. [Semantische Versionierung in Image Builder](ibhow-semantic-versioning.md)

```
aws imagebuilder list-component-build-versions --component-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1
{
    "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "componentSummaryList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/1.0.1/1",
            "name": "examplecomponent",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "description": "An example component that builds, validates and tests an image",
            "changeDescription": "Updated version.",
            "dateCreated": "2020-02-19T18:53:45.940Z",
            "tags": {
                "KeyName": "KeyValue"
            }
        }
    ]
}
```

## Details zu den Komponenten erhalten Sie von AWS CLI
<a name="cli-get-component"></a>

Das folgende Beispiel zeigt, wie Sie den **[get-component](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-component.html)** Befehl verwenden, um Komponentendetails abzurufen, wenn Sie den Amazon-Ressourcennamen (ARN) der Komponente angeben.

```
aws imagebuilder get-component --component-build-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1/1
			{
    "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11112",
    "component": {
        "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/1.0.1/1",
        "name": "examplecomponent",
        "version": "1.0.1",
        "type": "BUILD",
        "platform": "Linux",
        "owner": "123456789012",
        "data": "name: HelloWorldTestingDocument\ndescription: This is hello world testing document... etc.\"\n",
        "encrypted": true,
        "dateCreated": "2020-09-24T16:58:24.444Z",
        "tags": {}
    }
}
```

## Rufen Sie die Details zur Komponentenrichtlinie von AWS CLI
<a name="cli-get-component-policy"></a>

Das folgende Beispiel zeigt, wie Sie den **[get-component-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-component-policy.html)** Befehl verwenden, um Details zu einer Komponentenrichtlinie abzurufen, wenn Sie den ARN der Komponente angeben.

```
aws imagebuilder get-component-policy --component-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1
```

# Verwenden Sie AWS Marketplace Komponenten, um Ihr Image anzupassen
<a name="use-marketplace-components"></a>

Neben einer großen Auswahl an Bildern, die von unabhängigen Softwareanbietern (ISVs) erstellt wurden, AWS Marketplace bietet es Komponenten, mit denen Sie Ihre eigenen Image Builder Builder-Images anpassen können. Sie müssen diese AWS Marketplace Komponenten abonnieren, bevor Sie sie in Ihrem Image-Rezept verwenden können, um ein neues Image zu erstellen.

Wenn Sie eine AWS Marketplace Komponente in einem Image-Rezept angeben, validiert Image Builder das Abonnement und führt Abhängigkeitsprüfungen durch, um sicherzustellen, dass Sie über die Ressourcen verfügen, die Sie für die Verwendung benötigen. Wenn die Überprüfung erfolgreich ist, erstellt Image Builder sichere Downloads für die Komponente und ihre Artefakte, die von Image-Pipeline-Builds verwendet werden können.

## Entdecken Sie die Komponenten AWS Marketplace
<a name="use-marketplace-components-discover"></a>

Auf der Seite **Produkte entdecken** in der Image Builder Builder-Konsole können Sie wie folgt nach AWS Marketplace Softwarekomponenten suchen, die Sie in Ihren Rezepten verwenden können.

1. Öffnen Sie die EC2 Image Builder Builder-Konsole unter [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/).

1. Wählen Sie im Navigationsbereich im **AWS Marketplace**Abschnitt **Produkte entdecken** aus.

1. Wählen Sie die Registerkarte **Components** (Komponenten) aus. Auf dieser Registerkarte werden alle AWS Marketplace Produkte aufgeführt, für die die Versandoption verwendet wird, einschließlich der zugehörigen Komponenten in AWS Marketplace.

1. Um nach bestimmten Softwareprodukten zu suchen, die Komponenten enthalten, können Sie einen Teil des Namens in die Suchleiste eingeben oder nach`Status`, `Operating System``Publisher`, oder filtern`Categories`. Die Suchleiste enthält auch Steuerelemente für die Seitennummerierung Ihrer Ergebnisse.

### Ergebnisse
<a name="w2aac13c26b7b7"></a>

Jedes AWS Marketplace Produkt verfügt über ein eigenes Detailfenster, das die folgenden Informationen enthält.

**Der AWS Marketplace Produktname und das Logo**  
Der Name des Softwareprodukts ist mit den Produktdetails unter verknüpft AWS Marketplace. Sie können den Link auswählen, um mehr über das Produkt unter zu erfahren AWS Marketplace. Alternativ können Sie sich eine Zusammenfassung der Abonnementoptionen anzeigen lassen und direkt in den Suchergebnissen über die Schaltfläche **Abonnementoptionen anzeigen** abonnieren, falls Sie Ihre Recherche bereits durchgeführt haben.

**Version**  
Dies beinhaltet die Primärversion der Komponente.

**Betriebssystem**  
Das Betriebssystem, auf dem die Komponente ausgeführt werden soll.

**Herausgeber**  
Der Herausgeber der Komponente. Dies ist mit der Publisher-Detailseite in verknüpft AWS Marketplace. Die Detailseite des Herausgebers wird in einem neuen Tab in Ihrem Browser geöffnet.

**Kategorien**  
Eine oder mehrere AWS Marketplace Produktkategorien, die für die Komponente gelten.

**Status**  
Zeigt an, ob Sie dieses Produkt abonniert haben. Wenn Sie kein Abonnement haben, können Sie **Abonnementoptionen anzeigen** wählen, um eine Zusammenfassung der Abonnementoptionen für das AWS Marketplace Produkt zu sehen, und optional direkt von der Image Builder Builder-Konsole aus abonnieren.

**Zugeordnete Komponenten**  
Wenn das AWS Marketplace Produkt über eine oder mehrere Versionen verfügt, die in Ihrem Abonnement enthalten sind, werden diese im Abschnitt **Zugeordnete Komponenten** angezeigt. Der Abschnitt ist zunächst reduziert und zeigt die Anzahl der zugehörigen Komponenten an. Sie können den Abschnitt erweitern, um weitere Details zu sehen.

**Anmerkung**  
Die Komponente Center for Internet Security (CIS), die dem AWS Marketplace Image-Produkt zugeordnet ist, wird in den Ergebnissen von **Discover Products** nicht angezeigt. Wenn Sie ihr Image-Produkt abonnieren, wird die zugehörige Komponente auf der **Abonnementseite** und als Drittanbieter-Komponente im Dialogfeld **Image-Rezept erstellen** angezeigt. Weitere Informationen zu der Komponente finden Sie unter[CIS-Härtungskomponenten](toe-cis.md).

## AWS Marketplace Komponenten abonnieren
<a name="use-marketplace-components-subscribe"></a>

Nachdem Sie ein AWS Marketplace Produkt mit Komponenten gefunden haben, die Sie in Ihren Rezepten verwenden möchten, können Sie es wie folgt direkt über die Image Builder Builder-Konsole abonnieren, oder Sie können es über die AWS Marketplace Konsole abonnieren.

1. Öffnen Sie die EC2 Image Builder Builder-Konsole unter [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/).

1. Wählen Sie im Navigationsbereich im **AWS Marketplace**Abschnitt **Produkte entdecken** aus.

1. Wählen Sie die Registerkarte **Components** (Komponenten) aus. Auf dieser Registerkarte werden alle AWS Marketplace Produkte aufgeführt, für die die Versandoption verwendet wird, einschließlich der zugehörigen Komponenten in AWS Marketplace.

1. Um nach einem bestimmten AWS Marketplace Produkt zu suchen, geben Sie einen Teil des Namens in die Suchleiste ein. Wenn Sie den Herausgeber kennen, aber nicht den genauen Produktnamen oder die korrekte Schreibweise kennen, können Sie auch danach filtern, `Publisher` um eine Liste der Produkte zu erhalten, die der Verlag anbietet.

1. Wählen Sie in der Ergebnisliste das Produkt aus, das Sie abonnieren möchten, und wählen Sie **Abonnementoptionen anzeigen** aus. Dies zeigt eine Zusammenfassung der Abonnementoptionen für das AWS Marketplace Produkt.

1. Wählen Sie **Abonnieren** aus, um das Produkt zu abonnieren, ohne die Image Builder Builder-Konsole zu verlassen. Sie werden benachrichtigt, dass das Abonnement bearbeitet wird. Nachdem Sie das Abonnement abgeschlossen haben, wird der **Status** auf `Subscribed` aktualisiert.

Weitere Informationen zu den AWS Marketplace Produkten, die Sie derzeit abonniert haben, finden Sie in den unter beschriebenen Schritten für die Konsole. [AWS Marketplace Abonnements in Image Builder](integ-marketplace.md#integ-marketplace-subs)

## Verwenden Sie eine AWS Marketplace Komponente in einem Image Builder Builder-Image-Rezept
<a name="use-marketplace-components-recipe"></a>

Sie können AWS Marketplace Komponenten in Ihren Image Builder Builder-Image-Rezepten genauso verwenden wie andere Komponententypen. Für die meisten Komponenten, die mit einem AWS Marketplace Image-Produkt verknüpft sind, lautet die Besitzkategorie`AWS Marketplace`. Um beispielsweise eine Build-Komponente aus einem AWS Marketplace Produkt zu verwenden, das Sie abonniert haben, wählen Sie **Build-Komponenten hinzufügen** und wählen Sie dann `AWS Marketplace` aus der Liste aus. Dadurch wird auf der rechten Seite der Konsolenoberfläche ein Auswahlbereich geöffnet, in dem die AWS Marketplace Komponenten aufgelistet sind.

**Anmerkung**  
Wenn Sie nach der CIS-Hardening-Komponente suchen`Third party managed`, wählen Sie aus der Besitzerliste statt`AWS Marketplace`.

Weitere Informationen zur Auswahl, Anordnung und Konfiguration von Parametern für Ihre Komponenten finden Sie unter[Erstellen Sie eine neue Version eines Bildrezepts](create-image-recipes.md).

# Verwenden Sie verwaltete Komponenten, um Ihr Image Builder Builder-Image anzupassen
<a name="use-managed-components"></a>

Verwaltete Komponenten werden von AWS, manchmal in Zusammenarbeit mit einer Drittorganisation, wie beispielsweise dem Center for Internet Security (CIS), erstellt. Wenn Sie verwaltete Komponenten in Ihren Image- oder Container-Rezepten verwenden, stellt Amazon die neuesten Komponentenversionen bereit, auf die Patches und andere Updates angewendet wurden. Eine Liste der Komponenten oder Informationen zu den Komponenten finden Sie unter[Komponentendetails auflisten und anzeigen](component-details.md).

Die folgende Liste der ausgewählten AWS verwalteten Komponenten enthält eine Komponente, die Sie verwenden können, wenn Sie CIS Hardened AMIs über das abonnieren AWS Marketplace.

**Topics**
+ [Installation der vom Verteilerpaket verwalteten Komponentenanwendung für Image Builder Builder-Windows-Images](mgdcomponent-distributor-win.md)
+ [CIS-Härtungskomponenten](toe-cis.md)
+ [Von Amazon verwaltete STIG-Härtungskomponenten für Image Builder](ib-stig.md)

# Installation der vom Verteilerpaket verwalteten Komponentenanwendung für Image Builder Builder-Windows-Images
<a name="mgdcomponent-distributor-win"></a>

AWS Systems Manager Der Distributor unterstützt Sie beim Verpacken und Veröffentlichen von Software auf AWS Systems Manager verwalteten Knoten. Sie können Ihre eigene Software paketieren und veröffentlichen oder den Distributor verwenden, um von Ihnen AWS bereitgestellte Agenten-Softwarepakete zu finden und zu veröffentlichen. Weitere Informationen zu Systems Manager Distributor finden Sie unter [AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) im *AWS Systems Manager Benutzerhandbuch*.

**Verwaltete Komponenten für Distributor**  
Die folgenden von Image Builder verwalteten Komponenten verwenden AWS Systems Manager Distributor, um Anwendungspakete auf Windows-Instanzen zu installieren.
+ Die `distributor-package-windows` verwaltete Komponente verwendet AWS Systems Manager Distributor, um Anwendungspakete zu installieren, die Sie auf Ihrer Windows-Image-Build-Instanz angeben. Informationen zur Konfiguration von Parametern, wenn Sie diese Komponente in Ihr Rezept aufnehmen, finden Sie unter[`distributor-package-windows`Als eigenständige Komponente konfigurieren](#mgdcomponent-distributor-config-standalone).
+ Die `aws-vss-components-windows` Komponente verwendet AWS Systems Manager Distributor, um das `AwsVssComponents` Paket auf Ihrer Windows-Image-Build-Instanz zu installieren. Informationen zum Konfigurieren von Parametern, wenn Sie diese Komponente in Ihr Rezept aufnehmen, finden Sie unter[`aws-vss-components-windows`Als eigenständige Komponente konfigurieren](#mgdcomponent-vss-config-standalone).

Weitere Informationen zur Verwendung verwalteter Komponenten in Ihrem Image Builder Builder-Rezept finden Sie unter [Erstellen Sie eine neue Version eines Bildrezepts](create-image-recipes.md) Für Image-Rezepte oder [Eine neue Version eines Container-Rezepts erstellen](create-container-recipes.md) für Container-Rezepte. Weitere Informationen zu dem `AwsVssComponents` Paket finden Sie unter [Erstellen eines anwendungskonsistenten VSS-Snapshots](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/application-consistent-snapshots.html) im *Amazon EC2 EC2-Benutzerhandbuch*.

## Voraussetzungen
<a name="mgdcomponent-distributor-prereq"></a>

Bevor Sie Image Builder Builder-Komponenten verwenden, die auf Systems Manager Distributor zur Installation von Anwendungspaketen angewiesen sind, müssen Sie sicherstellen, dass die folgenden Voraussetzungen erfüllt sind.
+ Image Builder Builder-Komponenten, die Systems Manager Distributor verwenden, um Anwendungspakete auf Ihrer Instanz zu installieren, benötigen die Berechtigung, die Systems Manager Manager-API aufzurufen. Bevor Sie die Komponenten in einem Image Builder Builder-Rezept verwenden, müssen Sie die IAM-Richtlinie und die Rolle erstellen, die die Berechtigung gewähren. Informationen zum Konfigurieren von Berechtigungen finden Sie unter[Systems Manager Manager-Verteilerberechtigungen konfigurieren](#mgdcomponent-distributor-permissions).

**Anmerkung**  
Image Builder unterstützt derzeit keine Systems Manager Distributor-Pakete, die die Instanz neu starten. Beispielsweise starten die Pakete `AWSNVMe``AWSPVDrivers`, und `AwsEnaNetworkDriver` Distributor die Instanz neu und sind daher nicht zulässig.

## Systems Manager Manager-Verteilerberechtigungen konfigurieren
<a name="mgdcomponent-distributor-permissions"></a>

Für die Ausführung der `distributor-package-windows` Komponente und anderer Komponenten, die sie verwenden`aws-vss-components-windows`, sind zusätzliche Berechtigungen für die Build-Instanz erforderlich. Die Build-Instanz muss in der Lage sein, die Systems Manager Manager-API aufzurufen, um eine Distributor-Installation zu starten und das Ergebnis abzufragen.

Gehen Sie wie folgt vor AWS-Managementkonsole , um eine benutzerdefinierte IAM-Richtlinie und -Rolle zu erstellen, die Image Builder Builder-Komponenten die Erlaubnis erteilen, Systems Manager Distributor-Pakete von der Build-Instanz aus zu installieren.

**Schritt 1: Erstellen Sie eine Richtlinie**  
Erstellen Sie eine IAM-Richtlinie für Verteilerberechtigungen.

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Richtlinien** und dann **Richtlinie erstellen**.

1. Wählen Sie auf der Seite **Richtlinie erstellen** die Registerkarte **JSON** aus und ersetzen Sie dann den Standardinhalt durch die folgende JSON-Richtlinie. Ersetzen Sie dabei gegebenenfalls Partition, Region und Konto-ID oder verwenden Sie Platzhalter.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowDistributorSendCommand",
               "Effect": "Allow",
               "Action": "ssm:SendCommand",
               "Resource": [
                   "arn:aws:ssm:*::document/AWS-ConfigureAWSPackage",
                   "arn:aws:ec2:*:111122223333:instance/*"
               ]
           },
           {
               "Sid": "AllowGetCommandInvocation",
               "Effect": "Allow",
               "Action": "ssm:GetCommandInvocation",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Wählen Sie **Review policy (Richtlinie prüfen)** aus.

1. Geben Sie für **Name** einen Namen zum Identifizieren der Richtlinie ein, wie z. B. `InvokeDistributor` oder einen anderen von Ihnen bevorzugten Namen.

1. (Optional) Geben Sie für **Description (Beschreibung)** eine Beschreibung des Zwecks der Rolle ein.

1. Klicken Sie auf **Create Policy**.

**Schritt 2: Erstellen Sie eine Rolle**  
Erstellen Sie eine IAM-Rolle für Vertriebspartnerberechtigungen.

1. Wählen Sie im Navigationsbereich der IAM-Konsole **Rollen und anschließend Rolle** **erstellen** aus.

1. Wählen Sie unter **Select type of trusted entity** (Typ der vertrauenswürdigen Entität auswählen) die Option **AWS-Service** Service aus.

1. Wählen Sie für **Choose the service that will use this role (Wählen Sie den Service aus, der diese Rolle verwendet)** die Option **EC2** und danach **Next: Permissions (Nächster Schritt: Berechtigungen)** aus.

1. Wählen Sie unter **Select your use case (Anwendungsfall auswählen)** die Option **EC2** und anschließend **Next: Permissions (Weiter: Berechtigungen)** aus.

1. Aktivieren Sie in der Liste der Richtlinien das Kontrollkästchen neben **Amazon SSMManaged InstanceCore**. (Geben Sie `SSM` in das Suchfeld ein, wenn Sie die Liste eingrenzen müssen.)

1. Wählen Sie in dieser Liste von Richtlinien das Kästchen neben **EC2InstanceProfileForImageBuilder**. (Geben Sie `ImageBuilder` in das Suchfeld ein, wenn Sie die Liste eingrenzen müssen.)

1. Wählen Sie **Next: Tags (Weiter: Tags (Markierungen))** aus.

1. (Optional) Fügen Sie ein oder mehrere Tag-Schlüssel-Wertepaare hinzu, um den Zugriff für diese Rolle zu organisieren, nachzuverfolgen oder zu kontrollieren, und wählen Sie dann **Weiter: Überprüfen** aus.

1. Geben Sie unter **Role name (Rollenname)** einen Namen für die Rolle, wie z. B. `InvokeDistributor` oder einen anderen von Ihnen bevorzugten Namen ein.

1. (Optional) Ersetzen Sie für **Role description (Rollenbeschreibung)** den Standardtext mit einer Beschreibung des Zwecks der Rolle.

1. Wählen Sie **Create role (Rolle erstellen)** aus. Das System leitet Sie zur Seite **Rollen** zurück.

**Schritt 3: Hängen Sie die Richtlinie an die Rolle an**  
Der letzte Schritt zur Einrichtung Ihrer Vertriebspartnerberechtigungen besteht darin, die IAM-Richtlinie an die IAM-Rolle anzuhängen.

1. Wählen Sie auf der Seite **Rollen** in der IAM-Konsole die Rolle aus, die Sie gerade erstellt haben. Die Seite mit der **Rollenzusammenfassung** wird geöffnet.

1. Wählen Sie **Attach Policies (Richtlinien hinzufügen)** aus.

1. Suchen Sie nach der Richtlinie, die Sie im vorherigen Verfahren erstellt haben, und aktivieren Sie das Kontrollkästchen neben dem Namen.

1. Wählen Sie **Richtlinie anfügen** aus.

Verwenden Sie diese Rolle in der Image Builder Builder-Infrastrukturkonfigurationsressource für jedes Image, das Komponenten enthält, die Systems Manager Distributor verwenden. Weitere Informationen finden Sie unter [Erstellen einer Infrastrukturkonfiguration](create-infra-config.md).

## `distributor-package-windows`Als eigenständige Komponente konfigurieren
<a name="mgdcomponent-distributor-config-standalone"></a>

Um die `distributor-package-windows` Komponente in einem Rezept zu verwenden, legen Sie die folgenden Parameter fest, mit denen das zu installierende Paket konfiguriert wird.

**Anmerkung**  
Bevor Sie die `distributor-package-windows` Komponente in einem Rezept verwenden, müssen Sie sicherstellen, dass alle Bedingungen erfüllt [Voraussetzungen](#mgdcomponent-distributor-prereq) sind.
+ **Aktion** (erforderlich) — Geben Sie an, ob das Paket installiert oder deinstalliert werden soll. Gültige Werte sind `Install` und `Uninstall`. Der Standardwert ist. `Install`
+ **PackageName**(Erforderlich) — Der Name des zu installierenden oder zu deinstallierenden Distributor-Pakets. Eine Liste der gültigen Paketnamen finden Sie unter[Finden Sie Vertriebspartner-Pakete](#mgdcomponent-distributor-find-pkg).
+ **PackageVersion**(Optional) — Die Version des zu installierenden Distributor-Pakets. PackageVersion ist standardmäßig auf die empfohlene Version eingestellt.
+ **AdditionalArguments**(Optional) — Eine JSON-Zeichenfolge, die die zusätzlichen Parameter enthält, die Sie Ihrem Skript zur Installation, Deinstallation oder Aktualisierung eines Pakets zur Verfügung stellen müssen. Weitere Informationen finden Sie unter **AdditionalArguments** im Abschnitt [aws:ConfigurePackage](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html#aws-configurepackage) **Inputs** der Referenzseite des **Systems Manager** Command-Dokument-Plug-ins.

## `aws-vss-components-windows`Als eigenständige Komponente konfigurieren
<a name="mgdcomponent-vss-config-standalone"></a>

Wenn Sie die `aws-vss-components-windows` Komponente in einem Rezept verwenden, können Sie den `PackageVersion` Parameter optional so einstellen, dass eine bestimmte Version des `AwsVssComponents` Pakets verwendet wird. Wenn Sie diesen Parameter weglassen, verwendet die Komponente standardmäßig die empfohlene Version des `AwsVssComponents` Pakets.

**Anmerkung**  
Bevor Sie die `aws-vss-components-windows` Komponente in einem Rezept verwenden, müssen Sie sicherstellen, dass alle Kriterien erfüllt [Voraussetzungen](#mgdcomponent-distributor-prereq) sind.

## Finden Sie Vertriebspartner-Pakete
<a name="mgdcomponent-distributor-find-pkg"></a>

Amazon und Drittanbieter stellen öffentliche Pakete zur Verfügung, die Sie mit Systems Manager Distributor installieren können.

Um die verfügbaren Pakete in der anzuzeigen AWS-Managementkonsole, melden Sie sich an der [AWS Systems Manager Konsole](https://console.aws.amazon.com/systems-manager/;) an und wählen Sie im Navigationsbereich die Option **Distributor** aus. Auf der **Händlerseite** werden alle Pakete angezeigt, die für Sie verfügbar sind. Weitere Informationen zum Auflisten verfügbarer Pakete mit dem AWS CLI finden Sie unter [Pakete anzeigen (Befehlszeile)](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-view-packages.html) im *AWS Systems Manager Benutzerhandbuch*.

Sie können auch Ihre eigenen privaten Systems Manager Distributor-Pakete erstellen. Weitere Informationen finden Sie im *AWS Systems Manager Benutzerhandbuch* unter [Ein Paket erstellen](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-create.html).

# CIS-Härtungskomponenten
<a name="toe-cis"></a>

Das Center for Internet Security (CIS) ist eine gemeinnützige Organisation, die von der Gemeinschaft getragen wird. Ihre Cybersicherheitsexperten arbeiten zusammen, um IT-Sicherheitsrichtlinien zu entwickeln, die öffentliche und private Organisationen vor Cyberbedrohungen schützen. Ihre weltweit anerkannten Best Practices, die als CIS Benchmarks bekannt sind, helfen IT-Organisationen auf der ganzen Welt, ihre Systeme sicher zu konfigurieren. *Aktuelle Artikel, Blogbeiträge, Podcasts, Webinare und Whitepapers finden Sie auf der Website [CIS Insights](https://www.cisecurity.org/insights) on the Center for Internet Security.*

**CIS Benchmarks**  
CIS erstellt und verwaltet eine Reihe von Konfigurationsrichtlinien, die als CIS-Benchmarks bezeichnet werden und bewährte Methoden für die Konfiguration bestimmter Technologien enthalten, darunter Betriebssysteme, Cloud-Plattformen, Anwendungen, Datenbanken und mehr. CIS-Benchmarks werden von Organisationen und Standards wie PCI DSS, HIPAA, DoD Cloud Computing SRG, FISMA, DFARS und FEDRAMP als Industriestandard anerkannt. [https://www.cisecurity.org/benchmark](https://www.cisecurity.org/benchmark)

**CIS-Härtungskomponenten**  
Wenn Sie ein CIS Hardened Image abonnieren AWS Marketplace, erhalten Sie auch Zugriff auf die zugehörige Hardening-Komponente, die ein Skript ausführt, um die CIS Benchmarks Level 1-Richtlinien für Ihre Konfiguration durchzusetzen. Die CIS-Organisation besitzt und verwaltet die CIS-Härtungskomponenten, um sicherzustellen, dass sie den neuesten Richtlinien entsprechen.

**Anmerkung**  
CIS-Härtungskomponenten folgen nicht den Standardregeln für die Reihenfolge der Komponenten in den Image Builder Builder-Rezepten. Die CIS-Härtungskomponenten werden immer zuletzt ausgeführt, um sicherzustellen, dass die Benchmark-Tests anhand Ihres Ausgabebilds ausgeführt werden.

# Von Amazon verwaltete STIG-Härtungskomponenten für Image Builder
<a name="ib-stig"></a>

Sicherheitsleitfäden zur technischen Implementierung (STIGs) sind die von der Defense Information Systems Agency (DISA) entwickelten Standards zur Sicherung von Informationssystemen und Software zur Absicherung von Informationssystemen und Software. Um Ihre Systeme mit STIG-Standards konform zu machen, müssen Sie eine Vielzahl von Sicherheitseinstellungen installieren, konfigurieren und testen.

Image Builder bietet STIG-Härtungskomponenten, mit denen Sie effizienter konforme Images für STIG-Grundstandards erstellen können. Diese STIG-Komponenten suchen nach Fehlkonfigurationen und führen ein Korrekturskript aus. Für die Verwendung von STIG-kompatiblen Komponenten fallen keine zusätzlichen Gebühren an.

**Wichtig**  
Mit wenigen Ausnahmen installieren STIG-Hardening-Komponenten keine Pakete von Drittanbietern, sofern nicht durch Parameter angegeben. Wenn Drittanbieter-Pakete bereits auf der Instanz installiert sind und es verwandte Pakete gibt, STIGs die Image Builder für dieses Paket unterstützt, werden sie von der Hardening-Komponente angewendet.

Auf dieser Seite sind alle STIGs aufgeführt, die Image Builder unterstützt und die auf die EC2-Instances angewendet werden, die Image Builder startet, wenn Sie ein neues Image erstellen und testen. Wenn Sie zusätzliche STIG-Einstellungen auf Ihr Image anwenden möchten, können Sie eine benutzerdefinierte Komponente erstellen, um es zu konfigurieren. Weitere Informationen zu benutzerdefinierten Komponenten und deren Erstellung finden Sie unter[Verwenden Sie Komponenten, um Ihr Image Builder Builder-Image anzupassen](manage-components.md).

Wenn Sie ein Image erstellen, protokollieren die STIG-Hardening-Komponenten, ob unterstützte STIGs Komponenten angewendet oder übersprungen wurden. Wir empfehlen Ihnen, die Image Builder Builder-Protokolle für Ihre Images zu überprüfen, die STIG-Hardening-Komponenten verwenden. Weitere Informationen zum Zugreifen auf und Überprüfen von Image Builder Builder-Protokollen finden Sie unter[Problembehandlung bei Pipeline-Buil](troubleshooting.md#troubleshooting-pipelines).

**Compliance-Stufen**
+ **Hoch (Kategorie I)**

  Das schwerwiegendste Risiko. Schließt jede Schwachstelle ein, die zu einem Verlust der Vertraulichkeit, Verfügbarkeit oder Integrität führen kann.
+ **Mittel (Kategorie II)**

  Umfasst alle Sicherheitslücken, die zum Verlust von Vertraulichkeit, Verfügbarkeit oder Integrität führen können. Die Risiken können jedoch gemindert werden.
+ **Niedrig (Kategorie III)**

  Jede Schwachstelle, die Maßnahmen zum Schutz vor einem Verlust der Vertraulichkeit, Verfügbarkeit oder Integrität beeinträchtigt.

**Topics**
+ [Komponenten zur Härtung von Windows STIG](#windows-os-stig)
+ [STIG-Versionsverlaufsprotokoll für Windows](#ib-windows-version-hist)
+ [Komponenten zum Härten von Linux STIG](#linux-os-stig)
+ [STIG-Versionsverlaufsprotokoll für Linux](#ib-linux-version-hist)
+ [Komponente zur Validierung der SCAP-Konformität](#scap-compliance)

## Komponenten zur Härtung von Windows STIG
<a name="windows-os-stig"></a>

AWSTOE Die Windows STIG-Härtungskomponenten sind für eigenständige Server konzipiert und wenden lokale Gruppenrichtlinien an. STIG-konforme Härtungskomponenten installieren und aktualisieren die Zertifikate des Verteidigungsministeriums (DoD). Sie entfernen auch unnötige Zertifikate, um die STIG-Konformität aufrechtzuerhalten. Derzeit werden STIG-Baselines für die folgenden Versionen von Windows Server unterstützt: 2012 R2, 2016, 2019, 2022 und 2025.

In diesem Abschnitt werden die aktuellen Einstellungen für jede der Windows STIG-Hardening-Komponenten aufgeführt, gefolgt von einem Versionsverlaufsprotokoll.

### Windows STIG Low (Kategorie III)
<a name="ib-windows-stig-low"></a>

Die folgende Liste enthält STIG-Einstellungen, die die Hardening-Komponente auf Ihre Infrastruktur anwendet. Wenn eine unterstützte Einstellung für Ihre Infrastruktur nicht zutrifft, überspringt die Härtungskomponente diese Einstellung und fährt fort. Beispielsweise gelten einige STIG-Einstellungen möglicherweise nicht für eigenständige Server. Unternehmensspezifische Richtlinien können sich auch darauf auswirken, welche Einstellungen die Härtungskomponente anwendet, z. B. die Anforderung, dass Administratoren die Dokumenteinstellungen überprüfen müssen.

Eine vollständige Liste von Windows STIGs finden Sie in der [STIGs Dokumentbibliothek](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows). Informationen zum Anzeigen der vollständigen Liste finden Sie unter [STIG Viewing Tools](https://public.cyber.mil/stigs/srg-stig-tools/).
+ **Windows Server 2025 STIG Version 1 Version 1**

  V-278082, V-278083, V-278084, V-278085, V-278098, V-278104, V-278110 und V-278231
+ **Windows Server 2022 STIG Version 2 Version 7**

  V-254335, V-254336, V-254337, V-254338, V-254351, V-254357, V-254363 und V-254481
+ **Windows Server 2019 STIG Version 3 Version 7**

  V-205691, V-205819, V-205858, V-205859, V-205860, V-205870, V-205871 und V-205923
+ **Windows Server 2016 STIG Version 2 Version 10**

  V-224916, V-224917, V-224918, V-224919, V-224931, V-224942 und V-225060
+ **Windows Server 2012 R2 MS STIG Version 3 Version 5**

  V-225250, V-225318, V-225319, V-225324, V-225327, V-225328, V-225330, V-225331, V-225332, V-225333, V-225334, V-225335, V-225336, V-225342, V-225343, V-225355, V-225357, V-225358, V-225359, V-225360, V-225362, V-225363, V-225376, V-225392, V-225394, V-225412, V-225459, V-225460, V-225462, V-225468, V-225473, V-225476, V-225479, V-225480, V-225481, V-225482, V-225483, V-225484, V-225485, V-225487, V-225488, V-225489, V-225490, V-225511, V-225514, V-225525, V-225526, V-225536 und V-225537
+ **Microsoft.NET Framework 4.0 STIG Version 2 Version 7**

  Auf das Microsoft .NET Framework für Sicherheitslücken der Kategorie III werden keine STIG-Einstellungen angewendet.
+ **Windows Firewall STIG Version 2 Version 2**

  V-241994, V-241995, V-241996, V-241999, V-242000, V-242001, V-242006, V-242007 und V-242008
+ **Internet Explorer 11 STIG Version 2 Version 6**

  V-223056 und V-223078
+ **Microsoft Edge STIG Version 2 Release 4 (nur Windows Server 2022 und 2025)**

  V-235727, V-235731, V-235751, V-235752 und V-235765
+ **Microsoft Defender STIG Version 2 Version 7**

  Für Sicherheitslücken der Kategorie III von Microsoft Antivirus werden keine STIG-Einstellungen angewendet.

### Windows STIG Medium (Kategorie II)
<a name="ib-windows-stig-medium"></a>

Die folgende Liste enthält STIG-Einstellungen, die die Hardening-Komponente auf Ihre Infrastruktur anwendet. Wenn eine unterstützte Einstellung für Ihre Infrastruktur nicht zutrifft, überspringt die Härtungskomponente diese Einstellung und fährt fort. Beispielsweise gelten einige STIG-Einstellungen möglicherweise nicht für eigenständige Server. Unternehmensspezifische Richtlinien können sich auch darauf auswirken, welche Einstellungen die Härtungskomponente anwendet, z. B. die Anforderung, dass Administratoren die Dokumenteinstellungen überprüfen müssen.

Eine vollständige Liste von Windows STIGs finden Sie in der [STIGs Dokumentbibliothek](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows). Informationen zum Anzeigen der vollständigen Liste finden Sie unter [STIG Viewing Tools](https://public.cyber.mil/stigs/srg-stig-tools/).

**Anmerkung**  
Die Windows STIG Medium Hardening-Komponenten beinhalten alle aufgelisteten STIG-Einstellungen, die für Windows STIG Low Hardening-Komponenten AWSTOE gelten, zusätzlich zu den STIG-Einstellungen, die speziell für Sicherheitslücken der Kategorie II aufgeführt sind.
+ **Windows Server 2025 STIG Version 1 Version 1**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) anwendet, sowie:

  V-278015, V-278016, V-278019, V-278020, V-278021, V-278022, V-278023, V-278024, V-278025, V-278026, V-278033, V-278034, V-278035, V-278036, V-278037, V-278038, V-278039, V-278047, V-278048, V-278049, V-278050, V-278051, V-278052, V-278053, V-278054, V-278055, V-278056, V-278057, V-278058, V-278059, V-278060, V-278061, V-278062, V-278063, V-278064, V-278065, V-278066, V-278067, V-278068, V-278069, V-278070, V-278071, V-278072, V-278073, V-278074, V-278075, V-278076, V-278077, V-278078, V-278079, V-278080, V-278086, V-278088, V-278089, V-278091, V-278092, V-278093, V-278094, V-278095, V-278096, V-278097, V-278102, V-278103, V-278105, V-278106, V-278107, V-278108, V-278109, V-278111, V-278112, V-278113, V-278114, V-278115, V-278116, V-278117, V-278118, V-278119, V-278120, V-278122, V-278123, V-278124, V-278126, V-278127, V-278129, V-278130, V-278131, V-278165, V-278168, V-278169, V-278170, V-278171, V-278174, V-278180, V-278181, V-278182, V-278183, V-278184, V-278185, V-278187, V-278188, V-278189, V-278192, V-278193, V-278194, V-278195, V-278198, V-278199, V-278200, V-278201, V-278202, V-278203, V-278204, V-278205, V-27820662, V-278209, V-278210, V-278211, V-278212, V-278213, V-278214, V-278218, V-278220, V-278221, V-278222, V-278223, V-278226, V-278227, V-278228, V-278229, V-278230, V-278232, V-278233, V-278234, V-278235, V-278236, V-278237, V-278238, V-278239, V-278240, V-278241, V-278243, V-278244, V-278245, V-278247, V-278248, V-278249, V-278251, V-278252, V-278253, V-278254, V-278255, V-278256, V-278257, V-278258, V-278259, V-278260, V-278261, V-278262, V-279916, V-279917, V-279918, V-279919, V-279920, V-279921, V-279922 und V-279923
+ **Windows Server 2022 STIG Version 2 Version 7**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) anwendet, sowie:

  V-254247, V-254269, V-254270, V-254271, V-254272, V-254273, V-254274, V-254275, V-254276, V-254277, V-254278, V-254285, V-254286, V-254287, V-254288, V-254289, V-254290, V-254291, V-254292, V-254296, V-254297, V-254298, V-254299, V-254300, V-254301, V-254302, V-254303, V-254304, V-254305, V-254307, V-254309, V-254311, V-254312, V-254313, V-254314, V-254315, V-254316, V-254319, V-254320, V-254321, V-254322, V-254323, V-254324, V-254325, V-254326, V-254327, V-254328, V-254329, V-254330, V-254331, V-254332, V-254333, V-254334, V-254339, V-254341, V-254342, V-25434442, V-254345, V-254346, V-254347, V-254348, V-254349, V-254350, V-254355, V-254356, V-254358, V-254359, V-254360, V-254361, V-254362, V-254364, V-254365, V-254366, V-254367, V-254368, V-254369, V-254370, V-254371, V-254372, V-254373, V-254375, V-254376, V-254377, V-254379, V-254380, V-254382, V-254383, V-254384, V-254431, V-254433, V-254434, V-254435, V-254436, V-254438, V-254439, V-254440, V-254442, V-254443, V-254444, V-254445, V-254447, V-254448, V-254449, V-254450, V-254451, V-254452, V-254453, V-254454, V-254455, V-254456, V-254459, V-254460, V-254461, V-2544646 2, V-254463, V-254464, V-254468, V-254470, V-254471, V-254472, V-254473, V-254476, V-254477, V-254478, V-254479, V-254480, V-254482, V-254483, V-254484, V-254485, V-254486, V-254487, V-254488, V-254489, V-254491, V-254493, V-254494, V-254495, V-254497, V-254498, V-254499, V-254501, V-254502, V-254503, V-254504, V-254505, V-254506, V-254507, V-254508, V-254509, V-254510, V-254511, V-254512, V-278942, V-278943, V-278944, V-278945, V-278946, V-278947, V-278948 und V-278949
+ **Windows Server 2019 STIG Version 3 Version 7**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) anwendet, sowie:

  V-205625, V-205626, V-205627, V-205629, V-205630, V-205633, V-205634, V-205635, V-205636, V-205637, V-205638, V-205639, V-205640, V-205641, V-205642, V-205643, V-205644, V-205648, V-205649, V-205650, V-205651, V-205652, V-205655, V-205656, V-205659, V-205660, V-205662, V-205671, V-205672, V-205673, V-205675, V-205676, V-205678, V-205679, V-205680, V-205681, V-205682, V-205683, V-205683, V-205683, V-205684, V-205685, V-205686, V-205687, V-205688, V-205689, V-205690, V-205692, V-205693, V-205694, V-205697, V-205698, V-205708, V-205709, V-205712, V-205714, V-205716, V-205717, V-205718, V-205719, V-205720, V-205722, V-205730, V-205731, V-205733, V-205747, V-205748, V-205749, V-205751, V-205752, V-205754, V-205755, V-205756, V-205758, V-205759, V-205760, V-205761, V-205762, V-205763, V-205764, V-205765, V-205766, V-205767, V-205768, V-205769, V-205770, V-205771, V-205772, V-205773, V-205774, V-205775, V-205776, V-205777, V-205778, V-205779, V-205780, V-205781, V-205781, V-205781, V-205782, V-205783, V-205784, V-205795, V-205796, V-205797, V-205798, V-205801, V-205808, V-205809, V-205810, V-205811, V-205812, V-205813, V-205814, V-205815, V-205816, V-205817, V-205821, V-205822, V-205823, V-205824, V-205825, V-205826, V-205827, V-205828, V-205830, V-205832, V-205833, V-205835, V-205836, V-205837, V-205838, V-205842, V-205861, V-205863, V-205865, V-205866, V-205867, V-205868, V-205869, V-205872, V-205873, V-205874, V-205909, V-205910, V-205911, V-205912, V-205915, V-205916, V-205917, V-205918, V-205920, V-205921, V-205922, V-205925, V-257503, V-278934, V-278935, V-278936, V-278937, V-278938, V-278939, V-278940 und V-278941
+ **Windows Server 2016 STIG Version 2 Version 10**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) anwendet, sowie:

  V-224850, V-224851, V-224852, V-224853, V-224854, V-224855, V-224856, V-224857, V-224858, V-224859, V-224866, V-224867, V-224868, V-224869, V-224870, V-224871, V-224872, V-224873, V-224877, V-224877, V-224877 V-224878, V-224879, V-224880, V-224881, V-224882, V-224883, V-224884, V-224885, V-224886, V-224888, V-224890, V-224892, V-224893, V-224894, V-224895, V-224896, V-224897, V-224900, V-224901, V-224902, V-224903, V-224904, V-224905, V-224906, V-224907, V-224908, V-224909, V-224910, V-224911, V-224912, V-224913, V-224914, V-224915, V-224920, V-224921, V-224922, V-224924, V-224925, V-224926, V-224927, V-224928, V-224929, V-224930, V-224935, V-224936, V-224937, V-224938, V-224939, V-224940, V-224941, V-224943, V-224944, V-224945, V-224946, V-224947, V-224948, V-224949, V-224949, V-224949, V-224949, V-224949, V-224949, V-224949 V-224951, V-224952, V-224953, V-224955, V-224956, V-224957, V-224959, V-224960, V-224962, V-224963, V-224965, V-224966, V-224967, V-224968, V-224969, V-224987, V-224988, V-224989, V-224995, V-224995, V-224995, V-224995 996, V-224997, V-224998, V-224999, V-225000, V-225001, V-225002, V-225003, V-225004, V-225005, V-225008, V-225009, V-225010, V-225011, V-225013, V-225014, V-225015, V-225016, V-225017, V-225018, V-225019, V-225020, V-225021, V-225022, V-225023, V-225024, V-225026, V-225027, V-225028, V-225029, V-225030, V-225031, V-225032, V-225033, V-225034, V-225035, V-225038, V-225039, V-225040, V-225041, V-225042, V-225043, V-225047, V-225049, V-225050, V-225051, V-225052, V-225055, V-225056, V-225057, V-225058, V-225059, V-225061, V-225062, V-225063, V-225064, V-225065, V-225066, V-225067, V-225068, V-225070, V-225072, V-225073, V-225074, V-225076, V-225077, V-225078, V-225080, V-225081, V-225082, V-225083, V-225084, V-225085, V-225086, V-225087, V-225087, V-225088 V-225089, V-225092, V-225093 und V-257502
+ **Windows Server 2012 R2 MS STIG Version 3 Version 5**

  Enthält alle unterstützten STIG-Einstellungen, die von der Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) verwendet werden, sowie:

  V-225239, V-225259, V-225260, V-225261, V-225263, V-225264, V-225265, V-225266, V-225267, V-225268, V-225269, V-225270, V-225271, V-225272, V-225273, V-225275, V-225276, V-225277, V-225278, V-225279, V-225280, V-225281, V-225282, V-225283, V-225284, V-225285, V-225286, V-225287, V-225288, V-225289, V-225290, V-225291, V-225292, V-225293, V-225294, V-225295, V-225296, V-225297, V-225298, V-225299, V-225300, V-225301, V-225302, V-225303, V-225304, V-225305, V-225314, V-225315, V-225316, V-225317, V-225325, V-225326, V-225329, V-225337, V-225338, V-225339, V-225340, V-225341, V-225344, V-225345, V-225346, V-225347, V-225348, V-225349, V-225350, V-225351, V-225352, V-225353, V-225356, V-225367, V-225368, V-225369, V-225370, V-225371, V-225372, V-225373, V-225374, V-225375, V-225377, V-225378, V-225379, V-225380, V-225381, V-225382, V-225383, V-225384, V-225385, V-225386, V-225389, V-225391, V-225393, V-225395, V-225397, V-225398, V-225400, V-225401, V-225402, V-225404, V-225405, V-225406, V-225407, V-225408, V-225409, V-225410, V-225411, V-225413, V-225414, V-225415, V-225441, V-225442, V-225443, V-225448, V-225452, V-225453, V-225454, V-225455, V-225456, V-225457, V-225458, V-225461, V-225463, V-225464, V-225469, V-225470, V-225471, V-225472, V-225474, V-225475, V-225477, V-225478, V-225486, V-225494, V-225500, V-225501, V-225502, V-225503, V-225504, V-225506, V-225508, V-225509, V-225510, V-225513, V-225515, V-225516, V-225517, V-225518, V-225519, V-225520, V-225521, V-225522, V-225523, V-225524, V-225527, V-225528, V-225529, V-225530, V-225531, V-225532, V-225533, V-225534, V-225535, V-225538, V-225539, V-225540, V-225541, V-225542, V-225543, V-225544, V-225545, V-225546, V-225548, V-225549, V-225550, V-225551, V-225553, V-225554, V-225555, V-225557, V-225558, V-225559, V-225560, V-225561, V-225562, V-225563, V-225564, V-225565, V-225566, V-225567, V-225568, V-225569, V-225570, V-225571, V-225572, V-225573 und V-225574
+ **Microsoft.NET Framework 4.0 STIG Version 2 Version 7**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) anwendet, sowie:

  V-225223, V-225230, V-225235 und V-225238
+ **Windows-Firewall STIG Version 2 Version 2**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) anwendet, sowie:

  V-241989, V-241990, V-241991, V-241993, V-241998, V-242003, V-242004 und V-242005
+ **Internet Explorer 11 STIG Version 2 Version 6**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) anwendet, sowie:

  V-223015, V-223017, V-223018, V-223019, V-223020, V-223021, V-223022, V-223023, V-223024, V-223025, V-223026, V-223027, V-223028, V-223029, V-223030, V-223031, V-223032, V-223033, V-223034, V-223035, V-223036, V-223037, V-223038, V-223039, V-223040, V-223041, V-223042, V-223043, V-223044, V-223045, V-223046, V-223048, V-223049, V-223050, V-223051, V-223052, V-223053, V-223054, V-223055, V-223057, V-223058, V-223059, V-223060, V-223061, V-223062, V-223063, V-223064, V-223065, V-223066, V-223067, V-223068, V-223069, V-223070, V-223071, V-223072, V-223073, V-223074, V-223075, V-223076, V-223077, V-223079, V-223080, V-223081, V-223082, V-223083, V-223084, V-223085, V-223086, V-223087, V-223088, V-223089, V-223090, V-223091, V-223092, V-223093, V-223094, V-223095, V-223096, V-223097, V-223098, V-223099, V-223100, V-223101, V-223102, V-223103, V-223104, V-223105, V-223106, V-223107, V-223108, V-223109, V-223110, V-223111, V-223112, V-223113, V-223114, V-223115, V-223116, V-223116, V-223116, V-223116, V-223116, V-223116 117, V-223118, V-223119, V-223120, V-223121, V-223123, V-223125, V-223126, V-223127, V-223128, V-223129, V-223130, V-223131, V-223132, V-223133, V-223134, V-223135, V-223136, V-223137, V-223138, V-223139, V-223140, V-223141, V-223142, V-223143, V-223144, V-223145, V-223146, V-223147, V-223148, V-223149, V-250540 und V-250541
+ **Microsoft Edge STIG Version 2 Release 4 (nur Windows Server 2022 und 2025)**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) anwendet, sowie:

  V-235720, V-235721, V-235723, V-235724, V-235725, V-235726, V-235728, V-235729, V-235730, V-235732, V-235733, V-235734, V-235735, V-235736, V-235737, V-235738, V-235739, V-235740, V-235741, V-235742, V-235743, V-235744, V-235745, V-235746, V-235747, V-235748, V-235749, V-235750, V-235754, V-235756, V-235760, V-235761, V-235763, V-235764, V-235766, V-235767, V-235768, V-235769, V-235770, V-235771, V-235772, V-235773, V-235774 und V-246736
+ **Microsoft Defender STIG Version 2 Version 7**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) anwendet, sowie:

  V-213427, V-213429, V-213430, V-213431, V-213432, V-213433, V-213434, V-213435, V-213436, V-213437, V-213438, V-213439, V-213440, V-213441, V-213442, V-213443, V-213444, V-213445, V-213446, V-213447, V-213447 48, V-213449, V-213450, V-213451, V-213454, V-213455, V-213456, V-213457, V-213458, V-213459, V-213460, V-213461, V-213462, V-213463, V-213464, V-213465, V-213466, V-278647, V-278648, V-278649, V-278650, V-278651, V-278651, V-278651, V-278651, V-278661 52, V-278653, V-278654, V-278655, V-278656, V-278658, V-278659, V-278660, V-278661, V-278662, V-278668, V-278669, V-278672, V-278674, V-278675, V-278676, V-278677, V-278678, V-278679, V-278680 und V-278863

### Windows STIG High (Kategorie I)
<a name="ib-windows-stig-high"></a>

Die folgende Liste enthält STIG-Einstellungen, die die Hardening-Komponente auf Ihre Infrastruktur anwendet. Wenn eine unterstützte Einstellung für Ihre Infrastruktur nicht zutrifft, überspringt die Härtungskomponente diese Einstellung und fährt fort. Beispielsweise gelten einige STIG-Einstellungen möglicherweise nicht für eigenständige Server. Unternehmensspezifische Richtlinien können sich auch darauf auswirken, welche Einstellungen die Härtungskomponente anwendet, z. B. die Anforderung, dass Administratoren die Dokumenteinstellungen überprüfen müssen.

Eine vollständige Liste von Windows STIGs finden Sie in der [STIGs Dokumentbibliothek](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows). Informationen zum Anzeigen der vollständigen Liste finden Sie unter [STIG Viewing Tools](https://public.cyber.mil/stigs/srg-stig-tools/).

**Anmerkung**  
Die Härtungskomponenten von Windows STIG High umfassen alle aufgelisteten STIG-Einstellungen, die für die Härtungskomponenten Windows STIG Low und Windows STIG Medium AWSTOE gelten, zusätzlich zu den STIG-Einstellungen, die speziell für Sicherheitslücken der Kategorie I aufgeführt sind.
+ **Windows Server 2025 STIG Version 1 Version 1**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) anwendet, sowie:

  V-278040, V-278099, V-278100, V-278101, V-278121, V-278125, V-278128, V-278196, V-278215, V-278216, V-278217, V-278219, V-278219, V-278225, V-278242, V-278246 und V-278250
+ **Windows Server 2022 STIG Version 2 Version 7**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) anwendet, sowie:

  V-254250, V-254293, V-254352, V-254353, V-254354, V-254374, V-254378, V-254381, V-254446, V-254466, V-254467, V-254469, V-254474, V-254475, V-254492, V-254492, V-254496 und V-254500
+ **Windows Server 2019 STIG Version 3 Version 7**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) anwendet, sowie:

  V-205653, V-205654, V-205663, V-205711, V-205713, V-205724, V-205725, V-205750, V-205753, V-205757, V-205802, V-205804, V-205805, V-205806, V-205849, V-205908, V-205914 und V-205919
+ **Windows Server 2016 STIG Version 2 Version 10**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) anwendet, sowie:

  V-224831, V-224874, V-224932, V-224933, V-224934, V-224954, V-224958, V-224961, V-225025, V-225045, V-225046, V-225048, V-225053, V-225054, V-225071, V-225079 und V-225091
+ **Windows Server 2012 R2 MS STIG Version 3 Version 5**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) anwendet, sowie:

  V-225274, V-225354, V-225364, V-225365, V-225366, V-225390, V-225396, V-225399, V-225444, V-225449, V-225491, V-225492, V-225493, V-225496, V-225497, V-225498, V-225505, V-225507, V-225547, V-225552 und V-225556
+ **Microsoft.NET Framework 4.0 STIG Version 2 Version 7**

  Beinhaltet alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) für das Microsoft.NET Framework anwendet. Für Schwachstellen der Kategorie I werden keine zusätzlichen STIG-Einstellungen angewendet.
+ **Windows Firewall STIG Version 2, Version 2**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) anwendet, sowie:

  V-241992, V-241997 und V-242002
+ **Internet Explorer 11 STIG Version 2 Version 6**

  V-252910
+ **Microsoft Edge STIG Version 2 Release 4 (nur Windows Server 2022 und 2025)**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) anwendet, sowie:

  V-235758 und V-235759
+ **Microsoft Defender STIG Version 2 Version 7**

  Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) anwendet, sowie:

  V-213426, V-213428, V-213452 und V-213453

## STIG-Versionsverlaufsprotokoll für Windows
<a name="ib-windows-version-hist"></a>

In diesem Abschnitt wird der Versionsverlauf der Windows-Hardening-Komponente für die vierteljährlichen STIG-Updates protokolliert. Um die Änderungen und veröffentlichten Versionen für ein Quartal zu sehen, wählen Sie den Titel aus, um die Informationen zu erweitern.

### Änderungen im ersten Quartal 2026 — 10.03.2026:
<a name="2026-q1-windows"></a>

Unterstützung für Windows Server 2025 wurde hinzugefügt und alle für das erste Quartal 2026 geltenden STIGs Aktualisierungen aktualisiert.

**STIG-Build-Windows**
+ Windows Server 2025 STIG Version 1 Version 1
+ Windows Server 2022 STIG Version 2 Version 7
+ Windows Server 2019 STIG Version 3 Version 7
+ Windows Server 2016 STIG Version 2 Version 10
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft.NET Framework 4.0 STIG Version 2 Version 7
+ Windows Firewall STIG Version 2 Version 2
+ Internet Explorer 11 STIG Version 2 Version 8
+ Microsoft Edge STIG Version 2 Release 4 (nur Windows Server 2022 und 2025)

### Änderungen im dritten Quartal 2025 – 04.09.2025 (keine Änderungen):
<a name="2025-q3-windows"></a>

In der Version des dritten Quartals 2025 gab es keine Änderungen für die Windows-Komponenten-STIGS.

### Änderungen im zweiten Quartal 2025 – 26.06.2025:
<a name="2025-q2-windows"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des zweiten Quartals 2025 wie folgt angewendet:

**STIG-Build-Windows-Low Version 2025.2.x**
+ Windows Server 2022 STIG Version 2 Version 4
+ Windows Server 2019 STIG Version 3 Release 4
+ Windows Server 2016 STIG Version 2 Version 10
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 6
+ Windows Firewall STIG Version 2 Version 2
+ Internet Explorer 11 STIG Version 2 Version 5
+ Microsoft Edge STIG Version 2 Release 2 (nur Windows Server 2022)

**STIG-Build-Windows-Medium Ausführung 2025.2.x**
+ Windows Server 2022 STIG Version 2 Version 4
+ Windows Server 2019 STIG Version 3 Release 4
+ Windows Server 2016 STIG Version 2 Version 10
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 6
+ Windows Firewall STIG Version 2 Version 2
+ Internet Explorer 11 STIG Version 2 Version 5
+ Microsoft Edge STIG Version 2 Release 2 (nur Windows Server 2022)
+ Defender STIG Version 2 Release 4

**STIG-Build-Windows-High Ausführung 2025.2.x**
+ Windows Server 2022 STIG Version 2 Version 4
+ Windows Server 2019 STIG Version 3 Release 4
+ Windows Server 2016 STIG Version 2 Version 10
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 6
+ Windows Firewall STIG Version 2 Version 2
+ Internet Explorer 11 STIG Version 2 Version 5
+ Microsoft Edge STIG Version 2 Release 2 (nur Windows Server 2022)
+ Defender STIG Version 2 Release 4

### Änderungen im ersten Quartal 2025 – 04.05.2025:
<a name="2025-q1-windows"></a>

STIGS für Internet Explorer 11 STIG Version 2 Release 5 für alle STIG-Komponenten für die Version des ersten Quartals 2025 aktualisiert.
+ STIG-Build-Windows-Low Ausführung 2025.1.x
+ STIG-Build-Windows-Medium Ausführung 2025.1.x
+ STIG-Build-Windows-High Ausführung 2025.1.x

### Änderungen im vierten Quartal 2024 — 02/04/2025:
<a name="2024-q4-windows"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des vierten Quartals 2024 wie folgt angewendet:

**STIG-Build-Windows-Low Ausführung 2024.4.0**
+ Windows Server 2022 STIG Version 2 Version 2
+ Windows Server 2019 STIG Version 3 Release 2
+ Windows Server 2016 STIG Version 2 Version 9
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 2
+ Windows Firewall STIG Version 2 Version 2
+ Internet Explorer 11 STIG Version 2 Version 5
+ Microsoft Edge STIG Version 2 Release 2 (nur Windows Server 2022)

**STIG-Build-Windows-Medium Version 2024.4.0**
+ Windows Server 2022 STIG Version 2 Version 2
+ Windows Server 2019 STIG Version 3 Release 2
+ Windows Server 2016 STIG Version 2 Version 9
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 2
+ Windows Firewall STIG Version 2 Version 2
+ Internet Explorer 11 STIG Version 2 Version 5
+ Microsoft Edge STIG Version 2 Release 2 (nur Windows Server 2022)
+ Defender STIG Version 2 Release 4

**STIG-Build-Windows-High Version 2024.4.0**
+ Windows Server 2022 STIG Version 2 Version 2
+ Windows Server 2019 STIG Version 3 Release 2
+ Windows Server 2016 STIG Version 2 Version 9
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 2
+ Windows Firewall STIG Version 2 Version 2
+ Internet Explorer 11 STIG Version 2 Version 5
+ Microsoft Edge STIG Version 2 Release 2 (nur Windows Server 2022)
+ Defender STIG Version 2 Release 4

### Änderungen im dritten Quartal 2024 — 04.10.2023 (keine Änderungen):
<a name="2024-q3-windows"></a>

In der Version des dritten Quartals 2024 gab es keine Änderungen für die Windows-Komponenten-STIGS.

### Änderungen im zweiten Quartal 2024 – 10.05.2024 (keine Änderungen):
<a name="2024-q2-windows"></a>

In der Version des zweiten Quartals 2024 gab es keine Änderungen für die Windows-Komponenten-STIGS.

### Änderungen im ersten Quartal 2024 — 02.06.2024 (keine Änderungen):
<a name="2024-q1-windows"></a>

In der Version des ersten Quartals 2024 gab es keine Änderungen für die Windows-Komponenten-STIGS.

### Änderungen im vierten Quartal 2023 — 12.04.2023 (keine Änderungen):
<a name="2023-q4-windows"></a>

In der Version des vierten Quartals 2024 gab es keine Änderungen für die Windows-Komponenten-STIGS.

### Änderungen im dritten Quartal 2023 – 04.10.2023 (keine Änderungen):
<a name="2023-q3-windows"></a>

In der Version des dritten Quartals 2023 gab es keine Änderungen für die Windows-Komponenten-STIGS.

### Änderungen im zweiten Quartal 2023 – 03.05.2023 (keine Änderungen):
<a name="2023-q2-windows"></a>

In der Version des zweiten Quartals 2023 gab es keine Änderungen für die Windows-Komponenten-STIGS.

### Änderungen im ersten Quartal 2023 – 27.03.2023 (keine Änderungen):
<a name="2023-q1-windows"></a>

In der Version des ersten Quartals 2023 gab es keine Änderungen für die Windows-Komponenten-STIGS.

### Änderungen im vierten Quartal 2022 – 01.02.2023:
<a name="2022-q4-windows"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des vierten Quartals 2022 wie folgt angewendet:

**STIG-Build-Windows-Low Ausführung 2022.4.x**
+ Windows Server 2022 STIG Version 1 Release 1
+ Windows Server 2019 STIG Version 2 Release 5
+ Windows Server 2016 STIG Version 2 Release 5
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 2
+ Windows Firewall STIG Version 2 Release 1
+ Internet Explorer 11 STIG Version 2 Release 3
+ Microsoft Edge STIG Version 1 Release 6 (nur Windows Server 2022)

**STIG-Build-Windows-Medium Ausführung 2022.4.x**
+ Windows Server 2022 STIG Version 1 Release 1
+ Windows Server 2019 STIG Version 2 Release 5
+ Windows Server 2016 STIG Version 2 Release 5
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 2
+ Windows Firewall STIG Version 2 Release 1
+ Internet Explorer 11 STIG Version 2 Release 3
+ Microsoft Edge STIG Version 1 Release 6 (nur Windows Server 2022)
+ Defender STIG Version 2 Release 4 (nur Windows Server 2022)

**STIG-Build-Windows-High Ausführung 2022.4.x**
+ Windows Server 2022 STIG Version 1 Release 1
+ Windows Server 2019 STIG Version 2 Release 5
+ Windows Server 2016 STIG Version 2 Release 5
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 2
+ Windows Firewall STIG Version 2 Release 1
+ Internet Explorer 11 STIG Version 2 Release 3
+ Microsoft Edge STIG Version 1 Release 6 (nur Windows Server 2022)
+ Defender STIG Version 2 Release 4 (nur Windows Server 2022)

### Änderungen im dritten Quartal 2022 – 30.09.2022 (keine Änderungen):
<a name="2022-q3-windows"></a>

In der Version des dritten Quartals 2022 gab es keine Änderungen für die Windows-Komponenten-STIGS.

### Änderungen im zweiten Quartal 2022 – 02.08.2022:
<a name="2022-q2-windows"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des zweiten Quartals 2022 angewendet.

**STIG-Build-Windows-Low Ausführung 1.5.x**
+ Windows Server 2019 STIG Version 2 Version 4
+ Windows Server 2016 STIG Version 2 Version 4
+ Windows Server 2012 R2 MS STIG Version 3 Version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 2 Release 1
+ Internet Explorer 11 STIG Version 1 Version 19

**STIG-Build-Windows-Medium Version 1.5.x**
+ Windows Server 2019 STIG Version 2 Version 4
+ Windows Server 2016 STIG Version 2 Version 4
+ Windows Server 2012 R2 MS STIG Version 3 Version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 2 Release 1
+ Internet Explorer 11 STIG Version 1 Version 19

**STIG-Build-Windows-High Version 1.5.x**
+ Windows Server 2019 STIG Version 2 Version 4
+ Windows Server 2016 STIG Version 2 Version 4
+ Windows Server 2012 R2 MS STIG Version 3 Version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 2 Release 1
+ Internet Explorer 11 STIG Version 1 Version 19

### Änderungen im ersten Quartal 2022 – 02.08.2022 (keine Änderungen):
<a name="2022-q1-windows"></a>

In der Version des ersten Quartals 2022 gab es keine Änderungen für die Windows-Komponenten-STIGS.

### Änderungen im vierten Quartal 2021 – 20.12.2021:
<a name="2021-q4-windows"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des vierten Quartals 2021 angewendet:

**STIG-Build-Windows-Low Version 1.5.x**
+ Windows Server 2019 STIG Version 2 Version 3
+ Windows Server 2016 STIG Version 2 Version 3
+ Windows Server 2012 R2 MS STIG Version 3 Version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 2 Release 1
+ Internet Explorer 11 STIG Version 1 Version 19

**STIG-Build-Windows-Medium Version 1.5.x**
+ Windows Server 2019 STIG Version 2 Version 3
+ Windows Server 2016 STIG Version 2 Version 3
+ Windows Server 2012 R2 MS STIG Version 3 Version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 2 Release 1
+ Internet Explorer 11 STIG Version 1 Version 19

**STIG-Build-Windows-High Version 1.5.x**
+ Windows Server 2019 STIG Version 2 Version 3
+ Windows Server 2016 STIG Version 2 Version 3
+ Windows Server 2012 R2 MS STIG Version 3 Version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 2 Release 1
+ Internet Explorer 11 STIG Version 1 Version 19

### Änderungen im dritten Quartal 2021 – 30.09.2021:
<a name="2021-q3-windows"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des dritten Quartals 2021 angewendet.

**STIG-Build-Windows-Low Version 1.4.x**
+ Windows Server 2019 STIG Version 2 Version 2
+ Windows Server 2016 STIG Version 2 Version 2
+ Windows Server 2012 R2 MS STIG Version 3 Version 2
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 1 Release 7
+ Internet Explorer 11 STIG Version 1 Version 19

**STIG-Build-Windows-Medium Version 1.4.x**
+ Windows Server 2019 STIG Version 2 Version 2
+ Windows Server 2016 STIG Version 2 Version 2
+ Windows Server 2012 R2 MS STIG Version 3 Version 2
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 1 Release 7
+ Internet Explorer 11 STIG Version 1 Version 19

**STIG-Build-Windows-High Version 1.4.x**
+ Windows Server 2019 STIG Version 2 Version 2
+ Windows Server 2016 STIG Version 2 Version 2
+ Windows Server 2012 R2 MS STIG Version 3 Version 2
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 1 Release 7
+ Internet Explorer 11 STIG Version 1 Version 19

## Komponenten zum Härten von Linux STIG
<a name="linux-os-stig"></a>

Dieser Abschnitt enthält Informationen über Linux STIG-Hardening-Komponenten, gefolgt von einem Versionsverlauf. Wenn die Linux-Distribution keine eigenen STIG-Einstellungen hat, wendet die Hardening-Komponente die RHEL-Einstellungen an.

Die Linux-Komponenten verfügen über optionale Eingabeparameter, mit denen Sie die folgenden Verhaltensweisen für Ihre Linux-Instance anpassen können.
+ **Level (Zeichenfolge)** Wenn kein Wert angegeben ist, ist die Standardeinstellung `High` und es werden alle zutreffenden Konfigurationen Low, Medium und High angewendet.
+ **InstallPackages (Zeichenfolge)** Wenn der Wert ist`No`, installiert die Komponente keine zusätzlichen Softwarepakete. Wenn der Wert gleich ist`Yes`, installiert die Komponente zusätzliche Softwarepakete, die für maximale Konformität erforderlich sind. Der Standardwert ist `No`.
+ **SetDoDConsentBanner (Zeichenfolge)** Wenn der Wert lautet`No`, wird das DoD-Zustimmungsbanner nicht angezeigt, wenn Sie eine Verbindung zu einer Instance herstellen, auf der eine der STIG Linux-Komponenten installiert ist. Wenn der Wert ist`Yes`, wird das DoD-Zustimmungsbanner angezeigt, bevor Sie sich anmelden, wenn Sie eine Verbindung zu einer Instance herstellen, auf der eine der STIG Linux-Komponenten installiert ist. Sie müssen das Banner bestätigen, bevor Sie sich anmelden können. Der Standardwert ist `No`.

  Ein Beispiel für das Einwilligungsbanner ist der [Haftungsausschluss, Datenschutz- und Einwilligungserklärung des Department of Defence](https://dso.dla.mil/), der angezeigt wird, wenn Sie auf die Website von DLA Document Services zugreifen.

Die Hardening-Komponente wendet unterstützte STIG-Einstellungen wie folgt auf die Infrastruktur an, die auf der Linux-Distribution basiert:

**STIG-Einstellungen für Red Hat Enterprise Linux (RHEL) 7**
+ RHEL 7
+ CentOS 7
+ Amazon Linux (2AL2)

**RHEL 8 STIG-Einstellungen**
+ RHEL 8
+ CentOS 8

**RHEL 9 STIG-Einstellungen**
+ RHEL 9
+ CentOS Stream 9

### Linux STIG Low (Kategorie III)
<a name="ib-linux-stig-low"></a>

Die folgende Liste enthält STIG-Einstellungen, die die Hardening-Komponente auf Ihre Infrastruktur anwendet. Wenn eine unterstützte Einstellung für Ihre Infrastruktur nicht zutrifft, überspringt die Härtungskomponente diese Einstellung und fährt fort. Beispielsweise gelten einige STIG-Einstellungen möglicherweise nicht für eigenständige Server. Unternehmensspezifische Richtlinien können sich auch darauf auswirken, welche Einstellungen die Härtungskomponente anwendet, z. B. die Anforderung, dass Administratoren die Dokumenteinstellungen überprüfen müssen.

Eine vollständige Liste finden Sie in der [STIGs Dokumentbibliothek](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux). Informationen zum Anzeigen der vollständigen Liste finden Sie unter [STIG Viewing Tools](https://public.cyber.mil/stigs/srg-stig-tools/).

**RHEL 7 STIG Version 3 Release 15**
+ 

**RHEL 7/CentOS 7 AL2**  
V-204452, V-204576 und V-204605

**RHEL 8 STIG Version 2 Version 6**
+ 

**RHEL 8/CentOS 8**  
V-230241, V-230269, V-230270, V-230281, V-230285, V-230346, V-230381, V-230395, V-230468, V-230469, V-230485, V-230486, V-230491, V-230494, V-230495, V-230496, V-230497, V-230498, V-230499 und V-244527

**RHEL 9 STIG Version 2 Version 7**
+ 

**RHEL 9/CentOS Stream 9**  
V-257782, V-257824, V-258138, V-258037, V-257880, V-258069, V-258076, V-258067, V-257946, V-257947, V-257795, V-257796 und V-258173

**Amazon Linux 2023 STIG Version 1 Version 2**

V-274141

**SLES 12 STIG Version 3 Version 4**

V-217108, V-217113, V-217140, V-217198, V-217209, V-217211, V-217212, V-217213, V-217214, V-217215, V-217216, V-217236, V-217237, V-217238, V-217239, V-217282 und V-255915

**SLES 15 STIG Version 2 Version 6**

V-234811, V-234850, V-234868, V-234873, V-234905, V-234907, V-234908, V-234909, V-234933, V-234934, V-234935, V-234936, V-234936, V-234955, V-234963, V-234967 und V-255921

**Ubuntu 18.04 STIG Version 2 Version 15**

V-219163, V-219164, V-219165, V-219172, V-219173, V-219174, V-219175, V-219178, V-219179, V-219180, V-219210, V-219301, V-219327, V-219332 und V-219333

**Ubuntu 20.04 STIG Version 2 Version 4**

V-238202, V-238203, V-238221, V-238222, V-238223, V-238224, V-238226, V-238234, V-238235, V-238237, V-238308, V-238323, V-238357, V-238362 und V-238373

**Ubuntu 22.04 STIG Version 2 Version 7**

V-260472, V-260476, V-260479, V-260480, V-260481, V-260520, V-260521, V-260549, V-260550, V-260551, V-260552, V-260581 und V-260596

**Ubuntu 24.04 STIG Version 1 Version 4**

V-270645, V-270646, V-270664, V-270677, V-270690, V-270695, V-270706, V-270710, V-270734, V-270749, V-270752, V-270818 und V-270820

### Linux STIG Medium (Kategorie II)
<a name="ib-linux-stig-medium"></a>

Die folgende Liste enthält STIG-Einstellungen, die die Hardening-Komponente auf Ihre Infrastruktur anwendet. Wenn eine unterstützte Einstellung für Ihre Infrastruktur nicht zutrifft, überspringt die Härtungskomponente diese Einstellung und fährt fort. Beispielsweise gelten einige STIG-Einstellungen möglicherweise nicht für eigenständige Server. Unternehmensspezifische Richtlinien können sich auch darauf auswirken, welche Einstellungen die Härtungskomponente anwendet, z. B. die Anforderung, dass Administratoren die Dokumenteinstellungen überprüfen müssen.

Eine vollständige Liste finden Sie in der [STIGs Dokumentbibliothek](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux). Informationen zum Anzeigen der vollständigen Liste finden Sie unter [STIG Viewing Tools](https://public.cyber.mil/stigs/srg-stig-tools/).

**Anmerkung**  
Die Linux STIG Medium Hardening-Komponenten beinhalten alle aufgelisteten STIG-Einstellungen, die für Linux STIG Low Hardening-Komponenten AWSTOE gelten, zusätzlich zu den STIG-Einstellungen, die speziell für Sicherheitslücken der Kategorie II aufgeführt sind.

**RHEL 7 STIG Version 3 Release 15**

Beinhaltet alle unterstützten STIG-Einstellungen, die von der Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) in dieser Linux-Distribution verwendet werden, sowie:
+ 

**RHEL 7/CentOS 7 AL2**  
V-204405, V-204406, V-204407, V-204408, V-204409, V-204410, V-204411, V-204412, V-204413, V-204414, V-204415, V-204416, V-204417, V-204418, V-204420, V-204422, V-204423, V-204426, V-204427, V-204431, V-204434, V-204435, V-204437, V-204449, V-204450, V-204451, V-204457, V-204466, V-204490, V-204491, V-204503, V-204507, V-204508, V-204510, V-204511, V-204512, V-204514, V-204515, V-204516, V-204517, V-204521, V-204524, V-204531, V-204536, V-204537, V-204538, V-204539, V-204540, V-204541, V-204542, V-204543, V-204544, V-204545, V-204546, V-204547, V-204548, V-204549, V-204550, V-204551, V-204552, V-204553, V-204554, V-204555, V-204556, V-204557, V-204558, V-204559, V-204560, V-204562, V-204563, V-204564, V-204565, V-204566, V-204567, V-204568, V-204572, V-204579, V-204584, V-204585, V-204587, V-204588, V-204589, V-204590, V-204591, V-204592, V-204593, V-204596, V-204597, V-204598, V-204599, V-204600, V-204601, V-204602, V-204609, V-204610, V-204611, V-204612, V-204613, V-204614, V-204615, V-204616, V-204617, V-204619, V-204622, V-204625, V-204630, V-204631, V-204633, V-233307, V-237634, V-237635, V-251703, V-255925, V-255927, V-255928 und V-256970

**RHEL 8 STIG Version 2 Version 6**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) in dieser Linux-Distribution anwendet, sowie:
+ 

**RHEL 8/CentOS 8**  
V-230222, V-230228, V-230231, V-230233, V-230236, V-230237, V-230238, V-230239, V-230240, V-230240, V-230243, V-230244, V-230245, V-230246, V-230247, V-230248, V-230249, V-230250, V-230255, V-230256, V-230257, V-230258, V-230259, V-230260, V-230261, V-230262, V-230266, V-230267, V-230268, V-230271, V-230273, V-230275, V-230276, V-230277, V-230278, V-230279, V-230280, V-230282, V-230282, V-230282, V-230287, V-230288, V-230290, V-230291, V-230296, V-230298, V-230310, V-230310, V-230310, V-230310, V-230230 311, V-230312, V-230313, V-230314, V-230315, V-230316, V-230318, V-230319, V-230320, V-230321, V-230322, V-230324, V-230325, V-230326, V-230327, V-230330, V-230332, V-230333, V-230335, V-230337, V-230339, V-230341, V-230343, V-230345, V-230347, V-230348, V-230352, V-230353, V-230354, V-230356, V-230357, V-230358, V-230359, V-230359, V-230359, V-230359, V-230359, V-230359, V-230359, V-230359, V-230359, V-230359, V-230359, V-230359, V-230359, V-230359 230360, V-230361, V-230362, V-230363, V-230365, V-230366, V-230368, V-230369, V-230370, V-230372, V-230373, V-230375, V-230376, V-230377, V-230378, V-230380, V-230382, V-230383, V-230385, V-230386, V-230387, V-230389, V-230390, V-230390, V-230390, V-230390, V-230390, V-230230 392, V-230393, V-230394, V-230396, V-230397, V-230398, V-230399, V-230400, V-230401, V-230402, V-230403, V-230404, V-230405, V-230406, V-230407, V-230408, V-230409, V-230410, V-230411, V-230412, V-230413, V-230418, V-230419, V-230419, V-230427, V-230428, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, V-230429, 430, V-230431, V-230432, V-230433, V-230434, V-230435, V-230436, V-230437, V-230438, V-230439, V-230444, V-230446, V-230447, V-230448, V-230449, V-230455, V-230456, V-230462, V-230463, V-230464, V-230465, V-230466, V-230467, V-230470, V-230471, V-230472, V-230473, V-230474, V-230475, V-230478, V-230480, V-230481, V-230482, V-230483, V-230488, V-230489, V-230493, V-230502, V-230503, V-230505, V-230506, V-230507, V-230523, V-230524, V-230525, V-230526, V-230527, V-230532, V-230535, V-230536, V-230537, V-230538, V-230539, V-230540, V-230541, V-230542, V-230543, V-230544, V-230545, V-230546, V-230547, V-230548, V-230549, V-230550, V-230555, V-230556, V-230557, V-230559, V-230560, V-230561, V-237640, V-237642, V-237643, V-244519, V-244523, V-244523 24, V-244525, V-244526, V-244528, V-244531, V-244533, V-244535, V-244536, V-244538, V-244539, V-244542, V-244543, V-244544, V-244545, V-244547, V-244550, V-244551, V-244552, V-244553, V-244554, V-250315, V-250315, V-250315, V-250316, V-250316, V-250317, V-251707, V-251708, V-251709, V-251710, V-251711, V-251713, V-251714, V-251715, V-251716, V-251717, V-251718, V-256974, V-257258, V-257258, V-274877, V-279929, V-279930 und V-279931

**RHEL 9 STIG Version 2 Version 7**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) in dieser Linux-Distribution anwendet, sowie:
+ 

**RHEL 9/CentOS Stream 9**  
V-257780, V-257781, V-257783, V-257786, V-257788, V-257790, V-257791, V-257792, V-257793, V-257794, V-257797, V-257798, V-257799, V-257800, V-257801, V-257802, V-257803, V-257804, V-257805, V-257806, V-257807, V-257808, V-257809, V-257810, V-257811, V-257812, V-257813, V-257814, V-257815, V-257816, V-257817, V-257818, V-257825, V-257827, V-257828, V-257829, V-257830, V-257831, V-257832, V-257833, V-257834, V-257836, V-257838, V-257839, V-257840, V-257841, V-257842, V-257849, V-257882, V-257883, V-257884, V-257885, V-257886, V-257887, V-257887, V-257888, V-257888 9, V-257890, V-257891, V-257892, V-257893, V-257894, V-257895, V-257896, V-257897, V-257898, V-257899, V-257900, V-257901, V-257902, V-257903, V-257904, V-257905, V-257906, V-257907, V-257908, V-257909, V-257910, V-257911, V-257912, V-257913, V-257914, V-257915, V-257916, V-257917, V-257918, V-257919, V-257920, V-257921, V-257922, V-257923, V-257924, V-257925, V-257926, V-257927, V-257928, V-257929, V-257930, V-257933, V-257934, V-257935, V-257936, V-257939, V-257940, V-257942, V-257943, V-257944, V-257948, V-257951, V-257952, V-257953, V-257954, V-257957, V-257958, V-257959, V-257960, V-257961, V-257962, V-257963, V-257964, V-257965, V-257966, V-257967, V-257968, V-257969, V-257970, V-257971, V-257972, V-257973, V-257974, V-257975, V-257976, V-257977, V-257978, V-257979, V-257980, V-257982, V-257983, V-257985, V-257987, V-257988, V-257992, V-257993, V-257994, V-257995, V-257996, V-257997, V-257998, V-257999, V-258000, V-258001, V-258002, V-258003, V-258004, V-258005, V-258006, V-258007, V-258008, V-258009, V-258010, V-258011, V-258028, V-258034, V-258035, V-258038, V-258039, V-258040, V-258041, V-258043, V-258046, V-258049, V-258052, V-258054, V-258055, V-258056, V-258057, V-258060, V-258063, V-258064, V-258065, V-258066, V-258068, V-258070, V-258071, V-258072, V-258073, V-258074, V-258075, V-258077, V-258079, V-258080, V-258081, V-258082, V-258083, V-258084, V-258085, V-258088, V-258089, V-258090, V-258091, V-258092, V-258093, V-258095, V-258097, V-258098, V-258099, V-258100, V-258101, V-258102, V-258103, V-258104, V-258105, V-258107, V-258108, V-258109, V-258110, V-258111, V-258112, V-258113, V-258114, V-258115, V-258116, V-258117, V-258118, V-258119, V-258120, V-258121, V-258122, V-258123, V-258124, V-258125, V-258126, V-258128, V-258129, V-258130, V-258133, V-258137, V-258140, V-258141, V-258142, V-258144, V-258145, V-258146, V-258147, V-258148, V-258150, V-258151, V-258152, V-258153, V-258154, V-258156, V-258157, V-258158, V-258159, V-258160, V-258161, V-258162, V-258163, V-258164, V-258165, V-258166, V-258167, V-258168, V-258169, V-258170, V-258171, V-258172, V-258175, V-258176, V-258177, V-258178, V-258179, V-258180, V-258181, V-258182, V-258183, V-258184, V-258185, V-258186, V-258187, V-258188, V-258189, V-258190, V-258191, V-258192, V-258193,, V-258194, V-258195, V-258196, V-258197, V-258198, V-258199, V-258200, V-258201, V-258202, V-258203, V-258204, V-258205, V-258206, V-258207, V-258208, V-258209, V-258210, V-258211, V-258212, V-258213, V-258214, V-258215, V-258216, V-258217, V-258218, V-258219, V-258220, V-258221, V-258222, V-258223, V-258224, V-258225, V-258226, V-258227, V-258228, V-258229, V-258232, V-258233, V-258234, V-258237, V-258239, V-258240, V-270174, V-270175, V-270176, V-270177, V-272488 und V-279936

**Amazon Linux 2023 STIG Version 1 Version 2**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) in dieser Linux-Distribution anwendet, sowie:

V-273995, V-274000, V-274001, V-274002, V-274003, V-274004, V-274005, V-274006, V-274008, V-274009, V-274010, V-274011, V-274012, V-274013, V-274014, V-274017, V-274018, V-274019, V-274020, V-274020, V-274020, V-274020 V-274021, V-274022, V-274023, V-274024, V-274026, V-274027, V-274028, V-274030, V-274031, V-274032, V-274033, V-274034, V-274035, V-274036, V-274037, V-274040, V-274041, V-274042, V-274044, V-274044, V-274044, V-274044 274045, V-274047, V-274048, V-274049, V-274050, V-274051, V-274053, V-274054, V-274059, V-274061, V-274062, V-274069, V-274070, V-274071, V-274072, V-274073, V-274074, V-274075, V-274076, V-274077, V-274078, V-274079, V-274081, V-274082, V-274083, V-274084, V-274085, V-274086, V-274087, V-274088, V-274089, V-274090, V-274091, V-274092, V-274093, V-274094, V-274095, V-274096, V-274097, V-274098, V-274099, V-274100, V-274101, V-274102, V-274103, V-274104, V-274105, V-274106, V-274107, V-274108, V-274109, V-274110, V-274111, V-274112, V-274113, V-274114, V-274115, V-274116, V-274117, V-274119, V-274120, V-274121, V-274122, V-274123, V-274124, V-274125, V-274126, V-274127, V-274128, V-274129, V-274130, V-274131, V-274132, V-274133, V-274134, V-274135, V-274136, V-274137, V-274138, V-274139, V-274140, V-274142, V-274143, V-274144, V-274145, V-274147, V-274149, V-274151, V-274152, V-274154, V-274155, V-274156, V-274157, V-274160, V-274161, V-274162, V-274163, V-274164, V-274165, V-274166, V-274167, V-274168, V-274169, V-274170, V-274173, V-274177, V-274181, V-274182, V-274185 und V-274187

**SLES 12 STIG Version 3 Version 4**

Enthält alle unterstützten STIG-Einstellungen, die von der Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) in dieser Linux-Distribution verwendet werden, sowie:

V-217102, V-217105, V-217105, V-217106, V-217106, V-217110, V-217116, V-217117, V-217118, V-217119, V-217120, V-217121, V-217122, V-217124, V-217125, V-217126, V-217127, V-217128, V-217130, V-217134, V-217138, V-217143, V-217147, V-217152, V-217153, V-217154, V-217155, V-217156, V-217158, V-217161, V-217163, V-217166, V-217167, V-217168, V-217169, V-217170, V-217171, V-217182, V-217183, V-217188, V-217190, V-217191, V-217194, V-217195, V-217196, V-217197, V-217200, V-217200, V-217200, V-217217 201, V-217202, V-217203, V-217204, V-217205, V-217206, V-217207, V-217208, V-217210, V-217217, V-217218, V-217223, V-217227, V-217230, V-217240, V-217241, V-217242, V-217243, V-217244, V-217245, V-217246, V-217247, V-217248, V-217249, V-217250, V-217251, V-217252, V-217253, V-217254, V-217255, V-217257, V-217258, V-217260, V-217265, V-217266, V-217267, V-217269, V-217272, V-217273, V-217274, V-217275, V-217276, V-217277, V-217278, V-217279, V-217280, V-217283, V-217284, V-217286, V-217287, V-217288, V-217289, V-217290, V-217291, V-217292, V-217293, V-217294, V-217294, V-217294, V-217294, V-217291 295, V-217296, V-217299, V-217300, V-217301, V-217302, V-233308, V-237605, V-237606, V-237607, V-237608, V-237609, V-237610, V-237611, V-237612, V-237613, V-237614, V-237615, V-237616, V-237617, V-237618, V-237619, V-237620, V-237621, V-237622, V-237622, V-237623, V-251720, V-251722, V-255914, und V-256981

**SLES 15 STIG Version 2 Version 6**

Enthält alle unterstützten STIG-Einstellungen, die von der Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) in dieser Linux-Distribution verwendet werden, sowie:

V-234802, V-234807, V-234808, V-234809, V-234813, V-234815, V-234817, V-234821, V-234822, V-234823, V-234825, V-234827, V-234828, V-234829, V-234830, V-234832, V-234833, V-234834, V-234835, V-234836, V-234837, V-234838, V-234839, V-234840, V-234841, V-234842, V-234843, V-234844, V-234845, V-234848, V-234854, V-234855, V-234856, V-234857, V-234858, V-234861, V-234862, V-234863, V-234869, V-234870, V-234875, V-234878, V-234880, V-234881, V-234882, V-234883, V-234884, V-234885, V-234886, V-234887, V-234888, V-234889, V-234891, V-234895, V-234896, V-234897, V-234899, V-234900, V-234901, V-234902, V-234903, V-234904, V-234906, V-234910, V-234911, V-234912, V-234913, V-234914, V-234918, V-234924, V-234928, V-234932, V-234937, V-234938, V-234939, V-234940, V-234941, V-234942, V-234943, V-234944, V-234945, V-234946, V-234947, V-234948, V-234949, V-234950, V-234951, V-234952, V-234954, V-234956, V-234957, V-234958, V-234959, V-234961, V-234962, V-234964, V-234966, V-234969, V-234973, V-234975, V-234976, V-234977, V-234978, V-234979, V-234981, V-234982, V-234983, V-234983, V-234991, V-235002, V-235003, V-235007, V-235008, V-235009, V-23501010, V-235013, V-235014, V-235015, V-235016, V-235017, V-235018, V-235019, V-235020, V-235021, V-235022, V-235023, V-235024, V-235025, V-235026, V-235028, V-235029, V-235030, V-251724, V-255920, V-256983 und V-274879

**Ubuntu 18.04 STIG Version 2 Version 15**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) in dieser Linux-Distribution anwendet, sowie:

V-219149, V-219155, V-219156, V-219160, V-219166, V-219168, V-219176, V-219181, V-219184, V-219186, V-219188, V-219189, V-219190, V-219191, V-219192, V-219193, V-219194, V-219195, V-219196, V-219197, V-219198, V-219199, V-219200, V-219201, V-219202, V-219203, V-219204, V-219205, V-219206, V-219207, V-219208, V-219209, V-219213, V-219214, V-219215, V-219216, V-219217, V-219218, V-219219, V-219220, V-219221, V-219222, V-219223, V-219224, V-219225, V-219226, V-219227, V-219228, V-219229, V-219230, V-219231, V-219232, V-219233, V-219234, V-219235, V-219236, V-219238, V-219239, V-219240, V-219241, V-219242, V-219243, V-219244, V-219250, V-219254, V-219257, V-219263, V-219264, V-219265, V-219266, V-219267, V-219268, V-219269, V-219270, V-219271, V-219272, V-219273, V-219274, V-219275, V-219276, V-219277, V-219279, V-219281, V-219287, V-219291, V-219296, V-219297, V-219298, V-219299, V-219300, V-219303, V-219304, V-219306, V-219309, V-219310, V-219311, V-219315, V-219318, V-219319, V-219323, V-219326, V-219328, V-219330, V-219331, V-219335, V-219336, V-219337, V-219338, V-219339, V-219342, V-219344, V-233779, V-233780 und V-255906

**Ubuntu 20.04 STIG Version 2 Version 4**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) in dieser Linux-Distribution anwendet, sowie:

V-238200, V-238205, V-238207, V-238209, V-238210, V-238211, V-238212, V-238213, V-238220, V-238225, V-238227, V-238228, V-238229, V-238230, V-238231, V-238232, V-238236, V-238238, V-238239, V-238240, V-238241, V-238242, V-238244, V-238245, V-238246, V-238247, V-238248, V-238249, V-238250, V-238251, V-238252, V-238253, V-238254, V-238255, V-238256, V-238257, V-238258, V-238264, V-238268, V-238271, V-238277, V-238278, V-238279, V-238280, V-238281, V-238282, V-238283, V-238284, V-238285, V-238286, V-238287, V-238288, V-238289, V-238290, V-238291, V-238292, V-238293, V-238294, V-238295, V-238297, V-238298, V-238299, V-238300, V-238301, V-238302, V-238303, V-238304, V-238309, V-238310, V-238315, V-238316, V-238317, V-238318, V-238319, V-238320, V-238324, V-238325, V-238329, V-238330, V-238333, V-238334, V-238337, V-238338, V-238339, V-238340, V-238341, V-238342, V-238343, V-238344, V-238345, V-238346, V-238347, V-238348, V-238349, V-238350, V-238351, V-238352, V-238353, V-238355, V-238356, V-238359, V-238360, V-238369, V-238370, V-238371, V-238376, V-238377, V-238378, V-251505, V-255912, V-274852 und V-274853

**Ubuntu 22.04 STIG Version 2, Version 7**

Enthält alle unterstützten STIG-Einstellungen, die von der Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) in dieser Linux-Distribution verwendet werden, sowie:

V-260471, V-260473, V-260474, V-260475, V-260477, V-260478, V-260485, V-260486, V-260487, V-260488, V-260489, V-260490, V-260491, V-260492, V-260493, V-260494, V-260495, V-260496, V-260497, V-260498, V-260499, V-260500, V-260505, V-260506, V-260507, V-260508, V-260509, V-260510, V-260511, V-260512, V-260513, V-260514, V-260522, V-260527, V-260528, V-260530, V-260533, V-260534, V-260535, V-260537, V-260538, V-260538, V-260538, 260540, V-260542, V-260543, V-260545, V-260546, V-260547, V-260553, V-260554, V-260555, V-260556, V-260557, V-260560, V-260561, V-260562, V-260563, V-260564, V-260565, V-260566, V-260567, V-260569, V-260572, V-260573, V-260574, V-260575, V-260576, V-260582, V-260584, V-260585, V-260586, V-260588, V-260589, V-260590, V-260591, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-260594, V-26059597, V-260598, V-260599, V-260600, V-260601, V-260602, V-260603, V-260604, V-260605, V-260606, V-260607, V-260608, V-260609, V-260610, V-260611, V-260612, V-260613, V-260614, V-260615, V-260616, V-260617, V-260618, V-260619, V-260620, V-260621, V-260622, V-260623, V-260624, V-260625, V-260626, V-260627, V-260628, V-260629, V-260630, V-260631, V-260632, V-260633, V-260634, V-260635, V-260636, V-260637, V-260638, V-260639, V-260640, V-260641, V-260642, V-260643, V-260644, V-260645, V-260646, V-260647, V-260648, V-260649, V-274862, V-274864 und V-274866

**Ubuntu 24.04 STIG Version 1 Version 4**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorie III (Niedrig) in dieser Linux-Distribution anwendet, sowie:

V-270649, V-270651, V-270652, V-270653, V-270654, V-270656, V-270657, V-270659, V-270660, V-270661, V-270662, V-270663, V-270669, V-270672, V-270673, V-270674, V-270676, V-270678, V-270679, V-270680, V-270681, V-270683, V-270684, V-270685, V-270686, V-270687, V-270688, V-270689, V-270692, V-270693, V-270696, V-270697, V-270698, V-270699, V-270700, V-270701, V-270702, V-270703, V-270704, V-270705, V-270709, V-270715, V-270716, V-270718, V-270720, V-270721, V-270722, V-270723, V-270724, V-270725, V-270726, V-270727, V-270728, V-270729, V-270730, V-270731, V-270732, V-270733, V-270737, V-270739, V-270740, V-270741, V-270742, V-270743, V-270746, V-270750, V-270753, V-270755, V-270756, V-270757, V-270758, V-270759, V-270760, V-270765, V-270766, V-270767, V-270768, V-270769, V-270770, V-270771, V-270772, V-270773, V-270775, V-270776, V-270777, V-270778, V-270779, V-270780, V-270781, V-270782, V-270783, V-270784, V-270785, V-270786, V-270787, V-270788, V-270789, V-270790, V-270791, V-270792, V-270793, V-270794, V-270795, V-270796, V-270797, V-270798, V-270799, V-270800, V-270801, V-270802, V-270803, V-270804, V-270805, V-270806, V-270807, V-270808, V-270809, V-270810, V-270811, V-270812, V-270813, V-270814, V-270815, V-270821, V-270822, V-270823, V-270824, V-270825, V-270826, V-270827, V-270828, V-270829, V-270830, V-270831, V-270832, V-274870, V-274871, V-274872 und V-274873

### Linux STIG High (Kategorie I)
<a name="ib-linux-stig-high"></a>

Die folgende Liste enthält STIG-Einstellungen, die die Hardening-Komponente auf Ihre Infrastruktur anwendet. Wenn eine unterstützte Einstellung für Ihre Infrastruktur nicht zutrifft, überspringt die Härtungskomponente diese Einstellung und fährt fort. Beispielsweise gelten einige STIG-Einstellungen möglicherweise nicht für eigenständige Server. Unternehmensspezifische Richtlinien können sich auch darauf auswirken, welche Einstellungen die Härtungskomponente anwendet, z. B. die Anforderung, dass Administratoren die Dokumenteinstellungen überprüfen müssen.

Eine vollständige Liste finden Sie in der [STIGs Dokumentbibliothek](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux). Informationen zum Anzeigen der vollständigen Liste finden Sie unter [STIG Viewing Tools](https://public.cyber.mil/stigs/srg-stig-tools/).

**Anmerkung**  
Die Hardening-Komponenten von Linux STIG High beinhalten alle aufgelisteten STIG-Einstellungen, die für die Hardening-Komponenten Linux STIG Low und Linux STIG Medium AWSTOE gelten, zusätzlich zu den aufgelisteten STIG-Einstellungen, die speziell für Sicherheitslücken der Kategorie I gelten.

**RHEL 7 STIG Version 3 Release 15**

Beinhaltet alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) in dieser Linux-Distribution anwendet, sowie:
+ 

**RHEL 7/CentOS 7 AL2**  
V-204424, V-204425, V-204442, V-204443, V-204447, V-204448, V-204455, V-204462, V-204497, V-204497, V-204502, V-204594, V-204620 und V-204621

**RHEL 8 STIG Version 2 Version 6**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) in dieser Linux-Distribution anwendet, sowie:
+ 

**RHEL 8/CentOS 8**  
V-230223, V-230264, V-230283, V-230284, V-230487, V-230492, V-230533, V-230558, V-244540, V-279933, V-230265, V-230226, V-230530, V-268322, V-230529 und V-230531

**RHEL 9 STIG Version 2 Version 7**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) in dieser Linux-Distribution anwendet, sowie:
+ 

**RHEL 9/CentOS Stream 9**  
V-257820, V-257821, V-257826, V-257835, V-257955, V-257956, V-258059, V-258230, V-258238, V-257984, V-257986, V-258078, V-258094, V-258235, V-257784 und V-257785

**Amazon Linux 2023 STIG Version 1 Version 2**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) in dieser Linux-Distribution anwendet, sowie:

V-273996, V-273997, V-273999, V-274007, V-274038, V-274039, V-274046, V-274052, V-274057 und V-274153

**SLES 12 STIG Version 3, Version 4**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) in dieser Linux-Distribution anwendet, sowie:

 V-217101, V-217139, V-217141, V-217142, V-217159, V-217160, V-217164, V-217264, V-217268, V-222386 und V-251721

**SLES 15 STIG Version 2 Version 6**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) in dieser Linux-Distribution anwendet, sowie:

V-234800, V-234804, V-234818, V-234852, V-234859, V-234860, V-234898, V-234984, V-234985, V-234988, V-234989, V-234990, V-235031, V-235032 und V-251725

**Ubuntu 18.04 STIG Version 2 Version 15**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) in dieser Linux-Distribution anwendet, sowie:

V-219157, V-219158, V-219177, V-219212, V-219308, V-219314, V-219316 und V-251507

**Ubuntu 20.04 STIG Version 2 Version 4**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) in dieser Linux-Distribution anwendet, sowie:

V-238201, V-238218, V-238219, V-238326, V-238327, V-238380 und V-251504

**Ubuntu 22.04 STIG Version 2 Version 7**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) in dieser Linux-Distribution anwendet, sowie:

V-260469, V-260482, V-260483, V-260523, V-260524, V-260526, V-260529, V-260539, V-260570, V-260571, V-260579 und V-279937

**Ubuntu 24.04 STIG Version 1 Version 4**

Enthält alle unterstützten STIG-Einstellungen, die die Hardening-Komponente für Sicherheitslücken der Kategorien II und III (Mittel und Niedrig) in dieser Linux-Distribution anwendet, sowie:

V-270647, V-270648, V-270665, V-270666, V-270708, V-270711, V-270712, V-270713, V-270714, V-270717, V-270736, V-270738 und V-279938

## STIG-Versionsverlaufsprotokoll für Linux
<a name="ib-linux-version-hist"></a>

In diesem Abschnitt wird der Versionsverlauf der Linux-Komponenten protokolliert. Um die Änderungen und veröffentlichten Versionen für ein Quartal zu sehen, wählen Sie den Titel aus, um die Informationen zu erweitern.

### Änderungen im ersten Quartal 2026 — 10.03.2026:
<a name="2026-q1-linux"></a>

Die folgenden STIG-Versionen, die für die Version des ersten Quartals 2026 gelten, wurden STIGs für alle Compliance-Stufen aktualisiert:

**STIG-Build-Linux**
+ RHEL 8 STIG Version 2 Version 6
+ RHEL 9 STIG Version 2 Version 7
+ Amazon Linux 2023 STIG Version 1 Version 2
+ SLES 12 STIG Version 3 Version 4
+ SLES 15 STIG Version 2 Version 6
+ Ubuntu 20.04 STIG Version 2 Veröffentlichung 4
+ Ubuntu 22.04 STIG Version 2 Veröffentlichung 7
+ Ubuntu 24.04 STIG Version 1 Veröffentlichung 4

### Änderungen im dritten Quartal 2025 – 04.09.2025:
<a name="2025-q3-linux"></a>

Unterstützung für das Betriebssystem SUSE Linux Enterprise Server (SLES) und Amazon Linux 2023 wurde hinzugefügt. Die folgenden STIG-Versionen wurden aktualisiert und STIGS für die Version des dritten Quartals 2025 für alle Compliance-Stufen angewendet (): low/medium/high
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 4
+ RHEL 9 STIG Version 2 Release 5
+ Amazon Linux 2023 STIG Version 1 Release 1
+ SLES 12 STIG Version 3 Release 3
+ SLES 15 STIG Version 2 Release 5
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 3
+ Ubuntu 22.04 STIG Version 2 Release 5
+ Ubuntu 24.04 STIG Version 1 Release 2

### Änderungen im zweiten Quartal 2025 – 26.06.2025:
<a name="2025-q2-linux"></a>

Die folgenden STIG-Versionen wurden aktualisiert und STIGS für die Version des zweiten Quartals 2025 angewendet:

**STIG-Build-Linux-Low Version 2025.2.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 3
+ RHEL 9 STIG Version 2 Release 4
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 4
+ Ubuntu 24.04 STIG Version 1 Release 1

**STIG-Build-Linux-Medium Ausführung 2025.2.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 3
+ RHEL 9 STIG Version 2 Release 4
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 4
+ Ubuntu 24.04 STIG Version 1 Release 1

**STIG-Build-Linux-High Ausführung 2025.2.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 3
+ RHEL 9 STIG Version 2 Release 4
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 4
+ Ubuntu 24.04 STIG Version 1 Release 1

### Änderungen im ersten Quartal 2025 – 11.04.2025:
<a name="2025-q1-linux"></a>

Die folgenden STIG-Versionen wurden aktualisiert, STIGS auf die Version des ersten Quartals 2025 angewendet und Unterstützung für Ubuntu 24.04 hinzugefügt:

**STIG-Build-Linux-Low Ausführung 2025.1.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 2
+ RHEL 9 STIG Version 2 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 3
+ Ubuntu 24.04 STIG Version 1 Release 1

**STIG-Build-Linux-Medium Ausführung 2025.1.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 2
+ RHEL 9 STIG Version 2 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 3
+ Ubuntu 24.04 STIG Version 1 Release 1

**STIG-Build-Linux-High Ausführung 2025.1.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 2
+ RHEL 9 STIG Version 2 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 3
+ Ubuntu 24.04 STIG Version 1 Release 1

### Änderungen im vierten Quartal 2024 – 10.12.2024:
<a name="2024-q4-linux"></a>

Die folgenden STIG-Versionen wurden aktualisiert, STIGS für die Version des vierten Quartals 2024 angewendet und Informationen zu zwei neuen Eingabeparametern für die Linux-Komponenten hinzugefügt:

**STIG-Build-Linux-Low Ausführung 2024.4.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 1
+ RHEL 9 STIG Version 2 Release 2
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 1
+ Ubuntu 22.04 STIG Version 2 Release 2

**STIG-Build-Linux-Medium Ausführung 2024.4.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 1
+ RHEL 9 STIG Version 2 Release 2
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 1
+ Ubuntu 22.04 STIG Version 2 Release 2

**STIG-Build-Linux-High Ausführung 2024.4.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 1
+ RHEL 9 STIG Version 2 Release 2
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 1
+ Ubuntu 22.04 STIG Version 2 Release 2

### Änderungen im dritten Quartal 2024 – 04.10.2024 (keine Änderungen):
<a name="2024-q3-linux"></a>

Für die Version des dritten Quartals 2024 gab es keine Änderungen für die Linux-Komponenten-STIGS.

### Änderungen im zweiten Quartal 2024 – 10.05.2024:
<a name="2024-q2-linux"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des zweiten Quartals 2024 angewendet. Außerdem wurde die Unterstützung für RHEL 9, CentOS Stream 9 und Ubuntu 22.04 wie folgt hinzugefügt:

**STIG-Build-Linux-Low Ausführung 2024.2.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 14
+ RHEL 9 STIG Version 1 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 14
+ Ubuntu 20.04 STIG Version 1 Release 12
+ Ubuntu 22.04 STIG Version 1 Release 1

**STIG-Build-Linux-Medium Ausführung 2024.2.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 14
+ RHEL 9 STIG Version 1 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 14
+ Ubuntu 20.04 STIG Version 1 Release 12
+ Ubuntu 22.04 STIG Version 1 Release 1

**STIG-Build-Linux-High Ausführung 2024.2.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 14
+ RHEL 9 STIG Version 1 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 14
+ Ubuntu 20.04 STIG Version 1 Release 12
+ Ubuntu 22.04 STIG Version 1 Release 1

### Änderungen im ersten Quartal 2024 – 06.02.2024:
<a name="2024-q1-linux"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des ersten Quartals 2024 wie folgt angewendet:

**STIG-Build-Linux-Low Ausführung 2024.1.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 13
+ Ubuntu 18.04 STIG Version 2 Release 13
+ Ubuntu 20.04 STIG Version 1 Release 11

**STIG-Build-Linux-Medium Ausführung 2024.1.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 13
+ Ubuntu 18.04 STIG Version 2 Release 13
+ Ubuntu 20.04 STIG Version 1 Release 11

**STIG-Build-Linux-High Ausführung 2024.1.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 13
+ Ubuntu 18.04 STIG Version 2 Release 13
+ Ubuntu 20.04 STIG Version 1 Release 11

### Änderungen im vierten Quartal 2023 – 07.12.2023:
<a name="2023-q4-linux"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des vierten Quartals 2023 wie folgt angewendet:

**STIG-Build-Linux-Low Ausführung 2023.4.x**
+ RHEL 7 STIG Version 3 Release 13
+ RHEL 8 STIG Version 1 Release 12
+ Ubuntu 18.04 STIG Version 2 Release 12
+ Ubuntu 20.04 STIG Version 1 Release 10

**STIG-Build-Linux-Medium Ausführung 2023.4.x**
+ RHEL 7 STIG Version 3 Release 13
+ RHEL 8 STIG Version 1 Release 12
+ Ubuntu 18.04 STIG Version 2 Release 12
+ Ubuntu 20.04 STIG Version 1 Release 10

**STIG-Build-Linux-High Ausführung 2023.4.x**
+ RHEL 7 STIG Version 3 Release 13
+ RHEL 8 STIG Version 1 Release 12
+ Ubuntu 18.04 STIG Version 2 Release 12
+ Ubuntu 20.04 STIG Version 1 Release 10

### Änderungen im dritten Quartal 2023 – 04.10.2023:
<a name="2023-q3-linux"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des dritten Quartals 2023 wie folgt angewendet:

**STIG-Build-Linux-Low Ausführung 2023.3.x**
+ RHEL 7 STIG Version 3 Release 12
+ RHEL 8 STIG Version 1 Release 11
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 9

**STIG-Build-Linux-Medium Ausführung 2023.3.x**
+ RHEL 7 STIG Version 3 Release 12
+ RHEL 8 STIG Version 1 Release 11
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 9

**STIG-Build-Linux-High Ausführung 2023.3.x**
+ RHEL 7 STIG Version 3 Release 12
+ RHEL 8 STIG Version 1 Release 11
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 9

### Änderungen im zweiten Quartal 2023 – 03.05.2023:
<a name="2023-q2-linux"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des zweiten Quartals 2023 wie folgt angewendet:

**STIG-Build-Linux-Low Ausführung 2023.2.x**
+ RHEL 7 STIG Version 3 Release 11
+ RHEL 8 STIG Version 1 Release 10
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 8

**STIG-Build-Linux-Medium Ausführung 2023.2.x**
+ RHEL 7 STIG Version 3 Release 11
+ RHEL 8 STIG Version 1 Release 10
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 8

**STIG-Build-Linux-High Ausführung 2023.2.x**
+ RHEL 7 STIG Version 3 Release 11
+ RHEL 8 STIG Version 1 Release 10
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 8

### Änderungen im ersten Quartal 2023 – 27.03.2023:
<a name="2023-q1-linux"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des ersten Quartals 2023 wie folgt angewendet:

**STIG-Build-Linux-Low Ausführung 2023.1.x**
+ RHEL 7 STIG Version 3 Release 10
+ RHEL 8 STIG Version 1 Release 9
+ Ubuntu 18.04 STIG Version 2 Release 10
+ Ubuntu 20.04 STIG Version 1 Release 7

**STIG-Build-Linux-Medium Ausführung 2023.1.x**
+ RHEL 7 STIG Version 3 Release 10
+ RHEL 8 STIG Version 1 Release 9
+ Ubuntu 18.04 STIG Version 2 Release 10
+ Ubuntu 20.04 STIG Version 1 Release 7

**STIG-Build-Linux-High Ausführung 2023.1.x**
+ RHEL 7 STIG Version 3 Release 10
+ RHEL 8 STIG Version 1 Release 9
+ Ubuntu 18.04 STIG Version 2 Release 10
+ Ubuntu 20.04 STIG Version 1 Release 7

### Änderungen im vierten Quartal 2022 – 01.02.2023:
<a name="2022-q4-linux"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des vierten Quartals 2022 wie folgt angewendet:

**STIG-Build-Linux-Low Ausführung 2022.4.x**
+ RHEL 7 STIG Version 3 Release 9
+ RHEL 8 STIG Version 1 Release 8
+ Ubuntu 18.04 STIG Version 2 Release 9
+ Ubuntu 20.04 STIG Version 1 Release 6

**STIG-Build-Linux-Medium Ausführung 2022.4.x**
+ RHEL 7 STIG Version 3 Release 9
+ RHEL 8 STIG Version 1 Release 8
+ Ubuntu 18.04 STIG Version 2 Release 9
+ Ubuntu 20.04 STIG Version 1 Release 6

**STIG-Build-Linux-High Ausführung 2022.4.x**
+ RHEL 7 STIG Version 3 Release 9
+ RHEL 8 STIG Version 1 Release 8
+ Ubuntu 18.04 STIG Version 2 Release 9
+ Ubuntu 20.04 STIG Version 1 Release 6

### Änderungen im dritten Quartal 2022 – 30.09.2022 (keine Änderungen):
<a name="2022-q3-linux"></a>

Für die Version des dritten Quartals 2022 gab es keine Änderungen für die Linux-Komponenten-STIGS.

### Änderungen im zweiten Quartal 2022 – 02.08.2022:
<a name="2022-q2-linux"></a>

Unterstützung für Ubuntu wurde eingeführt, die STIG-Versionen aktualisiert und STIGS für die Version des zweiten Quartals 2022 wie folgt angewendet:

**STIG-Build-Linux-Low Ausführung 2022.2.x**
+ RHEL 7 STIG Version 3 Release 7
+ RHEL 8 STIG Version 1 Release 6
+ Ubuntu 18.04 STIG Version 2 Release 6 (neu)
+ Ubuntu 20.04 STIG Version 1 Release 4 (neu)

**STIG-Build-Linux-Medium Ausführung 2022.2.x**
+ RHEL 7 STIG Version 3 Release 7
+ RHEL 8 STIG Version 1 Release 6
+ Ubuntu 18.04 STIG Version 2 Release 6 (neu)
+ Ubuntu 20.04 STIG Version 1 Release 4 (neu)

**STIG-Build-Linux-High Ausführung 2022.2.x**
+ RHEL 7 STIG Version 3 Release 7
+ RHEL 8 STIG Version 1 Release 6
+ Ubuntu 18.04 STIG Version 2 Release 6 (neu)
+ Ubuntu 20.04 STIG Version 1 Release 4 (neu)

### Änderungen im ersten Quartal 2022 – 26.04.2022:
<a name="2022-q1-linux"></a>

Faktorwechsel, um eine bessere Unterstützung für Container zu bieten. Kombinierte das vorherige AL2 Skript mit RHEL 7. Die STIG-Versionen wurden aktualisiert und STIGS für die Version des ersten Quartals 2022 wie folgt angewendet:

**STIG-Build-Linux-Low Version 3.6.x**
+ RHEL 7 STIG Version 3 Release 6
+ RHEL 8 STIG Version 1 Release 5

**STIG-Build-Linux-Medium Ausführung 3.6.x**
+ RHEL 7 STIG Version 3 Release 6
+ RHEL 8 STIG Version 1 Release 5

**STIG-Build-Linux-High Ausführung 3.6.x**
+ RHEL 7 STIG Version 3 Release 6
+ RHEL 8 STIG Version 1 Release 5

### Änderungen im vierten Quartal 2021 – 20.12.2021:
<a name="2021-q4-linux"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des vierten Quartals 2021 wie folgt angewendet:

**STIG-Build-Linux-Low Ausführung 3.5.x**
+ RHEL 7 STIG Version 3 Release 5
+ RHEL 8 STIG Version 1 Release 4

**STIG-Build-Linux-Medium Ausführung 3.5.x**
+ RHEL 7 STIG Version 3 Release 5
+ RHEL 8 STIG Version 1 Release 4

**STIG-Build-Linux-High Ausführung 3.5.x**
+ RHEL 7 STIG Version 3 Release 5
+ RHEL 8 STIG Version 1 Release 4

### Änderungen im dritten Quartal 2021 – 30.09.2021:
<a name="2021-q3-linux"></a>

Die STIG-Versionen wurden aktualisiert und STIGS für die Version des dritten Quartals 2021 wie folgt angewendet:

**STIG-Build-Linux-Low Ausführung 3.4.x**
+ RHEL 7 STIG Version 3 Release 4
+ RHEL 8 STIG Version 1 Release 3

**STIG-Build-Linux-Medium Ausführung 3.4.x**
+ RHEL 7 STIG Version 3 Release 4
+ RHEL 8 STIG Version 1 Release 3

**STIG-Build-Linux-High Ausführung 3.4.x**
+ RHEL 7 STIG Version 3 Release 4
+ RHEL 8 STIG Version 1 Release 3

## Komponente zur Validierung der SCAP-Konformität
<a name="scap-compliance"></a>

Das Security Content Automation Protocol (SCAP) besteht aus einer Reihe von Standards, anhand derer IT-Experten Sicherheitslücken in Anwendungen identifizieren können, um die Einhaltung der Vorschriften zu gewährleisten. Der SCAP Compliance Checker (SCC) ist ein SCAP-validiertes Scan-Tool, das vom Naval Information Warfare Center (NIWC) Atlantic veröffentlicht wurde. *Weitere Informationen finden Sie unter [Security Content Automation Protocol (SCAP) Compliance Checker (SCC)](https://www.niwcatlantic.navy.mil/Technology/SCAP/) auf der Website von NIWC Atlantic.*

Die AWSTOE `scap-compliance-checker-windows` `scap-compliance-checker-linux` Komponenten laden den SCC-Scanner herunter und installieren ihn auf den Build- und Testinstanzen der Pipeline. Wenn der Scanner ausgeführt wird, führt er authentifizierte Konfigurationsscans mithilfe von DISA SCAP-Benchmarks durch und erstellt einen Bericht, der die folgenden Informationen enthält. AWSTOE schreibt die Informationen auch in Ihre Anwendungsprotokolle.
+ STIG-Einstellungen, die auf die Instanz angewendet werden.
+ Eine allgemeine Konformitätsbewertung für die Instanz.

Wir empfehlen, dass Sie die SCAP-Validierung als letzten Schritt Ihres Build-Prozesses ausführen, um sicherzustellen, dass Sie genaue Ergebnisse der Konformitätsvalidierung melden.

**Anmerkung**  
Sie können die Berichte mit einem der [STIG Viewing](https://public.cyber.mil/stigs/srg-stig-tools/) Tools überprüfen. Diese Tools sind online über den DoD Cyber Exchange verfügbar.

In den folgenden Abschnitten werden die Benchmarks beschrieben, die die SCAP-Validierungskomponenten beinhalten.

### scap-compliance-checker-windows Version 2024.03.0
<a name="scap-component-windows"></a>

Die `scap-compliance-checker-windows` Komponente wird auf den EC2-Instances ausgeführt, die Image Builder zum Erstellen und Testen des Images erstellt. AWSTOE protokolliert sowohl den Bericht als auch das Ergebnis, das die SCC-Anwendung generiert.

Die Komponente führt die folgenden Workflow-Schritte aus: 

1. Lädt die SCC-Anwendung herunter und installiert sie.

1. Importiert die Compliance-Benchmarks.

1. Führt die Validierung mithilfe der SCC-Anwendung aus.

1. Speichert den Konformitätsbericht und die Bewertung lokal auf dem Desktop der Build-Instanz.

1. Protokolliert den Konformitätswert aus dem lokalen Bericht in den AWSTOE Anwendungsprotokolldateien.

**Anmerkung**  
AWSTOE unterstützt derzeit die SCAP-Konformitätsprüfung für Windows Server 2012 R2 MS, 2016, 2019 und 2022.

Die Komponente SCAP-Konformitätsprüfung für Windows umfasst die folgenden Benchmarks:

**SCC-Version: 5.10**  
Benchmarks für das vierte Quartal 2023:
+ u\$1MS\$1Defender\$1Antivirus\$1v2R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1\$1Framework\$14-0\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark DotNet
+ U\$1MS\$1 IE11 \$1V2R6\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1und\$12012\$1R2\$1DC\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1MS\$1Windows\$12012\$1und\$12012\$1R2\$1MS\$1v3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1MS\$1Windows\$1Defender\$1Firewall\$1v2R3\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1MS\$1Windows\$1Server\$12016\$1V2R7\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1MS\$1Windows\$1Server\$12019\$1V3R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1MS\$1Windows\$1Server\$12022\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1CAN\$1Ubuntu\$120-04\$1LTS\$1V1R10\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1RHEL\$17\$1v3R15\$1STIG\$1SCAP\$11-3\$1Benchmark
+ u\$1RHEL\$18\$1V1R13\$1STIG\$1SCAP\$11-3\$1Benchmark
+ u\$1RHEL\$19\$1V2R1\$1STIG\$1SCAP\$11-3\$1Benchmark

### scap-compliance-checker-linux Ausführung 2021.04.0
<a name="scap-component-linux"></a>

Die `scap-compliance-checker-linux` Komponente wird auf den EC2-Instances ausgeführt, die Image Builder zum Erstellen und Testen des Images erstellt. AWSTOE protokolliert sowohl den Bericht als auch das Ergebnis, das die SCC-Anwendung generiert.

Die Komponente führt die folgenden Workflow-Schritte aus:

1. Lädt die SCC-Anwendung herunter und installiert sie.

1. Importiert die Compliance-Benchmarks.

1. Führt die Validierung mithilfe der SCC-Anwendung aus.

1. Speichert den Konformitätsbericht und die Bewertung lokal am folgenden Speicherort auf der Build-Instanz:`/opt/scc/SCCResults`.

1. Protokolliert die Konformitätsbewertung aus dem lokalen Bericht in den AWSTOE Anwendungsprotokolldateien.

**Anmerkung**  
AWSTOE unterstützt derzeit die SCAP-Konformitätsprüfung für RHEL 7/8 und Ubuntu 18.04/20.04. Die SCC-Anwendung unterstützt derzeit die x86-Architektur zur Validierung.

Die SCAP-Compliance-Checker-Komponente für Linux umfasst die folgenden Benchmarks:

**SCC-Version: 5.10**  
Benchmarks für das vierte Quartal 2023:
+ u\$1CAN\$1Ubuntu\$120-04\$1LTS\$1v1R10\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1RHEL\$17\$1v3R15\$1STIG\$1SCAP\$11-3\$1Benchmark
+ u\$1RHEL\$18\$1V1R13\$1STIG\$1SCAP\$11-3\$1Benchmark
+ u\$1RHEL\$19\$1V2R1\$1STIG\$1SCAP\$11-3\$1Benchmark
+ u\$1MS\$1Defender\$1Antivirus\$1v2R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1\$1Framework\$14-0\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark DotNet
+ U\$1MS\$1 IE11 \$1V2R6\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1und\$12012\$1R2\$1DC\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1MS\$1Windows\$12012\$1und\$12012\$1R2\$1MS\$1v3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1MS\$1Windows\$1Defender\$1Firewall\$1v2R3\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1MS\$1Windows\$1Server\$12016\$1V2R7\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1MS\$1Windows\$1Server\$12019\$1V3R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ u\$1MS\$1Windows\$1Server\$12022\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark

### SCAP-Versionsgeschichte
<a name="ib-scap-version-hist"></a>

In der folgenden Tabelle werden wichtige Änderungen an der SCAP-Umgebung und die in diesem Dokument beschriebenen Einstellungen beschrieben.


| Änderungen | Beschreibung | Date | 
| --- | --- | --- | 
|  SCAP-Updates für das 1. Quartal 2025  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/ib-stig.html)  | 11. April 2025 | 
|  SCAP-Aktualisierungen für das vierte Quartal 2023  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/ib-stig.html)  | 20. Dezember 2021 | 
|  SCAP-Aktualisierungen für das 3. Quartal 2023  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/ib-stig.html)  | 13. November 2023 | 
|  SCAP-Komponenten hinzugefügt  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/ib-stig.html)  | 20. Dezember 2021 | 

# Entwickeln Sie benutzerdefinierte Komponenten für Ihr Image Builder Builder-Image
<a name="create-custom-components"></a>

Sie können Ihre eigenen Komponenten erstellen, um Ihre Image Builder Builder-Images genau an Ihre Spezifikationen anzupassen. Gehen Sie wie folgt vor, um benutzerdefinierte Komponenten für Ihre Image Builder- oder Container-Rezepte zu entwickeln.

1. Wenn Sie Ihr Komponentendokument entwickeln und lokal validieren möchten, können Sie die Anwendung AWS Task Orchestrator and Executor (AWSTOE) installieren und auf Ihrem lokalen Computer einrichten. Weitere Informationen finden Sie unter [Manuelles Setup zur Entwicklung kundenspezifischer Komponenten mit AWSTOE](toe-get-started.md).

1. Erstellen Sie ein Komponentendokument, das das AWSTOE Component Document Framework verwendet. Weitere Informationen zum Document Framework finden Sie unter[Verwenden Sie das AWSTOE Component Document Framework für benutzerdefinierte Komponenten](toe-use-documents.md).

1. Geben Sie Ihr Komponentendokument an, wenn Sie eine benutzerdefinierte Komponente erstellen. Weitere Informationen finden Sie unter [Erstellen Sie eine benutzerdefinierte Komponente mit Image Builder](create-component.md).

**Topics**
+ [Erstellen Sie ein YAML-Komponentendokument für benutzerdefinierte Komponenten in Image Builder](create-component-yaml.md)
+ [Erstellen Sie eine benutzerdefinierte Komponente mit Image Builder](create-component.md)

# Erstellen Sie ein YAML-Komponentendokument für benutzerdefinierte Komponenten in Image Builder
<a name="create-component-yaml"></a>

Um eine Komponente zu erstellen, müssen Sie ein Dokument mit einer YAML- oder JSON-Anwendungskomponente bereitstellen. Das Dokument enthält den Code, der während der Phasen und Schritte ausgeführt wird, die Sie zur Anpassung Ihres Images definieren.

Einige der Beispiele in diesem Abschnitt erstellen eine Build-Komponente, die das `UpdateOS` Aktionsmodul in der AWSTOE Komponentenverwaltungsanwendung aufruft. Das Modul aktualisiert das Betriebssystem. Weitere Hinweise zum `UpdateOS` Aktionsmodul finden Sie unter[OS aktualisieren](toe-action-modules.md#action-modules-updateos).

Das Beispiel für das macOS-Betriebssystem verwendet das `ExecuteBash` Aktionsmodul, um das `wget` Hilfsprogramm zu installieren und zu überprüfen. Das `UpdateOS` Aktionsmodul unterstützt macOS nicht. Weitere Informationen zum `ExecuteBash` Aktionsmodul finden Sie unter[ExecuteBash](toe-action-modules.md#action-modules-executebash). Weitere Informationen zu den Phasen, Schritten und der Syntax von Dokumenten mit AWSTOE Anwendungskomponenten finden Sie unter [Dokumente verwenden in AWSTOE](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-use-documents.html).

**Anmerkung**  
Image Builder bestimmt den Komponententyp anhand der Phasen, die im Komponentendokument wie folgt definiert sind:  
**Build** — Dies ist der Standardkomponententyp. Alles, was nicht als Testkomponente klassifiziert ist, ist eine Build-Komponente. Diese Art von Komponente wird während der *Imageerstellungsphase* ausgeführt. Wenn für diese Build-Komponente eine `test` Phase definiert ist, wird diese Phase während der *Testphase* ausgeführt.
**Test** — Um als Testkomponente zu gelten, darf das Komponentendokument nur eine Phase mit dem Namen enthalten`test`. Für Tests, die sich auf Build-Komponentenkonfigurationen beziehen, empfehlen wir, keine eigenständige Testkomponente zu verwenden. Verwenden Sie stattdessen die `test` Phase in der zugehörigen Build-Komponente.
Weitere Informationen darüber, wie Image Builder Phasen und Phasen verwendet, um den Komponenten-Workflow im Build-Prozess zu verwalten, finden Sie unter[Verwenden Sie Komponenten, um Ihr Image Builder Builder-Image anzupassen](manage-components.md).

Um ein Dokument mit einer YAML-Anwendungskomponente für eine Beispielanwendung zu erstellen, folgen Sie den Schritten auf der Registerkarte, die Ihrem Image-Betriebssystem entspricht. 

------
#### [ Linux ]

**Erstellen Sie eine YAML-Komponentendatei**  
Verwenden Sie ein Dateibearbeitungstool, um Ihr Komponentendokument zu erstellen. In Dokumentationsbeispielen wird eine Datei mit dem Namen `update-linux-os.yaml` und dem folgenden Inhalt verwendet:

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-linux-os
description: Updates Linux with the latest security updates.
schemaVersion: 1
phases:
  - name: build
    steps:
    - name: UpdateOS
      action: UpdateOS
# Document End
```

**Tipp**  
Verwenden Sie ein Tool wie diesen [Online-YAML-Validator oder](https://jsonformatter.org/yaml-validator) eine YAML-Lint-Erweiterung in Ihrer Codeumgebung, um zu überprüfen, ob Ihr YAML wohlgeformt ist.

------
#### [ Windows ]

**Erstellen Sie eine YAML-Komponentendatei**  
Verwenden Sie ein Dateibearbeitungstool, um Ihr Komponentendokument zu erstellen. In Dokumentationsbeispielen wird eine Datei mit dem Namen `update-windows-os.yaml` und dem folgenden Inhalt verwendet:

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-windows-os
description: Updates Windows with the latest security updates.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: UpdateOS
        action: UpdateOS
# Document End
```

**Tipp**  
Verwenden Sie ein Tool wie diesen [Online-YAML-Validator oder](https://jsonformatter.org/yaml-validator) eine YAML-Lint-Erweiterung in Ihrer Codeumgebung, um zu überprüfen, ob Ihr YAML wohlgeformt ist.

------
#### [ macOS ]

**Erstellen Sie eine YAML-Komponentendatei**  
Verwenden Sie ein Dateibearbeitungstool, um Ihr Komponentendokument zu erstellen. In Dokumentationsbeispielen wird eine Datei mit dem Namen `wget-macos.yaml` und dem folgenden Inhalt verwendet:

```
name: WgetInstallDocument
description: This is wget installation document.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: WgetBuildStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              PATH=/usr/local/bin:$PATH
              sudo -u ec2-user brew install wget


  - name: validate
    steps:
      - name: WgetValidateStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              function error_exit {
                echo $1
                echo "{\"failureMessage\":\"$2\"}"
                exit 1
              }

              type wget
              if [ $? -ne 0 ]; then
                error_exit "$stderr" "Wget installation failed!"
              fi

  - name: test
    steps:
      - name: WgetTestStep
        action: ExecuteBash
        inputs:
          commands:
            - wget -h
```

**Tipp**  
Verwenden Sie ein Tool wie diesen [Online-YAML-Validator oder](https://jsonformatter.org/yaml-validator) eine YAML-Lint-Erweiterung in Ihrer Codeumgebung, um zu überprüfen, ob Ihr YAML wohlgeformt ist.

------

# Erstellen Sie eine benutzerdefinierte Komponente mit Image Builder
<a name="create-component"></a>

Nachdem Sie Ihr Komponentendokument fertiggestellt haben, können Sie es verwenden, um eine benutzerdefinierte Komponente zu erstellen, die in Ihren Image Builder Builder-Rezepten verwendet werden kann. Sie können eine benutzerdefinierte Komponente über die Image Builder Builder-Konsole, über die API oder SDKs über die Befehlszeile erstellen. Weitere Informationen zum Erstellen einer benutzerdefinierten Komponente mit Eingabeparametern und deren Verwendung in Ihren Rezepten finden Sie unter[Tutorial: Erstellen Sie eine benutzerdefinierte Komponente mit Eingabeparametern](tutorial-component-parameters.md).

In den folgenden Abschnitten erfahren Sie, wie Sie Komponenten von der Konsole oder von der aus erstellen AWS CLI.

**Topics**
+ [Erstellen Sie eine benutzerdefinierte Komponente von der Konsole aus](#create-component-ib-console)
+ [Erstellen Sie eine benutzerdefinierte Komponente aus dem AWS CLI](#create-component-ib-cli)
+ [Importieren Sie ein Skript, um eine Komponente aus dem zu erstellen AWS CLI](#import-component-cli)
+ [Automatische Verwaltung der Build-Versionen](#auto-build-version-management)
+ [Verwenden von Versionsreferenzen](#using-version-references)

## Erstellen Sie eine benutzerdefinierte Komponente von der Konsole aus
<a name="create-component-ib-console"></a>

Gehen Sie folgendermaßen vor, um eine AWSTOE Anwendungskomponente von der Image Builder Builder-Konsole aus zu erstellen:

1. Öffnen Sie die EC2 Image Builder Builder-Konsole unter [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/).

1. Wählen Sie im Navigationsbereich **Komponenten** aus. Wählen Sie dann **Komponente erstellen** aus.

1. Geben Sie auf der Seite **Komponente erstellen** **unter Komponentendetails** Folgendes ein:

   1. **Image-Betriebssystem (OS)**. Geben Sie das Betriebssystem an, mit dem die Komponente kompatibel ist.

   1. **Komponentenkategorie**. Wählen Sie aus der Dropdownliste den Typ der Build- oder Testkomponente aus, die Sie erstellen.

   1. **Name der Komponente**. Geben Sie einen Namen für die Komponente ein.

   1. **Version der Komponente**. Geben Sie die Versionsnummer der Komponente ein.

   1. **Beschreibung**. Geben Sie optional eine Beschreibung an, die Ihnen bei der Identifizierung der Komponente hilft.

   1. **Beschreibung ändern**. Geben Sie optional eine Beschreibung an, damit Sie die Änderungen verstehen, die an dieser Version der Komponente vorgenommen wurden.

1. Im Abschnitt **Definitionsdokument** lautet die Standardoption **Dokumentinhalt definieren**. Das Komponentendokument definiert die Aktionen, die Image Builder auf den Build- und Testinstanzen ausführt, um Ihr Image zu erstellen.

   Geben Sie im Feld **Inhalt** den Inhalt Ihres YAML-Komponentendokuments ein. Um mit einem *Hello World-Beispiel* für Linux zu beginnen, wählen Sie die Option **Beispiel verwenden**. Weitere Informationen zum Erstellen eines YAML-Komponentendokuments oder zum Kopieren und Einfügen des *UpdateOS-Beispiels* von dieser Seite finden Sie unter. [Erstellen Sie ein YAML-Komponentendokument für benutzerdefinierte Komponenten in Image Builder](create-component-yaml.md)

1. Nachdem Sie die Komponentendetails eingegeben haben, wählen Sie Komponente **erstellen** aus.
**Anmerkung**  
Wenn Sie Ihre neue Komponente sehen möchten, wenn Sie ein Rezept erstellen oder aktualisieren, wenden Sie den Filter „**Mein Eigentum“** auf die Liste der Build- oder Testkomponenten an. Der Filter befindet sich oben in der Komponentenliste neben dem Suchfeld.

1. Um eine Komponente zu löschen, aktivieren Sie auf der Seite **Komponenten** das Kontrollkästchen neben der Komponente, die Sie löschen möchten. Wählen Sie in der Dropdownliste **Aktionen** die Option **Komponente löschen** aus.

**Aktualisieren Sie eine Komponente**  
Gehen Sie folgendermaßen vor, um eine neue Komponentenversion zu erstellen:

1. Je nachdem, wo Sie beginnen:
   + Auf der Seite mit der **Komponentenliste** — Aktivieren Sie das Kontrollkästchen neben dem Komponentennamen und wählen Sie dann im Menü **Aktionen** die Option **Neue Version erstellen** aus.
   + Auf der Detailseite der Komponente — Wählen Sie in der oberen rechten Ecke der Überschrift die Schaltfläche **Neue Version erstellen**.

1. Die Komponenteninformationen sind bereits mit den aktuellen Werten gefüllt, wenn die Seite „**Komponente erstellen**“ angezeigt wird. Folgen Sie den Schritten zum Erstellen einer Komponente, um die Komponente zu aktualisieren. Dadurch wird sichergestellt, dass Sie eine eindeutige semantische Version in die **Komponentenversion** eingeben. Weitere Informationen zur semantischen Versionierung für Image Builder Builder-Ressourcen finden Sie unter. [Semantische Versionierung in Image Builder](ibhow-semantic-versioning.md)

## Erstellen Sie eine benutzerdefinierte Komponente aus dem AWS CLI
<a name="create-component-ib-cli"></a>

In diesem Abschnitt erfahren Sie, wie Sie Image Builder Builder-Befehle in der Komponente AWS CLI So erstellen Sie eine AWSTOE Anwendung wie folgt einrichten und verwenden.
+ Laden Sie Ihr YAML-Komponentendokument in einen S3-Bucket hoch, auf den Sie von der Befehlszeile aus verweisen können.
+ Erstellen Sie die AWSTOE Anwendungskomponente mit dem **create-component** Befehl.
+ Listet die Komponentenversionen mit dem **list-components** Befehl und einem Namensfilter auf, um zu sehen, welche Versionen bereits existieren. Anhand der Ausgabe können Sie bestimmen, welche Version als nächste Version für Updates verwendet werden soll.

Um eine AWSTOE Anwendungskomponente aus einem YAML-Eingabedokument zu erstellen, folgen Sie den Schritten, die Ihrer Image-Betriebssystemplattform entsprechen.

------
#### [ Linux ]

**Speichern Sie Ihr Anwendungskomponentendokument in Amazon S3**

Sie können einen S3-Bucket als Repository für das Quelldokument Ihrer AWSTOE Anwendungskomponente verwenden. Gehen Sie folgendermaßen vor, um Ihr Komponentendokument zu speichern:
+ 

**Laden Sie das Dokument auf Amazon S3 hoch**

  *Wenn Ihr Dokument kleiner als 64 KB ist, können Sie diesen Schritt überspringen.* Dokumente mit einer Größe von 64 KB oder mehr müssen in Amazon S3 gespeichert werden.

  ```
  aws s3 cp update-linux-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml
  ```

**Erstellen Sie eine Komponente aus dem YAML-Dokument**

Um den **create-component** Befehl, den Sie in der verwenden, zu optimieren AWS CLI, erstellen Sie eine JSON-Datei, die alle Komponentenparameter enthält, die Sie an den Befehl übergeben möchten. Geben Sie den Speicherort des `update-linux-os.yaml` Dokuments an, das Sie zuvor erstellt haben. Das `uri` Schlüssel-Wert-Paar enthält die Dateireferenz.
**Anmerkung**  
Die Benennungskonvention für die Datenwerte in der JSON-Datei folgt dem Muster, das für die Image Builder Builder-API-Operationsanforderungsparameter angegeben ist. Informationen zu den API-Befehlsanforderungsparametern finden Sie unter dem [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)Befehl in der *EC2 Image Builder API-Referenz.*  
Informationen zur Bereitstellung der Datenwerte als Befehlszeilenparameter finden Sie in den Parameternamen, die in der *AWS CLI Befehlsreferenz* angegeben sind.

1. 

**Erstellen einer CLI-Eingabe-JSON-Datei**

   Verwenden Sie ein Dateibearbeitungstool, um eine Datei mit dem Namen zu erstellen`create-update-linux-os-component.json`. Fügen Sie den folgenden Inhalt hinzu:

   ```
   {
   	"name": "update-linux-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Linux operating system",
   	"changeDescription": "Initial version.",
   	"platform": "Linux",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```

1. 

**Erstellen Sie die Komponente**

   Verwenden Sie den folgenden Befehl, um die Komponente zu erstellen, und verweisen Sie dabei auf den Dateinamen der JSON-Datei, die Sie im vorherigen Schritt erstellt haben:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
   ```
**Anmerkung**  
Sie müssen die`file://`-Notation am Anfang des JSON-Dateipfades.
Der Pfad für die JSON-Datei sollte der entsprechenden Konvention für das Basisbetriebssystem folgen, auf dem Sie den Befehl ausführen. Windows verwendet beispielsweise den umgekehrten Schrägstrich (\$1), um auf den Verzeichnispfad zu verweisen, während Linux und macOS den Schrägstrich (/) verwenden.

------
#### [ Windows ]

**Speichern Sie Ihr Anwendungskomponentendokument in Amazon S3**

Sie können einen S3-Bucket als Repository für das Quelldokument Ihrer AWSTOE Anwendungskomponente verwenden. Gehen Sie folgendermaßen vor, um Ihr Komponentendokument zu speichern:
+ 

**Laden Sie das Dokument auf Amazon S3 hoch**

  *Wenn Ihr Dokument kleiner als 64 KB ist, können Sie diesen Schritt überspringen.* Dokumente mit einer Größe von 64 KB oder mehr müssen in Amazon S3 gespeichert werden.

  ```
  aws s3 cp update-windows-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml
  ```

**Erstellen Sie eine Komponente aus dem YAML-Dokument**

Um den **create-component** Befehl, den Sie in der verwenden, zu optimieren AWS CLI, erstellen Sie eine JSON-Datei, die alle Komponentenparameter enthält, die Sie an den Befehl übergeben möchten. Geben Sie den Speicherort des `update-windows-os.yaml` Dokuments an, das Sie zuvor erstellt haben. Das `uri` Schlüssel-Wert-Paar enthält die Dateireferenz.
**Anmerkung**  
Die Benennungskonvention für die Datenwerte in der JSON-Datei folgt dem Muster, das für die Image Builder Builder-API-Operationsanforderungsparameter angegeben ist. Informationen zu den API-Befehlsanforderungsparametern finden Sie unter dem [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)Befehl in der *EC2 Image Builder API-Referenz.*  
Informationen zur Bereitstellung der Datenwerte als Befehlszeilenparameter finden Sie in den Parameternamen, die in der *AWS CLI Befehlsreferenz* angegeben sind.

1. 

**Erstellen einer CLI-Eingabe-JSON-Datei**

   Verwenden Sie ein Dateibearbeitungstool, um eine Datei mit dem Namen zu erstellen`create-update-windows-os-component.json`. Fügen Sie den folgenden Inhalt hinzu:

   ```
   {
   	"name": "update-windows-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Windows operating system.",
   	"changeDescription": "Initial version.",
   	"platform": "Windows",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```
**Anmerkung**  
Sie müssen die`file://`-Notation am Anfang des JSON-Dateipfades.
Der Pfad für die JSON-Datei sollte der entsprechenden Konvention für das Basisbetriebssystem folgen, auf dem Sie den Befehl ausführen. Windows verwendet beispielsweise den umgekehrten Schrägstrich (\$1), um auf den Verzeichnispfad zu verweisen, während Linux und macOS den Schrägstrich (/) verwenden.

1. 

**Erstellen Sie die Komponente**

   Verwenden Sie den folgenden Befehl, um die Komponente zu erstellen, und verweisen Sie dabei auf den Dateinamen der JSON-Datei, die Sie im vorherigen Schritt erstellt haben:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
   ```
**Anmerkung**  
Sie müssen die`file://`-Notation am Anfang des JSON-Dateipfades.
Der Pfad für die JSON-Datei sollte der entsprechenden Konvention für das Basisbetriebssystem folgen, auf dem Sie den Befehl ausführen. Windows verwendet beispielsweise den umgekehrten Schrägstrich (\$1), um auf den Verzeichnispfad zu verweisen, während Linux und macOS den Schrägstrich (/) verwenden.

------
#### [ macOS ]

**Speichern Sie Ihr Anwendungskomponentendokument in Amazon S3**

Sie können einen S3-Bucket als Repository für das Quelldokument Ihrer AWSTOE Anwendungskomponente verwenden. Gehen Sie folgendermaßen vor, um Ihr Komponentendokument zu speichern:
+ 

**Laden Sie das Dokument auf Amazon S3 hoch**

  *Wenn Ihr Dokument kleiner als 64 KB ist, können Sie diesen Schritt überspringen.* Dokumente mit einer Größe von 64 KB oder mehr müssen in Amazon S3 gespeichert werden.

  ```
  aws s3 cp wget-macos.yaml s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml
  ```

**Erstellen Sie eine Komponente aus dem YAML-Dokument**

Um den **create-component** Befehl, den Sie in der verwenden, zu optimieren AWS CLI, erstellen Sie eine JSON-Datei, die alle Komponentenparameter enthält, die Sie an den Befehl übergeben möchten. Geben Sie den Speicherort des `wget-macos.yaml` Dokuments an, das Sie zuvor erstellt haben. Das `uri` Schlüssel-Wert-Paar enthält die Dateireferenz.
**Anmerkung**  
Die Benennungskonvention für die Datenwerte in der JSON-Datei folgt dem Muster, das für die Image Builder Builder-API-Operationsanforderungsparameter angegeben ist. Informationen zu den API-Befehlsanforderungsparametern finden Sie unter dem [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)Befehl in der *EC2 Image Builder API-Referenz.*  
Informationen zur Bereitstellung der Datenwerte als Befehlszeilenparameter finden Sie in den Parameternamen, die in der *AWS CLI Befehlsreferenz* angegeben sind.

1. 

**Erstellen einer CLI-Eingabe-JSON-Datei**

   Verwenden Sie ein Dateibearbeitungstool, um eine Datei mit dem Namen zu erstellen`install-wget-macos-component.json`. Fügen Sie den folgenden Inhalt hinzu:

   ```
   {
   	"name": "install install-wget-macos-component",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that installs and verifies the wget utility on macOS.",
   	"changeDescription": "Initial version.",
   	"platform": "macOS",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "install-software"
   	}
   }
   ```

1. 

**Erstellen Sie die Komponente**

   Verwenden Sie den folgenden Befehl, um die Komponente zu erstellen, und verweisen Sie dabei auf den Dateinamen der JSON-Datei, die Sie im vorherigen Schritt erstellt haben:

   ```
   aws imagebuilder create-component --cli-input-json file://install-wget-macos-component.json
   ```
**Anmerkung**  
Sie müssen die`file://`-Notation am Anfang des JSON-Dateipfades.
Der Pfad für die JSON-Datei sollte der entsprechenden Konvention für das Basisbetriebssystem folgen, auf dem Sie den Befehl ausführen. Windows verwendet beispielsweise den umgekehrten Schrägstrich (\$1), um auf den Verzeichnispfad zu verweisen, während Linux und macOS den Schrägstrich (/) verwenden.

------

### AWSTOE Komponentenversionierung für Updates von AWS CLI
<a name="component-update-cli"></a>

AWSTOE Komponentennamen und Versionen werden in den Amazon-Ressourcennamen (ARN) der Komponente nach dem Komponentenpräfix eingebettet. Jede neue Version einer Komponente hat ihren eigenen eindeutigen ARN. Die Schritte zum Erstellen einer neuen Version sind genau dieselben wie zum Erstellen einer neuen Komponente, solange die semantische Version für diesen Komponentennamen eindeutig ist. Weitere Informationen zur semantischen Versionierung für Image Builder Builder-Ressourcen finden Sie unter. [Semantische Versionierung in Image Builder](ibhow-semantic-versioning.md)

Um sicherzustellen, dass Sie die nächste logische Version zuweisen, rufen Sie zunächst eine Liste der vorhandenen Versionen für die Komponente ab, die Sie ändern möchten. Verwenden Sie den **list-components** Befehl mit dem AWS CLI und filtern Sie nach dem Namen.

In diesem Beispiel filtern Sie nach dem Namen der Komponente, die Sie in den vorherigen Linux-Beispielen erstellt haben. Um die Komponente aufzulisten, die Sie erstellt haben, verwenden Sie den Wert des `name` Parameters aus der JSON-Datei, die Sie im **create-component** Befehl verwendet haben.

```
aws imagebuilder list-components --filters name="name",values="update-linux-os"	
{
    "requestId": "123a4567-b890-123c-45d6-ef789ab0cd1e",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.0",
            "name": "update-linux-os",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.1",
            "name": "update-linux-os",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

Anhand Ihrer Ergebnisse können Sie bestimmen, welche Version die nächste Version sein soll.

## Importieren Sie ein Skript, um eine Komponente aus dem zu erstellen AWS CLI
<a name="import-component-cli"></a>

In einigen Szenarien ist es möglicherweise einfacher, mit einem bereits vorhandenen Skript zu beginnen. Für dieses Szenario können Sie das folgende Beispiel verwenden. 

In diesem Beispiel wird davon ausgegangen, dass Sie eine Datei mit dem Namen `import-component.json` (wie abgebildet) haben. Beachten Sie, dass die Datei direkt auf ein PowerShell aufgerufenes Skript verweist, in `AdminConfig.ps1` das bereits hochgeladen wurde`amzn-s3-demo-source-bucket`. Wird derzeit für die Komponente unterstützt`format`. `SHELL` 

```
{
"name": "MyImportedComponent",
"semanticVersion": "1.0.0",
"description": "An example of how to import a component",
"changeDescription": "First commit message.",
"format": "SHELL",
"platform": "Windows",
"type": "BUILD",
"uri": "s3://amzn-s3-demo-source-bucket/AdminConfig.ps1",
"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/60763706-b131-418b-8f85-3420912f020c"
}
```

Führen Sie den folgenden Befehl aus, um die Komponente aus einem importierten Skript zu erstellen.

```
aws imagebuilder import-component --cli-input-json file://import-component.json
```

## Automatische Verwaltung der Build-Versionen
<a name="auto-build-version-management"></a>

Wenn Sie eine Komponente mit demselben Namen und derselben semantischen Version wie eine vorhandene Komponente erstellen, erhöht Image Builder automatisch die Build-Version (z. B. von `/1` bis `/2``/3`, bis usw.). Auf diese Weise können Sie iterative Updates an Ihren Komponenten vornehmen, ohne die Versionsnummern manuell verwalten zu müssen. Dies ist besonders bei CI/CD Pipelines und Bereitstellungen nützlich. infrastructure-as-code Wenn der Komponenteninhalt mit der vorherigen Build-Version identisch ist, kehrt Image Builder zurück, `ResourceAlreadyExistsException` um zu verhindern, dass doppelte Komponenten Ihr Dienstkontingent verbrauchen. 

## Verwenden von Versionsreferenzen
<a name="using-version-references"></a>

Wenn Sie eine Komponente erstellen oder abrufen, stellt Image Builder automatisch vorkonstruierte Versionsmuster ARNs mit Platzhaltern im latestVersionReferences Objekt bereit. Diese Verweise machen es einfach, die neuesten Versionen Ihrer Komponenten in Rezepten und Pipelines zu verwenden, ohne sie manuell analysieren zu müssen. ARNs 

**Auswahl der richtigen Versionsreferenz**
+ latestVersionArn (x.x.x) — Verwenden Sie immer die absolut neueste Komponentenversion.
+ atestMajorVersionArn (1.x.x) — Verwenden Sie die neuesten Neben- und Patch-Versionen innerhalb einer Hauptversion.
+ latestMinorVersionArn (1.2.x) — Verwenden Sie nur die neueste Patch-Version.
+ latestPatchVersionArn (1.2.3) — Verweise auf eine bestimmte semantische Version, erhalte aber die neueste Build-Version.

**Anmerkung**  
Um unerwartete Gebühren zu vermeiden, sollten Sie die Ressourcen und Pipelines, die Sie anhand der Beispiele in diesem Handbuch erstellt haben, bereinigen. Weitere Informationen zum Löschen von Ressourcen in Image Builder finden Sie unter[Löschen Sie veraltete oder ungenutzte Image Builder Builder-Ressourcen](delete-resources.md).

# So verwendet Image Builder die AWS Task Orchestrator and Executor Anwendung zur Verwaltung von Komponenten
<a name="toe-component-manager"></a>

EC2 Image Builder verwendet die AWS Task Orchestrator and Executor (AWSTOE) -Anwendung, um komplexe Workflows zu orchestrieren, Systemkonfigurationen zu ändern und Ihre Images zu testen, ohne dass zusätzliche DevOps-Skripts oder Code erforderlich sind. Diese Anwendung verwaltet und führt Komponenten aus, die ihr deklaratives Dokumentschema implementieren.

AWSTOE ist eine eigenständige Anwendung, die Image Builder auf seinen Build- und Testinstanzen installiert, wenn Sie ein Image erstellen. Sie können es auch manuell auf EC2 Instanzen installieren, um Ihre eigenen benutzerdefinierten Komponenten zu erstellen. Es erfordert keine zusätzliche Einrichtung und kann auch lokal ausgeführt werden.

**Topics**
+ [AWSTOE lädt herunter](#toe-downloads)
+ [Unterstützte Regionen](#toe-supported-regions)
+ [AWSTOE Befehlsreferenz](#toe-commands)
+ [Manuelles Setup zur Entwicklung kundenspezifischer Komponenten mit AWSTOE](toe-get-started.md)
+ [Verwenden Sie das AWSTOE Component Document Framework für benutzerdefinierte Komponenten](toe-use-documents.md)
+ [Aktionsmodule, die vom AWSTOE Komponentenmanager unterstützt werden](toe-action-modules.md)
+ [Eingabe für den Befehl AWSTOE run konfigurieren](toe-run-config-input.md)

## AWSTOE lädt herunter
<a name="toe-downloads"></a>

Wählen Sie zur Installation AWSTOE den Download-Link für Ihre Architektur und Plattform. Wenn Sie eine Verbindung zu einem VPC-Endpunkt für Ihren Service herstellen (z. B. Image Builder), muss diesem eine benutzerdefinierte Endpunktrichtlinie zugewiesen sein, die den Zugriff auf den S3-Bucket für AWSTOE Downloads beinhaltet. Andernfalls können Ihre Build- und Test-Instances das Bootstrap-Skript (`bootstrap.sh`) nicht herunterladen und die AWSTOE Anwendung nicht installieren. Weitere Informationen finden Sie unter [Erstellen Sie eine VPC-Endpunktrichtlinie für Image Builder](vpc-interface-endpoints.md#vpc-endpoint-policy).

**Wichtig**  
AWS stellt die Unterstützung für die TLS-Versionen 1.0 und 1.1 schrittweise ein. Um auf den S3-Bucket für AWSTOE Downloads zuzugreifen, muss Ihre Client-Software TLS Version 1.2 oder höher verwenden. Weitere Informationen finden Sie in diesem [AWS Sicherheits-Blogbeitrag](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).


| Architektur | Plattform | Download-Link | Beispiel | 
| --- | --- | --- | --- | 
| 386 |  AL 2 und 2023 RHEL 7, 8 und 9 Ubuntu 16.04, 18.04, 20.04, 22.04 und 24.04 CentOS 7 und 8 SUSE 12 und 15  | `https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/386/awstoe`  | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/386/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/386/awstoe) | 
| AMD64 |  AL 2 und 2023 RHEL 7, 8 und 9 Ubuntu 16.04, 18.04, 20.04, 22.04 und 24.04 CentOS 7 und 8 CentOS Stream 8 SUSE 12 und 15  | https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/amd64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe) | 
| AMD64 |  macOS 10.14.x (Mojave), 10.15.x (Catalina), 11.x (Big Sur), 12.x (Monterey)  | https://awstoe-region.s3.region.amazonaws.com/latest/darwin/amd64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/darwin/amd64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/darwin/amd64/awstoe) | 
|  AMD64  |  Windows Server 2012 R2, 2016, 2019 und 2022  |   `https://awstoe-<region>.s3.<region>.amazonaws.com/latest/windows/amd64/awstoe.exe`  | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/windows/amd64/awstoe.exe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/windows/amd64/awstoe.exe) | 
| ARM64 |  AL 2 und 2023 RHEL 7, 8 und 9 Ubuntu 16.04, 18.04, 20.04, 22.04 und 24.04 CentOS 7 und 8 CentOS Stream 8 SUSE 12 und 15  | https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/arm64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/arm64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/arm64/awstoe) | 

## Unterstützte Regionen
<a name="toe-supported-regions"></a>

AWSTOE wird in den folgenden Regionen als eigenständige Anwendung unterstützt.


| AWS-Region Name | AWS-Region | 
| --- | --- | 
|  USA Ost (Ohio)  |  us-east-2  | 
|  USA Ost (Nord-Virginia)  |  us-east-1  | 
|  AWS GovCloud (US-Ost)  |  us-gov-east-1  | 
|  AWS GovCloud (US-West)  |  us-gov-west-1  | 
|  USA West (Nordkalifornien)  | us-west-1 | 
|  USA West (Oregon)  | us-west-2 | 
|  Afrika (Kapstadt)  | af-south-1 | 
|  Asien-Pazifik (Hongkong)  | ap-east-1 | 
|  Asia Pacific (Osaka)  | ap-northeast-3 | 
|  Asien-Pazifik (Seoul)  | ap-northeast-2 | 
|  Asien-Pazifik (Mumbai)  | ap-south-1 | 
|  Asien-Pazifik (Hyderabad)  | ap-south-2 | 
|  Asien-Pazifik (Singapur)  | ap-southeast-1 | 
|  Asien-Pazifik (Sydney)  | ap-southeast-2 | 
|  Asien-Pazifik (Jakarta)  | ap-southeast-3 | 
|  Asien-Pazifik (Tokio)  | ap-northeast-1 | 
|  Kanada (Zentral)  | ca-central-1 | 
|  Europa (Frankfurt)  | eu-central-1 | 
|  Europa (Zürich)  | eu-central-2 | 
|  Europa (Stockholm)  | eu-north-1 | 
|  Europa (Mailand)  | eu-south-1 | 
|  Europa (Spanien)  | eu-south-2 | 
|  Europa (Irland)  | eu-west-1 | 
|  Europa (London)  | eu-west-2 | 
|  Europa (Paris)  | eu-west-3 | 
|  Israel (Tel Aviv)  | il-central-1 | 
|  Naher Osten (VAE)  | me-central-1 | 
|  Naher Osten (Bahrain)  | me-south-1 | 
|  Südamerika (São Paulo)  | sa-east-1 | 
|  China (Beijing)  | cn-north-1 | 
|  China (Ningxia)  | cn-northwest-1 | 

## AWSTOE Befehlsreferenz
<a name="toe-commands"></a>

AWSTOE ist eine Befehlszeilen-Komponentenverwaltungsanwendung, die auf EC2 Amazon-Instances ausgeführt wird. Wenn Image Builder eine EC2 Build- oder Testinstanz startet, wird sie AWSTOE auf der Instanz installiert. Anschließend AWSTOE werden Befehle in der ausgeführt AWS CLI , um die Komponenten zu installieren oder zu validieren, die im Image- oder Container-Rezept angegeben sind.

**Anmerkung**  
Für einige AWSTOE Aktionsmodule sind erhöhte Zugriffsrechte erforderlich, um auf einem Linux-Server ausgeführt zu werden. Um erhöhte Berechtigungen zu verwenden, stellen Sie der Befehlssyntax ein Präfix voran**sudo**, oder führen Sie den **sudo su** Befehl einmal aus, wenn Sie sich anmelden, bevor Sie die unten verlinkten Befehle ausführen. Weitere Informationen zu AWSTOE Aktionsmodulen finden Sie unter[Aktionsmodule, die vom AWSTOE Komponentenmanager unterstützt werden](toe-action-modules.md).

***[run](#cmd-run)***  
Verwenden Sie den **run** Befehl, um die YAML-Dokumentskripts für ein oder mehrere Komponentendokumente auszuführen.

***[validieren](#cmd-validate)***  
Führen Sie den **validate** Befehl aus, um die YAML-Dokumentsyntax für ein oder mehrere Komponentendokumente zu überprüfen.

### awstoe run-Befehl
<a name="cmd-run"></a>

Mit diesem Befehl werden die YAML-Komponentendokumentskripts in der Reihenfolge ausgeführt, in der sie in der durch den Parameter angegebenen Konfigurationsdatei oder in der durch den `--config` Parameter angegebenen Liste der Komponentendokumente enthalten sind. `--documents`

**Anmerkung**  
Sie müssen genau einen der folgenden Parameter angeben, niemals beide:  
--config  
--dokumente

#### Syntax
<a name="run-syntax"></a>

```
awstoe run [--config <file path>] [--cw-ignore-failures <?>] 
      [--cw-log-group <?>] [--cw-log-region us-west-2] [--cw-log-stream <?>] 
      [--document-s3-bucket-owner <owner>] [--documents <file path,file path,...>] 
      [--execution-id <?>] [--log-directory <file path>] 
      [--log-s3-bucket-name <name>] [--log-s3-bucket-owner <owner>] 
      [--log-s3-key-prefix <?>] [--parameters name1=value1,name2=value2...] 
      [--phases <phase name>] [--state-directory <directory path>] [--version <?>] 
      [--help] [--trace]
```

#### Parameter und Optionen
<a name="run-parameters"></a>Parameter

**--config *`./config-example.json`***  
Kurzform: -c *`./config-example.json`*  
Die Konfigurationsdatei *(bedingt)*. Dieser Parameter enthält den Dateispeicherort für die JSON-Datei, die Konfigurationseinstellungen für die Komponenten enthält, die dieser Befehl ausführt. Wenn Sie **run** Befehlseinstellungen in einer Konfigurationsdatei angeben, dürfen Sie den `--documents` Parameter nicht angeben. Weitere Hinweise zur Eingabekonfiguration finden Sie unter[Eingabe für den Befehl AWSTOE run konfigurieren](toe-run-config-input.md).  
Zu den gültigen Standorten gehören:  
+ Ein lokaler Dateipfad (*`./config-example.json`*)
+ Ein S3-URI (`s3://bucket/key`)

**--cw-ignore-failures**  
Kurzform: N/A  
Ignorieren Sie Fehler bei der Protokollierung in den CloudWatch Protokollen.

**--cw-log-group**  
Kurzform: N/A  
Der `LogGroup` Name für die CloudWatch Logs.

**--cw-log-region**  
Kurzform: N/A  
Die AWS Region, die für die CloudWatch Logs gilt.

**--cw-log-stream**  
Kurzform: N/A  
Der `LogStream` Name für die CloudWatch Logs, der angibt, AWSTOE wohin die `console.log` Datei gestreamt werden soll.

**--document-s3-bucket-owner**  
Kurzform: N/A  
Die Konto-ID des Bucket-Besitzers für S3-URI-basierte Dokumente.

**--Dokumente *`./doc-1.yaml`,`./doc-n.yaml`***  
Kurzform: *`./doc-1.yaml`* -d, *`./doc-n`*  
Die Komponentendokumente *(bedingt)*. Dieser Parameter enthält eine durch Kommas getrennte Liste von Dateispeicherorten, an denen die Dokumente der YAML-Komponente ausgeführt werden sollen. Wenn Sie mithilfe des Parameters YAML-Dokumente für den **run** Befehl angeben, dürfen Sie den `--documents` Parameter nicht angeben. `--config`  
Zu den gültigen Speicherorten gehören:  
+ lokale Dateipfade (*./component-doc-example.yaml*).
+ S3 URIs (`s3://bucket/key`).
+ Build-Version der Image Builder-Komponente ARNs (arn:aws:imagebuilder:us-west--und 2021.12.02/1). *2:123456789012* *my-example-component*
Zwischen den Einträgen in der Liste gibt es keine Leerzeichen, nur Kommas.

**--execution-id**  
Kurzform: -i  
Dies ist die eindeutige ID, die für die Ausführung des aktuellen **run** Befehls gilt. Diese ID ist in den Namen der Ausgabe- und Protokolldateien enthalten, um diese Dateien eindeutig zu identifizieren und sie mit der aktuellen Befehlsausführung zu verknüpfen. Wenn diese Einstellung weggelassen wird, wird eine GUID AWSTOE generiert.

**--log-directory**  
Kurzform: -l  
Das Zielverzeichnis, in dem alle Protokolldateien dieser Befehlsausführung AWSTOE gespeichert werden. Standardmäßig befindet sich dieses Verzeichnis im folgenden übergeordneten Verzeichnis:`TOE_<DATETIME>_<EXECUTIONID>`. Wenn Sie das Protokollverzeichnis nicht angeben, AWSTOE wird das aktuelle Arbeitsverzeichnis (`.`) verwendet.

**--log-s3-Bucket-Name**  
Kurzform: -b  
Wenn Komponentenprotokolle in Amazon S3 gespeichert sind (empfohlen), werden die Komponentenanwendungsprotokolle in den in diesem Parameter genannten S3-Bucket AWSTOE hochgeladen.

**--log-s3-bucket-owner**  
Kurzform: N/A  
Wenn Komponentenprotokolle in Amazon S3 gespeichert werden (empfohlen), ist dies die Eigentümerkonto-ID für den Bucket, in den die Protokolldateien AWSTOE geschrieben werden.

**--log-s3-Schlüsselpräfix**  
Kurzform: -k  
Wenn Komponentenprotokolle in Amazon S3 gespeichert werden (empfohlen), ist dies das S3-Objektschlüsselpräfix für den Protokollspeicherort im Bucket.

**--parameters *name1* =*value1*, *name2* =*value2*...**  
Kurzform: N/A  
Parameter sind veränderbare Variablen, die im Komponentendokument definiert sind und deren Einstellungen die aufrufende Anwendung zur Laufzeit bereitstellen kann.

**--phasen**  
Kurzform: -p  
Eine durch Kommas getrennte Liste, die angibt, welche Phasen in den Dokumenten der YAML-Komponente ausgeführt werden sollen. Wenn ein Komponentendokument zusätzliche Phasen enthält, werden diese nicht ausgeführt.

**--state-directory**  
Kurzform: -s  
Der Dateipfad, in dem State-Tracking-Dateien gespeichert werden.

**--version**  
Kurzform: -v  
Gibt die Version der Komponentenanwendung an.Optionen

**-h**  
Kurzform: -h  
Zeigt ein Hilfehandbuch zur Verwendung der Anwendungsoptionen für die Komponentenverwaltung an.

**--trace**  
Kurzform: -t  
Aktiviert die ausführliche Protokollierung auf der Konsole.

### Befehl awstoe validate
<a name="cmd-validate"></a>

Wenn Sie diesen Befehl ausführen, validiert er die YAML-Dokumentsyntax für jedes der im Parameter angegebenen Komponentendokumente. `--documents`

#### Syntax
<a name="validate-syntax"></a>

```
awstoe validate [--document-s3-bucket-owner <owner>] 
      --documents <file path,file path,...> [--help] [--trace]
```

#### Parameter und Optionen
<a name="validate-parameters"></a>Parameter

**--document-s3-bucket-owner**  
Kurzform: N/A  
Quellkonto-ID der bereitgestellten S3-URI-basierten Dokumente.

**--Dokumente *`./doc-1.yaml`,`./doc-n.yaml`***  
Kurzform: *`./doc-1.yaml`* -d, *`./doc-n`*  
Die Komponentendokumente *(erforderlich)*. Dieser Parameter enthält eine durch Kommas getrennte Liste von Dateispeicherorten, an denen die YAML-Komponentendokumente ausgeführt werden sollen. Zu den gültigen Speicherorten gehören:  
+ lokale Dateipfade (*./component-doc-example.yaml*)
+ S3 URIs (`s3://bucket/key`)
+ Build-Version der Image Builder-Komponente ARNs (arn:aws:imagebuilder:us-west--und 2021.12.02/1) *2:123456789012* *my-example-component*
Zwischen den Einträgen in der Liste gibt es keine Leerzeichen, nur Kommas.Optionen

**-h**  
Kurzform: -h  
Zeigt ein Hilfehandbuch zur Verwendung der Anwendungsoptionen für die Komponentenverwaltung an.

**--trace**  
Kurzform: -t  
Aktiviert die ausführliche Protokollierung auf der Konsole.

# Manuelles Setup zur Entwicklung kundenspezifischer Komponenten mit AWSTOE
<a name="toe-get-started"></a>

Die AWS Task Orchestrator and Executor (AWSTOE) -Anwendung ist eine eigenständige Anwendung, die Befehle innerhalb eines Komponentendefinitionsframeworks erstellt, validiert und ausführt. AWS Dienste können verwendet werden, AWSTOE um Workflows zu orchestrieren, Software zu installieren, Systemkonfigurationen zu ändern und Image-Builds zu testen.

Gehen Sie wie folgt vor, um die AWSTOE Anwendung manuell zu installieren und sie als eigenständige Anwendung zur Entwicklung benutzerdefinierter Komponenten zu verwenden. Image Builder erledigt diese Schritte für Sie, wenn Sie die Image Builder Builder-Konsole oder AWS CLI Befehle verwenden, um benutzerdefinierte Komponenten zu erstellen. Weitere Informationen finden Sie unter [Erstellen Sie benutzerdefinierte Komponenten mit Image Builder](create-component.md).

# Überprüfen Sie die Signatur des AWSTOE Installationsdownloads
<a name="awstoe-verify-sig"></a>

In diesem Abschnitt wird das empfohlene Verfahren zur Überprüfung der Gültigkeit des Installationsdownloads für AWSTOE Linux-, macOS- und Windows-basierte Betriebssysteme beschrieben.

**Topics**
+ [Überprüfen Sie die Signatur des AWSTOE Installationsdownloads unter Linux oder macOS](#awstoe-verify-sig-linux)
+ [Überprüfen Sie die Signatur des AWSTOE Installationsdownloads unter Windows](#awstoe-verify-sig-win)

## Überprüfen Sie die Signatur des AWSTOE Installationsdownloads unter Linux oder macOS
<a name="awstoe-verify-sig-linux"></a>

In diesem Thema wird das empfohlene Verfahren zur Überprüfung der Gültigkeit des Installations-Downloads für AWSTOE Linux- oder macOS-Betriebssysteme beschrieben.

Wenn Sie eine Anwendung aus dem Internet herunterladen, empfehlen wir Ihnen, die Identität des Softwareherausgebers zu authentifizieren. Stellen Sie außerdem sicher, dass die Anwendung seit ihrer Veröffentlichung nicht verändert oder beschädigt wurde. Dies schützt Sie davor, eine Version der Anwendung zu installieren, die einen Virus oder einen anderen bösartigen Code enthält.

Wenn Sie nach Ausführung der Schritte in diesem Thema feststellen, dass die Software für die AWSTOE Anwendung verändert oder beschädigt ist, führen Sie die Installationsdatei nicht aus. Wenden Sie sich stattdessen an Support Weitere Informationen zu Ihren Supportoptionen finden Sie unter [Support](https://aws.amazon.com/premiumsupport/).

AWSTOE Dateien für Linux- und macOS-Betriebssysteme werden mit `GnuPG` einer Open-Source-Implementierung des Pretty Good Privacy (OpenPGP) -Standards für sichere digitale Signaturen signiert. `GnuPG`(auch bekannt als`GPG`) ermöglicht Authentifizierung und Integritätsprüfung mithilfe einer digitalen Signatur. Amazon EC2 veröffentlicht einen öffentlichen Schlüssel und Signaturen, mit denen Sie die heruntergeladenen Amazon EC2 EC2-CLI-Tools überprüfen können. Weitere Informationen zu `PGP` und `GnuPG` (`GPG`) finden Sie [unter http://www.gnupg.org](https://www.gnupg.org/).

Der erste Schritt besteht darin, eine Vertrauensstellung mit dem Software-Publisher zu schaffen. Laden Sie den öffentlichen Schlüssel des Softwareherausgebers herunter, überprüfen Sie, ob der Besitzer des öffentlichen Schlüssels derjenige ist, der er behauptet zu sein, und fügen Sie dann den öffentlichen Schlüssel zu Ihrem *Schlüsselbund hinzu*. Ihr Schlüsselbund ist eine Sammlung von bekannten öffentlichen Schlüsseln. Nachdem Sie die Echtheit des öffentlichen Schlüssels überprüft haben, können Sie ihn verwenden, um die Signatur der Anwendung zu überprüfen.

**Topics**
+ [Installieren der GPG-Tools](#awstoe-verify-signature-of-binary-download-install-tools)
+ [Authentifizieren und Importieren des öffentlichen Schlüssels](#awstoe-verify-signature-of-binary-download-authenticate-import-public-key)
+ [Verifizieren der Signatur des Pakets](#awstoe-verify-signature-of-binary-package)

### Installieren der GPG-Tools
<a name="awstoe-verify-signature-of-binary-download-install-tools"></a>

Wenn Ihr Betriebssystem Linux, Unix oder macOS ist, sind die GPG-Tools wahrscheinlich bereits installiert. Um zu testen, ob die Tools auf Ihrem System installiert sind, geben Sie **gpg** in einer Eingabeaufforderung ein. Wenn die GPG-Tools installiert sind, sehen Sie eine Eingabeaufforderung. Wenn die GPG-Tools nicht installiert sind, wird eine Fehlermeldung angezeigt, die besagt, dass der Befehl nicht gefunden werden kann. Sie können das GnuPG-Paket von einem Repository aus installieren.

Um die GPG-Tools zu installieren, wählen Sie das Betriebssystem aus, das zu Ihrer Instanz passt.

------
#### [ Debian-based Linux ]

Führen Sie von einem Terminal folgenden Befehl aus:

```
apt-get install gnupg
```

------
#### [ Red Hat–based Linux ]

Führen Sie von einem Terminal folgenden Befehl aus:

```
yum install gnupg
```

------
#### [ macOS ]

Führen Sie von einem Terminal folgenden Befehl aus:

```
brew install gnupg
```

------

### Authentifizieren und Importieren des öffentlichen Schlüssels
<a name="awstoe-verify-signature-of-binary-download-authenticate-import-public-key"></a>

Der nächste Schritt in diesem Prozess besteht darin, den AWSTOE öffentlichen Schlüssel zu authentifizieren und ihn als vertrauenswürdigen Schlüssel zu Ihrem `GPG` Schlüsselbund hinzuzufügen.

**Um den öffentlichen Schlüssel zu authentifizieren und zu importieren AWSTOE**

1. Besorgen Sie sich ein Exemplar unseres öffentlichen `GPG`-Schlüssels, indem Sie einen der folgenden Schritte ausführen:
   + Laden Sie den Schlüssel von herunter

      https://awstoe - **<region>** .s3. **<region>**.amazonaws. com/assets/awstoe.gpg. Beispiel, [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/assets/awstoe.gpg](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/assets/awstoe.gpg).
   + Kopieren Sie den Schlüssel aus dem folgenden Text und fügen Sie ihn in eine Datei namens `awstoe.gpg` ein. Vergewissern Sie sich, alles Folgende einzubeziehen:

     ```
     -----BEGIN PGP PUBLIC KEY BLOCK-----
     Version: GnuPG v2
     
     mQENBF8UqwsBCACdiRF2bkZYaFSDPFC+LIkWLwFvtUCRwAHtD8KIwTJ6LVn3fHAU
     GhuK0ZH9mRrqRT2bq/xJjGsnF9VqTj2AJqndGJdDjz75YCZYM+ocZ+r5HSJaeW9i
     S5dykHj7Txti2zHe0G5+W0v7v5bPi2sPHsN7XWQ7+G2AMEPTz8PjxY//I0DvMQns
     Sle3l9hz6wCClz1l9LbBzTyHfSm5ucTXvNe88XX5Gmt37OCDM7vfli0Ctv8WFoLN
     6jbxuA/sV71yIkPm9IYp3+GvaKeT870+sn8/JOOKE/U4sJV1ppbqmuUzDfhrZUaw
     8eW8IN9A1FTIuWiZED/5L83UZuQs1S7s2PjlABEBAAG0GkFXU1RPRSA8YXdzdG9l
     QGFtYXpvbi5jb20+iQE5BBMBCAAjBQJfFKsLAhsDBwsJCAcDAgEGFQgCCQoLBBYC
     AwECHgECF4AACgkQ3r3BVvWuvFJGiwf9EVmrBR77+Qe/DUeXZJYoaFr7If/fVDZl
     6V3TC6p0J0Veme7uXleRUTFOjzbh+7e5sDX19HrnPquzCnzfMiqbp4lSoeUuNdOf
     FcpuTCQH+M+sIEIgPno4PLl0Uj2uE1o++mxmonBl/Krk+hly8hB2L/9n/vW3L7BN
     OMb1Ll9PmgGPbWipcT8KRdz4SUex9TXGYzjlWb3jU3uXetdaQY1M3kVKE1siRsRN
     YYDtpcjmwbhjpu4xm19aFqNoAHCDctEsXJA/mkU3erwIRocPyjAZE2dnlkL9ZkFZ
     z9DQkcIarbCnybDM5lemBbdhXJ6hezJE/b17VA0t1fY04MoEkn6oJg==
     =oyze
     -----END PGP PUBLIC KEY BLOCK-----
     ```

1. Verwenden Sie an einer Befehlszeile in dem Verzeichnis, in dem Sie **awstoe.gpg** gespeichert haben, den folgenden Befehl, um den öffentlichen Schlüssel in Ihren Schlüsselbund zu importieren. AWSTOE 

   ```
   gpg --import awstoe.gpg
   ```

   Der Befehl gibt Ergebnisse wie die folgenden zurück:

   ```
   gpg: key F5AEBC52: public key "AWSTOE <awstoe@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   ```

   Notieren Sie sich den Schlüsselwert. Sie brauchen ihn im nächsten Schritt. Im vorangegangenen Beispiel ist der Schlüsselwert `F5AEBC52`.

1. Überprüfen Sie den Fingerabdruck, indem Sie den folgenden Befehl ausführen und *Schlüssel-Wert* durch den Wert des vorherigen Schritts ersetzen:

   ```
   gpg --fingerprint key-value
   ```

   Dieser Befehl gibt Ergebnisse wie die folgenden zurück:

   ```
   pub   2048R/F5AEBC52 2020-07-19
         Key fingerprint = F6DD E01C 869F D639 15E5  5742 DEBD C156 F5AE BC52
   uid       [ unknown] AWSTOE <awstoe@amazon.com>
   ```

   Zusätzlich sollte der Fingerabdruck-String identisch mit `F6DD E01C 869F D639 15E5 5742 DEBD C156 F5AE BC52` sein, wie im voranstehenden Beispiel angezeigt. Vergleichen Sie den Schlüssel-Fingerabdruck mit demjenigen, der auf dieser Seite veröffentlicht ist. Sie sollten übereinstimmen. Wenn sie nicht übereinstimmen, installieren Sie das AWSTOE Installationsskript nicht und kontaktieren Sie uns. Support

### Verifizieren der Signatur des Pakets
<a name="awstoe-verify-signature-of-binary-package"></a>

Nachdem Sie die `GPG`-Tools installiert, den öffentlichen Schlüssel für AWSTOE authentifiziert und importiert und überprüfen haben, dass der öffentliche Schlüssel vertrauenswürdig ist, sind Sie bereit, die Signatur des Installationsskripts zu überprüfen. 

**So überprüfen Sie die Signatur des -Installationsskripts**

1. Führen Sie an der Befehlszeile den folgenden Befehl aus, um die Binärdatei der Anwendung herunterzuladen:

   ```
   curl -O https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/<architecture>/awstoe
   ```

   Beispiel:

   ```
   curl -O https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe
   ```

   Unterstützte Werte für **architecture** können `amd64``386`, und sein`arm64`.

1. Führen Sie an einer Befehlszeile den folgenden Befehl aus, um die Signaturdatei für die entsprechende Anwendungsbinärdatei aus demselben S3-Schlüsselpräfixpfad herunterzuladen:

   ```
   curl -O https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/<architecture>/awstoe.sig
   ```

   Beispiel:

   ```
   curl -O https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe.sig
   ```

   Unterstützte Werte für **architecture** können `amd64``386`, und sein`arm64`.

1. Überprüfen Sie die Signatur, indem Sie in der Befehlszeile in dem Verzeichnis, in dem Sie die Datei gespeichert haben`awstoe.sig`, den folgenden AWSTOE Befehl ausführen. Beide Dateien müssen vorhanden sein.

   ```
   gpg --verify ./awstoe.sig ~/awstoe
   ```

   Die Ausgabe sollte wie folgt aussehen:

   ```
   gpg: Signature made Mon 20 Jul 2020 08:54:55 AM IST using RSA key ID F5AEBC52
   gpg: Good signature from "AWSTOE awstoe@amazon.com" [unknown]
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: F6DD E01C 869F D639 15E5 5742 DEBD C156 F5AE BC52
   ```

   Wenn die Ausgabe den Begriff `Good signature from "AWSTOE <awstoe@amazon.com>"` enthält, bedeutet dies, dass die Signatur erfolgreich überprüft wurde und Sie mit der Ausführung des AWSTOE -Installationsskripts fortfahren können.

   Wenn die Ausgabe die Bezeichnung `BAD signature`enthält, überprüfen Sie, ob Sie das Verfahren korrekt durchgeführt haben. Wenn Sie weiterhin diese Antwort erhalten, führen Sie die Installationsdatei, die Sie zuvor heruntergeladen haben, nicht aus und wenden Sie sich an Support.

Im Folgenden finden Sie Details zu den Warnungen, die möglicherweise angezeigt werden: 
+ **WARNUNG: Dieser Schlüssel ist nicht mit einer vertrauenswürdigen Signatur zertifiziert\$1 Es gibt keinen Hinweis darauf, dass die Signatur dem Besitzer gehört.** Idealerweise besuchen Sie ein AWS Büro und erhalten den Schlüssel persönlich. Sie würden es jedoch höchstwahrscheinlich von einer Website herunterladen. In diesem Fall ist die Website eine AWS Website. 
+ **gpg: Keine endgültig vertrauenswürdigen Schlüssel gefunden** Das bedeutet, dass Sie oder andere Personen, denen Sie vertrauen, dem spezifischen Schlüssel „letztendlich nicht vertrauen“.

Weitere Informationen finden Sie unter [http://www.gnupg.org](http://www.gnupg.org).

## Überprüfen Sie die Signatur des AWSTOE Installationsdownloads unter Windows
<a name="awstoe-verify-sig-win"></a>

In diesem Thema wird das empfohlene Verfahren zur Überprüfung der Gültigkeit der Installationsdatei für die AWS Task Orchestrator and Executor Anwendung auf Windows-Betriebssystemen beschrieben. 

Wenn Sie eine Anwendung aus dem Internet herunterladen, empfehlen wir Ihnen, die Identität des Softwareverlegers zu authentifizieren und zu überprüfen, ob die Anwendung seit ihrer Veröffentlichung nicht verändert oder beschädigt wurde. Dies schützt Sie davor, eine Version der Anwendung zu installieren, die einen Virus oder einen anderen bösartigen Code enthält.

Wenn Sie nach Ausführung der Schritte in diesem Thema feststellen, dass die Software für die AWSTOE Anwendung verändert oder beschädigt ist, führen Sie die Installationsdatei nicht aus. Wenden Sie sich stattdessen an Support.

Um die Gültigkeit der heruntergeladenen awstoe-Binärdatei auf Windows-basierten Betriebssystemen zu überprüfen, stellen Sie sicher, dass der Fingerabdruck des zugehörigen Amazon Services LLC-Unterzeichnerzertifikats diesem Wert entspricht:

**9D CA 72 17 DA FF B8 2F E4 C4 67 77 36 2F A4 AA C9 08 82 15**

**Anmerkung**  
Während des Rollout-Fensters für eine neue Binärdatei stimmt Ihr Unterzeichnerzertifikat möglicherweise nicht mit dem neuen Fingerabdruck überein. Wenn Ihr Unterzeichnerzertifikat nicht übereinstimmt, überprüfen Sie, ob der Fingerabdruckwert wie folgt lautet:   
**BA 81 25 EE AC 64 2E A9 F3 C5 93 CA 6D 3E B7 93 7D 68 75 74**

Um diesen Wert zu überprüfen, gehen Sie wie folgt vor: 

1. Klicken Sie mit der rechten Maustaste auf die heruntergeladen `awstoe.exe`, und öffnen Sie das **Eigenschaften**-Fenster.

1. Wählen Sie die Registerkarte **Digital Signatures** aus.

1. Wählen Sie in der **Signature List** die Option **Amazon Services LLC** und dann **Details** aus.

1. Falls die Registerkarte **General** nicht bereits ausgewählt ist, klicken Sie darauf und dann auf **View Certificate**.

1. Wählen Sie die Registerkarte **Details** aus, und anschließend die Option **All (Alle)** in der Dropdown-Liste **Show (Zeigen)**, wenn diese nicht bereits ausgewählt ist.

1. Scrollen Sie nach unten zum Feld **Thumbprint** und wählen Sie **Thumbprint** aus. Der gesamte Thumbprint-Wert wird im unteren Fenster angezeigt.
   + Wenn der Thumbprint-Wert im unteren Fenster mit folgendem Wert identisch ist:

     **9D CA 72 17 DA FF B8 2F E4 C4 67 77 36 2F A4 AA C9 08 82 15**

     dann ist Ihre heruntergeladene AWSTOE Binärdatei authentisch und kann sicher installiert werden.
   + Wenn der Fingerabdruckwert im unteren Detailfenster nicht mit dem vorherigen Wert identisch ist, führen Sie den Vorgang nicht aus. `awstoe.exe`

**Topics**
+ [Überprüfen Sie die Signatur des AWSTOE Installationsdownloads](awstoe-verify-sig.md)
+ [Schritt 1: Installieren AWSTOE](#toe-start-install)
+ [Schritt 2: Legen Sie die AWS Anmeldeinformationen fest](#toe-start-credentials)
+ [Schritt 3: Komponentendokumente lokal entwickeln](#toe-start-develop)
+ [Schritt 4: AWSTOE Komponenten validieren](#toe-start-validate)
+ [Schritt 5: AWSTOE Komponenten ausführen](#toe-start-run)

## Schritt 1: Installieren AWSTOE
<a name="toe-start-install"></a>

Um Komponenten lokal zu entwickeln, laden Sie die AWSTOE Anwendung herunter und installieren Sie sie.

1. 

**Laden Sie die AWSTOE Anwendung herunter**

   Wählen Sie zur Installation AWSTOE den entsprechenden Download-Link für Ihre Architektur und Plattform. Die vollständige Liste der Links zum Herunterladen von Anwendungen finden Sie unter [AWSTOE lädt herunter](toe-component-manager.md#toe-downloads)
**Wichtig**  
AWS stellt die Unterstützung für die TLS-Versionen 1.0 und 1.1 schrittweise ein. Um auf den S3-Bucket für AWSTOE Downloads zuzugreifen, muss Ihre Client-Software TLS Version 1.2 oder höher verwenden. Weitere Informationen finden Sie in diesem [AWS Sicherheits-Blogbeitrag](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).

1. 

**Überprüfen Sie die Signatur**

   Die Schritte zur Überprüfung Ihres Downloads hängen von der Serverplattform ab, auf der Sie die AWSTOE Anwendung nach der Installation ausführen. Informationen zur Überprüfung Ihres Downloads auf einem Linux-Server finden Sie unter[Überprüfen Sie die Signatur unter Linux oder macOS](awstoe-verify-sig.md#awstoe-verify-sig-linux). Informationen zur Überprüfung Ihres Downloads auf einem Windows-Server finden Sie unter[Überprüfen Sie die Signatur unter Windows](awstoe-verify-sig.md#awstoe-verify-sig-win).

**Anmerkung**  
AWSTOE wird direkt von seinem Download-Speicherort aus aufgerufen. Ein separater Installationsschritt ist nicht erforderlich. Dies bedeutet auch, dass Änderungen an der lokalen Umgebung vorgenommen werden AWSTOE können.  
Um sicherzustellen, dass Sie Änderungen während der Komponentenentwicklung isolieren, empfehlen wir, eine EC2 Instanz zum Entwickeln und Testen von AWSTOE Komponenten zu verwenden.

## Schritt 2: Legen Sie die AWS Anmeldeinformationen fest
<a name="toe-start-credentials"></a>

 AWSTOE erfordert AWS Anmeldeinformationen AWS-Services, um eine Verbindung zu anderen Geräten wie Amazon S3 und Amazon herzustellen CloudWatch, wenn Aufgaben ausgeführt werden, wie z. B.: 
+  AWSTOE Dokumente werden von einem vom Benutzer bereitgestellten Amazon S3-Pfad heruntergeladen.
+ Laufende Module `S3Download` oder `S3Upload` Aktionsmodule.
+ Streaming-Protokolle an CloudWatch, wenn aktiviert.

Wenn Sie AWSTOE auf einer EC2 Instance arbeiten, werden für die Ausführung dieselben Berechtigungen AWSTOE verwendet wie für die IAM-Rolle, die der EC2 Instance zugewiesen ist.

Weitere Informationen zu IAM-Rollen für EC2 finden Sie unter [IAM-Rollen für Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html). EC2

Die folgenden Beispiele zeigen, wie AWS Anmeldeinformationen mithilfe der `AWS_SECRET_ACCESS_KEY` Umgebungsvariablen `AWS_ACCESS_KEY_ID` und festgelegt werden. 

Um diese Variablen unter Linux, macOS oder Unix festzulegen, verwenden Sie`export`.

```
export AWS_ACCESS_KEY_ID=your_access_key_id
```

```
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Um diese Variablen unter Windows mit festzulegen PowerShell, verwenden Sie`$env`.

```
$env:AWS_ACCESS_KEY_ID=your_access_key_id
```

```
$env:AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Um diese Variablen unter Windows über die Befehlszeile festzulegen, verwenden Sie`set`.

```
set AWS_ACCESS_KEY_ID=your_access_key_id
```

```
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

## Schritt 3: Komponentendokumente lokal entwickeln
<a name="toe-start-develop"></a>

Komponenten werden mit Klartext-YAML-Dokumenten erstellt. Weitere Hinweise zur Dokumentensyntax finden Sie unter. [Verwenden Sie das AWSTOE Component Document Framework für benutzerdefinierte Komponenten](toe-use-documents.md)

Im Folgenden finden Sie Beispieldokumente für die Komponente *Hello World*, die Ihnen den Einstieg erleichtern sollen.

------
#### [ Linux ]

Einige Beispiele für Linux-Komponenten in diesem Handbuch beziehen sich auf eine Komponentendokumentdatei mit dem Namen`hello-world-linux.yml`. Sie können das folgende Dokument verwenden, um mit diesen Beispielen zu beginnen.

```
name: Hello World
description: This is hello world testing document for Linux.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------
#### [ Windows ]

Einige der Beispiele für Windows-Komponenten in diesem Handbuch beziehen sich auf eine Komponentendokumentdatei mit dem Namen`hello-world-windows.yml`. Sie können das folgende Dokument verwenden, um mit diesen Beispielen zu beginnen.

```
name: Hello World
description: This is Hello World testing document for Windows.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the test phase.'
```

------
#### [ macOS ]

Einige der Beispiele für macOS-Komponenten in diesem Handbuch beziehen sich auf eine Komponentendokumentdatei mit dem Namen`hello-world-macos.yml`. Sie können das folgende Dokument verwenden, um mit diesen Beispielen zu beginnen.

```
name: Hello World
description: This is hello world testing document for macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------

## Schritt 4: AWSTOE Komponenten validieren
<a name="toe-start-validate"></a>

Sie können die Syntax von AWSTOE Komponenten lokal mit der AWSTOE Anwendung überprüfen. Die folgenden Beispiele zeigen den AWSTOE `validate` Anwendungsbefehl zur Validierung der Syntax einer Komponente, ohne sie auszuführen.

**Anmerkung**  
Die AWSTOE Anwendung kann nur die Komponentensyntax für das aktuelle Betriebssystem überprüfen. Wenn Sie beispielsweise `awstoe.exe` unter Windows ausgeführt werden, können Sie die Syntax für ein Linux-Dokument, das das `ExecuteBash` Aktionsmodul verwendet, nicht überprüfen.

Linux oder macOS

```
awstoe validate --documents /home/user/hello-world.yml
```

Windows

```
awstoe.exe validate --documents C:\Users\user\Documents\hello-world.yml
```

## Schritt 5: AWSTOE Komponenten ausführen
<a name="toe-start-run"></a>

Die AWSTOE Anwendung kann mithilfe des `--phases` Befehlszeilenarguments eine oder mehrere Phasen bestimmter Dokumente ausführen. Unterstützte Werte für `--phases` sind `build``validate`, und`test`. Mehrere Phasenwerte können als kommagetrennte Werte eingegeben werden.

Wenn Sie eine Liste von Phasen bereitstellen, führt die AWSTOE Anwendung nacheinander die angegebenen Phasen jedes Dokuments aus. AWSTOE Führt beispielsweise die `validate` Phasen `build` und von aus`document1.yaml`, gefolgt von den `validate` Phasen `build` und von`document2.yaml`.

Um sicherzustellen, dass Ihre Protokolle sicher gespeichert und zur Fehlerbehebung aufbewahrt werden, empfehlen wir, die Protokollspeicherung in Amazon S3 zu konfigurieren. In Image Builder ist der Amazon S3 S3-Speicherort für die Veröffentlichung von Protokollen in der Infrastrukturkonfiguration angegeben. Weitere Informationen zur Infrastrukturkonfiguration finden Sie unter [Image Builder Builder-Infrastrukturkonfiguration verwalten](manage-infra-config.md)

Wenn keine Liste der Phasen bereitgestellt wird, führt die AWSTOE Anwendung alle Phasen in der Reihenfolge aus, die im YAML-Dokument aufgeführt ist.

Verwenden Sie die folgenden Befehle, um bestimmte Phasen in einem oder mehreren Dokumenten auszuführen.

Einphasig

```
awstoe run --documents hello-world.yml --phases build
```

Mehrere Phasen

```
awstoe run --documents hello-world.yml --phases build,test
```

**Dokument ausführen**  
Führen Sie alle Phasen in einem einzigen Dokument aus

```
awstoe run --documents documentName.yaml
```

Führen Sie alle Phasen in mehreren Dokumenten aus

```
awstoe run --documents documentName1.yaml,documentName2.yaml
```

Geben Sie Amazon S3 S3-Informationen ein, um AWSTOE Protokolle von einem benutzerdefinierten lokalen Pfad hochzuladen (empfohlen)

```
awstoe run --documents documentName.yaml --log-s3-bucket-name amzn-s3-demo-destination-bucket --log-s3-key-prefix S3KeyPrefix --log-s3-bucket-owner S3BucketOwner --log-directory local_path
```

Führen Sie alle Phasen in einem einzigen Dokument aus und zeigen Sie alle Protokolle auf der Konsole an

```
awstoe run --documents documentName.yaml --trace
```

-Beispielbefehl

```
awstoe run --documents s3://bucket/key/doc.yaml --phases build,validate
```

Dokument mit eindeutiger ID ausführen

```
awstoe run --documents documentName.yaml --execution-id user-provided-id --phases build,test
```

Holen Sie sich Hilfe bei AWSTOE

```
awstoe --help
```

# Verwenden Sie das AWSTOE Component Document Framework für benutzerdefinierte Komponenten
<a name="toe-use-documents"></a>

Um eine Komponente mithilfe des Komponenten-Frameworks AWS Task Orchestrator and Executor (AWSTOE) zu erstellen, müssen Sie ein YAML-basiertes Dokument bereitstellen, das die Phasen und Schritte darstellt, die für die von Ihnen erstellte Komponente gelten. AWS-Services verwenden Sie Ihre Komponente, wenn sie ein neues Amazon Machine Image (AMI) oder Container-Image erstellen.

**Topics**
+ [Workflow für Komponenten-Dokumente](#component-doc-workflow)
+ [Protokollierung von Komponenten](#component-logging)
+ [Verkettung von Eingabe und Ausgabe](#document-chaining)
+ [Schema und Definitionen des Dokuments](#document-schema)
+ [Beispiele für Dokumente](#document-example)
+ [Verwenden Sie Variablen in Ihrem Dokument mit benutzerdefinierten Komponenten](toe-user-defined-variables.md)
+ [Verwenden Sie bedingte Konstrukte in AWSTOE](toe-conditional-constructs.md)
+ [Verwenden Sie Vergleichsoperatoren in AWSTOE Komponentendokumenten](toe-comparison-operators.md)
+ [Verwenden Sie logische Operatoren in AWSTOE Komponentendokumenten](toe-logical-operators.md)
+ [Verwenden Sie Looping-Konstrukte in AWSTOE](toe-looping-constructs.md)

## Workflow für Komponenten-Dokumente
<a name="component-doc-workflow"></a>

Das AWSTOE Komponentendokument verwendet Phasen und Schritte, um verwandte Aufgaben zu gruppieren und diese Aufgaben in einem logischen Workflow für die Komponente zu organisieren.

**Tipp**  
Der Dienst, der Ihre Komponente zum Erstellen eines Images verwendet, implementiert möglicherweise Regeln darüber, welche Phasen für den Build-Prozess verwendet werden sollen und wann diese Phasen ausgeführt werden dürfen. Dies ist wichtig, wenn Sie Ihre Komponente entwerfen.

**Phasen**  
Phasen stellen den Verlauf Ihres Workflows durch den Image-Erstellungsprozess dar. Beispielsweise verwendet der Image Builder Builder-Dienst die `validate` Phasen `build` und Phasen während der *Erstellungsphase* für die von ihm erstellten Images. Es verwendet die `container-host-test` Phasen `test` und während der *Testphase*, um sicherzustellen, dass der Image-Snapshot oder das Container-Image die erwarteten Ergebnisse liefert, bevor das endgültige AMI erstellt oder das Container-Image verteilt wird.

Wenn die Komponente ausgeführt wird, werden die zugehörigen Befehle für jede Phase in der Reihenfolge angewendet, in der sie im Komponentendokument erscheinen.

**Regeln für Phasen**
+ Jeder Phasenname muss innerhalb eines Dokuments eindeutig sein.
+ Sie können viele Phasen in Ihrem Dokument definieren.
+ Sie müssen mindestens eine der folgenden Phasen in Ihr Dokument aufnehmen:
  + **build** — für Image Builder wird diese Phase in der Regel während der *Buildphase* verwendet.
  + **validieren** — für Image Builder wird diese Phase in der Regel während der *Erstellungsphase* verwendet.
  + **test** — für Image Builder wird diese Phase im Allgemeinen während der *Testphase* verwendet.
+ Phasen werden immer in der Reihenfolge ausgeführt, in der sie im Dokument definiert sind. Die Reihenfolge, in der sie für AWSTOE Befehle in angegeben sind, AWS CLI hat keine Auswirkung.

**Schritte**  
Schritte sind einzelne Arbeitseinheiten, die den Arbeitsablauf innerhalb jeder Phase definieren. Die Schritte werden nacheinander ausgeführt. Die Eingabe oder Ausgabe für einen Schritt kann jedoch auch als Eingabe in einen nachfolgenden Schritt einfließen. Dies wird als „Verkettung“ bezeichnet.

**Regeln für Schritte**
+ Der Schrittname muss für die Phase eindeutig sein.
+ Der Schritt muss eine unterstützte Aktion (Aktionsmodul) verwenden, die einen Exit-Code zurückgibt.

  Eine vollständige Liste der unterstützten Aktionsmodule, deren Funktionsweise, input/output Werte und Beispiele finden Sie unter[Aktionsmodule, die vom AWSTOE Komponentenmanager unterstützt werden](toe-action-modules.md).

## Protokollierung von Komponenten
<a name="component-logging"></a>

AWSTOE erstellt bei jeder Ausführung Ihrer Komponente einen neuen Protokollordner auf den EC2-Instances, die zum Erstellen und Testen eines neuen Images verwendet werden. Bei Container-Images wird der Protokollordner im Container gespeichert.

Zur Unterstützung bei der Problembehandlung, falls bei der Erstellung des Images ein Fehler auftritt, werden das Eingabedokument und alle Ausgabedateien, die bei der Ausführung der Komponente AWSTOE erstellt werden, im Protokollordner gespeichert.

Der Name des Protokollordners besteht aus den folgenden Teilen:

1. **Protokollverzeichnis** — Wenn ein Dienst eine AWSTOE Komponente ausführt, übergibt sie das Protokollverzeichnis zusammen mit anderen Einstellungen für den Befehl. In den folgenden Beispielen zeigen wir das Protokolldateiformat, das Image Builder verwendet.
   + **Linux und macOS**: `/var/lib/amazon/toe/`
   + **Windows**: `$env:ProgramFiles\Amazon\TaskOrchestratorAndExecutor\`

1. **Dateipräfix** — Dies ist ein Standardpräfix, das für alle Komponenten verwendet wird: "`TOE_`“.

1. **Laufzeit — Dies ist ein Zeitstempel** im Format YYYY-MM-DD \$1HH-MM-SS\$1UTC-0.

1. **Ausführungs-ID — Dies ist die GUID**, die zugewiesen wird, wenn eine oder mehrere Komponenten ausgeführt werden. AWSTOE 

Beispiel: `/var/lib/amazon/toe/TOE_2021-07-01_12-34-56_UTC-0_a1bcd2e3-45f6-789a-bcde-0fa1b2c3def4`

AWSTOE speichert die folgenden Kerndateien im Protokollordner:

**Eingabedateien**
+ **document.yaml** — Das Dokument, das als Eingabe für den Befehl verwendet wird. Nachdem die Komponente ausgeführt wurde, wird diese Datei als Artefakt gespeichert.

**Ausgabedateien**
+ **application.log** — Das Anwendungsprotokoll enthält Informationen auf Debug-Ebene mit Zeitstempel AWSTOE darüber, was passiert, während die Komponente ausgeführt wird.
+ **detailedoutput.json** — Diese JSON-Datei enthält detaillierte Informationen zum Ausführungsstatus, zu Eingaben, Ausgaben und Fehlern für alle Dokumente, Phasen und Schritte, die für die Komponente gelten, während sie ausgeführt wird.
+ **console.log** — Das Konsolenprotokoll enthält alle Standardausgangsinformationen (stdout) und Standardfehlerinformationen (stderr), die in die Konsole AWSTOE geschrieben werden, während die Komponente ausgeführt wird.
+ **chaining.json** — Diese JSON-Datei stellt Optimierungen dar, die zur Auflösung von Verkettungsausdrücken angewendet wurden. AWSTOE 

**Anmerkung**  
Der Protokollordner kann auch andere temporäre Dateien enthalten, die hier nicht behandelt werden.

## Verkettung von Eingabe und Ausgabe
<a name="document-chaining"></a>

Die AWSTOE Konfigurationsverwaltungsanwendung bietet eine Funktion zum Verketten von Eingaben und Ausgaben, indem Verweise in den folgenden Formaten geschrieben werden:

`{{ phase_name.step_name.inputs/outputs.variable }}`

oder

`{{ phase_name.step_name.inputs/outputs[index].variable }}`

Mit der Verkettungsfunktion können Sie Code recyceln und die Wartbarkeit des Dokuments verbessern.

**Regeln für die Verkettung**
+ Verkettungsausdrücke können nur im Eingabebereich jedes Schritts verwendet werden.
+ Anweisungen mit verketteten Ausdrücken müssen in Anführungszeichen gesetzt werden. Beispiel:
  + **Ungültiger Ausdruck**: `echo {{ phase.step.inputs.variable }}`
  + **Gültiger Ausdruck**: `"echo {{ phase.step.inputs.variable }}"`
  + **Gültiger Ausdruck**: `'echo {{ phase.step.inputs.variable }}'`
+ Durch Verkettung von Ausdrücken können Variablen aus anderen Schritten und Phasen desselben Dokuments referenziert werden. Der aufrufende Dienst verfügt jedoch möglicherweise über Regeln, nach denen Verkettungsausdrücke nur im Kontext einer einzelnen Phase ausgeführt werden dürfen. Image Builder unterstützt beispielsweise keine Verkettung von der *Buildphase* zur *Testphase, da jede Phase* unabhängig ausgeführt wird.
+ Indizes in der Verkettung von Ausdrücken folgen einer nullbasierten Indizierung. Der Index beginnt mit Null (0), um auf das erste Element zu verweisen.

**Beispiele**

Um im zweiten Eintrag des folgenden Beispielschritts auf die Quellvariable zu verweisen, lautet `{{ build.SampleS3Download.inputs[1].source }}` das Verkettungsmuster.

```
phases:
  - name: 'build'
    steps:
      - name: SampleS3Download
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://sample-bucket/sample1.ps1'
            destination: 'C:\sample1.ps1'
          - source: 's3://sample-bucket/sample2.ps1'
            destination: 'C:\sample2.ps1'
```

Um auf die Ausgangsvariable (entspricht „Hello“) des folgenden Beispielschritts zu verweisen, lautet das Verkettungsmuster. `{{ build.SamplePowerShellStep.outputs.stdout }}`

```
phases:
  - name: 'build'
    steps:
      - name: SamplePowerShellStep
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          commands:
            - 'Write-Host "Hello"'
```

## Schema und Definitionen des Dokuments
<a name="document-schema"></a>

Das Folgende ist das YAML-Schema für ein Dokument.

```
name: (optional)
description: (optional)
schemaVersion: "string"

phases:
  - name: "string"
    steps:
      - name: "string"
        action: "string"
        timeoutSeconds: integer
        onFailure: "Abort|Continue|Ignore"
        maxAttempts: integer
        inputs:
```

Die Schemadefinitionen für ein Dokument lauten wie folgt.


| Feld | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| Name | Name des Dokuments. | Zeichenfolge | Nein | 
| description | Beschreibung des Dokuments. | Zeichenfolge |  Nein  | 
| schemaVersion | Schemaversion des Dokuments, derzeit 1.0. | Zeichenfolge |  Ja  | 
| phases | Eine Liste der Phasen mit ihren Schritten. |  Auflisten  |  Ja  | 

Die Schemadefinitionen für eine Phase lauten wie folgt.


| Feld | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| Name | Name der Phase. | Zeichenfolge | Ja | 
| steps | Liste der Schritte in der Phase. | Auflisten  |  Ja  | 

Die Schemadefinitionen für einen Schritt lauten wie folgt.


| Feld | Description | Typ | Erforderlich | Standardwert | 
| --- | --- | --- | --- | --- | 
| Name | Benutzerdefinierter Name für den Schritt. | Zeichenfolge |  |  | 
| action | Schlüsselwort, das sich auf das Modul bezieht, das den Schritt ausführt. | Zeichenfolge |  |  | 
| timeoutSeconds |  Anzahl der Sekunden, die der Schritt ausgeführt wird, bevor er fehlschlägt oder es erneut versucht.  Unterstützt auch den Wert -1, was auf ein unendliches Timeout hinweist. 0 und andere negative Werte sind nicht zulässig.  | Ganzzahl |  Nein  | 7.200 Sekunden (120 Minuten) | 
| onFailure |  Gibt an, wie der Schritt im Falle eines Fehlers vorgehen soll. Gültige Werte sind:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-use-documents.html)  |  Zeichenfolge  |  Nein  | Abbrechen | 
| maxAttempts | Höchstzahl zulässiger Versuche, bevor der Schritt fehlschlägt. | Ganzzahl |  Nein  | 1 | 
| inputs | Enthält Parameter, die das Aktionsmodul benötigt, um den Schritt auszuführen. | Diktieren |  Ja  |  | 

## Beispiele für Dokumente
<a name="document-example"></a>

Die folgenden Beispiele zeigen AWSTOE Komponentendokumente, die Aufgaben für das Zielbetriebssystem ausführen.

------
#### [ Linux ]

**Beispiel 1: Führen Sie eine benutzerdefinierte Binärdatei aus**  
Im Folgenden finden Sie ein Beispieldokument, das eine benutzerdefinierte Binärdatei herunterlädt und auf einer Linux-Instanz ausführt.

```
name: LinuxBin
description: Download and run a custom Linux binary file.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://<replaceable>amzn-s3-demo-source-bucket</replaceable>/<replaceable>myapplication</replaceable>
            destination: /tmp/<replaceable>myapplication</replaceable>
      - name: Enable
        action: ExecuteBash
        onFailure: Continue
        inputs:
          commands:
            - 'chmod u+x {{ build.Download.inputs[0].destination }}'
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '--install'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------
#### [ Windows ]

**Beispiel 1: Installieren Sie Windows-Updates**  
Das folgende Beispieldokument installiert alle verfügbaren Windows-Updates, führt ein Konfigurationsskript aus, überprüft die Änderungen, bevor das AMI erstellt wird, und testet die Änderungen, nachdem das AMI erstellt wurde.

```
name: RunConfig_UpdateWindows
description: 'This document will install all available Windows updates and run a config script. It will then validate the changes before an AMI is created. Then after AMI creation, it will test all the changes.'
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: DownloadConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/config.ps1'
            destination: 'C:\config.ps1'

      - name: RunConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{build.DownloadConfigScript.inputs[0].destination}}'

      - name: Cleanup
        action: DeleteFile
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - path: '{{build.DownloadConfigScript.inputs[0].destination}}'

      - name: RebootAfterConfigApplied
        action: Reboot
        inputs:
          delaySeconds: 60

      - name: InstallWindowsUpdates
        action: UpdateOS

  - name: validate
    steps:
      - name: DownloadTestConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/testConfig.ps1'
            destination: 'C:\testConfig.ps1'

      - name: ValidateConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{validate.DownloadTestConfigScript.inputs[0].destination}}'

      - name: Cleanup
        action: DeleteFile
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - path: '{{validate.DownloadTestConfigScript.inputs[0].destination}}'

  - name: test
    steps:
      - name: DownloadTestConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/testConfig.ps1'
            destination: 'C:\testConfig.ps1'

      - name: ValidateConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{test.DownloadTestConfigScript.inputs[0].destination}}'
```

**Beispiel 2: Installieren Sie das AWS CLI auf einer Windows-Instanz**  
Im Folgenden finden Sie ein Beispieldokument, das mithilfe der Setup-Datei AWS CLI auf einer Windows-Instanz installiert wird.

```
name: InstallCLISetUp
description: Install &CLI; using the setup file
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://aws-cli/AWSCLISetup.exe
            destination: C:\Windows\temp\AWSCLISetup.exe
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '/install'
            - '/quiet'
            - '/norestart'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

**Beispiel 3: Installieren Sie das AWS CLI mit dem MSI-Installationsprogramm**  
Im Folgenden finden Sie ein Beispieldokument, das AWS CLI mit dem MSI-Installationsprogramm installiert wird.

```
name: InstallCLIMSI
description: Install &CLI; using the MSI installer
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://aws-cli/AWSCLI64PY3.msi
            destination: C:\Windows\temp\AWSCLI64PY3.msi
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: 'C:\Windows\System32\msiexec.exe'
          arguments:
            - '/i'
            - '{{ build.Download.inputs[0].destination }}'
            - '/quiet'
            - '/norestart'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------
#### [ macOS ]

**Beispiel 1: Eine benutzerdefinierte macOS-Binärdatei ausführen**  
Im Folgenden finden Sie ein Beispieldokument, das eine benutzerdefinierte Binärdatei herunterlädt und auf einer macOS-Instanz ausführt.

```
name: macOSBin
description: Download and run a binary file on macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://<replaceable>amzn-s3-demo-source-bucket</replaceable>/<replaceable>myapplication</replaceable>
            destination: /tmp/<replaceable>myapplication</replaceable>
      - name: Enable
        action: ExecuteBash
        onFailure: Continue
        inputs:
          commands:
            - 'chmod u+x {{ build.Download.inputs[0].destination }}'
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '--install'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------

# Verwenden Sie Variablen in Ihrem Dokument mit benutzerdefinierten Komponenten
<a name="toe-user-defined-variables"></a>

Variablen bieten eine Möglichkeit, Daten mit aussagekräftigen Namen zu versehen, die in der gesamten Anwendung verwendet werden können. Sie können benutzerdefinierte Variablen mit einfachen und lesbaren Formaten für komplexe Workflows definieren und sie im YAML-Anwendungskomponentendokument für eine AWSTOE Komponente referenzieren.

Dieser Abschnitt enthält Informationen, die Ihnen helfen, Variablen für Ihre AWSTOE Komponente im Dokument für die YAML-Anwendungskomponente zu definieren, einschließlich Syntax, Namenseinschränkungen und Beispielen.

## Konstanten
<a name="user-defined-vars-constants"></a>

Konstanten sind unveränderliche Variablen, die nach ihrer Definition nicht geändert oder überschrieben werden können. Konstanten können mithilfe von Werten im Abschnitt eines Dokuments definiert werden. `constants` AWSTOE 

**Regeln für Konstantennamen**
+ Der Name muss zwischen 3 und 128 Zeichen lang sein.
+ Der Name darf nur alphanumerische Zeichen (a-z, A-Z, 0-9), Bindestriche (-) oder Unterstriche (\$1) enthalten.
+ Der Name muss innerhalb des Dokuments eindeutig sein.
+ Der Name muss als YAML-Zeichenfolge angegeben werden.

**Syntax**

```
constants:
  - <name>:
      type: <constant type>
      value: <constant value>
```


| Tastenname | Erforderlich | Beschreibung | 
| --- | --- | --- | 
|  `name`  |  Ja  | Name der Konstante. Muss für das Dokument eindeutig sein (er darf nicht mit anderen Parameternamen oder Konstanten identisch sein). | 
| `value` | Ja | Wert der Konstante. | 
| `type` | Ja | Typ der Konstante. Der unterstützte Typ iststring. | 

**Verweisen Sie auf konstante Werte in einem Dokument**  
Sie können in Step- oder Loop-Eingaben in Ihrem YAML-Dokument wie folgt auf Konstanten verweisen:
+ Bei konstanten Verweisen wird zwischen Groß- und Kleinschreibung unterschieden, und der Name muss exakt übereinstimmen.
+ Der Name muss in doppelte geschweifte Klammern eingeschlossen werden. `{{` *MyConstant* `}}`
+ Leerzeichen sind in geschweiften Klammern zulässig und werden automatisch gekürzt. Beispielsweise sind alle der folgenden Verweise gültig:

  `{{ MyConstant }}`, `{{ MyConstant}}`, `{{MyConstant }}`, `{{MyConstant}}`
+ Der Verweis im YAML-Dokument muss als Zeichenfolge (in einfache oder doppelte Anführungszeichen eingeschlossen) angegeben werden.

  Zum Beispiel: `- {{ MyConstant }}` ist nicht gültig, da es nicht als Zeichenfolge identifiziert wird.

  Die folgenden Verweise sind jedoch beide gültig: `- '{{ MyConstant }}'` und`- "{{ MyConstant }}"`.

**Beispiele**  
In Schritteingaben referenzierte Konstante

```
name: Download AWS CLI version 2
schemaVersion: 1.0
constants:
  - Source:
      type: string
      value: https://awscli.amazonaws.com/AWSCLIV2.msi
phases:
  - name: build
    steps:
      - name: Download
        action: WebDownload
        inputs:
          - source: '{{ Source }}'
            destination: 'C:\Windows\Temp\AWSCLIV2.msi'
```

In Loop-Eingängen wird auf eine Konstante verwiesen

```
name: PingHosts
schemaVersion: 1.0
constants:
  - Hosts:
      type: string
      value: 127.0.0.1,amazon.com
phases:
  - name: build
    steps:
      - name: Ping
        action: ExecuteBash
        loop:
          forEach:
            list: '{{ Hosts }}'
            delimiter: ','
        inputs:
          commands:
            - ping -c 4 {{ loop.value }}
```

## Parameters
<a name="user-defined-vars-parameters"></a>

Parameter sind veränderbare Variablen mit Einstellungen, die die aufrufende Anwendung zur Laufzeit bereitstellen kann. Sie können Parameter im `Parameters` Abschnitt des YAML-Dokuments definieren.

**Regeln für Parameternamen**
+ Der Name muss zwischen 3 und 128 Zeichen lang sein.
+ Der Name darf nur alphanumerische Zeichen (a-z, A-Z, 0-9), Bindestriche (-) oder Unterstriche (\$1) enthalten.
+ Der Name muss innerhalb des Dokuments eindeutig sein.
+ Der Name muss als YAML-Zeichenfolge angegeben werden.

### Syntax
<a name="vars-parameters-syntax"></a>

```
parameters:
  - <name>:
      type: <parameter type>
      default: <parameter value>
      description: <parameter description>
```


| Tastenname | Erforderlich | Beschreibung | 
| --- | --- | --- | 
| `name` | Ja | Der Name des Parameters. Muss für das Dokument eindeutig sein (er darf nicht mit anderen Parameternamen oder Konstanten identisch sein). | 
| `type` | Ja | Der Datentyp des Parameters. Zu den unterstützten Typen gehören:`string`. | 
| `default` | Nein | Der Standardwert für den Parameter. | 
| `description` | Nein | Beschreibt den Parameter. | 

### Referenzparameterwerte in einem Dokument
<a name="vars-parameters-referencing"></a>

Sie können Parameter in Step- oder Loop-Eingaben innerhalb Ihres YAML-Dokuments wie folgt referenzieren:
+ Bei Parameterreferenzen wird zwischen Groß- und Kleinschreibung unterschieden, und der Name muss exakt übereinstimmen.
+ Der Name muss in doppelte geschweifte Klammern eingeschlossen werden. `{{` *MyParameter* `}}`
+ Leerzeichen sind in geschweiften Klammern zulässig und werden automatisch gekürzt. Beispielsweise sind alle der folgenden Verweise gültig:

  `{{ MyParameter }}`, `{{ MyParameter}}`, `{{MyParameter }}`, `{{MyParameter}}`
+ Der Verweis im YAML-Dokument muss als Zeichenfolge (in einfache oder doppelte Anführungszeichen eingeschlossen) angegeben werden.

  Zum Beispiel: `- {{ MyParameter }}` ist nicht gültig, da es nicht als Zeichenfolge identifiziert wird.

  Die folgenden Verweise sind jedoch beide gültig: `- '{{ MyParameter }}'` und`- "{{ MyParameter }}"`.

**Beispiele**  
Die folgenden Beispiele zeigen, wie Sie Parameter in Ihrem YAML-Dokument verwenden können:
+ Beziehen Sie sich auf einen Parameter in den Schritteingaben:

  ```
  name: Download AWS CLI version 2
  schemaVersion: 1.0
  parameters:
    - Source:
        type: string
        default: 'https://awscli.amazonaws.com/AWSCLIV2.msi'
        description: The AWS CLI installer source URL.
  phases:
    - name: build
      steps:
        - name: Download
          action: WebDownload
          inputs:
            - source: '{{ Source }}'
              destination: 'C:\Windows\Temp\AWSCLIV2.msi'
  ```
+ Beziehen Sie sich auf einen Parameter in Loop-Eingängen:

  ```
  name: PingHosts
  schemaVersion: 1.0
  parameters:
    - Hosts:
        type: string
        default: 127.0.0.1,amazon.com
        description: A comma separated list of hosts to ping.
  phases:
    - name: build
      steps:
        - name: Ping
          action: ExecuteBash
          loop:
            forEach:
              list: '{{ Hosts }}'
              delimiter: ','
          inputs:
            commands:
              - ping -c 4 {{ loop.value }}
  ```

### Parameter zur Laufzeit überschreiben
<a name="vars-parameters-set-at-runtime"></a>

Sie können die `--parameters` Option AWS CLI mit einem Schlüssel-Wert-Paar verwenden, um zur Laufzeit einen Parameterwert festzulegen.
+ <name><value>Geben Sie das Schlüssel-Wert-Paar für den Parameter als Namen und Wert an, getrennt durch ein Gleichheitszeichen (=).
+ Mehrere Parameter müssen durch ein Komma getrennt werden.
+ Parameternamen, die im YAML-Komponentendokument nicht gefunden werden, werden ignoriert.
+ Der Parametername und der Wert sind beide erforderlich.

**Wichtig**  
Bei den Komponentenparametern handelt es sich um reine Textwerte, die angemeldet sind AWS CloudTrail. Wir empfehlen, dass Sie AWS Secrets Manager oder den AWS Systems Manager Parameter Store verwenden, um Ihre Geheimnisse zu speichern. Weitere Informationen zu Secrets Manager finden Sie unter [Was ist Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) im *AWS Secrets Manager Benutzerhandbuch*. Weitere Informationen zum AWS Systems Manager Parameterspeicher finden Sie unter [AWS Systems Manager Parameterspeicher](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) im *AWS Systems Manager Benutzerhandbuch*.

#### Syntax
<a name="vars-runtime-parameters-syntax"></a>

```
--parameters name1=value1,name2=value2...
```


| CLI-Option | Erforderlich | Description | 
| --- | --- | --- | 
| --parameter *name* =*value*,... | Nein | Diese Option verwendet eine Liste von Schlüssel-Wert-Paaren mit dem Parameternamen als Schlüssel. | 

**Beispiele**  
Die folgenden Beispiele zeigen, wie Sie Parameter in Ihrem YAML-Dokument verwenden können:
+ Das in dieser `--parameter` Option angegebene Parameter-Schlüssel-Wert-Paar ist nicht gültig:

  ```
  --parameters ntp-server=
  ```
+ Legen Sie ein Parameter-Schlüssel-Wert-Paar mit der `--parameter` folgenden Option fest: AWS CLI

  ```
  --parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com
  ```
+ Legen Sie mehrere Parameter-Schlüssel-Wert-Paare mit der Option im `--parameter` Feld fest: AWS CLI

  ```
  --parameters ntp-server=ntp-server.amazon.com,http-url=https://internal-us-east1.amazon.com
  ```

## Verwenden Sie die Parameter Store-Parameter von Systems Manager
<a name="toe-ssm-parameters"></a>

Sie können AWS Systems Manager Parameter Store-Parameter (SSM-Parameter) in Ihren Komponentendokumenten referenzieren, indem Sie Variablen das Präfix voranstellen. `aws:ssm` Zum Beispiel 

`{{ aws:ssm:/my/param }}`wird in den Wert des SSM-Parameters aufgelöst. `/my/param`

Diese Funktion unterstützt die folgenden SSM-Parametertypen:
+ Zeichenfolge — Ordnet dem AWSTOE String-Typ zu.
+ StringList — Ordnet dem AWSTOE `stringList` Typ zu.
+ SecureString — Ordnet dem AWSTOE String-Typ zu.

Weitere Informationen zum Parameterspeicher finden Sie unter [AWS Systems Manager Parameterspeicher](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) im *AWS Systems Manager Benutzerhandbuch*.

Sie können auch mithilfe eines SSM-Parameters `SecureString` auf AWS Secrets Manager Geheimnisse verweisen. Beispiel: `{{ aws:ssm:/aws/reference/secretsmanager/test/test-secret }}`. Weitere Informationen finden Sie unter [Referenzieren von AWS Secrets Manager Geheimnissen aus Parameterspeicher-Parametern](https://docs.aws.amazon.com/systems-manager/latest/userguide/integration-ps-secretsmanager.html).

**Wichtig**  
Image Builder schließt die `SecureString` Parameterauflösung aus seinen Protokollen aus. Sie sind jedoch auch dafür verantwortlich, sicherzustellen, dass vertrauliche Informationen nicht über Befehle protokolliert werden, die im Komponentendokument ausgegeben werden. Wenn Sie den `echo` Befehl beispielsweise mit einer sicheren Zeichenfolge verwenden, schreibt der Befehl einen Klartextwert in das Protokoll.

### Erforderliche IAM-Berechtigungen
<a name="toe-ssm-parameters-permissions"></a>

Um Systems Manager Manager-Parameter in Ihren Komponenten verwenden zu können, muss Ihre Instanzrolle über die `ssm:GetParameter` Berechtigung für die Parameterressource ARN verfügen. Beispiel:

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": "ssm:GetParameter",
			"Resource": "arn:aws:ssm:*:111122223333:parameter/ImageBuilder-*"
		}
	]
}
```

------

Für den Zugriff auf verschlüsselte Werte benötigen Sie außerdem die folgenden Berechtigungen:
+ Fügen Sie `kms:Decrypt` `SecureString` Parameter oder AWS Secrets Manager Werte hinzu, die verschlüsselt sind und von einem Kunden verwaltet werden AWS KMS key.
+ Fügen Sie hinzu`secretsmanager:GetSecretValue`, wenn Sie auf ein Secrets Manager Manager-Geheimnis verweisen.

### Verweisen Sie in einem Komponentendokument auf einen SSM-Parameter
<a name="toe-ssm-parameters-example"></a>

Das folgende Beispiel zeigt, wie auf einen Systems Manager Parameter Store-Parameter von Systems Manager Manager-Parametern in einer Komponente verwiesen wird:

```
name: UseSSMParameterVariable
description: This is a sample component document that prints out the value of an SSM Parameter. Never do this for a SecureString parameter.
schemaVersion: 1.0

phases:
  - name: verify
    steps:
      - name: EchoParameterValue
        action: ExecuteBash
        inputs:
          commands:
            - echo "Log SSM parameter name: /my/test/param, value {{ aws:ssm:/my/test/param }}."
```

### Dynamische Auflösung von Laufzeitvariablen für SSM-Parameter
<a name="toe-dynamic-vars"></a>

AWSTOE stellt die folgende integrierte Funktion bereit, die Sie innerhalb von Variablenreferenzen verwenden können, um Werte zur Laufzeit zu manipulieren oder zu transformieren.

#### Funktion auflösen
<a name="toe-function-resolve"></a>

Die `resolve` Funktion löst eine Variablenreferenz innerhalb einer anderen Variablenreferenz auf und ermöglicht so eine dynamische Referenzierung von Variablennamen. Dies ist nützlich, wenn Sie mit SSM-Parametern arbeiten, bei denen ein Teil des Parameterpfads variabel sein und als Dokumentparameter übergeben werden kann.

Die `resolve` Funktion unterstützt nur die dynamische Auflösung des Namensteils eines SSM-Parameters.

##### Syntax
<a name="toe-function-resolve-syntax"></a>

Das `dynamic_variable` folgende Beispiel stellt den Namen eines SSM-Parameters dar und muss einer der folgenden sein:
+ Eine SSM-Parameterreferenz (zum Beispiel) `aws:ssm:/my/param`
+ Eine Parameterreferenz für ein Komponentendokument (z. B.`parameter-name`)

```
{{ aws:ssm:resolve(dynamic_variable) }}
```

##### Beispiel: Einen SSM-Parameter zur Laufzeit auflösen
<a name="toe-function-resolve-examples"></a>

Das folgende Beispiel zeigt, wie die `resolve` Funktion in einem YAML-Komponentendokument verwendet wird:

```
name: SsmParameterTest
description: This component verifies an SSM parameter variable reference with the echo command.
schemaVersion: 1.0

parameters:
  - parameter-name:
      type: string
      description: "test"

phases:
  - name: validate
    steps:
      - name: PrintDynamicVariable
        action: ExecuteBash
        inputs:
          commands:
            - echo "{{ aws:ssm:resolve(parameter-name) }}"
```

# Verwenden Sie bedingte Konstrukte in AWSTOE
<a name="toe-conditional-constructs"></a>

Bedingte Konstrukte führen unterschiedliche Aktionen in Ihrem Komponentendokument aus, je nachdem, ob der angegebene bedingte Ausdruck als oder ausgewertet wird. `true` `false` Sie können das `if` Konstrukt verwenden, um den Ausführungsablauf in Ihrem Komponentendokument zu steuern.

## wenn Konstrukt
<a name="toe-conditional-if"></a>

Sie können das `if` Konstrukt verwenden, um zu bewerten, ob ein Schritt ausgeführt werden soll oder nicht. Standardmäßig wird der Schritt AWSTOE ausgeführt, wenn der `if` bedingte Ausdruck zu ausgewertet wird`true`, und wenn die Bedingung zu ausgewertet wird`false`, wird der Schritt AWSTOE übersprungen. Wenn ein Schritt übersprungen wird, wird er bei der AWSTOE Bewertung, ob die Phase und das Dokument erfolgreich ausgeführt wurden, als erfolgreicher Schritt behandelt.

**Anmerkung**  
Eine `if` Anweisung wird nur einmal ausgewertet, auch wenn der Schritt einen Neustart auslöst. Wenn ein Schritt neu gestartet wird, erkennt er, dass die `if` Anweisung bereits ausgewertet wurde, und setzt dort fort, wo sie aufgehört hat.

### Syntax
<a name="toe-conditional-if-syntax"></a>

```
if:
  - <conditional expression>:
      [then: <step action>]
      [else: <step action>]
```


| Tastenname | Erforderlich | Description | 
| --- | --- | --- | 
| bedingter Ausdruck | Ja |  Der bedingte Ausdruck kann genau einen der folgenden Typen von Operatoren auf oberster Ebene enthalten. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-conditional-constructs.html) Wenn Ihr Ausdruck mehrere Bedingungen erfüllen muss, verwenden Sie einen logischen Operator, um Ihre Bedingungen anzugeben.  | 
| then | Nein |  Definiert die Aktion, die ausgeführt werden soll, wenn der bedingte Ausdruck zu `true` ausgewertet wird.  | 
| else | Nein |  Definiert die Aktion, die ausgeführt werden soll, wenn der bedingte Ausdruck als Ergebnis ausgewertet wird. `false`  | 
| Schritt, Aktion | Bedingt |  Wenn Sie `then` oder verwenden`else`, müssen Sie eine der folgenden Schrittaktionen angeben: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-conditional-constructs.html)  | 

**Beispiel 1: Paket installieren**  
In den folgenden Beispielschritten aus einem AWSTOE Komponentendokument werden logische Operatoren verwendet, um einen Parameterwert zu testen und die entsprechenden Paketmanager-Befehle auszuführen, um eine Anwendung zu installieren, falls das Paket entpackt ist.

```
    - name: InstallUnzipAptGet
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'apt-get'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo apt-get update
            - sudo apt-get install -y unzip

    - name: InstallUnzipYum
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'yum'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo yum install -y unzip

    - name: InstallUnzipZypper
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'zypper'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo zypper refresh
            - sudo zypper install -y unzip
```

**Beispiel 2: Einen Schritt überspringen**  
Das folgende Beispiel zeigt zwei Möglichkeiten, einen Schritt zu überspringen. Einer verwendet einen logischen Operator, und einer verwendet einen Vergleichsoperator mit der `Skip` Schrittaktion.

```
# Creates a file if it does not exist using not
- name: CreateMyConfigFile-1
  action: ExecuteBash
  if:
    not:
      fileExists: '/etc/my_config'
  inputs:
    commands:
      - echo "Hello world" > '/etc/my_config'

# Creates a file if it does not exist using then and else
- name: CreateMyConfigFile-2
  action: ExecuteBash
  if:
    fileExists: '/etc/my_config'
    then: Skip
    else: Execute
  inputs:
    commands:
      - echo "Hello world" > '/etc/my_config'
```

# Verwenden Sie Vergleichsoperatoren in AWSTOE Komponentendokumenten
<a name="toe-comparison-operators"></a>

Sie können die folgenden Vergleichsoperatoren mit dem **[Bestätigen](toe-action-modules.md#action-modules-assertion)** Aktionsmodul und mit bedingten Ausdrücken verwenden, die den verwenden[wenn KonstruktSyntax](toe-conditional-constructs.md#toe-conditional-if). Ein Vergleichsoperator kann beispielsweise `stringIsEmpty` mit einem einzelnen Wert arbeiten oder einen Basiswert mit einem zweiten Wert (Variablenwert) vergleichen, um festzustellen, ob der bedingte Ausdruck als `true` oder `false` ausgewertet wird.

Wenn der Vergleich auf zwei Werten basiert, kann der zweite Wert eine verkettete Variable sein.

Beim Vergleich von Werten eines anderen Typs können vor dem Vergleich die folgenden Wertekonvertierungen erfolgen:
+ Wenn der Variablenwert bei numerischen Vergleichen eine Zeichenfolge ist, wird die Zeichenfolge vor der Auswertung in eine Zahl AWSTOE umgewandelt. Wenn die Konvertierung nicht möglich ist, kehrt der Vergleich zurück`false`. Wenn der Variablenwert beispielsweise ist`"1.0"`, funktioniert die Konvertierung, aber wenn der Variablenwert ist, schlägt `"a10"` die Konvertierung fehl.
+ Wenn der Variablenwert bei Zeichenkettenvergleichen eine Zahl ist, wird er vor der Auswertung in eine Zeichenfolge AWSTOE umgewandelt.

## Vergleiche Zeichenketten
<a name="toe-compare-strings"></a>

Die folgenden Vergleichsoperatoren verwenden Zeichenketten, um Werte zu vergleichen, auf Leerzeichen oder eine leere Zeichenfolge zu testen oder einen Eingabewert mit einem Regex-Muster zu vergleichen. Bei Zeichenfolgenvergleichen wird nicht zwischen Groß- und Kleinschreibung unterschieden und Leerzeichen am Anfang oder Ende der Zeichenketteneingaben werden nicht gekürzt.

**Operatoren zum Vergleich von Zeichenketten**
+ [stringIsEmpty](#stringIsEmpty)
+ [stringIsWhitespace](#stringIsWhitespace)
+ [stringEquals](#stringEquals)
+ [stringLessThan](#stringLessThan)
+ [stringLessThanEquals](#stringLessThanEquals)
+ [stringGreaterThan](#stringGreaterThan)
+ [stringGreaterThanEquals](#stringGreaterThanEquals)
+ [patternMatches](#patternMatches)

**stringIsEmpty**  
Der `stringIsEmpty` Operator kehrt zurück, `true` wenn die angegebene Zeichenfolge keine Zeichen enthält. Beispiel:  

```
# Evaluates to true
stringIsEmpty: ""

# Evaluates to false
stringIsEmpty: " "
				
# Evaluates to false
stringIsEmpty: "Hello."
```

**stringIsWhitespace**  
Testet, ob die für angegebene Zeichenfolge nur Leerzeichen `stringIsWhitespace` enthält. Beispiel:  

```
# Evaluates to true
stringIsWhitespace: "   "

# Evaluates to false
stringIsWhitespace: ""
				
# Evaluates to false
stringIsWhitespace: " Hello?"
```

**Zeichenfolge ist gleich**  
Testet, ob die für `stringEquals` angegebene Zeichenfolge exakt mit der im Parameter angegebenen Zeichenfolge übereinstimmt. `value` Beispiel:  

```
# Evaluates to true
stringEquals: 'Testing, testing...'
value: 'Testing, testing...'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'Hello again.'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'TESTING, TESTING....'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: '   Testing, testing...'
				
# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'Testing, testing...   '
```

**stringLessThan**  
Testet, ob die für angegebene Zeichenfolge kleiner als die im `value` Parameter angegebene Zeichenfolge `stringLessThan` ist. Beispiel:  

```
# Evaluates to true
# This comparison operator isn't case sensitive
stringlessThan: 'A'
value: 'a'

# Evaluates to true - 'a' is less than 'b'
stringlessThan: 'b'
value: 'a'

# Evaluates to true
# Numeric strings compare as less than alphabetic strings
stringlessThan: 'a'
value: '0'

# Evaluates to false
stringlessThan: '0'
value: 'a'
```

**stringLessThanEntspricht**  
Testet, ob die für angegebene Zeichenfolge kleiner oder gleich der im `value` Parameter angegebenen Zeichenfolge `stringLessThanEquals` ist. Beispiel:  

```
# Evaluates to true - 'a' is equal to 'a'
stringLessThanEquals: 'a'
value: 'a'

# Evaluates to true - since the comparison isn't case sensitive, 'a' is equal to 'A'
stringLessThanEquals: 'A'
value: 'a'

# Evaluates to true - 'a' is less than 'b'
stringLessThanEquals: 'b'
value: 'a'

# Evaluates to true - '0' is less than 'a'
stringLessThanEquals: 'a'
value: '0'

# Evaluates to false - 'a' is greater than '0'
stringLessThanEquals: '0'
value: 'a'
```

**stringGreaterThan**  
Testet, ob die für angegebene Zeichenfolge größer als die im `value` Parameter angegebene Zeichenfolge `stringGreaterThan` ist. Beispiel:  

```
# Evaluates to false - since the comparison isn't case sensitive, 'A' is equal to 'a'
stringGreaterThan: 'a'
value: 'A'

# Evaluates to true - 'b' is greater than 'a'
stringGreaterThan: 'a'
value: 'b'

# Evaluates to true - 'a' is greater than '0'
stringGreaterThan: '0'
value: 'a'

# Evaluates to false - '0' is less than 'a'
stringGreaterThan: 'a'
value: '0'
```

**stringGreaterThanEntspricht**  
Testet, ob die für angegebene Zeichenfolge größer oder gleich der im `value` Parameter angegebenen Zeichenfolge `stringGreaterThanEquals` ist. Beispiel:  

```
# Evaluates to true - 'a' is equal to 'A'
stringGreaterThanEquals: 'A'
value: 'a'

# Evaluates to true - 'b' is greater than 'a'
stringGreaterThanEquals: 'a'
value: 'b'

# Evaluates to true - 'a' is greater than '0'
stringGreaterThanEquals: '0'
value: 'a'

# Evaluates to false - '0' is less than 'a'
stringGreaterThanEquals: 'a'
value: '0'
```

**PatternMatches**  
Testet, ob die im `value` Parameter angegebene Zeichenfolge mit dem für angegebenen Regex-Muster übereinstimmt. `patternMatches` Der Vergleich verwendet das [Golang-Regexp-Paket, das](https://pkg.go.dev/regexp) der Syntax entspricht. RE2 Weitere Informationen zu RE2 Regeln finden Sie im [google/re2-Repository](https://github.com/google/re2/wiki/Syntax) unter. *GitHub*  
Das folgende Beispiel zeigt eine Musterübereinstimmung, die Folgendes zurückgibt`true`:  

```
patternMatches: '^[a-z]+$'
value: 'ThisIsValue'
```

## Zahlen vergleichen
<a name="toe-compare-numbers"></a>

Die folgenden Vergleichsoperatoren arbeiten mit Zahlen. Bei den für diese Operatoren bereitgestellten Werte muss es sich gemäß der YAML-Spezifikation um einen der folgenden Typen handeln. Die Support für numerische Vergleiche verwendet den Golang Big Package Comparison Operator, zum Beispiel: [func (\$1Float](https://pkg.go.dev/math/big#Float.Cmp)) Cmp.
+ Ganzzahl
+ Float (basiert auf float64, das Zahlen von -1.7e\$1308 bis \$11.7e\$1308 unterstützt)
+ Eine Zeichenfolge, die dem folgenden Regex-Muster entspricht: `^[-+]?([0-9]+[.])?[0-9]+$`

**Operatoren für den Zahlenvergleich**
+ [numberEquals](#numberEquals)
+ [numberLessThan](#numberLessThan)
+ [numberLessThanEquals](#numberLessThanEquals)
+ [numberGreaterThan](#numberGreaterThan)
+ [numberGreaterThanEquals](#numberGreaterThanEquals)

**Zahl ist gleich**  
Testet, ob die für `numberEquals` angegebene Zahl der im Parameter angegebenen Zahl entspricht. `value` Alle folgenden Beispielvergleiche geben Folgendes zurück`true`:  

```
# Values provided as a positive number
numberEquals: 1
value: 1

# Comparison value provided as a string
numberEquals: '1'
value: 1

# Value provided as a string
numberEquals: 1
value: '1'

# Values provided as floats
numberEquals: 5.0
value: 5.0

# Values provided as a negative number
numberEquals: -1
value: -1
```

**numberLessThan**  
Testet, ob die für angegebene Zahl kleiner als die im `value` Parameter angegebene Zahl `numberLessThan` ist. Beispiel:  

```
# Evaluates to true
numberLessThan: 2
value: 1

# Evaluates to true
numberLessThan: 2
value: 1.9

# Evaluates to false
numberLessThan: 2
value: '2'
```

**numberLessThanEntspricht**  
Testet, ob die für angegebene Zahl kleiner oder gleich der im `value` Parameter angegebenen Zahl `numberLessThanEquals` ist. Beispiel:  

```
# Evaluates to true
numberLessThanEquals: 2
value: 1

# Evaluates to true
numberLessThanEquals: 2
value: 1.9

# Evaluates to true
numberLessThanEquals: 2
value: '2'

# Evaluates to false
numberLessThanEquals: 2
value: 2.1
```

**numberGreaterThan**  
Testet, ob die für angegebene Zahl größer als die im `value` Parameter angegebene Zahl `numberGreaterThan` ist. Beispiel:  

```
# Evaluates to true
numberGreaterThan: 1
value: 2

# Evaluates to true
numberGreaterThan: 1
value: 1.1

# Evaluates to false
numberGreaterThan: 1
value: '1'
```

**numberGreaterThanEntspricht**  
Testet, ob die für angegebene Zahl größer oder gleich der im `value` Parameter angegebenen Zahl `numberGreaterThanEquals` ist. Beispiel:  

```
# Evaluates to true
numberGreaterThanEquals: 1
value: 2

# Evaluates to true
numberGreaterThanEquals: 1
value: 1.1

# Evaluates to true
numberGreaterThanEquals: 1
value: '1'

# Evaluates to false
numberGreaterThanEquals: 1
value: 0.8
```

## Überprüfen Sie die Dateien
<a name="toe-check-files"></a>

Die folgenden Vergleichsoperatoren überprüfen den Datei-Hash oder prüfen, ob eine Datei oder ein Ordner existiert.

**Datei- und Ordneroperatoren**
+ [binaryExists](#binaryExists)
+ [fileExists](#fileExists)
+ [folderExists](#folderExists)
+ [fileMD5Equals](#fileMD5Equals)
+ [fileSHA1Equals](#fileSHA1Equals)
+ [fileSHA256Equals](#fileSHA256Equals)
+ [fileSHA512Equals](#fileSHA512Equals)

**Binärdatei existiert**  
Testet, ob eine Anwendung im aktuellen Pfad verfügbar ist. Beispiel:  

```
binaryExists: 'foo'
```
Auf Linux- und macOS-Systemen funktioniert dies für eine Anwendung mit dem Namen *foo* genauso wie der folgende Bash-Befehl:**type *foo* >/dev/null 2>&1**, wobei **\$1? == 0** auf einen erfolgreichen Vergleich hinweist.  
Auf Windows-Systemen funktioniert dies für eine Anwendung mit dem Namen genauso wie der PowerShell Befehl *foo***& C:\$1Windows\$1System32\$1where.exe /Q *foo***, der **\$1LASTEXITCODE = 0** auf einen erfolgreichen Vergleich hinweist.

**Die Datei ist vorhanden**  
Testet, ob eine Datei im angegebenen Pfad existiert. Sie können einen absoluten oder relativen Pfad angeben. Wenn der von Ihnen angegebene Speicherort existiert und es sich um `true` eine Datei handelt, ergibt der Vergleich Folgendes: Beispiel:  

```
fileExists: '/path/to/file'
```
Auf Linux- und macOS-Systemen funktioniert dies genauso wie der folgende Bash-Befehl:**-d */path/to/file***, wobei **\$1? == 0** auf einen erfolgreichen Vergleich hinweist.  
Auf Windows-Systemen funktioniert das genauso wie der PowerShell Befehl**Test-Path -Path '*C:\$1path\$1to\$1file*' -PathType 'Leaf'**.

**Ordner ist vorhanden**  
Testet, ob ein Ordner im angegebenen Pfad existiert. Sie können einen absoluten oder relativen Pfad angeben. Wenn der von Ihnen angegebene Speicherort vorhanden ist und es sich um `true` einen Ordner handelt, ergibt der Vergleich Folgendes: Beispiel:  

```
folderExists: '/path/to/folder'
```
Auf Linux- und macOS-Systemen funktioniert dies genauso wie der folgende Bash-Befehl:**-d */path/to/folder***, wobei **\$1? == 0** auf einen erfolgreichen Vergleich hinweist.  
Auf Windows-Systemen funktioniert das genauso wie der PowerShell Befehl**Test-Path -Path '*C:\$1path\$1to\$1folder*' -PathType 'Container'**.

**Datei MD5 ist gleich**  
Testet, ob der MD5 Hash einer Datei einem bestimmten Wert entspricht. Beispiel:  

```
fileMD5Equals: '<MD5Hash>'
path: '/path/to/file'
```

**Datei SHA1 ist gleich**  
Testet, ob der SHA1 Hash einer Datei einem bestimmten Wert entspricht. Beispiel:  

```
fileSHA1Equals: '<SHA1Hash>'
path: '/path/to/file'
```

**Datei SHA256 ist gleich**  
Testet, ob der SHA256 Hash einer Datei einem bestimmten Wert entspricht. Beispiel:  

```
fileSHA256Equals: '<SHA256Hash>'
path: '/path/to/file'
```

**Datei SHA512 ist gleich**  
Testet, ob der SHA512 Hash einer Datei einem bestimmten Wert entspricht. Beispiel:  

```
fileSHA512Equals: '<SHA512Hash>'
path: '/path/to/file'
```

# Verwenden Sie logische Operatoren in AWSTOE Komponentendokumenten
<a name="toe-logical-operators"></a>

Sie können die folgenden logischen Operatoren verwenden, um bedingte Ausdrücke in Ihrem Komponentendokument hinzuzufügen oder zu ändern. AWSTOE wertet bedingte Ausdrücke in der Reihenfolge aus, in der die Bedingungen angegeben sind. Weitere Hinweise zu Vergleichsoperatoren für Komponentendokumente finden Sie unter[Verwenden Sie Vergleichsoperatoren in AWSTOE Komponentendokumenten](toe-comparison-operators.md).

**und**  
Mit dem `and` Operator können Sie zwei oder mehr Vergleiche als einen einzigen Ausdruck auswerten. Der Ausdruck wird ausgewertet, `true` wenn alle Bedingungen in der Liste erfüllt sind. Andernfalls wird der Ausdruck zu ausgewertet. `false`  
**Beispiele:**  
Im folgenden Beispiel werden zwei Vergleiche durchgeführt — eine Zeichenfolge und eine Zahl. Beide Vergleiche sind wahr, sodass der Ausdruck als wahr ausgewertet wird.

```
and:
  - stringEquals: 'test_string'
    value: 'test_string'
  - numberEquals: 1
    value: 1
```
Im folgenden Beispiel werden auch zwei Vergleiche durchgeführt. Der erste Vergleich ist falsch. An diesem Punkt stoppt die Auswertung und der zweite Vergleich wird übersprungen. Der Ausdruck wird zu ausgewertet. `false`  

```
and:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 1
```

**oder**  
Mit dem `or` Operator können Sie zwei oder mehr Vergleiche als einen einzigen Ausdruck auswerten. Der Ausdruck wird ausgewertet, `true` wenn einer der angegebenen Vergleiche wahr ist. Wenn keiner der angegebenen Vergleiche als Ergebnis ausgewertet wird`true`, wird der Ausdruck als ausgewertet. `false`  
**Beispiele:**  
Im folgenden Beispiel werden zwei Vergleiche durchgeführt — eine Zeichenfolge und eine Zahl. Der erste Vergleich ist wahr, daher wird der Ausdruck zu ausgewertet `true` und der zweite Vergleich wird übersprungen.

```
or:
  - stringEquals: 'test_string'
    value: 'test_string'
  - numberEquals: 1
    value: 3
```
Im folgenden Beispiel werden auch zwei Vergleiche durchgeführt. Der erste Vergleich ist falsch, und die Auswertung wird fortgesetzt. Der zweite Vergleich ist wahr, daher wird der Ausdruck zu `true` ausgewertet.  

```
or:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 1
```
Im letzten Beispiel sind beide Vergleiche falsch, sodass der Ausdruck zu ausgewertet wird. `false`  

```
or:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 3
```

**nicht**  
Mit dem `not` Operator können Sie einen einzelnen Vergleich negieren. Der Ausdruck ergibt, `true` ob der Vergleich falsch ist. Wenn der Vergleich wahr ist, wird der Ausdruck zu ausgewertet. `false`  
**Beispiele:**  
Im folgenden Beispiel wird ein Zeichenkettenvergleich durchgeführt. Der Vergleich ist falsch, daher wird der Ausdruck zu `true` ausgewertet.

```
not:
  - stringEquals: 'test_string'
    value: 'Hello world!'
```
Im folgenden Beispiel wird auch ein Zeichenfolgenvergleich durchgeführt. Der Vergleich ist wahr, daher wird der Ausdruck zu `false` ausgewertet.  

```
not:
  - stringEquals: 'test_string'
    value: 'test_string'
```

# Verwenden Sie Looping-Konstrukte in AWSTOE
<a name="toe-looping-constructs"></a>

Dieser Abschnitt enthält Informationen, die Ihnen beim Erstellen von Schleifenkonstrukten in der helfen sollen. AWSTOE Schleifenkonstrukte definieren eine sich wiederholende Abfolge von Befehlen. Sie können die folgenden Typen von Schleifenkonstrukten verwenden in: AWSTOE
+ `for`Konstrukte — Iterieren Sie über eine begrenzte Folge von ganzen Zahlen.
+ `forEach`Konstrukte
  + `forEach`Schleife mit Eingabeliste — Iteriert über eine endliche Sammlung von Zeichenketten. 
  + `forEach`Schleife mit begrenzter Liste — Iteriert über eine endliche Sammlung von Zeichenketten, die durch ein Trennzeichen verbunden sind.

**Anmerkung**  
Schleifenkonstrukte unterstützen nur Zeichenkettendatentypen.

**Topics**
+ [Referenz-Iterationsvariablen](#toe-loop-iteration-variables)
+ [Arten von Looping-Konstrukten](#toe-loop-types)
+ [Felder für Schritte](#toe-loop-step-fields)
+ [Ausgaben für Schritt und Iteration](#toe-loop-step-output)

## Referenz-Iterationsvariablen
<a name="toe-loop-iteration-variables"></a>

Um auf den Index und den Wert der aktuellen Iterationsvariablen zu verweisen, `{{ loop.* }}` muss der Referenzausdruck im Eingabekörper eines Schritts verwendet werden, der ein Schleifenkonstrukt enthält. Dieser Ausdruck kann nicht verwendet werden, um auf die Iterationsvariablen des Schleifenkonstrukts eines anderen Schritts zu verweisen.

Der Referenzausdruck besteht aus den folgenden Elementen:
+ `{{ loop.index }}`— Die Ordinalposition der aktuellen Iteration, die indexiert ist. `0` 
+ `{{ loop.value }}`— Der Wert, der der aktuellen Iterationsvariablen zugeordnet ist. 

### Namen von Schleifen
<a name="toe-loop-iteration-variables-names"></a>

 Alle Schleifenkonstrukte haben ein optionales Namensfeld zur Identifizierung. Wenn ein Schleifenname angegeben wird, kann er verwendet werden, um auf Iterationsvariablen im Eingabekörper des Schritts zu verweisen. Um auf die Iterationsindizes und Werte einer benannten Schleife zu verweisen, verwenden Sie `{{ <loop_name>.* }}` with `{{ loop.* }}` im Eingabebereich des Schritts. Dieser Ausdruck kann nicht verwendet werden, um auf das benannte Schleifenkonstrukt eines anderen Schritts zu verweisen. 

Der Referenzausdruck besteht aus den folgenden Elementen:
+ `{{ <loop_name>.index }}`— Die Ordinalposition der aktuellen Iteration der benannten Schleife, die indexiert ist. `0`
+ `{{ <loop_name>.value }}`— Der Wert, der der aktuellen Iterationsvariablen der benannten Schleife zugeordnet ist.

### Referenzausdrücke auflösen
<a name="toe-loop-iteration-variables-expressions"></a>

Der AWSTOE löst Referenzausdrücke wie folgt auf: 
+ `{{ <loop_name>.* }}`— AWSTOE löst diesen Ausdruck mit der folgenden Logik auf:
  + Wenn die Schleife des aktuell laufenden Schritts mit dem `<loop_name>` Wert übereinstimmt, wird der Referenzausdruck in das Schleifenkonstrukt des aktuell laufenden Schritts aufgelöst.
  + `<loop_name>`wird in das benannte Schleifenkonstrukt aufgelöst, wenn es im aktuell laufenden Schritt vorkommt.
+ `{{ loop.* }}`— AWSTOE löst den Ausdruck unter Verwendung des Schleifenkonstrukts auf, das im aktuell ausgeführten Schritt definiert wurde.

Wenn Referenzausdrücke innerhalb eines Schritts verwendet werden, der keine Schleife enthält, werden die Ausdrücke AWSTOE nicht aufgelöst und sie erscheinen im Schritt ohne Ersatz. 

**Anmerkung**  
Referenzausdrücke müssen in doppelte Anführungszeichen eingeschlossen werden, damit sie vom YAML-Compiler korrekt interpretiert werden.

## Arten von Looping-Konstrukten
<a name="toe-loop-types"></a>

Dieser Abschnitt enthält Informationen und Beispiele zu Schleifenkonstrukttypen, die in der verwendet werden können. AWSTOE

**Topics**
+ [`for`Schleife](#toe-loop-types-for)
+ [`forEach`Schleife mit Eingabeliste](#toe-loop-types-foreach)
+ [`forEach`Schleife mit begrenzter Liste](#toe-loop-types-foreach-delimited)

### `for`Schleife
<a name="toe-loop-types-for"></a>

Die `for` Schleife iteriert über einen Bereich von ganzen Zahlen, die innerhalb einer Grenze angegeben sind, die durch den Anfang und das Ende der Variablen umrissen wird. Die iterierenden Werte befinden sich in der Menge `[start, end]` und enthalten Grenzwerte.

AWSTOE überprüft die `updateBy` Werte`start`, und`end`, um sicherzustellen, dass die Kombination nicht zu einer Endlosschleife führt.

`for`Schleifenschema

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      for:
        start: int
        end: int
        updateBy: int
inputs:
  ...
```


**`for`Schleifeneingabe**  

| Feld | Description | Typ | Erforderlich | Standard | 
| --- | --- | --- | --- | --- | 
|  `name`  | Eindeutiger Name der Schleife. Er muss im Vergleich zu anderen Schleifennamen in derselben Phase eindeutig sein. |  Zeichenfolge  |  Nein  |  ""  | 
|  `start`  | Startwert der Iteration. Akzeptiert keine Verkettung von Ausdrücken.  |  Ganzzahl  |  Ja  |  –  | 
| `end` | Endwert der Iteration. Akzeptiert keine Verkettung von Ausdrücken.  | Ganzzahl | Ja | – | 
| `updateBy` | Unterschied, um den ein iterierender Wert durch Addition aktualisiert wird. Es muss ein negativer oder positiver Wert ungleich Null sein. Akzeptiert keine Verkettung von Ausdrücken.  | Ganzzahl | Ja | – | 

`for`Beispiel für eine Schleifeneingabe

```
  - name: "CalculateFileUploadLatencies"
    action: "ExecutePowerShell"
    loop:
      for:
        start: 100000
        end: 1000000
        updateBy: 100000
    inputs:
      commands:
        - |
          $f = new-object System.IO.FileStream c:\temp\test{{ loop.index }}.txt, Create, ReadWrite
          $f.SetLength({{ loop.value }}MB)
          $f.Close()
        - c:\users\administrator\downloads\latencyTest.exe --file c:\temp\test{{ loop.index }}.txt
        - AWS s3 cp c:\users\administrator\downloads\latencyMetrics.json s3://bucket/latencyMetrics.json
        - |
          Remove-Item -Path c:\temp\test{{ loop.index }}.txt
          Remove-Item -Path c:\users\administrator\downloads\latencyMetrics.json
```

### `forEach`Schleife mit Eingabeliste
<a name="toe-loop-types-foreach"></a>

Die `forEach` Schleife iteriert anhand einer expliziten Werteliste, bei der es sich um Zeichenketten und verkettete Ausdrücke handeln kann. 

`forEach`Schleife mit Eingabelistenschema

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      forEach:
        - "string"
    inputs:
  ...
```


**`forEach`Schleife mit Eingabe in die Eingabeliste**  

| Feld | Description | Typ | Erforderlich | Standard | 
| --- | --- | --- | --- | --- | 
|  `name`  | Eindeutiger Name der Schleife. Er muss im Vergleich zu anderen Schleifennamen in derselben Phase eindeutig sein. |  Zeichenfolge  |  Nein  |  ""  | 
|  Liste der Zeichenketten der `forEach` Schleife  |  Liste der Zeichenketten für die Iteration. Akzeptiert verkettete Ausdrücke als Zeichenketten in der Liste. Verkettete Ausdrücke müssen in doppelte Anführungszeichen eingeschlossen werden, damit der YAML-Compiler sie korrekt interpretieren kann.  |  Liste von Zeichenfolgen  |  Ja  |  –  | 

`forEach`Schleife mit Eingabeliste, Beispiel 1

```
  - name: "ExecuteCustomScripts"
    action: "ExecuteBash"
    loop:
      name: BatchExecLoop
      forEach:
        - /tmp/script1.sh
        - /tmp/script2.sh
        - /tmp/script3.sh
    inputs:
      commands:
        - echo "Count {{ BatchExecLoop.index }}"
        - sh "{{ loop.value }}"
        - |
          retVal=$?
          if [ $retVal -ne 0 ]; then
            echo "Failed"
          else
            echo "Passed"
         fi
```

`forEach`Schleife mit Eingabeliste, Beispiel 2

```
  - name: "RunMSIWithDifferentArgs"
    action: "ExecuteBinary"
    loop:
      name: MultiArgLoop
      forEach:
        - "ARG1=C:\Users ARG2=1"
        - "ARG1=C:\Users"
        - "ARG1=C:\Users ARG3=C:\Users\Administrator\Documents\f1.txt"
    inputs:
      commands:
        path: "c:\users\administrator\downloads\runner.exe"
        args:
          - "{{ MultiArgLoop.value }}"
```

`forEach`Schleife mit Eingabeliste, Beispiel 3

```
  - name: "DownloadAllBinaries"
    action: "S3Download"
    loop:
      name: MultiArgLoop
      forEach:
        - "bin1.exe"
        - "bin10.exe"
        - "bin5.exe"
    inputs:
      - source: "s3://bucket/{{ loop.value }}"
        destination: "c:\temp\{{ loop.value }}"
```

### `forEach`Schleife mit begrenzter Liste
<a name="toe-loop-types-foreach-delimited"></a>

Die Schleife iteriert über eine Zeichenfolge, die Werte enthält, die durch ein Trennzeichen getrennt sind. Um über die Bestandteile der Zeichenfolge zu iterieren, AWSTOE verwendet sie das Trennzeichen, um die Zeichenfolge in ein Array aufzuteilen, das für die Iteration geeignet ist. 

`forEach`Schleife mit einem durch Trennzeichen getrennten Listenschema

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      forEach:
        list: "string"
        delimiter: ".,;:\n\t -_"
    inputs:
  ...
```


**`forEach`Schleife mit begrenzter Listeneingabe**  

| Feld | Description | Typ | Erforderlich | Standard | 
| --- | --- | --- | --- | --- | 
|  `name`  | Der Schleife wurde ein eindeutiger Name gegeben. Er sollte im Vergleich zu anderen Schleifennamen in derselben Phase eindeutig sein. |  Zeichenfolge  |  Nein  |  ""  | 
|  `list`  | Eine Zeichenfolge, die aus einzelnen Zeichenketten besteht, die durch ein gemeinsames Trennzeichen miteinander verbunden sind. Akzeptiert auch verkettete Ausdrücke. Stellen Sie bei verketteten Ausdrücken sicher, dass diese in doppelte Anführungszeichen eingeschlossen sind, damit sie vom YAML-Compiler korrekt interpretiert werden können. | Zeichenfolge |  Ja  |  –  | 
| `delimiter` | Zeichen, das verwendet wird, um Zeichenketten innerhalb eines Blocks voneinander zu trennen. Die Standardeinstellung ist das Kommazeichen. Aus der angegebenen Liste ist nur ein Trennzeichen zulässig: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-looping-constructs.html) Verkettungsausdrücke können nicht verwendet werden. | Zeichenfolge | Nein | Komma: "," | 

**Anmerkung**  
Der Wert von `list` wird als unveränderliche Zeichenfolge behandelt. Wenn die Quelle von während der Laufzeit geändert `list` wird, wird dies während der Ausführung nicht berücksichtigt.

`forEach`Schleife mit begrenzter Liste, Beispiel 1

In diesem Beispiel wird das folgende Verkettungsausdrucksmuster verwendet, um auf die Ausgabe eines anderen Schritts zu verweisen:. `<phase_name>.<step_name>.[inputs | outputs].<var_name>`

```
  - name: "RunMSIs"
    action: "ExecuteBinary"
    loop:
      forEach:
        list: "{{ build.GetAllMSIPathsForInstallation.outputs.stdout }}"
        delimiter: "\n"
    inputs:
      commands:
        path: "{{ loop.value }}"
```

`forEach`Schleife mit begrenzter Liste, Beispiel 2

```
  - name: "UploadMetricFiles"
    action: "S3Upload"
    loop:
      forEach:
        list: "/tmp/m1.txt,/tmp/m2.txt,/tmp/m3.txt,..."
    inputs:
      commands:
        - source: "{{ loop.value }}"
          destination: "s3://bucket/key/{{ loop.value }}"
```

## Felder für Schritte
<a name="toe-loop-step-fields"></a>

Loops sind Teil eines Schritts. Felder, die sich auf die Ausführung eines Schritts beziehen, werden nicht auf einzelne Iterationen angewendet. Schrittfelder gelten nur auf Schrittebene, und zwar wie folgt:
+ *timeoutSeconds* — Alle Iterationen der Schleife müssen innerhalb des in diesem Feld angegebenen Zeitraums ausgeführt werden. Wenn bei der Schleifenausführung eine AWSTOE Zeitüberschreitung eintritt, wird die Wiederholungsrichtlinie des Schritts ausgeführt und der Timeout-Parameter für jeden neuen Versuch zurückgesetzt. Wenn der Schleifenlauf nach Erreichen der maximalen Anzahl von Wiederholungen den Timeout-Wert überschreitet, gibt die Fehlermeldung des Schritts an, dass für den Schleifenlauf eine Zeitüberschreitung aufgetreten ist. 
+ *onFailure* — Die Fehlerbehandlung wird wie folgt auf den Schritt angewendet:
  + Wenn *onFailure* auf gesetzt ist`Abort`, wird die Schleife AWSTOE beendet und der Schritt gemäß der Wiederholungsrichtlinie wiederholt. AWSTOE Markiert den aktuellen Schritt nach der maximalen Anzahl von Wiederholungsversuchen als fehlgeschlagen und beendet die Ausführung des Prozesses.

    AWSTOE setzt den Statuscode für die übergeordnete Phase und das Dokument auf`Failed`.
**Anmerkung**  
Nach dem fehlgeschlagenen Schritt werden keine weiteren Schritte ausgeführt.
  + Wenn *onFailure* auf gesetzt ist`Continue`, wird die Schleife AWSTOE beendet und der Schritt gemäß der Wiederholungsrichtlinie wiederholt. AWSTOE Markiert den aktuellen Schritt nach der maximalen Anzahl von Wiederholungsversuchen als fehlgeschlagen und fährt mit der Ausführung des nächsten Schritts fort.

    AWSTOE setzt den Statuscode für die übergeordnete Phase und das Dokument auf`Failed`.
  + Wenn *onFailure* auf gesetzt ist`Ignore`, wird die Schleife AWSTOE beendet und der Schritt gemäß der Wiederholungsrichtlinie wiederholt. AWSTOE Markiert den aktuellen Schritt nach der maximalen Anzahl von Wiederholungsversuchen als `IgnoredFailure` und fährt mit der Ausführung des nächsten Schritts fort.

    AWSTOE setzt den Statuscode für die übergeordnete Phase und das Dokument auf`SuccessWithIgnoredFailure`.
**Anmerkung**  
Dies wird immer noch als erfolgreiche Ausführung angesehen, enthält jedoch Informationen, die Sie darüber informieren, dass ein oder mehrere Schritte fehlgeschlagen sind und ignoriert wurden.
+ *maxAttempts* — Bei jeder Wiederholung werden der gesamte Schritt und alle Iterationen von Anfang an ausgeführt.
+ *Status* — Der Gesamtstatus der Ausführung eines Schritts. `status`stellt nicht den Status einzelner Iterationen dar. Der Status eines Schritts mit Schleifen wird wie folgt bestimmt:
  + Wenn eine einzelne Iteration nicht ausgeführt werden kann, weist der Status eines Schritts auf einen Fehler hin.
  + Wenn alle Iterationen erfolgreich sind, deutet der Status eines Schritts auf Erfolg hin.
+ *StartTime* — Die Gesamtstartzeit der Ausführung eines Schritts. Stellt nicht die Startzeit einzelner Iterationen dar.
+ *EndTime* — Die Gesamtendzeit der Ausführung eines Schritts. Stellt nicht die Endzeit einzelner Iterationen dar.
+ *FailureMessage — Schließt* die Iterationsindizes ein, die bei Fehlern ohne Timeout fehlgeschlagen sind. Bei Timeoutfehlern gibt die Meldung an, dass der Schleifenlauf fehlgeschlagen ist. Es werden keine individuellen Fehlermeldungen für jede Iteration bereitgestellt, um die Größe der Fehlermeldungen zu minimieren.

## Ausgaben für Schritt und Iteration
<a name="toe-loop-step-output"></a>

Jede Iteration enthält eine Ausgabe. Am Ende eines Schleifenlaufs AWSTOE konsolidiert es alle erfolgreichen Iterationsausgaben in. `detailedOutput.json` Die konsolidierten Ausgaben sind eine Zusammenstellung von Werten, die zu den entsprechenden Ausgabeschlüsseln gehören, wie sie im Ausgabeschema des Aktionsmoduls definiert sind. Das folgende Beispiel zeigt, wie die Ausgaben konsolidiert werden:

**Ausgabe von `ExecuteBash` für Iteration 1**

```
{
	"stdout":"Hello"
}
```

**Ausgabe von `ExecuteBash` für Iteration 2**

```
{
	"stdout":"World"
}
```

**Ausgabe von `ExecuteBash` für Schritt**

```
{
	"stdout":"Hello\nWorld"
}
```

Zum Beispiel `ExecuteBinary` sind `ExecuteBash``ExecutePowerShell`, und Aktionsmodule, die `STDOUT` als Aktionsmodulausgabe zurückgegeben werden. `STDOUT`Nachrichten werden mit dem neuen Zeilenzeichen verknüpft, um die Gesamtausgabe des Step-In zu erzeugen`detailedOutput.json`.

AWSTOE konsolidiert nicht die Ausgaben erfolgloser Iterationen.

# Aktionsmodule, die vom AWSTOE Komponentenmanager unterstützt werden
<a name="toe-action-modules"></a>

Image-Building-Services wie EC2 Image Builder verwenden AWSTOE Aktionsmodule, um die EC2-Instances zu konfigurieren, die zum Erstellen und Testen von benutzerdefinierten Computer-Images verwendet werden. In diesem Abschnitt werden die Funktionen häufig verwendeter AWSTOE Aktionsmodule und deren Konfiguration sowie Beispiele beschrieben.

Komponenten werden mit YAML-Dokumenten im Klartext verfasst. Weitere Hinweise zur Dokumentensyntax finden Sie unter. [Verwenden Sie das AWSTOE Component Document Framework für benutzerdefinierte Komponenten](toe-use-documents.md)

**Anmerkung**  
Alle Aktionsmodule verwenden dasselbe Konto wie der Systems Manager Manager-Agent, wenn sie ausgeführt werden, was `root` unter Linux und `NT Authority\SYSTEM` unter Windows der Fall ist.

Der folgende Querverweis kategorisiert Aktionsmodule nach der Art der Aktionen, die sie ausführen.

 

**Allgemeine Ausführung**
+ [Assert (Linux, Windows, macOS)](#action-modules-assertion)
+ [ExecuteBash (Linux, macOS)](#action-modules-executebash)
+ [ExecuteBinary (Linux, Windows, macOS)](#action-modules-executebinary)
+ [ExecuteDocument (Linux, Windows, macOS)](#action-modules-executedocument)
+ [ExecutePowerShell (Windows)](#action-modules-executepowershell)

 

**Datei herunterladen und hochladen**
+ [S3 herunterladen (Linux, Windows, macOS)](#action-modules-s3download)
+ [S3 hochladen (Linux, Windows, macOS)](#action-modules-s3upload)
+ [WebDownload (Linux, Windows, macOS)](#action-modules-webdownload)

 

**Operationen im Dateisystem**
+ [AppendFile (Linux, Windows, macOS)](#action-modules-appendfile)
+ [CopyFile (Linux, Windows, macOS)](#action-modules-copyfile)
+ [CopyFolder (Linux, Windows, macOS)](#action-modules-copyfolder)
+ [CreateFile (Linux, Windows, macOS)](#action-modules-createfile)
+ [CreateFolder (Linux, Windows, macOS)](#action-modules-createfolder)
+ [CreateSymlink (Linux, Windows, macOS)](#action-modules-createsymlink)
+ [DeleteFile (Linux, Windows, macOS)](#action-modules-deletefile)
+ [DeleteFolder (Linux, Windows, macOS)](#action-modules-deletefolder)
+ [ListFiles (Linux, Windows, macOS)](#action-modules-listfiles)
+ [MoveFile (Linux, Windows, macOS)](#action-modules-movefile)
+ [MoveFolder (Linux, Windows, macOS)](#action-modules-movefolder)
+ [ReadFile (Linux, Windows, macOS)](#action-modules-readfile)
+ [SetFileEncoding (Linux, Windows, macOS)](#action-modules-setfileencoding)
+ [SetFileOwner (Linux, Windows, macOS)](#action-modules-setfileowner)
+ [SetFolderOwner (Linux, Windows, macOS)](#action-modules-setfolderowner)
+ [SetFilePermissions (Linux, Windows, macOS)](#action-modules-setfilepermissions)
+ [SetFolderPermissions (Linux, Windows, macOS)](#action-modules-setfolderpermissions)

 

**Aktionen zur Softwareinstallation**
+ [Installieren Sie MSI (Windows)](#action-modules-install-msi)
+ [Deinstallieren Sie MSI (Windows)](#action-modules-uninstall-msi)

 

**Systemaktionen**
+ [Neustart (Linux, Windows)](#action-modules-reboot)
+ [SetRegistry (Windows)](#action-modules-setregistry)
+ [OS aktualisieren (Linux, Windows)](#action-modules-updateos)

## Allgemeine Ausführungsmodule
<a name="action-modules-general-execution"></a>

Der folgende Abschnitt enthält Einzelheiten zu Aktionsmodulen, die Befehle ausführen und den Ausführungsablauf steuern.

**Topics**
+ [Assert (Linux, Windows, macOS)](#action-modules-assertion)
+ [ExecuteBash (Linux, macOS)](#action-modules-executebash)
+ [ExecuteBinary (Linux, Windows, macOS)](#action-modules-executebinary)
+ [ExecuteDocument (Linux, Windows, macOS)](#action-modules-executedocument)
+ [ExecutePowerShell (Windows)](#action-modules-executepowershell)

### Assert (Linux, Windows, macOS)
<a name="action-modules-assertion"></a>

Das **Assert-Aktionsmodul** führt Wertvergleiche mit [Vergleichsoperatoren](toe-comparison-operators.md) oder [Logische Operatoren](toe-logical-operators.md) als Eingabe durch. Das Ergebnis des Operatorausdrucks (wahr oder falsch) gibt den allgemeinen Erfolgs- oder Fehlerstatus für den Schritt an.

Ergibt der Vergleich oder der Ausdruck des logischen Operators das Ergebnis`true`, wird der Schritt als `Success` markiert. Andernfalls ist der Schritt als `Failed` markiert. Schlägt der Schritt fehl, entscheidet der `onFailure` Parameter über das Ergebnis des Schritts.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| input | Enthält einen einzelnen Vergleichs- oder logischen Operator. Beachten Sie, dass logische Operatoren mehr als einen Vergleichsoperator enthalten können. | Dies ist je nach Operator variabel | Ja | 

**Eingabebeispiel: Ein einfacher Vergleich mit dem `stringEquals` Vergleichsoperator**

In diesem Beispiel wird das Ergebnis als ausgewertet. `true`

```
- name: StringComparison
  action: Assert
  inputs:
    stringEquals: '2.1.1'
    value: '{{ validate.ApplicationVersion.outputs.stdout }}'
```

**Eingabebeispiel: Regex-Vergleiche mit dem Vergleichsoperator `patternMatches`**

Diese Beispiele werden alle zu ausgewertet. `true`

```
- name: Letters only
  action: Assert
  inputs:
    patternMatches: '^[a-zA-Z]+$'
    value: 'ThisIsOnlyLetters'

- name: Letters and spaces only
  action: Assert
  inputs:
    patternMatches: '^[a-zA-Z\s]+$'
    value: 'This text contains spaces'
  
- name: Numbers only
  action: Assert
  inputs:
    patternMatches: '^[0-9]+$'
    value: '1234567890'
```

**Eingabebeispiel: Verschachtelte Vergleiche mit logischen Operatoren und verketteten Variablen**

Das folgende Beispiel zeigt verschachtelte Vergleiche mit logischen Operatoren, die Vergleiche mit verketteten Variablen verwenden. Das gibt `Assert` an, `true` ob eine der folgenden Aussagen zutrifft:
+ Der `ApplicationVersion` ist größer als `2.0` und ist `CPUArchitecture` gleich`arm64`.
+ Das `CPUArchitecture` Gleiche`x86_64`.

```
- name: NestedComparisons
  action: Assert
  inputs:
    or: # <- first level deep
      - and: # <- second level deep
          - numberGreaterThan: 2.0 # <- third level deep
            value: '{{ validate.ApplicationVersion.outputs.stdout }}'
          - stringEquals: 'arm64'
            value: '{{ validate.CPUArchitecture.outputs.stdout }}'
      - stringEquals: 'x86_64'
        value: '{{ validate.CPUArchitecture.outputs.stdout }}'
```

**Ausgabe:**

Die Ausgabe von an `Assert` ist Erfolg oder Misserfolg des Schritts.

### ExecuteBash (Linux, macOS)
<a name="action-modules-executebash"></a>

Das **ExecuteBash**Aktionsmodul ermöglicht es Ihnen, Bash-Skripte mit Inline-Shell-Code/Befehlen auszuführen. Dieses Modul unterstützt Linux. 

Alle Befehle und Anweisungen, die Sie im Befehlsblock angeben, werden in eine Datei konvertiert (zum Beispiel`input.sh`) und mit der Bash-Shell ausgeführt. Das Ergebnis der Ausführung der Shell-Datei ist der Exit-Code des Schritts. 

Das **ExecuteBash**Modul verarbeitet Systemneustarts, wenn das Skript mit dem Exit-Code beendet wird. `194` Nach der Initiierung führt das Programm eine der folgenden Aktionen aus:
+ Die Anwendung übergibt dem Aufrufer den Exit-Code, wenn er vom Systems Manager Agent ausgeführt wird. Der Systems Manager Agent führt den Systemneustart durch und führt denselben Schritt aus, der den Neustart initiiert hat, wie unter [Managed Instance from Scripts neu starten](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html) beschrieben.
+ Die Anwendung speichert die aktuellen Daten`executionstate`, konfiguriert einen Neustart-Trigger, um die Anwendung erneut auszuführen, und startet das System neu.

Nach dem Systemneustart führt die Anwendung denselben Schritt aus, der den Neustart initiiert hat. Wenn Sie diese Funktionalität benötigen, müssen Sie idempotente Skripten schreiben, die mehrere Aufrufe desselben Shell-Befehls verarbeiten können.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| commands | Enthält eine Liste von Anweisungen oder Befehlen, die gemäß der Bash-Syntax ausgeführt werden sollen. Mehrzeiliges YAML ist zulässig. | Auflisten | Ja | 

**Eingabebeispiel: Vor und nach einem Neustart**

```
name: ExitCode194Example
description: This shows how the exit code can be used to restart a system with ExecuteBash
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: RestartTrigger
        action: ExecuteBash
        inputs:
          commands:
            - |
              REBOOT_INDICATOR=/var/tmp/reboot-indicator
              if [ -f "${REBOOT_INDICATOR}" ]; then
                echo 'The reboot file exists. Deleting it and exiting with success.'
                rm "${REBOOT_INDICATOR}"
                exit 0
              fi
              echo 'The reboot file does not exist. Creating it and triggering a restart.'
              touch "${REBOOT_INDICATOR}"
              exit 194
```


**Ausgabe**  

| Feld | Description | Typ | 
| --- | --- | --- | 
| stdout | Standardausgabe der Befehlsausführung. | Zeichenfolge | 

Wenn Sie einen Neustart starten und den Exit-Code `194` als Teil des Aktionsmoduls zurückgeben, wird der Build mit demselben Aktionsmodulschritt fortgesetzt, der den Neustart initiiert hat. Wenn Sie einen Neustart ohne den Exit-Code starten, schlägt der Build-Prozess möglicherweise fehl.

**Ausgabebeispiel: Vor dem Neustart (zum ersten Mal über das Dokument)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**Ausgabebeispiel: Nach dem Neustart (zweites Mal durch das Dokument)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

### ExecuteBinary (Linux, Windows, macOS)
<a name="action-modules-executebinary"></a>

Das **ExecuteBinary**Aktionsmodul ermöglicht es Ihnen, Binärdateien mit einer Liste von Befehlszeilenargumenten auszuführen.

Das **ExecuteBinary**Modul verarbeitet Systemneustarts, wenn die Binärdatei mit dem Exit-Code `194` (Linux) oder `3010` (Windows) beendet wird. In diesem Fall führt das Programm eine der folgenden Aktionen aus:
+ Die Anwendung übergibt dem Aufrufer den Exit-Code, wenn er vom Systems Manager Agent ausgeführt wird. Der Systems Manager Agent übernimmt den Neustart des Systems und führt denselben Schritt aus, der den Neustart initiiert hat, wie unter [Managed Instance from Scripts neu starten](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html) beschrieben.
+ Die Anwendung speichert den aktuellen Status`executionstate`, konfiguriert einen Neustart-Trigger, um die Anwendung erneut auszuführen, und startet das System neu.

Nach dem Neustart des Systems führt die Anwendung denselben Schritt aus, der den Neustart initiiert hat. Wenn Sie diese Funktionalität benötigen, müssen Sie idempotente Skripten schreiben, die mehrere Aufrufe desselben Shell-Befehls verarbeiten können.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| path | Der Pfad zur Binärdatei für die Ausführung. | Zeichenfolge | Ja | 
| arguments | Enthält eine Liste von Befehlszeilenargumenten, die beim Ausführen der Binärdatei verwendet werden sollen. | Liste der Zeichenketten | Nein | 

**Eingabebeispiel: .NET installieren**

```
  - name: "InstallDotnet"
    action: ExecuteBinary
    inputs:
      path: C:\PathTo\dotnet_installer.exe
      arguments:
        - /qb
        - /norestart
```


**Ausgabe**  

| Feld | Description | Typ | 
| --- | --- | --- | 
| stdout | Standardausgabe der Befehlsausführung. | Zeichenfolge | 

**Output example**

```
{
	"stdout": "success"
}
```

### ExecuteDocument (Linux, Windows, macOS)
<a name="action-modules-executedocument"></a>

Das **ExecuteDocument**Aktionsmodul bietet Unterstützung für verschachtelte Komponentendokumente, sodass mehrere Komponentendokumente aus einem Dokument ausgeführt werden. AWSTOE validiert das Dokument, das zur Laufzeit im Eingabeparameter übergeben wird.

**Einschränkungen**
+ Dieses Aktionsmodul wird einmal ausgeführt. Wiederholungen sind nicht zulässig und es besteht keine Option zum Festlegen von Timeoutlimits. **ExecuteDocument**legt die folgenden Standardwerte fest und gibt einen Fehler zurück, wenn Sie versuchen, sie zu ändern.
  + `timeoutSeconds`: -1
  + `maxAttempts`: 1
**Anmerkung**  
Sie können diese Werte leer lassen und AWSTOE die Standardwerte verwenden.
+ Das Verschachteln von Dokumenten ist bis zu drei Ebenen zulässig, jedoch nicht mehr. Drei Verschachtelungsebenen bedeuten vier Dokumentebenen, da die oberste Ebene nicht verschachtelt ist. In diesem Szenario darf das Dokument der untersten Ebene keine anderen Dokumente aufrufen.
+ Die zyklische Ausführung von Komponentendokumenten ist nicht zulässig. Jedes Dokument, das sich selbst außerhalb eines sich wiederholenden Konstrukts aufruft oder ein anderes Dokument aufruft, das in der aktuellen Ausführungskette weiter oben steht, leitet einen Zyklus ein, der zu einer Endlosschleife führen kann. Wenn eine zyklische Ausführung AWSTOE erkannt wird, stoppt es die Ausführung und zeichnet den Fehler auf.

![\[Einschränkungen auf Verschachtelungsebene für das ExecuteDocument Aktionsmodul.\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/images/toe-component-document-nesting.png)


Wenn ein Komponentendokument versucht, sich selbst oder eines der Komponentendokumente auszuführen, die in der aktuellen Ausführungskette weiter oben stehen, schlägt die Ausführung fehl.

**Eingabe**


| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| document |  Pfad des Komponentendokuments. Gültige Optionen sind unter anderem: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Zeichenfolge | Ja | 
| document-s3-bucket-owner |  Die Konto-ID des S3-Bucket-Besitzers für den S3-Bucket, in dem Komponentendokumente gespeichert sind. *(Empfohlen, wenn Sie S3 URIs in Ihrem Komponentendokument verwenden.)*  | Zeichenfolge | Nein | 
| phases |  Phasen, die im Komponentendokument ausgeführt werden sollen, ausgedrückt als kommagetrennte Liste. Wenn keine Phasen angegeben sind, werden alle Phasen ausgeführt.  | Zeichenfolge | Nein | 
| parameters |  Eingabeparameter, die zur Laufzeit als Schlüssel-Wert-Paare an das Komponentendokument übergeben werden.  | Liste der Parameterzuordnungen | Nein | 

**Eingabe der Parameterzuweisung**


| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| name |  Der Name des Eingabeparameters, der an das Komponentendokument übergeben werden soll, das das **ExecuteDocument**Aktionsmodul ausführt.  | Zeichenfolge | Ja | 
| value |  Der Wert des Eingabeparameters.  | Zeichenfolge | Ja | 

**Beispiele für die Eingabe**  
Die folgenden Beispiele zeigen Variationen der Eingaben für Ihr Komponentendokument, abhängig von Ihrem Installationspfad.

**Eingabebeispiel: Lokaler Dokumentpfad**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: Sample-1.yaml
          phases: build
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Eingabebeispiel: S3-URI als Dokumentenpfad**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: s3://my-bucket/Sample-1.yaml
          document-s3-bucket-owner: 123456789012
          phases: build,validate
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Eingabebeispiel: ARN der EC2 Image Builder Builder-Komponente als Dokumentpfad**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: arn:aws:imagebuilder:us-west-2:aws:component/Sample-Test/1.0.0
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Verwenden einer ForEach Schleife zum Ausführen von Dokumenten**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        loop:
          name: 'myForEachLoop'
          forEach:
            - Sample-1.yaml
            - Sample-2.yaml
        inputs:
          document: "{{myForEachLoop.value}}"
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Verwenden einer For-Schleife zum Ausführen von Dokumenten**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        loop:
          name: 'myForLoop'
          for:
            start: 1
            end: 2
            updateBy: 1
        inputs:
          document: "Sample-{{myForLoop.value}}.yaml"
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Ausgabe**  
AWSTOE erstellt eine Ausgabedatei, die `detailedoutput.json` bei jeder Ausführung aufgerufen wird. Die Datei enthält Details zu jeder Phase und jedem Schritt jedes Komponentendokuments, das während der Ausführung aufgerufen wird. Für das **ExecuteDocument**Aktionsmodul finden Sie in dem `outputs` Feld eine kurze Zusammenfassung der Laufzeit sowie Einzelheiten zu den Phasen, Schritten und Dokumenten, in denen es ausgeführt wird. `detailedOutput`

```
{
	\"executedStepCount\":1,\"executionId\":\"97054e22-06cc-11ec-9b14-acde48001122\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"
}",
```

Das Ausgabe-Übersichtsobjekt jedes Komponentendokuments enthält die folgenden Details, wie hier gezeigt, mit Beispielwerten:
+ executedStepCount„:1
+ „Ausführungs-ID“: „12345a67-89bc-01de-2f34-abcd56789012"
+ failedStepCount„: 0
+ „Fehlermeldung“: "“
+ „ignoredFailedStepAnzahl“ :0
+ „Protokoll-URL“: "“
+ „status“: „erfolgreich“

**Ausgabebeispiel**  
Das folgende Beispiel zeigt die Ausgabe des **ExecuteDocument**Aktionsmoduls, wenn eine verschachtelte Ausführung stattfindet. In diesem Beispiel führt das `main.yaml` Komponentendokument das Komponentendokument erfolgreich aus. `Sample-1.yaml`

```
{
    "executionId": "12345a67-89bc-01de-2f34-abcd56789012",
    "status": "success",
    "startTime": "2021-08-26T17:20:31-07:00",
    "endTime": "2021-08-26T17:20:31-07:00",
    "failureMessage": "",
    "documents": [
        {
            "name": "",
            "filePath": "main.yaml",
            "status": "success",
            "description": "",
            "startTime": "2021-08-26T17:20:31-07:00",
            "endTime": "2021-08-26T17:20:31-07:00",
            "failureMessage": "",
            "phases": [
                {
                    "name": "build",
                    "status": "success",
                    "startTime": "2021-08-26T17:20:31-07:00",
                    "endTime": "2021-08-26T17:20:31-07:00",
                    "failureMessage": "",
                    "steps": [
                        {
                            "name": "ExecuteNestedDocument",
                            "status": "success",
                            "failureMessage": "",
                            "timeoutSeconds": -1,
                            "onFailure": "Abort",
                            "maxAttempts": 1,
                            "action": "ExecuteDocument",
                            "startTime": "2021-08-26T17:20:31-07:00",
                            "endTime": "2021-08-26T17:20:31-07:00",
                            "inputs": "[{\"document\":\"Sample-1.yaml\",\"document-s3-bucket-owner\":\"\",\"phases\":\"\",\"parameters\":null}]",
                            "outputs": "[{\"executedStepCount\":1,\"executionId\":\"98765f43-21ed-09cb-8a76-fedc54321098\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"}]",
                            "loop": null,
                            "detailedOutput": [
                                {
                                    "executionId": "98765f43-21ed-09cb-8a76-fedc54321098",
                                    "status": "success",
                                    "startTime": "2021-08-26T17:20:31-07:00",
                                    "endTime": "2021-08-26T17:20:31-07:00",
                                    "failureMessage": "",
                                    "documents": [
                                        {
                                            "name": "",
                                            "filePath": "Sample-1.yaml",
                                            "status": "success",
                                            "description": "",
                                            "startTime": "2021-08-26T17:20:31-07:00",
                                            "endTime": "2021-08-26T17:20:31-07:00",
                                            "failureMessage": "",
                                            "phases": [
                                                {
                                                    "name": "build",
                                                    "status": "success",
                                                    "startTime": "2021-08-26T17:20:31-07:00",
                                                    "endTime": "2021-08-26T17:20:31-07:00",
                                                    "failureMessage": "",
                                                    "steps": [
                                                        {
                                                            "name": "ExecuteBashStep",
                                                            "status": "success",
                                                            "failureMessage": "",
                                                            "timeoutSeconds": 7200,
                                                            "onFailure": "Abort",
                                                            "maxAttempts": 1,
                                                            "action": "ExecuteBash",
                                                            "startTime": "2021-08-26T17:20:31-07:00",
                                                            "endTime": "2021-08-26T17:20:31-07:00",
                                                            "inputs": "[{\"commands\":[\"echo \\\"Hello World!\\\"\"]}]",
                                                            "outputs": "[{\"stdout\":\"Hello World!\"}]",
                                                            "loop": null,
                                                            "detailedOutput": null
                                                        }]
                                                }]
                                        }]
                                }]
                        }]
                
                }]
        }]
}
```

### ExecutePowerShell (Windows)
<a name="action-modules-executepowershell"></a>

Das **ExecutePowerShell**Aktionsmodul ermöglicht es Ihnen, PowerShell Skripts mit Inline-Shell-Code/Befehlen auszuführen. Dieses Modul unterstützt die Windows-Plattform und Windows. PowerShell

Alle im Befehlsblock commands/instructions angegebenen Befehle werden in eine Skriptdatei konvertiert (z. B.`input.ps1`) und unter Windows ausgeführtPowerShell. Das Ergebnis der Ausführung der Shell-Datei ist der Exit-Code.

Das **ExecutePowerShell**Modul verarbeitet Systemneustarts, wenn der Shell-Befehl mit dem Exit-Code von beendet wird. `3010` Nach der Initiierung führt das Programm eine der folgenden Aktionen aus: 
+ Übergibt dem Anrufer den Exit-Code, wenn er vom Systems Manager Agent ausgeführt wird. Der Systems Manager Agent führt den Systemneustart durch und führt denselben Schritt aus, der den Neustart initiiert hat, wie unter [Managed Instance from Scripts neu starten](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html) beschrieben.
+ Speichert den aktuellen Status`executionstate`, konfiguriert einen Neustart-Trigger, um die Anwendung erneut auszuführen, und startet das System neu.

Nach dem Systemneustart führt die Anwendung denselben Schritt aus, der den Neustart initiiert hat. Wenn Sie diese Funktionalität benötigen, müssen Sie idempotente Skripten schreiben, die mehrere Aufrufe desselben Shell-Befehls verarbeiten können.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| commands | Enthält eine Liste von Anweisungen oder Befehlen, die gemäß der Syntax ausgeführt werden sollen. PowerShell Mehrzeiliges YAML ist zulässig. | String-Liste | Ja. Muss `commands` oder angeben`file`, nicht beides.  | 
| file | Enthält den Pfad zu einer PowerShell Skriptdatei. PowerShell wird mit dem -file Befehlszeilenargument gegen diese Datei ausgeführt. Der Pfad muss auf eine .ps1 Datei verweisen. | Zeichenfolge | Ja. Muss `commands` oder`file`, nicht beides, angeben.  | 

**Eingabebeispiel: Vor und nach einem Neustart**

```
name: ExitCode3010Example
description: This shows how the exit code can be used to restart a system with ExecutePowerShell
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: RestartTrigger
        action: ExecutePowerShell
        inputs:
          commands:
            - |
              $rebootIndicator = Join-Path -Path $env:SystemDrive -ChildPath 'reboot-indicator'
              if (Test-Path -Path $rebootIndicator) {
                Write-Host 'The reboot file exists. Deleting it and exiting with success.'
                Remove-Item -Path $rebootIndicator -Force | Out-Null
                [System.Environment]::Exit(0)
              }
              Write-Host 'The reboot file does not exist. Creating it and triggering a restart.'
              New-Item -Path $rebootIndicator -ItemType File | Out-Null
              [System.Environment]::Exit(3010)
```


**Ausgabe**  

| Feld | Description | Typ | 
| --- | --- | --- | 
| stdout | Standardausgabe der Befehlsausführung. | Zeichenfolge | 

Wenn Sie einen Neustart ausführen und den Exit-Code `3010` als Teil des Aktionsmoduls zurückgeben, wird der Build mit demselben Aktionsmodulschritt fortgesetzt, der den Neustart initiiert hat. Wenn Sie einen Neustart ohne den Exit-Code ausführen, schlägt der Build-Prozess möglicherweise fehl.

**Ausgabebeispiel: Vor dem Neustart (zum ersten Mal über das Dokument)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**Ausgabebeispiel: Nach dem Neustart (zweites Mal durch das Dokument)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

## Module zum Herunterladen und Hochladen von Dateien
<a name="action-modules-download-upload"></a>

Der folgende Abschnitt enthält Informationen zu Aktionsmodulen, die Dateien hoch- oder herunterladen.

**Topics**
+ [S3 herunterladen (Linux, Windows, macOS)](#action-modules-s3download)
+ [S3 hochladen (Linux, Windows, macOS)](#action-modules-s3upload)
+ [WebDownload (Linux, Windows, macOS)](#action-modules-webdownload)

### S3 herunterladen (Linux, Windows, macOS)
<a name="action-modules-s3download"></a>

Mit dem `S3Download` Aktionsmodul können Sie ein Amazon S3 S3-Objekt oder eine Reihe von Objekten in eine lokale Datei oder einen Ordner herunterladen, den Sie mit dem `destination` Pfad angeben. Wenn am angegebenen Speicherort bereits eine Datei vorhanden ist und das `overwrite` Flag auf true gesetzt ist, wird die Datei `S3Download` überschrieben.

Ihr `source` Standort kann auf ein bestimmtes Objekt in Amazon S3 verweisen, oder Sie können ein key prefix mit einem Sternchen als Platzhalter (`*`) verwenden, um eine Reihe von Objekten herunterzuladen, die dem Schlüsselpräfixpfad entsprechen. Wenn Sie an Ihrem `source` Standort ein key prefix angeben, lädt das `S3Download` Aktionsmodul alles herunter, was dem Präfix entspricht (einschließlich Dateien und Ordner). Stellen Sie sicher, dass das key prefix mit einem Schrägstrich endet, gefolgt von einem Sternchen (`/*`), damit Sie alles herunterladen, was dem Präfix entspricht. Beispiel: `s3://my-bucket/my-folder/*`.

Wenn die `S3Download` Aktion für ein bestimmtes key prefix während eines Downloads fehlschlägt, wird der Ordnerinhalt nicht auf den Zustand vor dem Fehler zurückgesetzt. Der Zielordner bleibt so, wie er zum Zeitpunkt des Fehlers war.

**Unterstützte Anwendungsfälle**  
Das `S3Download` Aktionsmodul unterstützt die folgenden Anwendungsfälle:
+ Das Amazon S3 S3-Objekt wird in einen lokalen Ordner heruntergeladen, wie im Download-Pfad angegeben.
+ Amazon S3 S3-Objekte (mit einem key prefix im Amazon S3 S3-Dateipfad) werden in den angegebenen lokalen Ordner heruntergeladen, der rekursiv alle Amazon S3 S3-Objekte, die dem key prefix entsprechen, in den lokalen Ordner kopiert.

**IAM-Anforderungen**  
Die IAM-Rolle, die Sie Ihrem Instanzprofil zuordnen, muss über Berechtigungen zum Ausführen des `S3Download` Aktionsmoduls verfügen. Die folgenden IAM-Richtlinien müssen der IAM-Rolle angehängt werden, die dem Instanzprofil zugeordnet ist:
+ **Einzelne Datei**: `s3:GetObject` gegen bucket/object (zum Beispiel). `arn:aws:s3:::BucketName/*`
+ **Mehrere Dateien**: `s3:ListBucket` gegen bucket/object (zum Beispiel`arn:aws:s3:::BucketName`) und `s3:GetObject` gegen die bucket/object (zum Beispiel`arn:aws:s3:::BucketName/*`).


**Input**  

|  Key (Schlüssel)  |  Description  |  Typ  |  Erforderlich  |  Standard  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  Der Amazon S3 S3-Bucket, der die Quelle für Ihren Download ist. Sie können einen Pfad zu einem bestimmten Objekt angeben oder ein key prefix verwenden, das mit einem Schrägstrich endet, gefolgt von einem Sternchen-Platzhalter (`/*`), um eine Gruppe von Objekten herunterzuladen, die dem key prefix entsprechen.  |  Zeichenfolge  |  Ja  |  –  | 
|  `destination`  |  Der lokale Pfad, in den die Amazon S3 S3-Objekte heruntergeladen werden. Um eine einzelne Datei herunterzuladen, müssen Sie den Dateinamen als Teil des Pfads angeben. Beispiel, `/myfolder/package.zip`.  |  Zeichenfolge  |  Ja  |  –  | 
|  `expectedBucketOwner`  |  Erwartete Besitzerkonto-ID des im `source` Pfad angegebenen Buckets. Wir empfehlen Ihnen, die Inhaberschaft des in der Quelle angegebenen Amazon S3 S3-Buckets zu überprüfen.  |  Zeichenfolge  |  Nein  |  –  | 
|  `overwrite`  |  Wenn diese Einstellung auf true gesetzt ist und bereits eine Datei mit demselben Namen im Zielordner für den angegebenen lokalen Pfad existiert, überschreibt die Download-Datei die lokale Datei. Wenn der Wert auf false gesetzt ist, ist die vorhandene Datei auf dem lokalen System davor geschützt, überschrieben zu werden, und das Aktionsmodul schlägt mit einem Download-Fehler fehl. Beispiel: `Error: S3Download: File already exists and "overwrite" property for "destination" file is set to false. Cannot download.`  |  Boolesch  |  Nein  |  true  | 

**Anmerkung**  
In den folgenden Beispielen kann der Windows-Ordnerpfad durch einen Linux-Pfad ersetzt werden. `C:\myfolder\package.zip`Kann beispielsweise durch ersetzt werden`/myfolder/package.zip`.

**Eingabebeispiel: Ein Amazon S3 S3-Objekt in eine lokale Datei kopieren**  
Das folgende Beispiel zeigt, wie ein Amazon S3 S3-Objekt in eine lokale Datei kopiert wird.

```
  - name: DownloadMyFile
    action: S3Download
    inputs:
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
        overwrite: false
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
        overwrite: true
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
```

**Eingabebeispiel: Alle Amazon S3 S3-Objekte in einem Amazon S3 S3-Bucket mit key prefix in einen lokalen Ordner kopieren**  
Das folgende Beispiel zeigt, wie alle Amazon S3 S3-Objekte in einem Amazon S3-Bucket mit dem key prefix in einen lokalen Ordner kopiert werden. Amazon S3 hat kein Ordnerkonzept, daher werden alle Objekte kopiert, die dem key prefix entsprechen. Die maximale Anzahl von Objekten, die heruntergeladen werden können, beträgt 1000.

```
  - name: MyS3DownloadKeyprefix
    action: S3Download
    maxAttempts: 3
    inputs:
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
        overwrite: false
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
        overwrite: true
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
```

**Ausgabe**  
Keine.

### S3 hochladen (Linux, Windows, macOS)
<a name="action-modules-s3upload"></a>

Mit dem Aktionsmodul **S3Upload** können Sie eine Datei aus einer Quelldatei oder einem Quellordner an einen Amazon S3 S3-Speicherort hochladen. Sie können einen Platzhalter (`*`) in dem für Ihren Quellspeicherort angegebenen Pfad verwenden, um alle Dateien hochzuladen, deren Pfad dem Platzhaltermuster entspricht.

Wenn die rekursive **S3Upload-Aktion** fehlschlägt, verbleiben alle Dateien, die bereits hochgeladen wurden, im Amazon S3-Ziel-Bucket.

**Unterstützte Anwendungsfälle**
+ Lokale Datei zum Amazon S3 S3-Objekt.
+ Lokale Dateien im Ordner (mit Platzhalter) zum Amazon S3 S3-Schlüsselpräfix.
+ Kopieren Sie den lokalen Ordner (muss auf `recurse` eingestellt sein`true`) in das Amazon S3 S3-Schlüsselpräfix.

**IAM-Anforderungen**  
Die IAM-Rolle, die Sie Ihrem Instanzprofil zuordnen, muss über Berechtigungen zum Ausführen des `S3Upload` Aktionsmoduls verfügen. Die folgende IAM-Richtlinie muss der IAM-Rolle angehängt werden, die dem Instanzprofil zugeordnet ist. Die Richtlinie muss dem Amazon S3 S3-Ziel-Bucket `s3:PutObject` Berechtigungen gewähren. Beispiel, `arn:aws:s3:::BucketName/*`).


**Input**  

|  Key (Schlüssel)  |  Description  |  Typ  |  Erforderlich  |  Standard  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  Der lokale Pfad, aus dem die Quelle files/folders stammt. Der `source` unterstützt einen Sternchen-Platzhalter ()`*`.  |  Zeichenfolge  |  Ja  |  –  | 
|  `destination`  |  Der Pfad für den Amazon S3-Ziel-Bucket, in den Quelldateien/-ordner hochgeladen werden.  |  Zeichenfolge  |  Ja  |  –  | 
|  `recurse`  |  Wenn auf gesetzt, wird `true` **S3Upload** rekursiv ausgeführt.  |  Zeichenfolge  |  Nein  |  `false`  | 
|  `expectedBucketOwner`  |  Die erwartete Besitzerkonto-ID für den Amazon S3 S3-Bucket, der im Zielpfad angegeben ist. Wir empfehlen Ihnen, die Inhaberschaft des Amazon S3 S3-Buckets zu überprüfen, der im Ziel angegeben ist.  |  Zeichenfolge  |  Nein  |  –  | 

**Eingabebeispiel: Eine lokale Datei in ein Amazon S3 S3-Objekt kopieren**  
Das folgende Beispiel zeigt, wie eine lokale Datei in ein Amazon S3 S3-Objekt kopiert wird.

```
  - name: MyS3UploadFile
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\package.zip
        destination: s3://amzn-s3-demo-destination-bucket/path/to/package.zip
        expectedBucketOwner: 123456789022
```

**Eingabebeispiel: Kopieren Sie alle Dateien in einem lokalen Ordner in einen Amazon S3 S3-Bucket mit key prefix**  
Das folgende Beispiel zeigt, wie Sie alle Dateien im lokalen Ordner in einen Amazon S3 S3-Bucket mit key prefix kopieren. In diesem Beispiel werden keine Unterordner oder deren Inhalt kopiert, da dies nicht angegeben `recurse` ist. Die Standardeinstellung ist. `false`

```
  - name: MyS3UploadMultipleFiles
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        expectedBucketOwner: 123456789022
```

**Eingabebeispiel: Alle Dateien und Ordner rekursiv von einem lokalen Ordner in einen Amazon S3 S3-Bucket kopieren**  
Das folgende Beispiel zeigt, wie alle Dateien und Ordner rekursiv von einem lokalen Ordner in einen Amazon S3 S3-Bucket mit key prefix kopiert werden.

```
  - name: MyS3UploadFolder
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        recurse: true
        expectedBucketOwner: 123456789022
```

**Ausgabe**  
Keine.

### WebDownload (Linux, Windows, macOS)
<a name="action-modules-webdownload"></a>

Mit dem **WebDownload**Aktionsmodul können Sie Dateien und Ressourcen über das HTTP/HTTPS Protokoll von einem entfernten Standort herunterladen (*HTTPS wird empfohlen*). Die Anzahl oder Größe der Downloads ist unbegrenzt. Dieses Modul verarbeitet Wiederholungsversuche und exponentielle Backoff-Logik. 

Jedem Download-Vorgang werden je nach Benutzereingabe maximal 5 Versuche zugewiesen, um erfolgreich zu sein. Diese Versuche unterscheiden sich von den im `maxAttempts` Dokumentfeld angegebenen Versuchen`steps`, die sich auf Fehler im Aktionsmodul beziehen.

Dieses Aktionsmodul verarbeitet implizit Weiterleitungen. Alle HTTP-Statuscodes mit Ausnahme `200` von führen zu einem Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standard | 
| --- | --- | --- | --- | --- | 
| source | Die gültige HTTP/HTTPS URL (HTTPS wird empfohlen), die dem RFC 3986-Standard entspricht. Verkettungsausdrücke sind zulässig. | Zeichenfolge |  Ja  | – | 
| destination | Ein absoluter oder relativer Datei- oder Ordnerpfad auf dem lokalen System. Ordnerpfade müssen mit enden/. Wenn sie nicht mit enden/, werden sie als Dateipfade behandelt. Das Modul erstellt alle erforderlichen Dateien oder Ordner für erfolgreiche Downloads. Verkettungsausdrücke sind zulässig. | Zeichenfolge | Ja | – | 
| overwrite | Wenn diese Option aktiviert ist, werden alle vorhandenen Dateien auf dem lokalen System mit der heruntergeladenen Datei oder Ressource überschrieben. Wenn diese Option nicht aktiviert ist, werden alle vorhandenen Dateien auf dem lokalen System nicht überschrieben, und das Aktionsmodul schlägt mit einem Fehler fehl. Wenn Überschreiben aktiviert ist und Prüfsumme und Algorithmus angegeben sind, lädt das Aktionsmodul die Datei nur herunter, wenn die Prüfsumme und der Hash aller bereits vorhandenen Dateien nicht übereinstimmen.  | Boolesch | Nein | true | 
| checksum | Wenn Sie die Prüfsumme angeben, wird sie mit dem Hash der heruntergeladenen Datei verglichen, der mit dem mitgelieferten Algorithmus generiert wurde. Damit die Dateiüberprüfung aktiviert werden kann, müssen sowohl die Prüfsumme als auch der Algorithmus angegeben werden. Verkettungsausdrücke sind zulässig.  | Zeichenfolge | Nein | – | 
| algorithm | Der zur Berechnung der Prüfsumme verwendete Algorithmus. Die Optionen sindMD5, SHA1 SHA256, und SHA512. Damit die Dateiüberprüfung aktiviert werden kann, müssen sowohl die Prüfsumme als auch der Algorithmus angegeben werden. Verkettungsausdrücke sind zulässig.  | Zeichenfolge | Nein | – | 
| ignoreCertificateErrors | Die SSL-Zertifikatsvalidierung wird ignoriert, wenn sie aktiviert ist. | Boolesch | Nein | false | 


**Ausgabe**  

| Tastenname | Description | Typ | 
| --- | --- | --- | 
| destination | Zeichenfolge mit Zeilenumbruch, die durch Zeichen getrennt ist und den Zielpfad angibt, in dem die heruntergeladenen Dateien oder Ressourcen gespeichert werden. | Zeichenfolge | 

**Eingabebeispiel: Laden Sie die Remote-Datei in ein lokales Ziel herunter**

```
  - name: DownloadRemoteFile
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\testfolder\package.zip
```

**Ausgabe:**

```
{
	"destination": "C:\\testfolder\\package.zip"
}
```

**Eingabebeispiel: Laden Sie mehr als eine Remote-Datei an mehr als ein lokales Ziel herunter**

```
  - name: DownloadRemoteFiles
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: /tmp/java14_renamed.zip
      - source: https://testdomain/path/to/java14.zip
        destination: /tmp/create_new_folder_and_add_java14_as_zip/
```

**Ausgabe:**

```
{
	"destination": "/tmp/create_new_folder/java14_renamed.zip\n/tmp/create_new_folder_and_add_java14_as_zip/java14.zip"
}
```

**Eingabebeispiel: Laden Sie eine Remote-Datei herunter, ohne das lokale Ziel zu überschreiben, und laden Sie eine weitere Remote-Datei mit Dateiüberprüfung herunter**

```
  - name: DownloadRemoteMultipleProperties
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\create_new_folder\java14_renamed.zip
        overwrite: false
      - source: https://testdomain/path/to/java14.zip
        destination: C:\create_new_folder_and_add_java14_as_zip\
        checksum: ac68bbf921d953d1cfab916cb6120864
        algorithm: MD5
        overwrite: true
```

**Ausgabe:**

```
{
	"destination": "C:\\create_new_folder\\java14_renamed.zip\nC:\\create_new_folder_and_add_java14_as_zip\\java14.zip"
}
```

**Eingabebeispiel: Remote-Datei herunterladen und SSL-Zertifizierungsvalidierung ignorieren**

```
  - name: DownloadRemoteIgnoreValidation
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://www.bad-ssl.com/resource
        destination: /tmp/downloads/
        ignoreCertificateErrors: true
```

**Ausgabe:**

```
{
	"destination": "/tmp/downloads/resource"
}
```

## Module für den Betrieb des Dateisystems
<a name="action-modules-file-system-operations"></a>

Der folgende Abschnitt enthält Einzelheiten zu Aktionsmodulen, die Dateisystemoperationen ausführen.

**Topics**
+ [AppendFile (Linux, Windows, macOS)](#action-modules-appendfile)
+ [CopyFile (Linux, Windows, macOS)](#action-modules-copyfile)
+ [CopyFolder (Linux, Windows, macOS)](#action-modules-copyfolder)
+ [CreateFile (Linux, Windows, macOS)](#action-modules-createfile)
+ [CreateFolder (Linux, Windows, macOS)](#action-modules-createfolder)
+ [CreateSymlink (Linux, Windows, macOS)](#action-modules-createsymlink)
+ [DeleteFile (Linux, Windows, macOS)](#action-modules-deletefile)
+ [DeleteFolder (Linux, Windows, macOS)](#action-modules-deletefolder)
+ [ListFiles (Linux, Windows, macOS)](#action-modules-listfiles)
+ [MoveFile (Linux, Windows, macOS)](#action-modules-movefile)
+ [MoveFolder (Linux, Windows, macOS)](#action-modules-movefolder)
+ [ReadFile (Linux, Windows, macOS)](#action-modules-readfile)
+ [SetFileEncoding (Linux, Windows, macOS)](#action-modules-setfileencoding)
+ [SetFileOwner (Linux, Windows, macOS)](#action-modules-setfileowner)
+ [SetFolderOwner (Linux, Windows, macOS)](#action-modules-setfolderowner)
+ [SetFilePermissions (Linux, Windows, macOS)](#action-modules-setfilepermissions)
+ [SetFolderPermissions (Linux, Windows, macOS)](#action-modules-setfolderpermissions)

### AppendFile (Linux, Windows, macOS)
<a name="action-modules-appendfile"></a>

Das **AppendFile**Aktionsmodul fügt dem bereits vorhandenen Inhalt einer Datei den angegebenen Inhalt hinzu.

Wenn sich der Dateicodierungswert vom Standardwert encoding (`utf-8`) unterscheidet, können Sie den Dateicodierungswert mithilfe der `encoding` Option angeben. Standardmäßig wird davon ausgegangen, `utf-16` dass `utf-32` sie die Little-Endian-Kodierung verwenden. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Die angegebene Datei ist zur Laufzeit nicht vorhanden.
+ Sie haben keine Schreibberechtigungen, um den Dateiinhalt zu ändern.
+ Das Modul stößt während des Dateivorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| content | Der Inhalt, der an die Datei angehängt werden soll. | Zeichenfolge | Nein | Leere Zeichenfolge | – | Ja | 
| encoding | Der Kodierungsstandard. | Zeichenfolge | Nein | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LEutf16-BE,utf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, und utf-32-BE. Der Wert der Kodierungsoption unterscheidet nicht zwischen Groß- und Kleinschreibung. | Ja | 

**Eingabebeispiel: Datei ohne Kodierung anhängen (Linux)**

```
  - name: AppendingFileWithOutEncodingLinux
    action: AppendFile
    inputs:
      - path: ./Sample.txt
        content: "The string to be appended to the file"
```

**Eingabebeispiel: Datei ohne Kodierung anhängen (Windows)**

```
  - name: AppendingFileWithOutEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolder\MyFile.txt
        content: "The string to be appended to the file"
```

**Eingabebeispiel: Datei mit Kodierung anhängen (Linux)**

```
  - name: AppendingFileWithEncodingLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**Eingabebeispiel: Datei mit Kodierung anhängen (Windows)**

```
  - name: AppendingFileWithEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**Eingabebeispiel: Datei mit leerer Zeichenfolge anhängen (Linux)**

```
  - name: AppendingEmptyStringLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
```

**Eingabebeispiel: Datei mit leerer Zeichenfolge anhängen (Windows)**

```
  - name: AppendingEmptyStringWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
```

**Ausgabe**  
Keine.

### CopyFile (Linux, Windows, macOS)
<a name="action-modules-copyfile"></a>

Das **CopyFile**Aktionsmodul kopiert Dateien von der angegebenen Quelle zum angegebenen Ziel. Standardmäßig erstellt das Modul den Zielordner rekursiv, wenn er zur Laufzeit nicht vorhanden ist.

Wenn eine Datei mit dem angegebenen Namen bereits im angegebenen Ordner vorhanden ist, überschreibt das Aktionsmodul standardmäßig die vorhandene Datei. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits eine Datei mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück. Diese Option funktioniert genauso wie der `cp` Befehl unter Linux, der standardmäßig überschreibt.

Der Name der Quelldatei kann einen Platzhalter () `*` enthalten. Platzhalterzeichen werden nur nach dem letzten Dateipfad-Trennzeichen (`/`oder`\`) akzeptiert. Wenn der Quelldateiname Platzhalterzeichen enthält, werden alle Dateien, die dem Platzhalter entsprechen, in den Zielordner kopiert. Wenn Sie mehr als eine Datei mithilfe eines Platzhalterzeichens verschieben möchten, muss die Eingabe für die `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden, das angibt, dass es sich bei der Zieleingabe um einen Ordner handelt.

Wenn sich der Zieldateiname vom Quelldateinamen unterscheidet, können Sie den Zieldateinamen mithilfe der `destination` Option angeben. Wenn Sie keinen Zieldateinamen angeben, wird der Name der Quelldatei verwendet, um die Zieldatei zu erstellen. Jeder Text, der auf das letzte Dateipfadtrennzeichen (`/`oder`\`) folgt, wird als Dateiname behandelt. Wenn Sie denselben Dateinamen wie die Quelldatei verwenden möchten, muss die Eingabe der `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, eine Datei im angegebenen Ordner zu erstellen.
+ Die Quelldateien sind zur Laufzeit nicht vorhanden.
+ Es gibt bereits einen Ordner mit dem angegebenen Dateinamen und die `overwrite` Option ist auf eingestellt`false`.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Der Pfad der Quelldatei. | Zeichenfolge | Ja | – | – | Ja | 
| destination | Der Zieldateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| overwrite | Wenn der Wert auf false gesetzt ist, werden die Zieldateien nicht ersetzt, wenn sich am angegebenen Speicherort bereits eine Datei mit dem angegebenen Namen befindet. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Eine Datei kopieren (Linux)**

```
  - name: CopyingAFileLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**Eingabebeispiel: Eine Datei kopieren (Windows)**

```
  - name: CopyingAFileWindows
    action: CopyFile
    inputs:
      - source: C:\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**Eingabebeispiel: Kopiert eine Datei unter Verwendung des Quelldateinamens (Linux)**

```
  - name: CopyingFileWithSourceFileNameLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**Eingabebeispiel: Kopieren Sie eine Datei unter Verwendung des Quelldateinamens (Windows)**

```
  - name: CopyingFileWithSourceFileNameWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\
```

**Eingabebeispiel: Kopiert eine Datei mit dem Platzhalterzeichen (Linux)**

```
  - name: CopyingFilesWithWildCardLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Eingabebeispiel: Kopiert eine Datei mit dem Platzhalterzeichen (Windows)**

```
  - name: CopyingFilesWithWildCardWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Eingabebeispiel: Eine Datei kopieren, ohne sie zu überschreiben (Linux)**

```
  - name: CopyingFilesWithoutOverwriteLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**Eingabebeispiel: Eine Datei kopieren, ohne sie zu überschreiben (Windows)**

```
  - name: CopyingFilesWithoutOverwriteWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Ausgabe**  
Keine.

### CopyFolder (Linux, Windows, macOS)
<a name="action-modules-copyfolder"></a>

Das **CopyFolder**Aktionsmodul kopiert einen Ordner von der angegebenen Quelle zum angegebenen Ziel. Die Eingabe für die `source` Option ist der zu kopierende Ordner, und die Eingabe für die `destination` Option ist der Ordner, in den der Inhalt des Quellordners kopiert wird. Standardmäßig erstellt das Modul den Zielordner rekursiv, wenn er zur Laufzeit nicht vorhanden ist.

Wenn im angegebenen Ordner bereits ein Ordner mit dem angegebenen Namen vorhanden ist, überschreibt das Aktionsmodul standardmäßig den vorhandenen Ordner. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits ein Ordner mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück.

Der Name des Quellordners kann einen Platzhalter () `*` enthalten. Platzhalterzeichen werden nur nach dem letzten Dateipfad-Trennzeichen (`/`oder`\`) akzeptiert. Wenn Platzhalterzeichen im Quellordnernamen enthalten sind, werden alle Ordner, die dem Platzhalter entsprechen, in den Zielordner kopiert. Wenn Sie mehr als einen Ordner mithilfe eines Platzhalterzeichens kopieren möchten, muss die Eingabe für die `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden, was darauf hinweist, dass es sich bei der Zieleingabe um einen Ordner handelt.

Wenn sich der Name des Zielordners vom Namen des Quellordners unterscheidet, können Sie den Namen des Zielordners mithilfe der `destination` Option angeben. Wenn Sie keinen Zielordnernamen angeben, wird der Name des Quellordners verwendet, um den Zielordner zu erstellen. Jeder Text, der auf das letzte Dateipfadtrennzeichen (`/`oder`\`) folgt, wird als Ordnername behandelt. Wenn Sie denselben Ordnernamen wie den Quellordner verwenden möchten, muss die Eingabe der `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, einen Ordner im angegebenen Ordner zu erstellen.
+ Die Quellordner sind zur Laufzeit nicht vorhanden.
+ Es gibt bereits einen Ordner mit dem angegebenen Ordnernamen und die `overwrite` Option ist auf gesetzt`false`.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Der Pfad des Quellordners. | Zeichenfolge | Ja | – | – | Ja | 
| destination | Der Pfad des Zielordners. | Zeichenfolge | Ja | – | – | Ja | 
| overwrite | Wenn der Wert auf False gesetzt ist, werden die Zielordner nicht ersetzt, wenn sich am angegebenen Speicherort bereits ein Ordner mit dem angegebenen Namen befindet. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Einen Ordner kopieren (Linux)**

```
  - name: CopyingAFolderLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/destinationFolder
```

**Eingabebeispiel: Einen Ordner kopieren (Windows)**

```
  - name: CopyingAFolderWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
```

**Eingabebeispiel: Kopieren Sie einen Ordner unter Verwendung des Quellordnernamens (Linux)**

```
  - name: CopyingFolderSourceFolderNameLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/
```

**Eingabebeispiel: Kopieren Sie einen Ordner unter Verwendung des Quellordnernamens (Windows)**

```
  - name: CopyingFolderSourceFolderNameWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**Eingabebeispiel: Kopieren Sie einen Ordner mit dem Platzhalterzeichen (Linux)**

```
  - name: CopyingFoldersWithWildCardLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Eingabebeispiel: Kopieren Sie einen Ordner mit dem Platzhalterzeichen (Windows)**

```
  - name: CopyingFoldersWithWildCardWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Eingabebeispiel: Einen Ordner kopieren, ohne ihn zu überschreiben (Linux)**

```
  - name: CopyingFoldersWithoutOverwriteLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
        overwrite: false
```

**Eingabebeispiel: Einen Ordner kopieren, ohne ihn zu überschreiben (Windows)**

```
  - name: CopyingFoldersWithoutOverwrite
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Ausgabe**  
Keine.

### CreateFile (Linux, Windows, macOS)
<a name="action-modules-createfile"></a>

Das **CreateFile**Aktionsmodul erstellt eine Datei an einem bestimmten Ort. Standardmäßig erstellt das Modul bei Bedarf auch rekursiv die übergeordneten Ordner.

Wenn die Datei bereits im angegebenen Ordner vorhanden ist, kürzt oder überschreibt das Aktionsmodul standardmäßig die vorhandene Datei. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits eine Datei mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück.

Wenn sich der Wert für die Dateikodierung vom Standardwert für die Kodierung (`utf-8`) unterscheidet, können Sie den Wert für die Dateikodierung mithilfe der `encoding` Option angeben. Standardmäßig wird davon ausgegangen, `utf-16` dass `utf-32` sie die Little-Endian-Kodierung verwenden. 

`owner`, und sind `group` optionale Eingaben. `permissions` Die Eingabe für `permissions` muss ein Zeichenkettenwert sein. Dateien werden mit Standardwerten erstellt, wenn sie nicht angegeben werden. Diese Optionen werden auf Windows-Plattformen nicht unterstützt. Dieses Aktionsmodul validiert und gibt einen Fehler zurück, wenn die `permissions` Optionen `owner``group`, und auf Windows-Plattformen verwendet werden.

Dieses Aktionsmodul kann eine Datei mit Berechtigungen erstellen, die durch den `umask` Standardwert des Betriebssystems definiert sind. Sie müssen den `umask` Wert festlegen, wenn Sie den Standardwert überschreiben möchten.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, eine Datei oder einen Ordner im angegebenen übergeordneten Ordner zu erstellen.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| content | Der Textinhalt der Datei. | Zeichenfolge | Nein | – | – | Ja | 
| encoding | Der Kodierungsstandard. | Zeichenfolge | Nein | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LEutf16-BE,utf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, und utf-32-BE. Der Wert der Kodierungsoption unterscheidet nicht zwischen Groß- und Kleinschreibung. | Ja | 
| owner | Der Benutzername oder die ID. | Zeichenfolge | Nein | – | – | Wird unter Windows nicht unterstützt. | 
| group | Der Gruppenname oder die ID. | Zeichenfolge | Nein | Der aktuelle Benutzer. | – | Wird unter Windows nicht unterstützt. | 
| permissions | Die Dateiberechtigungen. | Zeichenfolge | Nein | 0666 | – | Wird unter Windows nicht unterstützt. | 
| overwrite | Wenn der Name der angegebenen Datei bereits existiert, wird durch das Einstellen dieses Werts auf false verhindert, dass die Datei standardmäßig gekürzt oder überschrieben wird. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Eine Datei ohne Überschreiben erstellen (Linux)**

```
  - name: CreatingFileWithoutOverwriteLinux
    action: CreateFile
    inputs:
      - path: /home/UserName/Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**Eingabebeispiel: Erstellen Sie eine Datei ohne Überschreiben (Windows)**

```
  - name: CreatingFileWithoutOverwriteWindows
    action: CreateFile
    inputs:
      - path: C:\Temp\Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**Eingabebeispiel: Erstellen Sie eine Datei mit Dateieigenschaften**

```
  - name: CreatingFileWithFileProperties
    action: CreateFile
    inputs:
      - path: SampleFolder/Sample.txt
        content: The text content of the sample file.
        encoding: UTF-16
        owner: Ubuntu
        group: UbuntuGroup
        permissions: 0777
     - path: SampleFolder/SampleFile.txt
        permissions: 755
      - path: SampleFolder/TextFile.txt
        encoding: UTF-16
        owner: root
        group: rootUserGroup
```

**Eingabebeispiel: Erstellen Sie eine Datei ohne Dateieigenschaften**

```
  - name: CreatingFileWithoutFileProperties
    action: CreateFile
    inputs:
      - path: ./Sample.txt
      - path: Sample1.txt
```

**Eingabebeispiel: Erstellen Sie eine leere Datei, um einen Abschnitt im Linux-Bereinigungsskript zu überspringen**

```
  - name: CreateSkipCleanupfile
    action: CreateFile
    inputs:
      - path: <skip section file name>
```

Weitere Informationen finden Sie unter [Überschreiben Sie das Linux-Bereinigungsskript](security-best-practices.md#override-linux-cleanup-script).

**Ausgabe**  
Keine.

### CreateFolder (Linux, Windows, macOS)
<a name="action-modules-createfolder"></a>

Das **CreateFolder**Aktionsmodul erstellt einen Ordner an einem bestimmten Ort. Standardmäßig erstellt das Modul bei Bedarf auch rekursiv die übergeordneten Ordner.

Wenn der Ordner bereits im angegebenen Ordner vorhanden ist, kürzt oder überschreibt das Aktionsmodul standardmäßig den vorhandenen Ordner. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits ein Ordner mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück.

`owner``group`, und `permissions` sind optionale Eingaben. Die Eingabe für `permissions` muss ein Zeichenkettenwert sein. Diese Optionen werden auf Windows-Plattformen nicht unterstützt. Dieses Aktionsmodul validiert und gibt einen Fehler zurück, wenn die `permissions` Optionen `owner``group`, und auf Windows-Plattformen verwendet werden.

Dieses Aktionsmodul kann einen Ordner mit Berechtigungen erstellen, die durch den `umask` Standardwert des Betriebssystems definiert sind. Sie müssen den `umask` Wert festlegen, wenn Sie den Standardwert überschreiben möchten.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, einen Ordner am angegebenen Speicherort zu erstellen.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Ordnerpfad. | Zeichenfolge | Ja | – | – | Ja | 
| owner | Der Benutzername oder die ID. | Zeichenfolge | Nein | Der aktuelle Benutzer. | – | Wird unter Windows nicht unterstützt. | 
| group | Der Gruppenname oder die ID. | Zeichenfolge | Nein | Die Gruppe des aktuellen Benutzers. | – | Wird unter Windows nicht unterstützt. | 
| permissions | Die Ordnerberechtigungen. | Zeichenfolge | Nein | 0777 | – | Wird unter Windows nicht unterstützt. | 
| overwrite | Wenn der Name der angegebenen Datei bereits existiert, wird durch das Einstellen dieses Werts auf false verhindert, dass die Datei standardmäßig gekürzt oder überschrieben wird. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Erstellen Sie einen Ordner (Linux)**

```
  - name: CreatingFolderLinux
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/
```

**Eingabebeispiel: Erstellen Sie einen Ordner (Windows)**

```
  - name: CreatingFolderWindows
    action: CreateFolder
    inputs:
      - path: C:\MyFolder
```

**Eingabebeispiel: Erstellen Sie einen Ordner, in dem die Ordnereigenschaften angegeben sind**

```
  - name: CreatingFolderWithFolderProperties
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        owner: SampleOwnerName
        group: SampleGroupName
        permissions: 0777
      - path: /Sample/MyFolder/SampleFoler/
        permissions: 777
```

**Eingabebeispiel: Erstellen Sie einen Ordner, der den vorhandenen Ordner überschreibt, falls es einen gibt.**

```
  - name: CreatingFolderWithOverwrite
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        overwrite: true
```

**Ausgabe**  
Keine.

### CreateSymlink (Linux, Windows, macOS)
<a name="action-modules-createsymlink"></a>

Das **CreateSymlink**Aktionsmodul erstellt symbolische Links oder Dateien, die einen Verweis auf eine andere Datei enthalten. Dieses Modul wird auf Windows-Plattformen nicht unterstützt. 

Die Eingabe für die `target` Optionen `path` und kann entweder ein absoluter oder ein relativer Pfad sein. Handelt es sich bei der Eingabe für die `path` Option um einen relativen Pfad, wird dieser bei der Erstellung des Links durch den absoluten Pfad ersetzt.

Wenn ein Link mit dem angegebenen Namen bereits im angegebenen Ordner vorhanden ist, gibt das Aktionsmodul standardmäßig einen Fehler zurück. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die `force` Option auf setzen`true`. Wenn die `force` Option auf gesetzt ist`true`, überschreibt das Modul den vorhandenen Link.

Wenn kein übergeordneter Ordner vorhanden ist, erstellt das Aktionsmodul den Ordner standardmäßig rekursiv.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Die Zieldatei ist zur Laufzeit nicht vorhanden.
+ Eine nichtsymbolische Linkdatei mit dem angegebenen Namen ist bereits vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| target | Der Zieldateipfad, auf den der symbolische Link verweist. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| force | Erzwingt die Erstellung eines Links, wenn bereits ein Link mit demselben Namen vorhanden ist. | Boolesch | Nein | false | – | Wird unter Windows nicht unterstützt. | 

**Eingabebeispiel: Erstellen Sie einen symbolischen Link, der die Erstellung eines Links erzwingt**

```
  - name: CreatingSymbolicLinkWithForce
    action: CreateSymlink
    inputs:
      - path: /Folder2/Symboliclink.txt
        target: /Folder/Sample.txt
        force: true
```

**Eingabebeispiel: Erstellen Sie einen symbolischen Link, der die Erstellung eines Links nicht erzwingt**

```
  - name: CreatingSymbolicLinkWithOutForce
    action: CreateSymlink
    inputs:
      - path: Symboliclink.txt
        target: /Folder/Sample.txt
```

**Ausgabe**  
Keine.

### DeleteFile (Linux, Windows, macOS)
<a name="action-modules-deletefile"></a>

Das **DeleteFile**Aktionsmodul löscht eine oder mehrere Dateien an einem bestimmten Ort.

Die Eingabe von `path` sollte ein gültiger Dateipfad oder ein Dateipfad mit einem Platzhalterzeichen (`*`) im Dateinamen sein. Wenn Platzhalterzeichen im Dateinamen angegeben werden, werden alle Dateien innerhalb desselben Ordners, die dem Platzhalter entsprechen, gelöscht. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, Löschvorgänge durchzuführen.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Ja | 

**Eingabebeispiel: Eine einzelne Datei löschen (Linux)**

```
  - name: DeletingSingleFileLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/Sample.txt
```

**Eingabebeispiel: Eine einzelne Datei löschen (Windows)**

```
  - name: DeletingSingleFileWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\Sample.txt
```

**Eingabebeispiel: Lösche eine Datei, die mit „log“ endet (Linux)**

```
  - name: DeletingFileEndingWithLogLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*log
```

**Eingabebeispiel: Lösche eine Datei, die mit „log“ endet (Windows)**

```
  - name: DeletingFileEndingWithLogWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*log
```

**Eingabebeispiel: lösche alle Dateien in einem angegebenen Ordner (Linux)**

```
  - name: DeletingAllFilesInAFolderLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*
```

**Eingabebeispiel: lösche alle Dateien in einem angegebenen Ordner (Windows)**

```
  - name: DeletingAllFilesInAFolderWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*
```

**Ausgabe**  
Keine.

### DeleteFolder (Linux, Windows, macOS)
<a name="action-modules-deletefolder"></a>

Das **DeleteFolder**Aktionsmodul löscht Ordner.

Wenn der Ordner nicht leer ist, müssen Sie die `force` Option auf setzen, `true` um den Ordner und seinen Inhalt zu entfernen. Wenn Sie die `force` Option nicht auf setzen und der Ordner`true`, den Sie löschen möchten, nicht leer ist, gibt das Aktionsmodul einen Fehler zurück. Der Standardwert der `force` Option ist`false`.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, Löschvorgänge durchzuführen.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Ordnerpfad. | Zeichenfolge | Ja | – | – | Ja | 
| force | Löscht den Ordner, unabhängig davon, ob der Ordner leer ist oder nicht. | Boolesch | Nein | false | – | Ja | 

**Eingabebeispiel: Löschen Sie einen Ordner, der nicht leer ist, mit der `force` Option (Linux)** 

```
  - name: DeletingFolderWithForceOptionLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        force: true
```

**Eingabebeispiel: Löschen Sie einen Ordner, der nicht leer ist, mit der `force` Option (Windows)** 

```
  - name: DeletingFolderWithForceOptionWindows
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
        force: true
```

**Eingabebeispiel: einen Ordner löschen (Linux)** 

```
  - name: DeletingFolderWithOutForceLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
```

**Eingabebeispiel: einen Ordner löschen (Windows)** 

```
  - name: DeletingFolderWithOutForce
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
```

**Ausgabe**  
Keine.

### ListFiles (Linux, Windows, macOS)
<a name="action-modules-listfiles"></a>

Das **ListFiles**Aktionsmodul listet die Dateien in einem angegebenen Ordner auf. Wenn die Option rekursiv auf gesetzt ist`true`, listet sie die Dateien in Unterordnern auf. Dieses Modul listet standardmäßig keine Dateien in Unterordnern auf.

Um alle Dateien aufzulisten, deren Namen einem bestimmten Muster entsprechen, verwenden Sie die `fileNamePattern` Option zur Angabe des Musters. Die `fileNamePattern` Option akzeptiert den Platzhalterwert (`*`). Wenn der angegeben `fileNamePattern` ist, werden alle Dateien zurückgegeben, die dem angegebenen Dateinamenformat entsprechen. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Der angegebene Ordner ist zur Laufzeit nicht vorhanden.
+ Sie sind nicht berechtigt, eine Datei oder einen Ordner im angegebenen übergeordneten Ordner zu erstellen.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Ordnerpfad. | Zeichenfolge | Ja | – | – | Ja | 
| fileNamePattern | Das Muster, das abgeglichen werden soll, um alle Dateien aufzulisten, deren Namen dem Muster entsprechen. | Zeichenfolge | Nein | – | – | Ja | 
| recursive | Listet die Dateien im Ordner rekursiv auf. | Boolesch | Nein | false | – | Ja | 

**Eingabebeispiel: listet Dateien im angegebenen Ordner auf (Linux)**

```
  - name: ListingFilesInSampleFolderLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/Sample
```

**Eingabebeispiel: Dateien im angegebenen Ordner auflisten (Windows)**

```
  - name: ListingFilesInSampleFolderWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\Sample
```

**Eingabebeispiel: listet Dateien auf, die mit „log“ enden (Linux)**

```
  - name: ListingFilesWithEndingWithLogLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        fileNamePattern: *log
```

**Eingabebeispiel: listet Dateien auf, die mit „log“ enden (Windows)**

```
  - name: ListingFilesWithEndingWithLogWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\
        fileNamePattern: *log
```

**Eingabebeispiel: Dateien rekursiv auflisten**

```
  - name: ListingFilesRecursively
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        recursive: true
```


**Ausgabe**  

| Tastenname | Description | Typ | 
| --- | --- | --- | 
| files | Die Liste der Dateien. | Zeichenfolge | 

**Output example**

```
{
	"files": "/sample1.txt,/sample2.txt,/sample3.txt"
}
```

### MoveFile (Linux, Windows, macOS)
<a name="action-modules-movefile"></a>

Das **MoveFile**Aktionsmodul verschiebt Dateien von der angegebenen Quelle zum angegebenen Ziel.

Wenn die Datei bereits im angegebenen Ordner vorhanden ist, überschreibt das Aktionsmodul standardmäßig die vorhandene Datei. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits eine Datei mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück. Diese Option funktioniert genauso wie der `mv` Befehl unter Linux, der standardmäßig überschreibt.

Der Name der Quelldatei kann einen Platzhalter () `*` enthalten. Platzhalterzeichen werden nur nach dem letzten Dateipfad-Trennzeichen (`/`oder`\`) akzeptiert. Wenn der Quelldateiname Platzhalterzeichen enthält, werden alle Dateien, die dem Platzhalter entsprechen, in den Zielordner kopiert. Wenn Sie mehr als eine Datei mithilfe eines Platzhalterzeichens verschieben möchten, muss die Eingabe für die `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden, das angibt, dass es sich bei der Zieleingabe um einen Ordner handelt.

Wenn sich der Zieldateiname vom Quelldateinamen unterscheidet, können Sie den Zieldateinamen mithilfe der `destination` Option angeben. Wenn Sie keinen Zieldateinamen angeben, wird der Name der Quelldatei verwendet, um die Zieldatei zu erstellen. Jeder Text, der auf das letzte Dateipfadtrennzeichen (`/`oder`\`) folgt, wird als Dateiname behandelt. Wenn Sie denselben Dateinamen wie die Quelldatei verwenden möchten, muss die Eingabe der `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, eine Datei im angegebenen Ordner zu erstellen.
+ Die Quelldateien sind zur Laufzeit nicht vorhanden.
+ Es gibt bereits einen Ordner mit dem angegebenen Dateinamen und die `overwrite` Option ist auf eingestellt`false`.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Der Pfad der Quelldatei. | Zeichenfolge | Ja | – | – | Ja | 
| destination | Der Zieldateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| overwrite | Wenn der Wert auf false gesetzt ist, werden die Zieldateien nicht ersetzt, wenn sich am angegebenen Speicherort bereits eine Datei mit dem angegebenen Namen befindet. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Eine Datei verschieben (Linux)**

```
  - name: MovingAFileLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**Eingabebeispiel: Eine Datei verschieben (Windows)**

```
  - name: MovingAFileWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**Eingabebeispiel: Verschieben Sie eine Datei unter Verwendung des Quelldateinamens (Linux)**

```
  - name: MovingFileWithSourceFileNameLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**Eingabebeispiel: Verschieben Sie eine Datei unter Verwendung des Quelldateinamens (Windows)**

```
  - name: MovingFileWithSourceFileNameWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder
```

**Eingabebeispiel: Verschieben Sie eine Datei mit einem Platzhalterzeichen (Linux)**

```
  - name: MovingFilesWithWildCardLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Eingabebeispiel: Verschieben Sie eine Datei mit einem Platzhalterzeichen (Windows)**

```
  - name: MovingFilesWithWildCardWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder
```

**Eingabebeispiel: Eine Datei verschieben, ohne sie zu überschreiben (Linux)**

```
  - name: MovingFilesWithoutOverwriteLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**Eingabebeispiel: Eine Datei verschieben, ohne sie zu überschreiben (Windows)**

```
  - name: MovingFilesWithoutOverwrite
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Ausgabe**  
Keine.

### MoveFolder (Linux, Windows, macOS)
<a name="action-modules-movefolder"></a>

Das **MoveFolder**Aktionsmodul verschiebt Ordner von der angegebenen Quelle zum angegebenen Ziel. Die Eingabe für die `source` Option ist der Ordner, der verschoben werden soll, und die Eingabe für die `destination` Option ist der Ordner, in den der Inhalt der Quellordner verschoben wird.

Wenn der übergeordnete Zielordner oder die Eingabe für die `destination` Option zur Laufzeit nicht vorhanden sind, besteht das Standardverhalten des Moduls darin, den Ordner rekursiv am angegebenen Ziel zu erstellen.

Wenn im Zielordner bereits ein Ordner vorhanden ist, der mit dem Quellordner identisch ist, überschreibt das Aktionsmodul standardmäßig den vorhandenen Ordner. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits ein Ordner mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück.

Der Name des Quellordners kann einen Platzhalter () `*` enthalten. Platzhalterzeichen werden nur nach dem letzten Dateipfad-Trennzeichen (`/`oder`\`) akzeptiert. Wenn Platzhalterzeichen im Quellordnernamen enthalten sind, werden alle Ordner, die dem Platzhalter entsprechen, in den Zielordner kopiert. Wenn Sie mehr als einen Ordner mithilfe eines Platzhalterzeichens verschieben möchten, muss die Eingabe für die `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden, was darauf hinweist, dass es sich bei der Zieleingabe um einen Ordner handelt.

Wenn sich der Name des Zielordners vom Namen des Quellordners unterscheidet, können Sie den Namen des Zielordners mithilfe der `destination` Option angeben. Wenn Sie keinen Zielordnernamen angeben, wird der Name des Quellordners verwendet, um den Zielordner zu erstellen. Jeder Text, der auf das letzte Dateipfadtrennzeichen (`/`oder`\`) folgt, wird als Ordnername behandelt. Wenn Sie denselben Ordnernamen wie den Quellordner verwenden möchten, muss die Eingabe der `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, einen Ordner im Zielordner zu erstellen.
+ Die Quellordner sind zur Laufzeit nicht vorhanden.
+ Es gibt bereits einen Ordner mit dem angegebenen Namen und die `overwrite` Option ist auf gesetzt`false`.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Der Pfad des Quellordners. | Zeichenfolge | Ja | – | – | Ja | 
| destination | Der Pfad des Zielordners. | Zeichenfolge | Ja | – | – | Ja | 
| overwrite | Wenn der Wert auf False gesetzt ist, werden die Zielordner nicht ersetzt, wenn sich am angegebenen Speicherort bereits ein Ordner mit dem angegebenen Namen befindet. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Einen Ordner verschieben (Linux)**

```
  - name: MovingAFolderLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
```

**Eingabebeispiel: Einen Ordner verschieben (Windows)**

```
  - name: MovingAFolderWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
```

**Eingabebeispiel: Verschieben Sie einen Ordner unter Verwendung des Quellordnernamens (Linux)**

```
  - name: MovingFolderWithSourceFolderNameLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/
```

**Eingabebeispiel: Verschieben Sie einen Ordner mithilfe des Quellordnernamens (Windows)**

```
  - name: MovingFolderWithSourceFolderNameWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**Eingabebeispiel: Verschieben Sie einen Ordner mithilfe eines Platzhalterzeichens (Linux)**

```
  - name: MovingFoldersWithWildCardLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Eingabebeispiel: Verschieben Sie einen Ordner mithilfe eines Platzhalterzeichens (Windows)**

```
  - name: MovingFoldersWithWildCardWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Eingabebeispiel: Einen Ordner verschieben, ohne ihn zu überschreiben (Linux)**

```
  - name: MovingFoldersWithoutOverwriteLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
    destination: /MyFolder/destinationFolder
    overwrite: false
```

**Eingabebeispiel: Einen Ordner verschieben, ohne ihn zu überschreiben (Windows)**

```
  - name: MovingFoldersWithoutOverwriteWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Ausgabe**  
Keine.

### ReadFile (Linux, Windows, macOS)
<a name="action-modules-readfile"></a>

Das **ReadFile**Aktionsmodul liest den Inhalt einer Textdatei vom Typ Zeichenfolge. Dieses Modul kann verwendet werden, um den Inhalt einer Datei zur Verwendung in nachfolgenden Schritten durch Verkettung oder zum Lesen von Daten in die `console.log` Datei zu lesen. Wenn der angegebene Pfad ein symbolischer Link ist, gibt dieses Modul den Inhalt der Zieldatei zurück. Dieses Modul unterstützt nur Textdateien.

Wenn sich der Dateicodierungswert vom Standardwert encoding (`utf-8`) unterscheidet, können Sie den Dateicodierungswert mithilfe der `encoding` Option angeben. Standardmäßig wird davon ausgegangen, `utf-16` dass `utf-32` sie die Little-Endian-Kodierung verwenden. 

Standardmäßig kann dieses Modul den Dateiinhalt nicht in die Datei drucken. `console.log` Sie können diese Einstellung überschreiben, indem Sie die `printFileContent` Eigenschaft auf setzen`true`.

Dieses Modul kann nur den Inhalt einer Datei zurückgeben. Es kann keine Dateien wie Excel- oder JSON-Dateien analysieren.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Die Datei ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| encoding | Der Kodierungsstandard. | Zeichenfolge | Nein | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LEutf16-BE,utf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, und utf-32-BE. Der Wert der Kodierungsoption unterscheidet nicht zwischen Groß- und Kleinschreibung. | Ja | 
| printFileContent | Druckt den Dateiinhalt in die console.log Datei. | Boolesch | Nein | false | – | Ja. | 

**Eingabebeispiel: Eine Datei lesen (Linux)**

```
  - name: ReadingFileLinux
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
```

**Eingabebeispiel: eine Datei lesen (Windows)**

```
  - name: ReadingFileWindows
    action: ReadFile
    inputs:
      - path: C:\Windows\WindowsUpdate.log
```

**Eingabebeispiel: Eine Datei lesen und den Kodierungsstandard angeben**

```
  - name: ReadingFileWithFileEncoding
    action: ReadFile
    inputs:
      - path: /FolderName/SampleFile.txt
        encoding: UTF-32
```

**Eingabebeispiel: Eine Datei lesen und in die `console.log` Datei drucken**

```
  - name: ReadingFileToConsole
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
        printFileContent: true
```


**Ausgabe**  

| Feld | Description | Typ | 
| --- | --- | --- | 
| content | Der Inhalt der Datei. | Zeichenfolge | 

**Output example**

```
{
	"content" : "The file content"
}
```

### SetFileEncoding (Linux, Windows, macOS)
<a name="action-modules-setfileencoding"></a>

Das **SetFileEncoding**Aktionsmodul ändert die Kodierungseigenschaft einer vorhandenen Datei. Dieses Modul kann die Dateikodierung von `utf-8` zu einem bestimmten Kodierungsstandard konvertieren. Standardmäßig wird davon ausgegangen, `utf-16` dass `utf-32` es sich um Little-Endian-Kodierung handelt.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, die angegebene Änderung durchzuführen.
+ Die Datei ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| encoding | Der Kodierungsstandard. | Zeichenfolge | Nein | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LEutf16-BE,utf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, und utf-32-BE. Der Wert der Kodierungsoption unterscheidet nicht zwischen Groß- und Kleinschreibung. | Ja | 

**Eingabebeispiel: Legen Sie die Eigenschaft zur Dateikodierung fest**

```
  - name: SettingFileEncodingProperty
    action: SetFileEncoding
    inputs:
      - path: /home/UserName/SampleFile.txt
        encoding: UTF-16
```

**Ausgabe**  
Keine.

### SetFileOwner (Linux, Windows, macOS)
<a name="action-modules-setfileowner"></a>

Das **SetFileOwner**Aktionsmodul ändert die Eigenschaften `owner` und `group` Eigentümer einer vorhandenen Datei. Wenn es sich bei der angegebenen Datei um einen symbolischen Link handelt, ändert das Modul die `owner` Eigenschaft der Quelldatei. Dieses Modul wird auf Windows-Plattformen nicht unterstützt. 

Dieses Modul akzeptiert Benutzer- und Gruppennamen als Eingaben. Wenn der Gruppenname nicht angegeben wird, weist das Modul den Gruppeneigentümer der Datei der Gruppe zu, zu der der Benutzer gehört.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, die angegebene Änderung durchzuführen.
+ Der angegebene Benutzer- oder Gruppenname ist zur Laufzeit nicht vorhanden.
+ Die Datei ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| owner | Der Benutzername | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| group | Der Name der Benutzergruppe. | Zeichenfolge | Nein | Der Name der Gruppe, zu der der Benutzer gehört. | – | Wird unter Windows nicht unterstützt. | 

**Eingabebeispiel: Legen Sie die Eigenschaft des Dateibesitzers fest, ohne den Namen der Benutzergruppe anzugeben**

```
  - name: SettingFileOwnerPropertyNoGroup
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
```

**Eingabebeispiel: Legen Sie die Eigenschaft des Dateibesitzers fest, indem Sie den Eigentümer und die Benutzergruppe angeben**

```
  - name: SettingFileOwnerProperty
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
        group: LinuxUserGroup
```

**Ausgabe**  
Keine.

### SetFolderOwner (Linux, Windows, macOS)
<a name="action-modules-setfolderowner"></a>

Das **SetFolderOwner**Aktionsmodul ändert rekursiv die Eigenschaften `owner` und `group` Eigentümer eines vorhandenen Ordners. Standardmäßig kann das Modul die Eigentümerschaft für den gesamten Inhalt eines Ordners ändern. Sie können die `recursive` Option auf setzen, `false` um dieses Verhalten zu überschreiben. Dieses Modul wird auf Windows-Plattformen nicht unterstützt. 

Dieses Modul akzeptiert Benutzer- und Gruppennamen als Eingaben. Wenn der Gruppenname nicht angegeben wird, weist das Modul den Gruppeneigentümer der Datei der Gruppe zu, zu der der Benutzer gehört.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, die angegebene Änderung durchzuführen.
+ Der angegebene Benutzer- oder Gruppenname ist zur Laufzeit nicht vorhanden.
+ Der Ordner ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Ordnerpfad. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| owner | Der Benutzername | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| group | Der Name der Benutzergruppe. | Zeichenfolge | Nein | Der Name der Gruppe, zu der der Benutzer gehört. | – | Wird unter Windows nicht unterstützt. | 
| recursive | Setzt das Standardverhalten beim Ändern der Eigentümerschaft für den gesamten Inhalt eines Ordners außer Kraft, wenn diese Einstellung auf false gesetzt ist. | Boolesch | Nein | true | – | Wird unter Windows nicht unterstützt. | 

**Eingabebeispiel: Legen Sie die Eigenschaft des Ordnerbesitzers fest, ohne den Namen der Benutzergruppe anzugeben**

```
  - name: SettingFolderPropertyWithOutGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
```

**Eingabebeispiel: Legen Sie die Eigenschaft des Ordnerbesitzers fest, ohne die Eigentümerschaft aller Inhalte in einem Ordner zu überschreiben**

```
  - name: SettingFolderPropertyWithOutRecursively
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        recursive: false
```

**Eingabebeispiel: Legen Sie die Eigenschaft „Dateibesitz“ fest, indem Sie den Namen der Benutzergruppe angeben**

```
  - name: SettingFolderPropertyWithGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        group: LinuxUserGroup
```

**Ausgabe**  
Keine.

### SetFilePermissions (Linux, Windows, macOS)
<a name="action-modules-setfilepermissions"></a>

Das **SetFilePermissions**Aktionsmodul ändert die `permissions` einer vorhandenen Datei. Dieses Modul wird auf Windows-Plattformen nicht unterstützt. 

Die Eingabe für `permissions` muss ein Zeichenkettenwert sein.

Dieses Aktionsmodul kann eine Datei mit Berechtigungen erstellen, die durch den Standard-Umask-Wert des Betriebssystems definiert sind. Sie müssen den `umask` Wert festlegen, wenn Sie den Standardwert überschreiben möchten.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, die angegebene Änderung durchzuführen.
+ Die Datei ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| permissions | Die Dateiberechtigungen. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 

**Eingabebeispiel: Dateiberechtigungen ändern**

```
  - name: ModifyingFilePermissions
    action: SetFilePermissions
    inputs:
      - path: /home/UserName/SampleFile.txt
        permissions: 766
```

**Ausgabe**  
Keine.

### SetFolderPermissions (Linux, Windows, macOS)
<a name="action-modules-setfolderpermissions"></a>

Das **SetFolderPermissions**Aktionsmodul ändert rekursiv den `permissions` eines vorhandenen Ordners und all seiner Unterdateien und Unterordner. Standardmäßig kann dieses Modul die Berechtigungen für den gesamten Inhalt des angegebenen Ordners ändern. Sie können die `recursive` Option auf setzen, `false` um dieses Verhalten zu überschreiben. Dieses Modul wird auf Windows-Plattformen nicht unterstützt. 

Die Eingabe für `permissions` muss ein Zeichenkettenwert sein. 

Dieses Aktionsmodul kann Berechtigungen entsprechend dem Standard-Umask-Wert des Betriebssystems ändern. Sie müssen den `umask` Wert festlegen, wenn Sie den Standardwert überschreiben möchten.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, die angegebene Änderung durchzuführen.
+ Der Ordner ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Ordnerpfad. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| permissions | Die Ordnerberechtigungen. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| recursive | Setzt das Standardverhalten beim Ändern von Berechtigungen für den gesamten Inhalt eines Ordners außer Kraft, wenn diese Einstellung auf false gesetzt ist. | Boolesch | Nein | true | – | Wird unter Windows nicht unterstützt. | 

**Eingabebeispiel: Ordnerberechtigungen festlegen**

```
  - name: SettingFolderPermissions
    action: SetFolderPermissions
    inputs:
      - path: SampleFolder/
        permissions: 0777
```

**Eingabebeispiel: Ordnerberechtigungen festlegen, ohne die Berechtigungen für den gesamten Inhalt eines Ordners zu ändern**

```
  - name: SettingFolderPermissionsNoRecursive
    action: SetFolderPermissions
    inputs:
      - path: /home/UserName/SampleFolder/
        permissions: 777
        recursive: false
```

**Ausgabe**  
Keine.

## Aktionen zur Softwareinstallation
<a name="action-modules-software-install-actions"></a>

Im folgenden Abschnitt werden Aktionsmodule beschrieben, mit denen Software installiert oder deinstalliert wird.

**IAM-Anforderungen**  
Wenn es sich bei Ihrem Installations-Download-Pfad um einen S3-URI handelt, muss die IAM-Rolle, die Sie Ihrem Instanzprofil zuordnen, über die Berechtigung zum Ausführen des `S3Download` Aktionsmoduls verfügen. Um die erforderliche Berechtigung zu erteilen, fügen Sie die `S3:GetObject` IAM-Richtlinie der IAM-Rolle bei, die Ihrem Instance-Profil zugeordnet ist, und geben Sie den Pfad für Ihren Bucket an. Beispiel, `arn:aws:s3:::BucketName/*`).

**Komplexe MSI-Eingaben**  
Wenn Ihre Eingabezeichenfolgen doppelte Anführungszeichen (`"`) enthalten, müssen Sie eine der folgenden Methoden verwenden, um sicherzustellen, dass sie korrekt interpretiert werden:
+ Sie können einfache Anführungszeichen (') außerhalb Ihrer Zeichenfolge verwenden, um sie zu enthalten, und doppelte Anführungszeichen („) innerhalb Ihrer Zeichenfolge verwenden, wie im folgenden Beispiel gezeigt.

  ```
  properties:
    COMPANYNAME: '"Acme ""Widgets"" and ""Gizmos."""'
  ```

  Wenn Sie in diesem Fall einen Apostroph innerhalb Ihrer Zeichenfolge verwenden müssen, müssen Sie ihn maskieren. Das bedeutet, vor dem Apostroph ein weiteres einfaches Anführungszeichen (') zu verwenden.
+ Sie können doppelte Anführungszeichen („) an der Außenseite Ihrer Zeichenfolge verwenden, um sie zu enthalten. Und Sie können alle doppelten Anführungszeichen innerhalb Ihrer Zeichenfolge maskieren, indem Sie den umgekehrten Schrägstrich (`\`) verwenden, wie im folgenden Beispiel gezeigt.

  ```
  properties:
    COMPANYNAME: "\"Acme \"\"Widgets\"\" and \"\"Gizmos.\"\"\""
  ```

Beide Methoden übergeben den Wert `COMPANYNAME="Acme ""Widgets"" and ""Gizmos."""` an den **msiexec** Befehl.

**Topics**
+ [Installieren Sie MSI (Windows)](#action-modules-install-msi)
+ [Deinstallieren Sie MSI (Windows)](#action-modules-uninstall-msi)

### Installieren Sie MSI (Windows)
<a name="action-modules-install-msi"></a>

Das `InstallMSI` Aktionsmodul installiert eine Windows-Anwendung mithilfe einer MSI-Datei. Sie können die MSI-Datei mithilfe eines lokalen Pfads, einer S3-Objekt-URI oder einer Web-URL angeben. Die Neustartoption konfiguriert das Neustartverhalten des Systems.

AWSTOE generiert den **msiexec** Befehl auf der Grundlage der Eingabeparameter für das Aktionsmodul. Werte für die Eingabeparameter `path` (Speicherort der MSI-Datei) und `logFile` (Speicherort der Protokolldatei) müssen in Anführungszeichen („) eingeschlossen werden.

Die folgenden MSI-Exitcodes gelten als erfolgreich:
+ 0 (Erfolg)
+ 1614 (ERROR\$1PRODUCT\$1UNINSTALL)
+ 1641 (Neustart eingeleitet)
+ 3010 (Neustart erforderlich)


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | 
| --- | --- | --- | --- | --- | --- | 
| path |  Geben Sie den Speicherort der MSI-Datei mit einer der folgenden Methoden an: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html) Verkettungsausdrücke sind zulässig.  | Zeichenfolge | Ja | – | – | 
| reboot |  Konfigurieren Sie das Verhalten beim Systemneustart, das auf eine erfolgreiche Ausführung des Aktionsmoduls folgt. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Zeichenfolge | Nein | Allow | Allow, Force, Skip | 
| logOptions |  Geben Sie die Optionen an, die für die MSI-Installationsprotokollierung verwendet werden sollen. Die angegebenen Flags werden zusammen mit den `/L` Befehlszeilenparametern zur Aktivierung der Protokollierung an das MSI-Installationsprogramm übergeben. Wenn keine Flags angegeben sind, AWSTOE wird der Standardwert verwendet. Weitere Informationen zu Protokolloptionen für MSI finden Sie unter [Befehlszeilenoptionen](https://learn.microsoft.com/en-us/windows/win32/msi/command-line-options) in der Microsoft *Windows Installer-Produktdokumentation*.  | Zeichenfolge | Nein | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  Ein absoluter oder relativer Pfad zum Speicherort der Protokolldatei. Wenn der Protokolldateipfad nicht existiert, wird er erstellt. Wenn der Protokolldateipfad nicht angegeben wird, AWSTOE wird das MSI-Installationsprotokoll nicht gespeichert.  | Zeichenfolge | Nein | – | – | 
| properties |  Schlüssel-Wert-Paare für MSI-Logging-Eigenschaften, zum Beispiel: `TARGETDIR: "C:\target\location"`   Hinweis: Die Änderung der folgenden Eigenschaften ist nicht zulässig: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Map [Zeichenfolge] Zeichenfolge | Nein | – | – | 
| ignoreAuthenticodeSignatureErrors |  Markierung zum Ignorieren von Fehlern bei der Überprüfung der Authenticode-Signatur für das im Pfad angegebene Installationsprogramm. Der **Get-AuthenticodeSignature** Befehl wird verwendet, um Installationsprogramme zu validieren. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolesch | Nein | false | true, false | 
| allowUnsignedInstaller |  Markierung, die die Ausführung des im Pfad angegebenen unsignierten Installationsprogramms ermöglicht. Der **Get-AuthenticodeSignature** Befehl wird verwendet, um Installationsprogramme zu validieren. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolesch | Nein | false | true, false | 

**Beispiele**  
Die folgenden Beispiele zeigen Varianten des Eingabeabschnitts für Ihr Komponentendokument, abhängig von Ihrem Installationspfad.

**Eingabebeispiel: Installation im lokalen Dokumentpfad**

```
- name: local-path-install
  steps:
    - name: LocalPathInstaller
      action: InstallMSI
      inputs:
        path: C:\sample.msi
        logFile: C:\msilogs\local-path-install.log
        logOptions: '*VX'
        reboot: Allow
        properties:
          COMPANYNAME: '"Amazon Web Services"'
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: true
```

**Eingabebeispiel: Amazon S3 S3-Pfadinstallation**

```
- name: s3-path-install
  steps:
    - name: S3PathInstaller
      action: InstallMSI
      inputs:
        path: s3://<bucket-name>/sample.msi
        logFile: s3-path-install.log
        reboot: Force
        ignoreAuthenticodeSignatureErrors: false
        allowUnsignedInstaller: true
```

**Eingabebeispiel: Installation eines Webpfads**

```
- name: web-path-install
  steps:
    - name: WebPathInstaller
      action: InstallMSI
      inputs:
        path: https://<some-path>/sample.msi
        logFile: web-path-install.log
        reboot: Skip
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: false
```

**Ausgabe**  
Das Folgende ist ein Beispiel für die Ausgabe des `InstallMSI` Aktionsmoduls.

```
{
	"logFile": "web-path-install.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

### Deinstallieren Sie MSI (Windows)
<a name="action-modules-uninstall-msi"></a>

Mit dem `UninstallMSI` Aktionsmodul können Sie eine Windows-Anwendung mithilfe einer MSI-Datei entfernen. Sie können den Speicherort der MSI-Datei mithilfe eines lokalen Dateipfads, einer S3-Objekt-URI oder einer Web-URL angeben. Die Neustartoption konfiguriert das Neustartverhalten des Systems.

AWSTOE generiert den **msiexec** Befehl auf der Grundlage der Eingabeparameter für das Aktionsmodul. Der Speicherort der MSI-Datei (`path`) und der Speicherort der Protokolldatei (`logFile`) werden bei der Generierung des **msiexec** Befehls explizit in doppelte Anführungszeichen („) eingeschlossen.

Die folgenden MSI-Exitcodes werden als erfolgreich angesehen:
+ 0 (Erfolg)
+ 1605 (ERROR\$1UNKNOWN\$1PRODUCT)
+ 1614 (ERROR\$1PRODUCT\$1DEINSTALLIERT)
+ 1641 (Neustart eingeleitet)
+ 3010 (Neustart erforderlich)


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | 
| --- | --- | --- | --- | --- | --- | 
| path |  Geben Sie den Speicherort der MSI-Datei mit einer der folgenden Methoden an: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html) Verkettungsausdrücke sind zulässig.  | Zeichenfolge | Ja | – | – | 
| reboot |  Konfiguriert das Verhalten beim Systemneustart, das auf eine erfolgreiche Ausführung des Aktionsmoduls folgt. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Zeichenfolge | Nein | Allow | Allow, Force, Skip | 
| logOptions |  Geben Sie die Optionen an, die für die MSI-Installationsprotokollierung verwendet werden sollen. Die angegebenen Flags werden zusammen mit den `/L` Befehlszeilenparametern zur Aktivierung der Protokollierung an das MSI-Installationsprogramm übergeben. Wenn keine Flags angegeben sind, AWSTOE wird der Standardwert verwendet. Weitere Informationen zu Protokolloptionen für MSI finden Sie unter [Befehlszeilenoptionen](https://docs.microsoft.com/en-us/windows/win32/msi/command-line-options) in der Microsoft *Windows Installer-Produktdokumentation*.  | Zeichenfolge | Nein | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  Ein absoluter oder relativer Pfad zum Speicherort der Protokolldatei. Wenn der Protokolldateipfad nicht existiert, wird er erstellt. Wenn der Protokolldateipfad nicht angegeben wird, AWSTOE wird das MSI-Installationsprotokoll nicht gespeichert.  | Zeichenfolge | Nein | – | – | 
| properties |  Schlüssel-Wert-Paare für MSI-Logging-Eigenschaften, zum Beispiel: `TARGETDIR: "C:\target\location"`   Hinweis: Die Änderung der folgenden Eigenschaften ist nicht zulässig: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Map [Zeichenfolge] Zeichenfolge | Nein | – | – | 
| ignoreAuthenticodeSignatureErrors |  Markierung zum Ignorieren von Fehlern bei der Überprüfung der Authenticode-Signatur für das im Pfad angegebene Installationsprogramm. Der **Get-AuthenticodeSignature** Befehl wird verwendet, um Installationsprogramme zu validieren. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolesch | Nein | false | true, false | 
| allowUnsignedInstaller |  Markierung, die die Ausführung des im Pfad angegebenen unsignierten Installationsprogramms ermöglicht. Der **Get-AuthenticodeSignature** Befehl wird verwendet, um Installationsprogramme zu validieren. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolesch | Nein | false | true, false | 

**Beispiele**  
Die folgenden Beispiele zeigen Varianten des Eingabeabschnitts für Ihr Komponentendokument, abhängig von Ihrem Installationspfad.

**Eingabebeispiel: Installation des lokalen Dokumentpfads entfernen**

```
- name: local-path-uninstall
  steps:
    - name: LocalPathUninstaller
      action: UninstallMSI
      inputs:
        path: C:\sample.msi
        logFile: C:\msilogs\local-path-uninstall.log
        logOptions: '*VX'
        reboot: Allow
        properties:
          COMPANYNAME: '"Amazon Web Services"'
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: true
```

**Eingabebeispiel: Amazon S3 S3-Pfadinstallation entfernen**

```
- name: s3-path-uninstall
  steps:
    - name: S3PathUninstaller
      action: UninstallMSI
      inputs:
        path: s3://<bucket-name>/sample.msi
        logFile: s3-path-uninstall.log
        reboot: Force
        ignoreAuthenticodeSignatureErrors: false
        allowUnsignedInstaller: true
```

**Eingabebeispiel: Webpfad-Installation entfernen**

```
- name: web-path-uninstall
  steps:
    - name: WebPathUninstaller
      action: UninstallMSI
      inputs:
        path: https://<some-path>/sample.msi
        logFile: web-path-uninstall.log
        reboot: Skip
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: false
```

**Ausgabe**  
Das Folgende ist ein Beispiel für die Ausgabe des `UninstallMSI` Aktionsmoduls.

```
{
	"logFile": "web-path-uninstall.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

## Aktionsmodule des Systems
<a name="action-modules-system-actions"></a>

Im folgenden Abschnitt werden Aktionsmodule beschrieben, die Systemaktionen ausführen oder Systemeinstellungen aktualisieren.

**Topics**
+ [Neustart (Linux, Windows)](#action-modules-reboot)
+ [SetRegistry (Windows)](#action-modules-setregistry)
+ [OS aktualisieren (Linux, Windows)](#action-modules-updateos)

### Neustart (Linux, Windows)
<a name="action-modules-reboot"></a>

Das Aktionsmodul **Reboot startet** die Instanz neu. Es verfügt über eine konfigurierbare Option, um den Start des Neustarts zu verzögern. Standardmäßig `delaySeconds` ist auf eingestellt, was bedeutet`0`, dass es keine Verzögerung gibt. Das Schrittzeitlimit wird für das Aktionsmodul Neustart nicht unterstützt, da es nicht gilt, wenn die Instanz neu gestartet wird.

Wenn die Anwendung vom Systems Manager Agent aufgerufen wird, übergibt sie den Exit-Code (`3010`für Windows, `194` für Linux) an den Systems Manager Agent. Der Systems Manager Agent führt den Systemneustart wie unter [Managed Instance from Scripts neu starten](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html) beschrieben durch.

Wenn die Anwendung auf dem Host als eigenständiger Prozess aufgerufen wird, speichert sie den aktuellen Ausführungsstatus, konfiguriert einen Auslöser für die automatische Ausführung nach dem Neustart, sodass die Anwendung nach dem Neustart erneut ausgeführt wird, und startet dann das System neu.

**Automatischer Start-Trigger nach dem Neustart:**
+ **Windows.** AWSTOE erstellt einen Windows Taskplaner-Eintrag mit einem Trigger, der automatisch ausgeführt wird unter `SystemStartup`
+ **Linux**. AWSTOE fügt einen Job in Crontab hinzu, der nach dem Neustart des Systems automatisch ausgeführt wird.

```
@reboot /download/path/awstoe run --document s3://bucket/key/doc.yaml
```

Dieser Trigger wird bereinigt, wenn die Anwendung gestartet wird.

**Erneute Versuche**  
Standardmäßig ist die maximale Anzahl von Wiederholungen auf den Systems Manager `CommandRetryLimit` festgelegt. Wenn die Anzahl der Neustarts das Wiederholungslimit überschreitet, schlägt die Automatisierung fehl. Sie können das Limit ändern, indem Sie die Konfigurationsdatei (`Mds.CommandRetryLimit`) des Systems Manager Manager-Agenten bearbeiten. Weitere Informationen finden Sie unter [Laufzeitkonfiguration](https://github.com/aws/amazon-ssm-agent/blob/mainline/README.md#runtime-configuration) im Open Source-System Manager-Agent.

Um das **Reboot-Aktionsmodul** für Schritte zu verwenden, die einen Neustart beinhalten `exitcode` (z. B.`3010`), müssen Sie die Anwendungsbinärdatei als ausführen`sudo user`.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standard | 
| --- | --- | --- | --- | --- | 
| delaySeconds | Verzögert eine bestimmte Zeit, bevor ein Neustart initiiert wird. | Ganzzahl |  Nein  |  `0`  | 

**Eingabebeispiel: Neustart-Schritt**

```
  - name: RebootStep
    action: Reboot
    onFailure: Abort
    maxAttempts: 2
    inputs:
      delaySeconds: 60
```

**Ausgabe**

Keine.

Wenn das **Reboot-Modul** abgeschlossen ist, fährt Image Builder mit dem nächsten Schritt im Build fort.

### SetRegistry (Windows)
<a name="action-modules-setregistry"></a>

Das **SetRegistry**Aktionsmodul akzeptiert eine Liste von Eingaben und ermöglicht es Ihnen, den Wert für den angegebenen Registrierungsschlüssel festzulegen. Wenn ein Registrierungsschlüssel nicht existiert, wird er im definierten Pfad erstellt. Diese Funktion gilt nur für Windows.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| path | Pfad des Registrierungsschlüssels. | Zeichenfolge | Ja | 
| name | Name des Registrierungsschlüssels. | Zeichenfolge | Ja | 
| value | Wert des Registrierungsschlüssels. | String/Number/Array | Ja | 
| type | Werttyp des Registrierungsschlüssels. | Zeichenfolge | Ja | 

**Unterstützte Pfadpräfixe**
+ `HKEY_CLASSES_ROOT / HKCR:`
+ `HKEY_USERS / HKU:`
+ `HKEY_LOCAL_MACHINE / HKLM:`
+ `HKEY_CURRENT_CONFIG / HKCC:`
+ `HKEY_CURRENT_USER / HKCU:`

**Unterstützte -Typen**
+ `BINARY`
+ `DWORD`
+ `QWORD`
+ `SZ`
+ `EXPAND_SZ`
+ `MULTI_SZ`

**Eingabebeispiel: Legen Sie die Werte der Registrierungsschlüssel fest**

```
  - name: SetRegistryKeyValues
    action: SetRegistry
    maxAttempts: 3
    inputs:
      - path: HKLM:\SOFTWARE\MySoftWare
        name: MyName
        value: FirstVersionSoftware
        type: SZ
      - path: HKEY_CURRENT_USER\Software\Test
        name: Version
        value: 1.1
        type: DWORD
```

**Ausgabe**

Keine.

### OS aktualisieren (Linux, Windows)
<a name="action-modules-updateos"></a>

Das **UpdateOS-Aktionsmodul** bietet Unterstützung für die Installation von Windows- und Linux-Updates. Es installiert standardmäßig alle verfügbaren Updates. Alternativ können Sie eine Liste mit einem oder mehreren spezifischen Updates konfigurieren, die das Aktionsmodul installieren soll. Sie können auch Updates angeben, die von der Installation ausgeschlossen werden sollen.

Wenn sowohl die Listen „Einschließen“ als auch „Ausschließen“ bereitgestellt werden, kann die resultierende Liste von Updates nur die Updates enthalten, die in der „Einschluss“ -Liste aufgeführt sind und nicht in der Ausschlussliste aufgeführt sind.

**Anmerkung**  
**UpdateOS** unterstützt Amazon Linux 2023 (AL2023) nicht. Wir empfehlen Ihnen, Ihr Basis-AMI auf die neue Version zu aktualisieren, die mit jeder Version geliefert wird. Weitere Alternativen finden Sie unter [Steuern der Updates, die Sie von Haupt- und Nebenversionen erhalten haben](https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html#controlling-release-updates), im *Amazon Linux 2023-Benutzerhandbuch*.
+ **Windows**. Updates werden von der auf dem Zielcomputer konfigurierten Update-Quelle installiert.
+ **Linux**. Die Anwendung sucht nach dem unterstützten Paketmanager auf der Linux-Plattform und verwendet entweder den `apt-get` Paketmanager `yum` oder. Wenn keiner von beiden unterstützt wird, wird ein Fehler zurückgegeben. Sie sollten über die `sudo` erforderlichen Berechtigungen verfügen, um das **UpdateOS-Aktionsmodul** auszuführen. Wenn Sie keine `sudo` Berechtigungen haben, `error.Input` wird ein zurückgegeben.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| include |  Für Windows können Sie Folgendes angeben: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html) Für Linux können Sie ein oder mehrere Pakete angeben, die in die Liste der zu installierenden Updates aufgenommen werden sollen.  | Liste der Zeichenketten | Nein | 
| exclude |  Für Windows können Sie Folgendes angeben: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html) Für Linux können Sie ein oder mehrere Pakete angeben, die von der Liste der Updates für die Installation ausgeschlossen werden sollen.  | Liste der Zeichenketten | Nein | 

**Eingabebeispiel: Unterstützung für die Installation von Linux-Updates hinzufügen**

```
  - name: UpdateMyLinux
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      exclude:
        - ec2-hibinit-agent
```

**Eingabebeispiel: Unterstützung für die Installation von Windows-Updates hinzufügen**

```
  - name: UpdateWindowsOperatingSystem
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      include:
        - KB1234567
        - '*Security*'
```

**Ausgabe**

Keine.

# Eingabe für den Befehl AWSTOE run konfigurieren
<a name="toe-run-config-input"></a>

Um die Befehlszeileneingabe für Ihren AWSTOE **run** Befehl zu optimieren, können Sie Einstellungen für Befehlsparameter und Optionen in eine Eingabekonfigurationsdatei im JSON-Format mit einer `.json` Dateierweiterung aufnehmen. AWSTOE kann Ihre Datei von einem der folgenden Orte aus lesen:
+ Ein lokaler Dateipfad (*./config.json*).
+ Ein S3-Bucket (*s3://<bucket-path>/<bucket-name>/config.json*).

Wenn Sie den **run** Befehl eingeben, können Sie die Eingabekonfigurationsdatei mithilfe des **--config** Parameters angeben. Zum Beispiel:

```
awstoe run --config <file-path>/config.json
```

**Eingabe-Konfigurationsdatei**  
Die JSON-Datei für die Eingabekonfiguration enthält Schlüssel-Wert-Paare für alle Einstellungen, die Sie direkt über **run** Befehlsparameter und Optionen angeben können. Wenn Sie eine Einstellung sowohl in der Eingabekonfigurationsdatei als auch im **run** Befehl als Parameter oder Option angeben, gelten die folgenden Prioritätsregeln:

**Regeln der Rangfolge**

1. Eine Einstellung, die über einen Parameter oder eine Option direkt an den **run** Befehl in der AWS CLIübergeben wird, überschreibt jeden Wert, der in der Eingabekonfigurationsdatei für dieselbe Einstellung definiert ist.

1. Eine Einstellung in der Eingabekonfigurationsdatei überschreibt den Standardwert einer Komponente.

1. Wenn keine anderen Einstellungen an das Komponentendokument übergeben werden, kann es einen Standardwert anwenden, sofern vorhanden.

Es gibt zwei Ausnahmen von dieser Regel: Dokumente und Parameter. Diese Einstellungen funktionieren in der Eingabekonfiguration und als Befehlsparameter unterschiedlich. Wenn Sie die Eingabekonfigurationsdatei verwenden, dürfen Sie diese Parameter nicht direkt für den **run** Befehl angeben. Andernfalls wird ein Fehler generiert.

**Einstellungen der Komponenten**  
Die Eingabekonfigurationsdatei enthält die folgenden Einstellungen. Um Ihre Datei zu optimieren, können Sie alle optionalen Einstellungen weglassen, die nicht benötigt werden. Alle Einstellungen sind optional, sofern nicht anders angegeben.
+ **cwIgnoreFailures**(Boolean) — Ignoriert Protokollfehler in den CloudWatch Protokollen.
+ **cwLogGroup**(String) — Der `LogGroup` Name für die CloudWatch Protokolle.
+ **cwLogRegion**(Zeichenfolge) — Die AWS Region, die für die CloudWatch Protokolle gilt.
+ **cwLogStream**(String) — Der `LogStream` Name für die CloudWatch Logs, der angibt, AWSTOE wohin die `console.log` Datei gestreamt werden soll.
+ **documentS3 BucketOwner** (String) — Die Konto-ID des Bucket-Besitzers für S3-URI-basierte Dokumente.
+ **documents** (Array von Objekten, erforderlich) — Ein Array von JSON-Objekten, die die Dokumente der YAML-Komponente darstellen, die den AWSTOE **run** Befehl ausführt. Es muss mindestens ein Komponentendokument angegeben werden.

  Jedes Objekt besteht aus den folgenden Feldern:
  + **path** (String, erforderlich) — Der Dateispeicherort des YAML-Komponentendokuments. Dies muss einer der folgenden sein:
    + Ein lokaler Dateipfad (*./component-doc-example.yaml*).
    + Ein S3-URI (`s3://bucket/key`).
    + Ein ARN für die Build-Version einer Image Builder-Komponente (arn:aws:imagebuilder:us-west--und 2021.12.02/1). *2:123456789012* *my-example-component*
  + **parameters** (array of objects) — Ein Array von Objekten mit Schlüssel-Wert-Paaren, von denen jedes einen komponentenspezifischen Parameter darstellt, den der Befehl bei der Ausführung des Komponentendokuments übergibt. **run** Parameter sind für Komponenten optional. Für das Komponentendokument können Parameter definiert sein oder nicht.

    Jedes Objekt besteht aus den folgenden Feldern:
    + **name** (Zeichenfolge, erforderlich) — Der Name des Komponentenparameters.
    + **value** (String, erforderlich) — Der Wert, der für den benannten Parameter an das Komponentendokument übergeben werden soll.

    Weitere Informationen zu Komponentenparametern finden Sie im Abschnitt **Parameter** [Verwenden Sie Variablen in Ihrem Dokument mit benutzerdefinierten Komponenten](toe-user-defined-variables.md) auf der Seite.
+ **executonId** (String) — Dies ist die eindeutige ID, die für die Ausführung des aktuellen Befehls gilt. **run** Diese ID ist in den Namen der Ausgabe- und Protokolldateien enthalten, um diese Dateien eindeutig zu identifizieren und sie mit der aktuellen Befehlsausführung zu verknüpfen. Wenn diese Einstellung weggelassen wird, wird eine GUID AWSTOE generiert.
+ **LogDirectory** (Zeichenfolge) — Das Zielverzeichnis, in dem alle Protokolldateien dieser Befehlsausführung AWSTOE gespeichert werden. Standardmäßig befindet sich dieses Verzeichnis im folgenden übergeordneten Verzeichnis:`TOE_<DATETIME>_<EXECUTIONID>`. Wenn Sie das Protokollverzeichnis nicht angeben, AWSTOE wird das aktuelle Arbeitsverzeichnis (`.`) verwendet.
+ **logS3 BucketName** (Zeichenfolge) — Wenn Komponentenprotokolle in Amazon S3 gespeichert sind (empfohlen), werden die Komponentenanwendungsprotokolle in den in diesem Parameter genannten S3-Bucket AWSTOE hochgeladen.
+ **logS3 BucketOwner** (Zeichenfolge) — Wenn Komponentenprotokolle in Amazon S3 gespeichert werden (empfohlen), ist dies die Eigentümerkonto-ID für den Bucket, in den die Protokolldateien AWSTOE geschrieben werden.
+ **logS3 KeyPrefix** (String) — Wenn Komponentenprotokolle in Amazon S3 gespeichert werden (empfohlen), ist dies das S3-Objektschlüsselpräfix für den Protokollspeicherort im Bucket.
+ **parameters** (Array von Objekten) — Ein Array von Objekten mit Schlüssel-Wert-Paaren, die Parameter darstellen, die global für alle Komponenten gelten, die in der aktuellen **run** Befehlsausführung enthalten sind.
  + **name** (String, erforderlich) — Der Name des globalen Parameters.
  + **value** (String, erforderlich) — Der Wert, der an alle Komponentendokumente für den benannten Parameter übergeben werden soll.
+ **phases** (String) — Eine durch Kommas getrennte Liste, die angibt, welche Phasen in den Dokumenten der YAML-Komponente ausgeführt werden sollen. Wenn ein Komponentendokument zusätzliche Phasen enthält, werden diese nicht ausgeführt.
+ **StateDirectory** (Zeichenfolge) — Der Dateipfad, in dem Statusverfolgungsdateien gespeichert werden.
+ **trace** (Boolean) — Ermöglicht die ausführliche Protokollierung in der Konsole.

**Beispiele**  
Das folgende Beispiel zeigt eine Eingabekonfigurationsdatei, die die `test` Phasen `build` und für zwei Komponentendokumente ausführt:`sampledoc.yaml`, und. `conversation-intro.yaml` Jedes Komponentendokument hat einen Parameter, der nur für sich selbst gilt, und beide verwenden einen gemeinsamen Parameter. Der `project` Parameter gilt für beide Komponentendokumente.

```
{
   "documents": [
     {
       "path": "<file path>/awstoe/sampledoc.yaml>",
       "parameters": [
         {
           "name": "dayofweek",
           "value": "Monday"
         }
       ]
     },
     {
       "path": "<file path>/awstoe/conversation-intro.yaml>",
       "parameters": [
         {
           "name": "greeting",
           "value": "Hello, HAL."
         }
       ]
     }
   ],
   "phases": "build,test",
   "parameters": [
     {
       "name": "project",
       "value": "examples"
     }
   ],
   "cwLogGroup": "<log_group_name>",
   "cwLogStream": "<log_stream_name>",
   "documentS3BucketOwner": "<owner_aws_account_number>",
   "executionId": "<id_number>",
   "logDirectory": "<local_directory_path>",
   "logS3BucketName": "<bucket_name_for_log_files>",
   "logS3KeyPrefix": "<key_prefix_for_log_files>",
   "logS3BucketOwner": "<owner_aws_account_number>"
 }
```