Erstellen Sie eine benutzerdefinierte Komponente mit Image Builder - EC2Image Builder

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.

Erstellen Sie eine benutzerdefinierte Komponente mit Image Builder

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 API oder SDKs oder über die Befehlszeile erstellen. Weitere Informationen zum Erstellen einer benutzerdefinierten Komponente mit Eingabeparametern und deren Verwendung in Ihren Rezepten finden Sie unterTutorial: Erstellen Sie eine benutzerdefinierte Komponente mit Eingabeparametern.

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

Erstellen Sie eine benutzerdefinierte Komponente von der Konsole aus

Um eine zu erstellen AWSTOE Gehen Sie in der Image Builder Builder-Konsole für die Anwendungskomponente wie folgt vor:

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

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

  3. 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.

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

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

    4. Version der Komponente. Geben Sie die Versionsnummer der Komponente ein.

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

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

  4. 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 unterErstellen Sie ein YAML Komponentendokument für benutzerdefinierte Komponenten in Image Builder.

  5. 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.

  6. 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.

  2. 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

Erstellen Sie eine benutzerdefinierte Komponente aus AWS CLI

In diesem Abschnitt erfahren Sie, wie Sie Image Builder Builder-Befehle einrichten und verwenden in AWS CLI um eine zu erstellen AWSTOE Anwendungskomponente, wie folgt.

  • Laden Sie Ihr YAML Komponentendokument in einen S3-Bucket hoch, auf den Sie von der Befehlszeile aus verweisen können.

  • Erstellen Sie das 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 zu erstellen AWSTOE Folgen Sie der Anwendungskomponente aus einem YAML Eingabedokument 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 Ihr AWSTOE Quelldokument der Anwendungskomponente. 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 zu vereinfachen, den Sie in der 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 in den vorherigen Schritten 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 API Builder-Aktionsanforderungsparameter angegeben ist. Informationen zu den API Befehlsanforderungsparametern finden Sie unter dem CreateComponentBefehl in der EC2Image Builder API Builder-Referenz.

Informationen zur Bereitstellung der Datenwerte als Befehlszeilenparameter finden Sie in den Parameternamen, die in der AWS CLI Befehlsreferenz.

  1. Erstellen Sie eine CLI JSON Eingabedatei

    Verwenden Sie ein Dateibearbeitungstool, um eine Datei mit dem Namen zu erstellencreate-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" } }
    Anmerkung
    • Sie müssen die file:// Notation am Anfang des JSON Dateipfads angeben.

    • Der Pfad für die JSON Datei sollte der entsprechenden Konvention für das Basisbetriebssystem entsprechen, auf dem Sie den Befehl ausführen. Windows verwendet beispielsweise den umgekehrten Schrägstrich (\), um auf den Verzeichnispfad zu verweisen, und Linux verwendet den Schrägstrich (/).

  2. 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 Dateipfads angeben.

    • Der Pfad für die JSON Datei sollte der entsprechenden Konvention für das Basisbetriebssystem entsprechen, auf dem Sie den Befehl ausführen. Windows verwendet beispielsweise den umgekehrten Schrägstrich (\), um auf den Verzeichnispfad zu verweisen, und Linux verwendet den Schrägstrich (/).

Windows
Speichern Sie Ihr Anwendungskomponentendokument in Amazon S3

Sie können einen S3-Bucket als Repository für Ihr AWSTOE Quelldokument der Anwendungskomponente. 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 zu vereinfachen, den Sie in der 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 in den vorherigen Schritten 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 API Builder-Aktionsanforderungsparameter angegeben ist. Informationen zu den API Befehlsanforderungsparametern finden Sie unter dem CreateComponentBefehl in der EC2Image Builder API Builder-Referenz.

Informationen zur Bereitstellung der Datenwerte als Befehlszeilenparameter finden Sie in den Parameternamen, die in der AWS CLI Befehlsreferenz..

  1. Erstellen Sie eine CLI JSON Eingabedatei

    Verwenden Sie ein Dateibearbeitungstool, um eine Datei mit dem Namen zu erstellencreate-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 Dateipfads angeben.

    • Der Pfad für die JSON Datei sollte der entsprechenden Konvention für das Basisbetriebssystem entsprechen, auf dem Sie den Befehl ausführen. Windows verwendet beispielsweise den umgekehrten Schrägstrich (\), um auf den Verzeichnispfad zu verweisen, und Linux verwendet den Schrägstrich (/).

  2. 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 Dateipfads angeben.

    • Der Pfad für die JSON Datei sollte der entsprechenden Konvention für das Basisbetriebssystem entsprechen, auf dem Sie den Befehl ausführen. Windows verwendet beispielsweise den umgekehrten Schrägstrich (\), um auf den Verzeichnispfad zu verweisen, und Linux verwendet den Schrägstrich (/).

AWSTOE Komponentenversionierung für Updates von AWS CLI

AWSTOE Komponentennamen und Versionen werden in den Amazon-Ressourcennamen (ARN) der Komponente nach dem Komponentenpräfix eingebettet. Jede neue Version einer Komponente hat ihr eigenes UnikatARN. Die Schritte zum Erstellen einer neuen Version sind genau dieselben wie zum Erstellen einer neuen Komponente, sofern 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

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

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 wurdeamzn-s3-demo-source-bucket. Wird derzeit für die Komponente unterstütztformat. 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