

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.

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

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