从中创建 AMI 映像管道 AWS CLI - EC2 Image Builder

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

从中创建 AMI 映像管道 AWS CLI

要从中创建映像管道 AWS CLI,请使用适用于您的管道的配置选项运行create-image-pipeline命令。您可以选择创建包含所有工作流配置的 JSON 文件,或者在运行时指定配置。本节使用 JSON 配置文件方法来简化命令。

您的管道构建新映像以合并基础映像和组件中所有待处理更新的频率取决于您所配置的 schedule。每个 schedule 都具有以下属性:

  • scheduleExpression— 设置管道运行的时间计划,以评估 pipelineExecutionStartCondition 并确定是否应开始构建。该计划是使用 cron 表达式配置的。有关如何在 Image Builder 中设置 cron 表达式格式的更多信息,请参阅 在 Image Builder 中使用 cron 表达式

  • pipelineExecutionStartCondition— 确定您的管道是否应该开始构建。有效值包括:

    • EXPRESSION_MATCH_ONLY— 每次 cron 表达式与当前时间匹配时,Pipeline 都会生成一个新映像。

    • EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE— 除非您的基础映像或组件有待处理的更改,否则您的管道不会启动新的映像构建。

在中运行create-image-pipeline命令时 AWS CLI,许多配置资源都是可选的。但是,有些资源有条件性要求,具体取决于管道创建的映像类型。AMI 图像管道需要以下资源标识符:

  • 映像配方 ARN

  • 基础设施配置 ARN

 

示例:创建 Windows 2019 镜像

此示例配置了一个定于每周星期日运行一次的管道。第一步中显示的配置文件使用映像配方、基础架构和分发配置的现有资源以及其他设置来创建 Windows 2019 映像。

  1. 创建配置文件(可选)

    此示例使用名create-image-pipeline.json为的配置文件在一个位置配置设置。或者,您可以在运行命令时使用命令行选项来指定配置文件中此处显示的所有详细信息。

    { "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" }
    注意
    • JSON 文件路径开头必须包含 file:// 符号。

    • JSON 文件的路径应遵循运行命令的基本操作系统的相应约定。例如,Windows 使用反斜杠 (\) 引用目录路径,而 Linux 和 macOS 使用正斜杠 (/)。

  2. 运行命令创建镜像

    此示例使用在第一步中创建的配置文件作为create-image-pipeline命令的输入。或者,您可以在运行命令时直接为管道指定设置和资源。有关更多信息,请参阅 AWS CLI 参考中的 create-image-pipeline

    aws imagebuilder create-image-pipeline --cli-input-json file://create-image-pipeline.json