

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.

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