使用管理组件EC2 TOE - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用管理组件EC2 TOE

Image Builder 使用EC2 Task Orchestrator and Executor(EC2 TOE) 组件管理应用程序来编排复杂的工作流程。EC2 TOE组件基于 YAML 文档,这些文档定义了要自定义或测试映像的脚本。对于 AMI 映像,Image Builder 安装EC2 TOE组件和组件应用程序在其 Amazon EC2 构建和测试实例上。对于容器映像,组件和组件应用程序安装在正在运行的容器中。

Image Builder 使用EC2 TOE以执行所有实例活动。与交互不需要其他设置EC2 TOE当您运行 Image Builder 命令或使用 Image Builder 控制台时。

构建新映像的工作流程阶段

用于构建新映像的 Image Builder 工作流包括以下两个不同的阶段。

  1. 构建阶段(快照前)— 在构建阶段,您对运行基础映像的 Amazon EC2 构建实例进行更改,以便为新映像创建基准。例如,映像或容器配方可以包含安装应用程序或修改操作系统防火墙设置的组件。

    以下阶段在构建阶段运行:

    • build

    • 验证

    在此阶段成功完成后,Image Builder 会创建一个快照或容器映像,用于测试阶段及以后。

  2. 测试阶段(快照后)— 在测试阶段,Image Builder 从作为构建阶段最后一步创建的快照或容器映像启动 EC2 实例。测试在新实例上运行,以验证设置并确保实例按预期运行。

    在测试阶段,对于配方中包含的每个组件,将运行以下阶段:

    • 测试

    此阶段适用于构建和测试组件类型。在此阶段成功完成后,Image Builder 可以从快照或容器映像创建和分发最终映像。

注意

虽然EC2 TOE允许您在组件文档中定义多个阶段,Image Builder 对运行哪些阶段以及在哪些阶段运行阶段有严格的规则。要在构建阶段运行组件,组件文档必须至少定义以下阶段之一:build要么validate. 要使组件在测试阶段运行,组件文档必须定义test阶段。

由于 Image Builder 独立运行阶段,因此将引用链接在EC2 TOE文档不能跨越舞台边界。您不能将价值从构建阶段运行的阶段链接到测试阶段中运行的阶段。但是,您可以将输入参数定义到预期目标,然后通过命令行传递值。有关在 Image Builder 配方中设置组件参数的更多信息,请参阅。ManageEC2 TOE使用 EC2 Image Builder 组件参数.

帮助对构建实例或测试实例进行故障排除EC2 TOE创建一个包含输入文档和日志文件的日志文件夹,以跟踪组件每次运行时发生的情况。如果您在管道配置中配置了 Amazon S3 存储桶,则日志也会在那里写入。有关 YAML 文档和日志输出的更多信息,请参阅。在中使用组件文档EC2 TOE.

提示

当您需要跟踪许多组件时,添加标签会帮助您根据分配给组件的标签识特定组件或版本。有关使用 Image Builder 命令标记资源的更多信息,请参阅Amazon CLI,请参阅标记资源本指南的部分。

本节介绍如何列出、查看、创建和导入EC2 TOE组件、使用 Image Builder 控制台和Amazon CLI.

导入组件 (Amazon CLI)

在某些情况下,从预先存在的脚本入手可能更容易一些。对于这种情况,您可以使用以下示例。

该示例假定您具有一个名为 import-component.json 的文件(如下所示)。请注意,该文件直接引用名为 AdminConfig.ps1 的 PowerShell 脚本,该脚本已上传到 my-s3-bucket 中。目前,组件 format 支持 SHELL

{ "name": "MyImportedComponent", "semanticVersion": "1.0.0", "description": "An example of how to import a component", "changeDescription": "First commit message.", "format": "SHELL", "platform": "Windows", "type": "BUILD", "uri": "s3://my-s3-bucket/AdminConfig.ps1", "kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/60763706-b131-418b-8f85-3420912f020c" }

要导入组件,请运行以下命令。

aws imagebuilder import-component --cli-input-json file://import-component.json

清理资源

为避免意外费用,请确保清理您根据本指南中的示例创建的资源和管道。有关删除 Image Builder 中资源的更多信息,请参阅删除 EC2 Image Builder 资源.