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

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

开始使用 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 下载

  2. 验证签名

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

注意

EC2 TOE直接从其下载位置调用。不需要单独的安装步骤。

第 2 步:SetAmazon证书

EC2 TOE要求Amazon用于连接到其他的凭据Amazon运行任务时的服务,例如 Amazon S3 和 Amazon CloudWatch,例如:

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

  • 正在运行S3Download要么S3Upload操作模块。

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

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

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

下面的示例演示如何设置Amazon使用凭证AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY环境变量。

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

$ export AWS_ACCESS_KEY_ID=your_access_key_id
$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key

要使用 PowerShell 在 Windows 上设置这些变量,请使用$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应用程序只能验证当前操作系统的组件语法。例如,在运行时awstoe.exe在 Windows 上,您无法验证使用ExecuteBash操作模块。

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命令行参数。支持的值--phasesbuildvalidate, 和test. 多个阶段值可以作为逗号分隔的值输入。

当你提供阶段列表时,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