选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

手动设置以开发自定义组件 AWSTOE

聚焦模式
手动设置以开发自定义组件 AWSTOE - EC2 Image Builder

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

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

AWS Task Orchestrator and Executor (AWSTOE) 应用程序是一个独立的应用程序,用于在组件定义框架内创建、验证和运行命令。 AWS 服务可用于 AWSTOE 协调工作流程、安装软件、修改系统配置和测试映像构建。

按照以下步骤手动安装 AWSTOE 应用程序,并将其用作独立应用程序来开发自定义组件。如果您使用 Image Builder 控制台或 AWS CLI 命令创建自定义组件,Image Builder 会为您完成这些步骤。有关更多信息,请参阅 使用 Image Builder 创建自定义组件

步骤 1:安装 AWSTOE

要在本地开发组件,请下载并安装该 AWSTOE 应用程序。

  1. 下载 AWSTOE 应用程序

    要进行安装 AWSTOE,请选择适合您的架构和平台的下载链接。有关应用程序下载链接的完整列表,请参阅 AWSTOE 下载

    重要

    AWS 正在逐步取消对 TLS 版本 1.0 和 1.1 的支持。要访问 S3 存储桶进行 AWSTOE 下载,您的客户端软件必须使用 TLS 版本 1.2 或更高版本。有关更多信息,请参阅此 AWS 安全博客文章

  2. 验证签名

    验证下载的步骤取决于安装 AWSTOE 应用程序后在其中运行应用程序的服务器平台。要在 Linux 服务器上验证您的下载,请参阅 在 Linux 或 macOS 上验证签名。要在 Windows 服务器上验证您的下载,请参阅 在 Windows 上验证签名

注意

AWSTOE 直接从其下载位置调用。无需单独执行安装步骤。这也意味着 AWSTOE 可以对本地环境进行更改。

为确保在组件开发过程中隔离更改,我们建议您使用 EC2 实例来开发和测试 AWSTOE 组件。

步骤 2:设置 AWS 凭证

AWSTOE 运行任务时需要 AWS 凭证才能连接到其他任务 AWS 服务,例如 Amazon S3 和 Amazon CloudWatch,例如:

  • 从用户提供的 Amazon S3 路径下载 AWSTOE 文档。

  • 运行 S3DownloadS3Upload 操作模块。

  • 启用后 CloudWatch,将日志流式传输到。

如果您 AWSTOE 在 EC2 实例上运行,则运行 AWSTOE 使用的权限与附加到该 EC2 实例的 IAM 角色相同。

有关的 IAM 角色的更多信息 EC2,请参阅适用于 A mazon 的 IAM 角色EC2

以下示例说明如何使用AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY环境变量设置 AWS 凭证。

要在 Linux、macOS 或 Unix 上设置这些变量,请使用 export

export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key

要在 Windows 上使用设置这些变量 PowerShell,请使用$env

$env:AWS_ACCESS_KEY_ID=your_access_key_id
$env:AWS_SECRET_ACCESS_KEY=your_secret_access_key

要在 Windows 上使用命令提示设置这些变量,请使用 set

set AWS_ACCESS_KEY_ID=your_access_key_id
set AWS_SECRET_ACCESS_KEY=your_secret_access_key

第 3 步:在本地开发组件文档

组件是用纯文本 YAML 文档编写的。有关文档语法的更多信息,请参阅 使用 AWSTOE 组件文档框架创建自定义组件

以下是 Hello World 组件文档示例,可帮助您快速入门。

Linux

本指南中的某些 Linux 组件示例引用名为 hello-world-linux.yml 的组件文档文件。您可以使用下面的文档来着手这些示例。

name: Hello World description: This is hello world testing document for Linux. schemaVersion: 1.0 phases: - name: build steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo 'Hello World from the build phase.' - name: validate steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo 'Hello World from the validate phase.' - name: test steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo 'Hello World from the test phase.'
Windows

本指南中的某些 Windows 组件示例引用名为 hello-world-windows.yml 的组件文档文件。您可以使用下面的文档来着手这些示例。

name: Hello World description: This is Hello World testing document for Windows. schemaVersion: 1.0 phases: - name: build steps: - name: HelloWorldStep action: ExecutePowerShell inputs: commands: - Write-Host 'Hello World from the build phase.' - name: validate steps: - name: HelloWorldStep action: ExecutePowerShell inputs: commands: - Write-Host 'Hello World from the validate phase.' - name: test steps: - name: HelloWorldStep action: ExecutePowerShell inputs: commands: - Write-Host 'Hello World from the test phase.'
macOS

本指南中的某些 macOS 组件示例引用名为 hello-world-macos.yml 的组件文档文件。您可以使用下面的文档来着手这些示例。

name: Hello World description: This is hello world testing document for macOS. schemaVersion: 1.0 phases: - name: build steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo 'Hello World from the build phase.' - name: validate steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo 'Hello World from the validate phase.' - name: test steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo 'Hello World from the test phase.'

本指南中的某些 Linux 组件示例引用名为 hello-world-linux.yml 的组件文档文件。您可以使用下面的文档来着手这些示例。

name: Hello World description: This is hello world testing document for Linux. schemaVersion: 1.0 phases: - name: build steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo 'Hello World from the build phase.' - name: validate steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo 'Hello World from the validate phase.' - name: test steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo 'Hello World from the test phase.'

步骤 4:验证 AWSTOE 组件

您可以使用 AWSTOE 应用程序在本地验证 AWSTOE 组件的语法。以下示例显示了无需运行组件即可验证其语法的 AWSTOE 应用程序validate命令。

注意

AWSTOE 应用程序只能验证当前操作系统的组件语法。例如,在 Windows 上运行 awstoe.exe 时,您无法验证使用 ExecuteBash 操作模块的 Linux 文档的语法。

Linux 或 macOS

awstoe validate --documents /home/user/hello-world.yml

Windows

awstoe.exe validate --documents C:\Users\user\Documents\hello-world.yml

步骤 5:运行 AWSTOE 组件

AWSTOE 应用程序可以使用--phases命令行参数运行指定文档的一个或多个阶段。--phases 支持的值有 buildvalidatetest。可以用逗号分隔的值形式输入多个阶段值。

当您提供阶段列表时, AWSTOE 应用程序会按顺序运行每个文档的指定阶段。例如, AWSTOE 运行的buildvalidate阶段document1.yaml,然后运行的buildvalidate阶段document2.yaml

为了确保您的日志安全存储并保留以供故障排除,我们建议您在 Amazon S3 中配置日志存储。在 Image Builder 中,用于发布日志的 Amazon S3 位置是在基础设施配置中指定的。有关基础设施配置的更多信息,请参阅 管理 Image Builder 基础设施配置

如果未提供阶段列表,则 AWSTOE 应用程序将按照 YAML 文档中列出的顺序运行所有阶段。

要在单个或多个文档中运行特定阶段,请使用以下命令。

单个阶段

awstoe run --documents hello-world.yml --phases build

多个阶段

awstoe run --documents hello-world.yml --phases build,test
文档运行

在单个文档中运行所有阶段

awstoe run --documents documentName.yaml

在多个文档中运行所有阶段

awstoe run --documents documentName1.yaml,documentName2.yaml

输入 Amazon S3 信息以从用户定义的本地路径上传 AWSTOE 日志(推荐)

awstoe run --documents documentName.yaml --log-s3-bucket-name amzn-s3-demo-destination-bucket --log-s3-key-prefix S3KeyPrefix --log-s3-bucket-owner S3BucketOwner --log-directory local_path

在单个文档中运行所有阶段,并在控制台上显示所有日志

awstoe run --documents documentName.yaml --trace

示例命令

awstoe run --documents s3://bucket/key/doc.yaml --phases build,validate

运行具有唯一 ID 的文档

awstoe run --documents documentName.yaml --execution-id user-provided-id --phases build,test

获取以下方面的帮助 AWSTOE

awstoe --help
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。