工作流程文档支持的步骤操作 - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

工作流程文档支持的步骤操作

本节详细介绍了 Image Builder 支持的步骤操作。

本节中使用的术语
AMI

亚马逊机器映像

进行筛选

Amazon 资源名称

ApplyImageConfigurations

此步骤操作将各种配置和集成应用于分布式 AMIs,例如许可证配置、启动模板配置、S3 导出配置、 EC2 快速启动配置和 Systems Manager 参数配置。配置仅适用于源账户中的分布式映像,但可以跨账户应用的 SSM 参数配置除外。

默认超时:360 分钟

最大超时:720 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
区域 图像区域。 字符串
licenseConfigurationArns 镜像的许可配置 ARN。 数组
launchTemplateConfigurations 数组
launchTemplateConfigurations:launchTemplateId 要应用于图像的启动模板 ID。 字符串 如果launchTemplateConfigurations已指定,则是
launchTemplateConfigurations:账户 ID IDs 要应用于图片的启动模板账户。 字符串
launchTemplateConfigurations:setDefaultVersion 图像的启动模板默认版本设置。 布尔值
s3 ExportConfiguration 数组
s3ExportConfiguration: 角色名 映像的 S3 导出配置角色名称。 字符串 如果s3ExportConfiguration已指定,则是
s3ExportConfiguration:diskImageFormat 映像的 S3 导出配置磁盘映像格式。 字符串 如果s3ExportConfiguration已指定,则是 允许的值-VMDK|RAW|VHD
s3: s3Bucket ExportConfiguration 映像的 S3 导出配置存储桶名称。 字符串 如果s3ExportConfiguration已指定,则是
s3: s3Prefix ExportConfiguration 映像的 S3 导出配置存储桶前缀。 字符串
fastLaunchConfigurations 映像的 EC2 快速启动配置。 数组
fastLaunchConfigurations:已启用 EC2 图像 enabled/disabled 的快速启动。 布尔值 如果fastLaunchConfigurations已指定,则是
fastLaunchConfigurations:快照配置 EC2 图像 enabled/disabled 的快速启动。 Map
fastLaunchConfigurations:快照配置:targetResourceCount EC2 快速启动图像的目标资源数量。 整数
fastLaunchConfigurations:maxParallelLaunches EC2 Fast Launch 图像的最大并行启动次数。 整数
fastLaunchConfigurations:启动模板
fastLaunchConfigurations:启动模板:launchTemplateId EC2 图像的快速启动启动模板 ID。 字符串
fastLaunchConfigurations:启动模板:launchTemplateName EC2 快速启动镜像的启动模板名称。 字符串
fastLaunchConfigurations:启动模板:launchTemplateVersion EC2 快速启动启动镜像的模板版本。 字符串
ssmParameterConfigurations 镜像的 SSM 参数配置。 Map
ssmParameterConfigurations:amiAccountId 图像的 SSM 参数 AMI 账户 ID。 字符串
ssmParameterConfigurations:parameterName 图像的 SSM 参数名称。 字符串 如果ssmParameterConfigurations已指定,则是
ssmParameterConfigurations:dataType 图像的 SSM 参数数据类型。 字符串 允许的值-文本 | aws: ec2: image)

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
配置镜像 已配置映像的列表。 数组
配置镜像:账号 ID 分布式镜像的目标账户 ID。 字符串
配置图像:名称 AMI 的名称。 字符串
配置图片:amiid 分布式映像的 AMI ID。 字符串
配置图片:开始日期 开始分发的 UTC 时间。 字符串
配置图片:日期已停止 分发完成时的 UTC 时间。 字符串
配置图像:步骤 分发停止的步骤。 已完成| | AssociateLicensesRunning | | UpdateLaunchTemplateRunning | PutSsmParametersRunning | UpdateFastLaunchConfiguration ExportAmiQueued ExportAmiRunning
配置图片:区域 分布式映像的 Amazon 字符串
配置图像:状态 分发状态。 已完成 | 失败 | 已取消 | TimedOut
配置图像:错误消息 错误消息(如果有)。 字符串

示例

在工作流文档中指定步骤操作。

- name: ApplyImageConfigurations action: ApplyImageConfigurations onFailure: Abort inputs: distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.ApplyImageConfigurationsStep.configuredImages

BootstrapInstanceForContainer

此步骤操作运行服务脚本来引导实例,以最低要求运行容器工作流。Image Builder 使用 Systems Manager API 中的 sendCommand 来运行此脚本。有关更多信息,请参阅 Amazon Systems Manager Run Command

注意

引导脚本会安装 Amazon CLI 和 Docker 包,它们是 Image Builder 成功构建 Docker 容器的先决条件。如果未包含此步骤操作,映像构建可能会失败。

默认超时:60 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
instanceId 要引导的实例 ID。 字符串 这必须是启动此工作流实例的工作流步骤的输出实例 ID。

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
runCommandId 在实例上运行引导脚本的 Systems Manager sendCommand 的 ID。 字符串
status 从 Systems Manager sendCommand 返回的状态。 字符串
output 从 Systems Manager sendCommand 返回的输出。 字符串

示例

在工作流文档中指定步骤操作。

- name: ContainerBootstrapStep action: BootstrapInstanceForContainer onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.ContainerBootstrapStep.status

CollectImageMetadata

此步骤操作仅对构建工作流有效。

EC2 Image Builder 在其启动的 EC2 实例上运行 Amazon Systems Manager (Systems Manager)代理,以构建和测试您的映像。Image Builder 使用 Systems Manager 清单,以收集在构建阶段使用的实例的其他信息。该信息包括操作系统 (OS) 名称和版本,以及操作系统报告的软件包及其相应版本的列表。

注意

此步骤操作仅适用于创建的图像 AMIs。

默认超时:30 分钟

回滚:Image Builder 会回滚在此步骤中创建的所有 Systems Manager 资源。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
instanceId 应用元数据设置的构建实例。 字符串 这必须是启动此工作流构建实例的工作流步骤的输出实例 ID。

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
osVersion 从构建实例收集的操作系统名称和版本。 字符串
associationId 用于清单收集的 Systems Manager 关联 ID。 字符串

示例

在工作流文档中指定步骤操作。

- name: CollectMetadataStep action: CollectImageMetadata onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId

在工作流文档中使用步骤操作的输出。

$.stepOutputs.CollectMetadataStep.osVersion

CollectImageScanFindings

如果您的账户启用了 Amazon Inspector,并且您的管道启用了映像扫描,则此步骤操作会收集 Amazon Inspector 为您的测试实例报告的映像扫描调查发现。此步骤操作不适用于构建工作流。

默认超时:120 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
instanceId 在其上运行扫描的实例的 ID。 字符串 这必须是启动此工作流实例的工作流步骤的输出实例 ID。

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
runCommandId 运行脚本以收集调查发现的 Systems Manager sendCommand 的 ID。 字符串
status 从 Systems Manager sendCommand 返回的状态。 字符串
output 从 Systems Manager sendCommand 返回的输出。 字符串

示例

在工作流文档中指定步骤操作。

- name: CollectFindingsStep action: CollectImageScanFindings onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.CollectFindingsStep.status

CreateImage

此步骤操作使用 Amazon EC2 CreateImage API 从正在运行的实例创建映像。在创建过程中,步骤操作会根据需要进行等待,以验证资源是否已达到正确的状态,然后再继续后续操作。

默认超时:720 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
instanceId 要从中创建新映像的实例。 字符串 此步骤开始时,提供实例 ID 的实例必须处于 running 状态。

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
imageId 所创建映像的 AMI ID。 字符串

示例

在工作流文档中指定步骤操作。

- name: CreateImageFromInstance action: CreateImage onFailure: Abort inputs: instanceId.$: "i-1234567890abcdef0"

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.CreateImageFromInstance.imageId

DistributeImage

此步骤操作将 AMI 分发到指定的区域和账户。它根据工作流程中提供的 CreateImage CreateImagePipeline APIs或和/或自定义分发设置请求中提供的分配配置在目标区域和账户中创建 AMI 的副本,以覆盖分发配置中的设置。

默认超时:360 分钟

最大超时:720 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
区域 要分发图像的区域列表。 字符串 最小长度为 1。最大长度为 1024。
名称 分发配置的名称。 字符串
description 分布配置的分布。 字符串
targetAccountIds IDs 要将图像分发到的账户。 数组
amiTags 分发配置的标签。 Map
kmsKeyId 应用于分布式映像的 KMS 密钥。 字符串

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
分布式图片 分布式映像列表 数组
分布式图片:区域 分布式图像的 Amazon 区域。 字符串
分布式图片:名称 AMI 的名称。 字符串
分布式图片:amiid 分布式映像的 AMI ID。 字符串
分布式图片:账号 ID 分布式镜像的目标账户 ID。 字符串
分布式图片:开始日期 开始分发的 UTC 时间。 字符串
分布式图片:日期已停止 分发完成时的 UTC 时间。 字符串
分布式图片:状态 分发状态。 已完成 | 失败 | 已取消 | TimedOut
分布式图像:步骤 分发停止的步骤。 已完成| CopyAmiRunning
分布式镜像:错误消息 错误消息(如果有)。 字符串

示例

在工作流文档中指定步骤操作。

- name: DistributeImage action: DistributeImage onFailure: Abort inputs: distributions: - region.$: "$.parameters.SourceRegion" description: "AMI distribution to source region" amiTags: DistributionTest: "SourceRegion" WorkflowStep: "DistributeToSourceRegion" BuildDate: "{{imagebuilder:buildDate:yyyyMMHHss}}" BuildVersion: "{{imagebuilder:buildVersion}}"

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.DistributeImageStep.distributedImages

ExecuteComponents

此步骤操作会运行配方中为当前正在构建的映像指定的组件。构建工作流在构建实例上运行构建组件。测试工作流仅在测试实例上运行测试组件。

Image Builder 使用 Systems Manager API 中的 sendCommand 来运行组件。有关更多信息,请参阅 Amazon Systems Manager Run Command

默认超时:720 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
instanceId 组件应在其上运行的实例的 ID。 字符串 这必须是启动此工作流实例的工作流步骤的输出实例 ID。

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
runCommandId 在实例上运行组件的 Systems Manager sendCommand 的 ID。 字符串
status 从 Systems Manager sendCommand 返回的状态。 字符串
output 从 Systems Manager sendCommand 返回的输出。 字符串

示例

在工作流文档中指定步骤操作。

- name: ExecComponentsStep action: ExecuteComponents onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId

在工作流文档中使用步骤操作的输出。

$.stepOutputs.ExecComponentsStep.status

ExecuteStateMachine

此步骤操作从 Image Builder 工作流程中开始执行 Amazon Step Functions 状态机。Image Builder 使用 Step Functions StartExecution API 启动状态机并等待状态机完成。这对于将复杂的工作流程、合规性验证或认证流程集成到您的图像构建管道中非常有用。

有关更多信息,请参阅《Amazon Step Functions 开发者指南》中的 Step Functions 中了解状态机

默认超时:6 小时

最大超时:24 小时

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
stateMachineArn 要执行的 Step Functions 状态机的 ARN。 字符串 必须是有效的状态机 ARN。
input 要提供给状态机的 JSON 输入数据。 字符串 {} 必须是有效的 JSON 字符串,最大长度:16 KiB。

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
执行 Arn 状态机执行的 ARN。 字符串

需要 IAM 权限

您的自定义执行角色必须具有以下权限才能使用此步骤操作:

允许操作
  • states:StartExecution

  • states:DescribeExecution

指定资源
  • arn:aws:states:us-west-2:111122223333:stateMachine:state-machine-name

  • arn:aws:states:us-west-2:111122223333:execution:state-machine-name:*

示例

在工作流文档中指定步骤操作。

- name: ValidateImageCompliance action: ExecuteStateMachine timeoutSeconds: 3600 onFailure: Abort inputs: stateMachineArn: arn:aws:states:us-west-2:111122223333:stateMachine:ImageComplianceValidation input: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-west-2", "complianceLevel": "high", "requiredScans": ["cve", "benchmark", "configuration"] }

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.ValidateImageCompliance.executionArn

LaunchInstance

此步骤操作将在您的中启动一个实例, Amazon Web Services 账户 并等待 Systems Manager 代理在该实例上运行,然后再继续下一步操作。启动操作使用与您的映像关联的配方和基础设施配置资源中的设置。例如,要启动的实例类型来自基础设施配置。输出是其启动的实例的实例 ID。

waitFor 输入会配置满足步骤完成要求的条件。

默认超时:60 分钟

回滚:对于构建实例,回滚会执行您在基础设施配置资源中配置的操作。默认情况下,如果映像创建失败,则会终止构建实例。但是,基础设施配置中有一个设置,用于保留构建实例以进行故障排除。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
imageIdOverride 用于启动实例的镜像 字符串

构建阶段:图像配方基础图片

测试阶段:从构建阶段输出 AMI

必须是有效的 AMI ID
instanceTypesOverride Image Builder 会尝试列表中的每种实例类型,直到找到成功启动的实例类型 字符串列表 在您的基础设施配置中指定的实例类型 必须是有效的实例类型
waitFor 在完成工作流程步骤并进入下一步之前要等待的条件 字符串 Image Builder 支持 ssmAgent

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
instanceId 所启动实例的实例 ID。 字符串

示例

在工作流文档中指定步骤操作。

- name: LaunchStep action: LaunchInstance onFailure: Abort inputs: waitFor: ssmAgent

在工作流文档中使用步骤操作的输出。

$.stepOutputs.LaunchStep.instanceId

ModifyImageAttributes

此步骤操作修改分布式的属性 AMIs,例如启动权限和其他 AMI 属性。它对 AMIs 已分配给目标地区和账户的内容进行操作。

默认超时:120 分钟

最大超时时间:180 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
区域 图像的区域。 字符串
启动权限
启动权限:用户 ID 在图像 IDs 的启动权限中要修改的用户。 字符串
启动权限:用户组 在图像的启动权限中要修改的用户组。 字符串
启动权限:组织 ARN 在镜像的启动权限中 ARNs 要修改的 Amazon 组织。 字符串
启动权限:organizationalUnitArns 在镜像的启动权限中 ARNs 要修改的 Amazon 组织单位。 字符串

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
ModifiedImages 修改过的图像列表 数组
修改过的图片:账号 ID 分布式镜像的目标账户 ID。 字符串
修改后的图片:名称 AMI 的名称。 字符串
修改后的图片:amiid 分布式映像的 AMI ID。 字符串
修改后的图片:开始日期 开始分发的 UTC 时间。 字符串
修改后的图片:日期已停止 分发完成时的 UTC 时间。 字符串
修改后的图像:步骤 分发停止的步骤。 已完成| ModifyAmiRunning
修改后的图片:区域 图像的 Amazon 区域。 字符串
修改后的图片:状态 分发状态。 已完成 | 失败 | 已取消 | TimedOut
修改后的图像:错误消息 错误消息(如果有)。 字符串

示例

在工作流文档中指定步骤操作。

- name: ModifyImageAttributes action: ModifyImageAttributes onFailure: Abort inputs: distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.ModifyImageAttributesStep.modifiedImages

RegisterImage

此步骤操作使用亚马逊 API 注册新的亚马逊系统映像 (AM EC2 RegisterImage I)。它允许您根据现有快照或一组快照创建 AMI,并指定各种图像属性。

默认超时:720 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
架构 AMI 的架构。 字符串 有效值:i386、x86_64、arm64、x86_64_mac、arm64_mac
blockDeviceMapping AMI 的块储存设备映射条目。 数组
启动模式 AMI 的启动模式。 字符串 有效值:legacy-bios、uefi、uefi 首选
description 对 AMI 的描述。 字符串
enaSupport 是否启用了 ENA 增强联网。 布尔值
图像位置 AMI 清单的位置。 字符串 支持 S3 的必填项 AMIs
IMDS 支持 支 IMDSv2 撑级别。 字符串 有效值:v2.0
includeSnapshotTags 是否包含块储存设备映射中定义的第一个快照中的标签。 布尔值 FALSE

设置为 true 时,将按如下方式包含标签:

  • blockDeviceMapping列表中SnapshotId第一个 EBS 卷中包含的标签与 AMI 注册标签合并。SnapshotId

  • AMI 注册标签优先于具有相同密钥的快照标签。

  • Amazon 保留的标签(密钥以开头的标签aws:)会被自动排除在外。

  • 如果定义了多个 EBS 卷,SnapshotId则仅包含列表中第一个 EBS 卷中包含 a SnapshotId 的标签。

kerneLid 要使用的内核的 ID。 字符串
ramdisKid 要使用的 RAM 磁盘的 ID。 字符串
rootDeviceName 根设备的设备名称。 字符串 示例:/dev/sda1
sriovNetSupport 使用英特尔 82599 VF 接口增强联网。 字符串
tpm 支持 TPM 版本支持。 字符串 有效值:v2.0
uefidata Base64 编码的 UEFI 数据。 字符串
虚拟化类型 虚拟化类型。 字符串 有效值:hvm、半虚拟化

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
imageId 已注册图像的 AMI ID。 字符串

示例

在工作流文档中指定步骤操作。

- name: RegisterNewImage action: RegisterImage onFailure: Abort inputs: architecture: "x86_64" bootMode: "uefi" blockDeviceMapping: - DeviceName: "/dev/sda1" Ebs: SnapshotId: "snap-1234567890abcdef0" VolumeSize: 100 VolumeType: "gp3" rootDeviceName: "/dev/sda1" virtualizationType: "hvm"

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.RegisterNewImage.imageId

示例: SnapshotId 来自另一个步骤,生成的 AMI 中包含快照标签

- name: CreateSnapshot action: RunCommand onFailure: Abort inputs: instanceId: "i-1234567890abcdef0" documentName: "AWS-RunShellScript" parameters: commands: - "aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description 'Snapshot for AMI' --query 'SnapshotId' --output text" - name: RegisterImageFromSnapshot action: RegisterImage onFailure: Abort inputs: architecture: "x86_64" bootMode: "uefi" blockDeviceMapping: - DeviceName: "/dev/sda1" Ebs: SnapshotId.$: "$.stepOutputs.CreateSnapshot.output[0]" VolumeSize: 100 VolumeType: "gp3" includeSnapshotTags: true rootDeviceName: "/dev/sda1" virtualizationType: "hvm"

RunCommand

此步骤操作为您的工作流运行命令文档。Image Builder 使用 Systems Manager API 中的 sendCommand 来为您运行命令文档。有关更多信息,请参阅 Amazon Systems Manager Run Command

默认超时:12 小时

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
instanceId 要在其上运行命令文档的实例的 ID。 字符串 这必须是启动此工作流实例的工作流步骤的输出实例 ID。
documentName 要运行的 Systems Manager 命令文档的名称。 字符串
参数 命令文档所需的任何参数的键值对列表。 dictionary<string, list<string>> 条件
documentVersion 要运行的命令文档版本。 字符串 $DEFAULT

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
runCommandId 在实例上运行命令文档的 Systems Manager sendCommand 的 ID。 字符串
status 从 Systems Manager sendCommand 返回的状态。 字符串
output 从 Systems Manager sendCommand 返回的输出。 字符串列表

示例

在工作流文档中指定步骤操作。

- name: RunCommandDoc action: RunCommand onFailure: Abort inputs: documentName: SampleDocument parameters: osPlatform: - "linux" instanceId.$: $.stepOutputs.LaunchStep.instanceId

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.RunCommandDoc.status

RunSysPrep

此步骤操作使用 Systems Manager API 中的 sendCommand 为 Windows 实例运行 AWSEC2-RunSysprep 文档,然后为快照关闭构建实例。这些操作遵循了强化和清理图像 Amazon 的最佳实践。

默认超时:60 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
instanceId 要在其上运行 AWSEC2-RunSysprep 文档的实例的 ID。 字符串 这必须是启动此工作流实例的工作流步骤的输出实例 ID。

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
runCommandId 在实例上运行 AWSEC2-RunSysprep 文档的 Systems Manager sendCommand 的 ID。 字符串
status 从 Systems Manager sendCommand 返回的状态。 字符串
output 从 Systems Manager sendCommand 返回的输出。 字符串

示例

在工作流文档中指定步骤操作。

- name: RunSysprep action: RunSysPrep onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.RunSysprep.status

SanitizeInstance

此操作步骤会运行适用于 Linux 实例的推荐清理脚本,然后为快照关闭构建实例。清理脚本可帮助确保最终映像遵循安全最佳实践,并删除不应延续到快照中的构建构件或设置。有关脚本的更多信息,请参阅需要在构建后进行清理。此步骤操作不适用于容器映像。

Image Builder 使用 Systems Manager API 中的 sendCommand 来运行此脚本。有关更多信息,请参阅 Amazon Systems Manager Run Command

默认超时:60 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
instanceId 要清理的实例的 ID。 字符串 这必须是启动此工作流实例的工作流步骤的输出实例 ID。

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
runCommandId 在实例上运行清理脚本的 Systems Manager sendCommand 的 ID。 字符串
status 从 Systems Manager sendCommand 返回的状态。 字符串
output 从 Systems Manager sendCommand 返回的输出。 字符串

示例

在工作流文档中指定步骤操作。

- name: SanitizeStep action: SanitizeInstance onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.SanitizeStep.status

TerminateInstance

此步骤操作使用作为输入传入的实例 id 终止实例。

默认超时:30 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
instanceId 要终止的实例的 ID。 字符串

输出:此步骤操作没有输出。

示例

在工作流文档中指定步骤操作。

- name: TerminateInstance action: TerminateInstance onFailure: Continue inputs: instanceId.$: i-1234567890abcdef0

WaitForAction

此步骤操作会暂停正在运行的工作流,并等待接收来自 Image Builder SendWorkflowStepAction API 操作的外部操作。此步骤使用详细信息类型将 EventBridge 事件发布到您的默认 EventBridge 事件总线EC2 Image Builder Workflow Step Waiting。如果您提供 SNS 主题 ARN,则该步骤还可以发送 SNS 通知;如果您提供 Lambda 函数名称,则该步骤还可以异步调用 Lambda 函数。

默认超时:3 天

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
snsTopicArn 可选的 SNS 主题 ARN,用于在工作流步骤处于待处理状态时向其发送通知。 字符串
lambdaFunctionName Lambda 函数的可选名称或 ARN,用于在工作流程步骤处于待处理状态时异步调用。 字符串
payload JSON 字符串用作 SNS 的消息和 Lambda 的有效负载。如果提供,则默认封装自定义有效负载message/payload, used for SNS and Lambda respectively. If not provided, generates default message/payload。 字符串 必须是有效的 JSON 字符串,最大 16 KiB

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
action SendWorkflowStepAction API 操作返回的操作。 字符串(RESUMESTOP
reason 返回操作的原因。 字符串

示例

在带有 SNS 通知的工作流程文档中指定步骤操作。

- name: SendEventAndWait action: WaitForAction onFailure: Abort inputs: snsTopicArn: arn:aws:sns:us-west-2:111122223333:ExampleTopic

使用 Lambda 函数调用在工作流程文档中指定步骤操作。

- name: SendEventAndWaitWithLambda action: WaitForAction onFailure: Abort inputs: lambdaFunctionName: ExampleFunction payload: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-west-2" }

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.SendEventAndWait.reason

WaitForSSMAgent

此步骤操作等待 EC2 实例在预期的无响应时间 Amazon Systems Manager 之后变得可控。它对于存在已知实例中断的工作流程(例如系统重启、操作系统升级或暂时断开实例与 SSM 连接的特定于平台的操作)特别有用。Image Builder 会监控该实例,直到它恢复 SSM 连接或超时。

默认超时:60 分钟

最大超时时间:180 分钟

回滚:此步骤操作没有回滚。

输入:下表包含此步骤操作支持的输入。

输入名称 描述 Type 必需 默认 约束
instanceId 要监控 SSM 连接的实例的 ID。 字符串 必须是有效的 EC2 实例 ID

输出:下表包含此步骤操作的输出。

输出名称 描述 Type
Status SSM 代理的连接状态。 字符串

示例

在工作流文档中指定步骤操作。

- name: WaitForInstanceAfterReboot action: WaitForSSMAgent onFailure: Abort timeoutInSeconds: 900 # 15 minutes inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

在工作流文档中使用步骤操作值的输出。

$.stepOutputs.WaitForInstanceAfterReboot.Status