

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

# 管理 Image Builder 映像的构建和测试工作流
<a name="manage-image-workflows"></a>

图像工作流程定义了 Im EC2 age Builder 在图像创建过程的构建、测试和分发阶段执行的步骤顺序。这是整个 Image Builder 工作流框架的一部分。

**映像工作流优势**
+ 借助映像工作流，您可以更灵活、更清晰和更好地控制映像创建过程。
+ 您可以在定义工作流文档时添加自定义工作流步骤，也可以选择使用 Image Builder 默认工作流。
+ 您可以排除默认映像工作流中包含的工作流步骤。
+ 您可以创建完全跳过构建过程的仅测试工作流。您也可以这样做来创建仅限编译或仅限分发的工作流程。

**注意**  
您无法修改现有工作流，但可以对其进行克隆或创建新版本。

**Topics**
+ [工作流框架：阶段](#wf-stages)
+ [服务访问](#wf-service-access)
+ [对图像使用托管工作流程](#use-managed-workflows)
+ [列出映像工作流](list-image-workflows.md)
+ [创建映像工作流](image-workflow-create-resource.md)
+ [创建 YAML 工作流文档](image-workflow-create-document.md)

## 工作流框架：阶段
<a name="wf-stages"></a>

要自定义映像工作流，了解构成映像创建工作流框架的工作流阶段至关重要。

图像创建工作流程框架包括以下不同的阶段。

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

   成功完成此阶段后，Image Builder 会创建快照或容器映像，以供测试期和后续时期使用。

1. **测试阶段**（快照后）— 在测试阶段，创建镜像 AMIs 和容器镜像之间存在一些差异。对于 AMI 工作流程，Image Builder 从作为构建阶段最后一步创建的快照启动 EC2 实例。在新实例上运行测试以验证设置并确保该实例按预期运行。对于容器工作流，测试在用于构建的同一实例上运行。

1. **分发阶段**（后期构建）— 在分发阶段，一旦映像构建完成并成功通过所有测试，输出图像就会经历不同的分发阶段。这些阶段包括 AMI 复制操作、图像属性修改、图像共享和其他相关的分发步骤。

## 服务访问
<a name="wf-service-access"></a>

要运行映像工作流，Image Builder 需要获得执行工作流操作的权限。您可以指定 [AWSServiceRoleForImageBuilder](security-iam-awsmanpol.md#sec-iam-manpol-AWSServiceRoleForImageBuilder) 服务相关角色，也可以为服务访问指定自己的自定义角色，如下所示。
+ **控制台** – 在管道向导**步骤 3 定义映像创建过程**中，从**服务访问**面板的 **IAM 角色**列表中选择服务相关角色或您自己的自定义角色。
+ I@@ **mage Builder API** — 在[CreateImage](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateImage.html)操作请求中，将服务相关角色或您自己的自定义角色指定为`executionRole`参数值。

要详细了解如何创建服务角色，请参阅《*AWS Identity and Access Management 用户指南》*中的[创建角色以向 AWS 服务委派权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

## 对图像使用托管工作流程
<a name="use-managed-workflows"></a>

托管工作流程由创建和维护 AWS。当您在图像管道中使用托管工作流程或创建一次性图像时，您可以选择要使用的托管工作流程的 Amazon 资源名称 (ARN)。Amazon 提供已应用补丁和其他更新的最新版本。要获取托管工作流程列表[列出映像工作流](list-image-workflows.md)，请参阅并在 Owner **= Amazon**（控制台）上进行筛选。