View a markdown version of this page

Erstellen Sie eine AMI-Image-Pipeline aus der AWS CLI - EC2 Image 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 AMI-Image-Pipeline aus der AWS CLI

Um eine Image-Pipeline aus dem zu erstellen AWS CLI, führen Sie den create-image-pipeline Befehl mit den Konfigurationsoptionen aus, die für Ihre Pipeline gelten. Sie haben die Möglichkeit, eine JSON-Datei zu erstellen, die Ihre gesamte Pipeline-Konfiguration enthält, oder die Konfiguration zur Laufzeit anzugeben. In diesem Abschnitt wird die JSON-Konfigurationsdateimethode verwendet, um den Befehl zu vereinfachen.

Wie oft Ihre Pipeline ein neues Image erstellt, um alle ausstehenden Updates von Ihrem Basis-Image und Ihren Komponenten zu integrieren, hängt davon abschedule, was Sie konfiguriert haben. A schedule hat die folgenden Attribute:

  • scheduleExpression— Legt den Zeitplan für die Ausführung Ihrer Pipeline fest, um sie zu evaluieren pipelineExecutionStartCondition und zu bestimmen, ob ein Build gestartet werden sollte. Der Zeitplan ist mit Cron-Ausdrücken konfiguriert. Weitere Informationen zum Formatieren eines Cron-Ausdrucks in Image Builder finden Sie unter. Verwenden Sie Cron-Ausdrücke in Image Builder

  • pipelineExecutionStartCondition— Legt fest, ob Ihre Pipeline mit dem Build beginnen soll. Gültige Werte sind:

    • EXPRESSION_MATCH_ONLY— Ihre Pipeline erstellt jedes Mal ein neues Image, wenn der Cron-Ausdruck mit der aktuellen Uhrzeit übereinstimmt.

    • EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE— Ihre Pipeline erstellt nur dann ein neues Image, wenn der Zeitplanausdruck übereinstimmt und Aktualisierungen Ihres Basis-Images oder Ihrer Komponenten ausstehen. Wenn keine Updates ausstehen, wird der Build übersprungen. Um sofort zu erstellen, ohne auf Updates zu warten, führen Sie die Pipeline manuell aus.

Wenn Sie den create-image-pipeline Befehl in der ausführen AWS CLI, sind viele der Konfigurationsressourcen optional. Für einige Ressourcen gelten jedoch bedingte Anforderungen, je nachdem, welche Art von Image die Pipeline erstellt. Die folgenden Ressourcenkennungen sind für AMI-Image-Pipelines erforderlich:

  • Bildrezept (ARN)

  • Konfiguration der Infrastruktur ARN

 

Beispiel: Erstellen Sie ein Windows 2019-Image

In diesem Beispiel wird eine Pipeline konfiguriert, die voraussichtlich einmal pro Woche am Sonntag ausgeführt wird. Die im ersten Schritt gezeigte Konfigurationsdatei verwendet vorhandene Ressourcen für das Image-Rezept, die Infrastruktur und die Verteilungskonfiguration sowie andere Einstellungen, um ein Windows 2019-Image zu erstellen.

  1. Erstellen Sie eine Konfigurationsdatei (optional)

    In diesem Beispiel wird eine Konfigurationsdatei mit dem Namen „create-image-pipeline.jsonUm die Einstellungen an einer Stelle zu konfigurieren“ verwendet. Sie können auch Befehlszeilenoptionen verwenden, wenn Sie den Befehl ausführen, um alle Details anzugeben, die hier in der Konfigurationsdatei angezeigt werden.

    { "name": "ExampleWindows2019Pipeline", "description": "Builds Windows 2019 Images", "enhancedImageMetadataEnabled": true, "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-recipe/2020.12.03", "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/my-example-infrastructure-configuration", "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/my-example-distribution-configuration", "imageTestsConfiguration": { "imageTestsEnabled": true, "timeoutMinutes": 60 }, "schedule": { "scheduleExpression": "cron(0 0 * * SUN *)", "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" }, "status": "ENABLED" }
    Anmerkung
    • Sie müssen diefile://-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. Beispielsweise verwendet Windows den umgekehrten Schrägstrich (\), um auf den Verzeichnispfad zu verweisen, während Linux und macOS den Schrägstrich (/) verwenden.

  2. Führen Sie den Befehl aus, um ein Image zu erstellen

    In diesem Beispiel wird die im ersten Schritt erstellte Konfigurationsdatei als Eingabe für den create-image-pipeline Befehl verwendet. Alternativ können Sie die Einstellungen und Ressourcen für Ihre Pipeline direkt angeben, wenn Sie den Befehl ausführen. Weitere Informationen finden Sie unter create-image-pipeline in der Referenz. AWS CLI

    aws imagebuilder create-image-pipeline --cli-input-json file://create-image-pipeline.json
Beispiel: Erstellen Sie eine Pipeline mit Bildscannen und benutzerdefinierten Workflows

In diesem Beispiel wird eine Pipeline konfiguriert, die alle sieben Tage überprüft und nur ausgeführt wird, wenn Aktualisierungen der Abhängigkeiten verfügbar sind. Die Konfigurationsdatei verwendet vorhandene Ressourcen für das Image-Rezept und die Infrastruktur. Sie ermöglicht das Scannen von Sicherheitslücken mit Amazon Inspector. Die Konfiguration spezifiziert auch benutzerdefinierte Workflows mit einer Ausführungsrolle. Parallele Gruppen führen gleichzeitig Sicherheits- und Funktionstests durch. Pipeline-Protokolle werden an benutzerdefinierte CloudWatch Protokollgruppen gesendet.

  1. Erstellen Sie eine Konfigurationsdatei

    Erstellen Sie eine JSON-Datei mit dem Namencreate-pipeline-with-workflows.json. Diese Datei definiert die Pipeline-Konfiguration mit aktiviertem Bildscannen und benutzerdefinierten Testworkflows. Ersetzen Sie die Platzhalterwerte durch Ihre eigenen Ressourcen-ARNs.

    { "name": "MyPipelineWithScanning", "description": "Pipeline with vulnerability scanning and custom workflows", "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-recipe/1.0.0", "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/my-infra-config", "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/my-dist-config", "imageScanningConfiguration": { "imageScanningEnabled": true }, "workflows": [ { "workflowArn": "arn:aws:imagebuilder:us-west-2:123456789012:workflow/build/my-build-workflow/1.0.0" }, { "workflowArn": "arn:aws:imagebuilder:us-west-2:123456789012:workflow/test/my-security-scan/1.0.0", "onFailure": "ABORT", "parallelGroup": "security" }, { "workflowArn": "arn:aws:imagebuilder:us-west-2:123456789012:workflow/test/my-compliance-check/1.0.0", "onFailure": "ABORT", "parallelGroup": "security" }, { "workflowArn": "arn:aws:imagebuilder:us-west-2:123456789012:workflow/test/my-functional-test/1.0.0", "onFailure": "CONTINUE", "parallelGroup": "functional" }, { "workflowArn": "arn:aws:imagebuilder:us-west-2:123456789012:workflow/test/my-performance-test/1.0.0", "onFailure": "CONTINUE", "parallelGroup": "functional" } ], "executionRole": "arn:aws:iam::123456789012:role/ImageBuilderExecutionRole", "loggingConfiguration": { "imageLogGroupName": "/aws/imagebuilder/my-pipeline-image-logs", "pipelineLogGroupName": "/aws/imagebuilder/my-pipeline-execution-logs" }, "imageTestsConfiguration": { "imageTestsEnabled": true, "timeoutMinutes": 60 }, "schedule": { "scheduleExpression": "rate(7 days)", "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" }, "status": "ENABLED" }
    Anmerkung
    • Sie müssen diefile://-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. Beispielsweise verwendet Windows den umgekehrten Schrägstrich (\), um auf den Verzeichnispfad zu verweisen, während Linux und macOS den Schrägstrich (/) verwenden.

  2. Ausführen des Befehls
    aws imagebuilder create-image-pipeline --cli-input-json file://create-pipeline-with-workflows.json