

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

# 在 Image Builder 配置映像管道工作流
<a name="pipeline-workflows"></a>

借助映像工作流，您可以根据需要自定义管道运行的工作流程，以构建和测试映像。您定义的工作流在 Image Builder 工作流框架的上下文中运行。有关构成工作流框架的各个阶段的更多信息，请参阅[管理 Image Builder 映像的构建和测试工作流](manage-image-workflows.md)。

构建工作流  
构建工作流在工作流框架的 `Build` 阶段运行。只能为管道指定一个构建工作流。或者可以完全跳过构建来配置仅测试管道。

测试工作流  
测试工作流在工作流框架的 `Test` 阶段运行。最多可以为管道指定十个测试工作流。如果只想要构建管道，也可以完全跳过测试。



## 定义测试工作流的测试组
<a name="pipeline-workflows-test-groups"></a>

测试工作流在测试组中进行定义。最多可以为管道运行十个测试工作流。您可以决定是按特定顺序运行测试工作流，还是同时运行尽可能多的测试工作流。其运行方式取决于您如何定义测试组。以下场景演示了几种定义测试工作流的方法。

**注意**  
如果您使用控制台创建工作流，我们建议您在定义测试组之前，花时间计划运行测试工作流的运行方式。在控制台中，您可以添加或删除测试工作流和组，但不能对其进行重新排序。

**场景 1：一次运行一个测试工作流**  
要逐一运行所有测试工作流，您最多可以配置十个测试组，每个测试组中包含一个测试工作流。测试组按您将其添加到管道的顺序逐一运行。这是确保测试工作流按特定顺序逐一运行的一种方法。

**场景 2：同时运行多个测试工作流**  
如果顺序无关紧要，并且您希望同时运行尽可能多的测试工作流，则可以配置单个测试组，并在其中放入最大数量的测试工作流。Image Builder 可同时启动多达五个测试工作流，并在其他工作流完成后启动其他测试工作流。如果您的目标是尽可能快地运行测试工作流，那么这是一种实现目标的方法。

**场景 3：混合搭配**  
如果是混合场景，其中有些测试工作流可以同时运行，而另一些则应该一次运行一个，那么您可以配置测试组来实现这个目标。如何配置测试组的唯一限制是可以为管道运行的测试工作流的最大数量

## 通过控制台在 Image Builder 管道中设置工作流参数
<a name="pipeline-workflow-set-params"></a>

对于构建工作流和测试工作流，工作流参数的作用方式相同。创建或更新管道时，您可以选择希望包含的构建和测试工作流。如果在工作流文档中为所选工作流定义了参数，则 Image Builder 会在**参数**面板中显示这些参数。对于未定义参数的工作流，该面板处于隐藏状态。

每个参数都显示工作流文档定义的以下属性：
+ **名称**（*不可编辑*）– 参数的名称。
+ **类型**（*不可编辑*）- 参数值的数据类型。
+ **值** – 参数的值。您可以编辑参数值以设置管道的参数值。

## 指定 Image Builder 用于运行工作流操作的 IAM 服务角色
<a name="pipeline-workflow-service-role"></a>

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

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