View a markdown version of this page

Créez un pipeline d'images AMI à partir du AWS CLI - EC2 Image Builder

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez un pipeline d'images AMI à partir du AWS CLI

Pour créer un pipeline d'images à partir de AWS CLI, exécutez la create-image-pipeline commande avec les options de configuration qui s'appliquent à votre pipeline. Vous avez la possibilité de créer un fichier JSON contenant l'ensemble de la configuration de votre pipeline ou de spécifier la configuration lors de l'exécution. Cette section utilise la méthode du fichier de configuration JSON pour simplifier la commande.

La fréquence à laquelle votre pipeline crée une nouvelle image pour intégrer les mises à jour en attente à partir de votre image de base et de vos composants dépend de schedule ce que vous avez configuré. A schedule possède les attributs suivants :

  • scheduleExpression— Définit le calendrier d'exécution de votre pipeline afin d'évaluer pipelineExecutionStartCondition et de déterminer s'il doit démarrer une construction. Le calendrier est configuré avec des expressions cron. Pour plus d'informations sur la mise en forme d'une expression cron dans Image Builder, consultezUtiliser des expressions cron dans Image Builder.

  • pipelineExecutionStartCondition— Détermine si votre pipeline doit démarrer la construction. Les valeurs valides sont les suivantes :

    • EXPRESSION_MATCH_ONLY— votre pipeline créera une nouvelle image chaque fois que l'expression cron correspond à l'heure actuelle.

    • EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE— votre pipeline crée une nouvelle image uniquement lorsque l'expression du calendrier correspond et que des mises à jour sont en attente de votre image de base ou de vos composants. Si aucune mise à jour n'est en attente, la compilation est ignorée. Pour créer immédiatement sans attendre les mises à jour, exécutez le pipeline manuellement.

Lorsque vous exécutez la create-image-pipeline commande dans le AWS CLI, de nombreuses ressources de configuration sont facultatives. Certaines ressources sont toutefois soumises à des exigences conditionnelles, en fonction du type d'image créé par le pipeline. Les identificateurs de ressources suivants sont requis pour les pipelines d'images AMI :

  • Recette d'image ARN

  • ARN de configuration de l'infrastructure

 

Exemple : création d'une image Windows 2019

Cet exemple configure un pipeline dont l'exécution est programmée une fois par semaine le dimanche. Le fichier de configuration présenté à la première étape utilise les ressources existantes pour la configuration de la recette, de l'infrastructure et de la distribution de l'image, ainsi que d'autres paramètres pour créer une image Windows 2019.

  1. Création d'un fichier de configuration (facultatif)

    Cet exemple utilise un fichier de configuration nommé create-image-pipeline.json pour configurer les paramètres en un seul endroit. Vous pouvez également utiliser les options de ligne de commande lorsque vous exécutez la commande pour spécifier tous les détails affichés ici dans le fichier de configuration.

    { "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" }
    Note
    • Vous devez inclure l'option file:// au début du chemin du fichier JSON.

    • Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

  2. Exécutez la commande pour créer une image

    Cet exemple utilise le fichier de configuration créé lors de la première étape comme entrée de la create-image-pipeline commande. Vous pouvez également spécifier les paramètres et les ressources de votre pipeline directement lorsque vous exécutez la commande. Pour plus d'informations, consultez create-image-pipeline dans la Référence. AWS CLI

    aws imagebuilder create-image-pipeline --cli-input-json file://create-image-pipeline.json
Exemple : création d'un pipeline avec numérisation d'images et flux de travail personnalisés

Cet exemple configure un pipeline qui est vérifié tous les sept jours et qui s'exécute uniquement lorsque des mises à jour des dépendances sont disponibles. Le fichier de configuration utilise les ressources existantes pour la recette et l'infrastructure de l'image. Il permet l'analyse des vulnérabilités à l'aide d'Amazon Inspector. La configuration spécifie également des flux de travail personnalisés dotés d'un rôle d'exécution. Des groupes parallèles exécutent simultanément des tests de sécurité et des tests fonctionnels. Les journaux de pipeline sont envoyés à des groupes de CloudWatch journaux personnalisés.

  1. Création d'un fichier de configuration

    Créez un fichier JSON nommécreate-pipeline-with-workflows.json. Ce fichier définit la configuration du pipeline avec la numérisation d'images activée et les flux de travail de test personnalisés. Remplacez les valeurs des espaces réservés par les ARN de vos propres ressources.

    { "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" }
    Note
    • Vous devez inclure l'option file:// au début du chemin du fichier JSON.

    • Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

  2. Exécutez la commande
    aws imagebuilder create-image-pipeline --cli-input-json file://create-pipeline-with-workflows.json