在工作流文档中使用动态变量 - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在工作流文档中使用动态变量

您可以在工作流文档中使用动态变量来表示映像创建过程中在运行时会发生变化的值。动态变量值表示为 JSONPath 选择器,其结构节点可对目标变量进行唯一标识。

JSONPath 动态工作流变量结构

$.<document structure>.[<step name>].<variable name>

根 ($) 之后的第一个节点是指工作流文档结构,例如 stepOutputs,如果是 Image Builder 系统变量,则为 imageBuilder。以下列表包含支持的 JSONPath 工作流文档结构节点。

文档结构节点
  • 参数 – 工作流参数

  • stepOutputs – 同一工作流文档中某个步骤的输出

  • workflowOutputs – 已运行的工作流文档的输出

  • imagebuilder – Image Builder 系统变量

parametersstepOutputs 文档结构节点包括步骤名称的可选节点。这样有助于确保所有步骤中变量名称的唯一性。

JSONPath 中的最后一个节点是目标变量的名称,例如 instanceId

每个步骤都可以使用这些 JSONPath 动态变量引用任何先前步骤操作的输出。这也称为链接或引用。要引用先前步骤操作的输出,可以使用以下动态变量。

$.stepOutputs.step-name.output-name

示例

- name: ApplyTestComponents action: ExecuteComponents onFailure: Abort inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"

使用 Image Builder 系统变量

Image Builder 提供了以下可在工作流文档中使用的系统变量:

变量名称

描述

类型

示例值

cloudWatchLog群组

输出 CloudWatch 日志的日志组的名称。

格式:/aws/imagebuilder/<recipe-name>

String

/aws/imagebuilder/sampleImageRecipe

cloudWatchLog直播

输出 CloudWatch 日志的日志流的名称。

String

1.0.0/1

collectImageMetadata

指示 Image Builder 是否收集实例元数据的设置。

布尔值

true | false

collectImageScan调查结果

设置的当前值,该设置允许 Image Builder 收集映像扫描调查发现。

布尔值

true | false

imageBuildNumber

映像的构建版本号。

整数

1

imageId

基础映像的 AMI ID。

String

ami-1234567890abcdef1

imageName

映像名称。

String

sampleImage

imageType

映像输出类型。

String

AMI | Docker

imageVersionNumber

映像版本号。

String

1.0.0

instanceProfileName

Image Builder 用于启动构建和测试实例的实例配置文件角色的名称。

String

SampleImageBuilderInstanceProfileRole

platform

所构建映像的操作系统平台。

String

Linux | Windows | MacOS

s3Logs

一个 JSON 对象,包含 Image Builder 写入的 S3 日志的配置。

JSON 对象

{'s3Logs': {'s3 BucketName ':' s ample-buck et ','s3':'ib-logsKeyPrefix'}}

securityGroups

适用于构建和测试实例的安全组 ID。

列表 [字符串]

[sg-1234567890abcdef1, sg-11112222333344445]

sourceImageARN

工作流用于构建和测试阶段的 Image Builder 映像资源的 Amazon 资源名称(ARN)。

String

arn:aws:imagebuilder:us-east-1:111122223333:image/sampleImage/1.0.0/1

subnetId

要在其中启动构建和测试实例的子网 ID。

String

subnet-1234567890abcdef1

terminateInstanceOn失败

设置的当前值,可指示 Image Builder 在发生故障时终止实例或保留实例以进行故障排除。

布尔值

true | false

workflowPhase

为执行工作流而运行的当前阶段。

String

Build | Test

workingDirectory

工作目录的路径。

String

/tmp