开始使用 EC2 TOE - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

开始使用 EC2 TOE

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

请按照以下步骤安装该 EC2 TOE 应用程序并首次使用它。

步骤 1:安装 EC2 TOE

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

  1. 下载 EC2 TOE 应用程序

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

    重要

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

  2. 验证签名

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

重要

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

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

步骤 2:设置 Amazon 凭证

EC2 TOE 运行任务时需要 Amazon 凭证才能连接到其他任务 Amazon Web Services,例如 Amazon S3 和 Amazon CloudWatch,例如:

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

  • 运行 S3DownloadS3Upload 操作模块。

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

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

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

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

要在 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

C:\> $env:AWS_ACCESS_KEY_ID=your_access_key_id
C:\> $env:AWS_SECRET_ACCESS_KEY=your_secret_access_key

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

C:\> set AWS_ACCESS_KEY_ID=your_access_key_id
C:\> set AWS_SECRET_ACCESS_KEY=your_secret_access_key

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

EC2 TOE 组件是用纯文本 YAML 文档创作的。有关文档语法的更多信息,请参阅 在中使用组件文档 EC2 TOE

以下是 Hello World 组件文档示例,您可以使用这些文档在本地开发文档。

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.'

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:验证 EC2 TOE 组件

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

注意

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

Windows

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

Linux

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

步骤 5:运行 EC2 TOE 组件

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

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

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

如果未提供阶段列表,则 EC2 TOE 应用程序将按照 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 信息以从用户定义的本地路径上传 EC2 TOE 日志(推荐)

awstoe run --documents documentName.yaml --log-s3-bucket-name <S3Bucket> --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 <comma separated list of phases>

获取以下方面的帮助 EC2 TOE

awstoe --help