View a markdown version of this page

Cree una canalización de imágenes AMI desde AWS CLI - Generador de Imágenes de EC2

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree una canalización de imágenes AMI desde AWS CLI

Para crear una canalización de imágenes a partir de AWS CLI, ejecute el create-image-pipeline comando con las opciones de configuración aplicables a la canalización. Tienes la opción de crear un archivo JSON que contenga toda la configuración de la canalización o de especificar la configuración en tiempo de ejecución. En esta sección, se utiliza el método del archivo de configuración JSON para simplificar el comando.

La frecuencia con la que la canalización crea una nueva imagen para incorporar las actualizaciones pendientes de la imagen base y los componentes depende de la schedule que haya configurado. Una schedule tiene los siguientes atributos:

  • scheduleExpression: establece el cronograma de ejecución de la canalización para evaluar pipelineExecutionStartCondition y determinar si se debe iniciar una compilación. El cronograma se configura con expresiones cron. Para obtener más información sobre cómo dar formato a una expresión cron en Generador de Imágenes, consulte Utilizar expresiones cron en Generador de imágenes.

  • pipelineExecutionStartCondition: determina si su canalización debe iniciar la compilación. Los valores válidos son:

    • EXPRESSION_MATCH_ONLY: la canalización creará una nueva imagen cada vez que la expresión cron coincida con la hora actual.

    • EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE— tu canalización crea una imagen nueva solo cuando la expresión del cronograma coincide y hay actualizaciones pendientes de tu imagen base o componentes. Si no hay ninguna actualización pendiente, se omite la compilación. Para compilar inmediatamente sin esperar a que se produzcan las actualizaciones, ejecuta la canalización manualmente.

Al ejecutar el create-image-pipeline comando en el AWS CLI, muchos de los recursos de configuración son opcionales. Sin embargo, algunos de los recursos tienen requisitos condicionales, según el tipo de imagen que crea la canalización. Los siguientes identificadores de recursos son necesarios para las canalizaciones de imágenes de AMI:

  • El ARN de la receta de la imagen

  • Configuración de infraestructura ARN

 

Ejemplo: crear una imagen de Windows 2019

En este ejemplo, se configura una canalización que está programada para ejecutarse una vez a la semana los domingos. El archivo de configuración que se muestra en el primer paso utiliza los recursos existentes para la configuración de la imagen, la infraestructura y la distribución, junto con otros ajustes, para crear una imagen de Windows 2019.

  1. Cree un archivo de configuración (opcional)

    En este ejemplo, se utiliza un archivo de configuración denominado create-image-pipeline.json para configurar los ajustes en un solo lugar. Como alternativa, puede usar las opciones de la línea de comandos al ejecutar el comando para especificar todos los detalles que se muestran aquí en el archivo de configuración.

    { "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" }
    nota
    • Debe incluir la notación file:// al principio de la ruta del archivo JSON.

    • La ruta del archivo JSON debe seguir la convención apropiada para el sistema operativo base donde se está ejecutando el comando. Por ejemplo, Windows utiliza la barra diagonal inversa (\) para referirse a la ruta de directorios, mientras que Linux y macOS usan la barra diagonal (/).

  2. Ejecute el comando para crear una imagen

    En este ejemplo, se utiliza el archivo de configuración creado en el primer paso como entrada del create-image-pipeline comando. Como alternativa, puedes especificar la configuración y los recursos de tu canalización directamente al ejecutar el comando. Para obtener más información, consulta create-image-pipeline en la Referencia.AWS CLI

    aws imagebuilder create-image-pipeline --cli-input-json file://create-image-pipeline.json
Ejemplo: cree una canalización con digitalización de imágenes y flujos de trabajo personalizados

En este ejemplo, se configura una canalización que se comprueba cada siete días y se ejecuta solo cuando hay actualizaciones de dependencias disponibles. El archivo de configuración utiliza los recursos existentes para la receta y la infraestructura de la imagen. Permite escanear vulnerabilidades con Amazon Inspector. La configuración también especifica flujos de trabajo personalizados con una función de ejecución. Los grupos paralelos ejecutan pruebas funcionales y de seguridad al mismo tiempo. Los registros de canalización se envían a grupos de CloudWatch registros personalizados.

  1. Creación de un archivo de configuración

    Crea un archivo JSON con el nombrecreate-pipeline-with-workflows.json. Este archivo define la configuración de la canalización con el escaneo de imágenes habilitado y flujos de trabajo de prueba personalizados. Sustituya los valores de los marcadores de posición por los ARN de sus propios recursos.

    { "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" }
    nota
    • Debe incluir la notación file:// al principio de la ruta del archivo JSON.

    • La ruta del archivo JSON debe seguir la convención apropiada para el sistema operativo base donde se está ejecutando el comando. Por ejemplo, Windows utiliza la barra diagonal inversa (\) para referirse a la ruta de directorios, mientras que Linux y macOS usan la barra diagonal (/).

  2. Ejecute el comando
    aws imagebuilder create-image-pipeline --cli-input-json file://create-pipeline-with-workflows.json