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 Container-Image-Pipeline aus dem 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 evaluierenpipelineExecutionStartConditionund 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 Ressourcen sind für Container-Image-Pipelines erforderlich:
-
Container-Rezept (ARN)
-
Konfiguration der Infrastruktur ARN
Wenn Sie bei der Ausführung des create-image-pipeline Befehls keine Ressource für die Distributionskonfiguration angeben, wird das Ausgabebild im ECR-Repository gespeichert, das Sie in Ihrem Container-Rezept als Ziel-Repository in der Region angeben, in der Sie den Befehl ausführen. Wenn Sie eine Ressource für die Distributionskonfiguration für Ihre Pipeline hinzufügen, wird das Ziel-Repository verwendet, das Sie für die erste Region in der Distribution angegeben haben.
-
Erstellen einer CLI-Eingabe-JSON-Datei
Verwenden Sie Ihr bevorzugtes Dateibearbeitungswerkzeug, um eine JSON-Datei mit den folgenden Schlüsseln sowie Werten, die für Ihre Umgebung gültig sind, zu erstellen. In diesem Beispiel wird eine Datei mit dem Namen
create-image-pipeline.json:{ "name": "MyWindows2019Pipeline", "description": "Builds Windows 2019 Images", "enhancedImageMetadataEnabled": true, "containerRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:container-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 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. Beispielsweise verwendet Windows den umgekehrten Schrägstrich (\), um auf den Verzeichnispfad zu verweisen, während Linux und macOS den Schrägstrich (/) verwenden.
-
-
Führen Sie den folgenden Befehl aus, indem Sie die Datei verwenden, die Sie als Eingabe erstellt haben.
aws imagebuilder create-image-pipeline --cli-input-json file://create-image-pipeline.json
Beispiel: Erstellen Sie eine Container-Pipeline mit Bildscannen und benutzerdefinierten Workflows
In diesem Beispiel wird eine Container-Pipeline konfiguriert, die jeden Montag um 10:00 Uhr UTC überprüft wird und nur ausgeführt wird, wenn Aktualisierungen der Abhängigkeiten verfügbar sind. Die Konfigurationsdatei verwendet vorhandene Ressourcen für das Container-Rezept und die Infrastruktur. Sie ermöglicht das Scannen von Sicherheitslücken mit Amazon Inspector und die ECR-Integration. 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.
-
Erstellen Sie eine Konfigurationsdatei
Erstellen Sie eine JSON-Datei mit dem Namen
create-container-pipeline-with-workflows.json. Diese Datei definiert die Container-Pipeline-Konfiguration mit aktiviertem Image-Scanning und benutzerdefinierten Test-Workflows. Ersetzen Sie die Platzhalterwerte durch Ihre eigenen Ressourcen-ARNs.{ "name": "MyContainerPipelineWithScanning", "description": "Container pipeline with vulnerability scanning and custom workflows", "containerRecipeArn": "arn:aws:imagebuilder:us-east-1:123456789012:container-recipe/my-container-recipe/1.0.0", "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/my-infra-config", "distributionConfigurationArn": "arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/my-dist-config", "imageScanningConfiguration": { "imageScanningEnabled": true, "ecrConfiguration": { "repositoryName": "my-scanning-repo", "containerTags": ["scan-latest"] } }, "workflows": [ { "workflowArn": "arn:aws:imagebuilder:us-east-1:123456789012:workflow/build/my-build-workflow/1.0.0" }, { "workflowArn": "arn:aws:imagebuilder:us-east-1:123456789012:workflow/test/my-security-scan/1.0.0", "onFailure": "ABORT", "parallelGroup": "security" }, { "workflowArn": "arn:aws:imagebuilder:us-east-1:123456789012:workflow/test/my-compliance-check/1.0.0", "onFailure": "ABORT", "parallelGroup": "security" }, { "workflowArn": "arn:aws:imagebuilder:us-east-1:123456789012:workflow/test/my-functional-test/1.0.0", "onFailure": "CONTINUE", "parallelGroup": "functional" }, { "workflowArn": "arn:aws:imagebuilder:us-east-1: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-container-pipeline-image-logs", "pipelineLogGroupName": "/aws/imagebuilder/my-container-pipeline-execution-logs" }, "imageTestsConfiguration": { "imageTestsEnabled": true, "timeoutMinutes": 120 }, "schedule": { "scheduleExpression": "cron(0 10 ? * MON *)", "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" }, "status": "ENABLED" }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. Beispielsweise verwendet Windows den umgekehrten Schrägstrich (\), um auf den Verzeichnispfad zu verweisen, während Linux und macOS den Schrägstrich (/) verwenden.
-
-
Ausführen des Befehls
aws imagebuilder create-image-pipeline --cli-input-json file://create-container-pipeline-with-workflows.json