本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始使用 EC2 TOE
EC2 Task Orchestrator and Executor (EC2 TOE) 应用程序是一个独立的应用程序,用于在组件定义框架内创建、验证和运行命令。 Amazon 服务可用于 EC2 TOE 协调工作流程、安装软件、修改系统配置和测试映像构建。
请按照以下步骤安装该 EC2 TOE 应用程序并首次使用它。
步骤 1:安装 EC2 TOE
要在本地开发组件,请下载并安装该 EC2 TOE 应用程序。
-
下载 EC2 TOE 应用程序
要进行安装 EC2 TOE,请为您的架构和平台选择相应的下载链接。有关应用程序下载链接的完整列表,请参阅 EC2 TOE 下载
重要
Amazon 正在逐步取消对 TLS 版本 1.0 和 1.1 的支持。要访问 S3 存储桶进行 EC2 TOE 下载,您的客户端软件必须使用 TLS 版本 1.2 或更高版本。有关更多信息,请参阅此 Amazon 安全博客文章
。 -
验证签名
验证下载的步骤取决于安装 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 文档。
-
运行
S3Download
或S3Upload
操作模块。 -
启用后 CloudWatch,将日志流式传输到。
如果您在 EC2 实例 EC2 TOE 上运行,则运行 EC2 TOE 使用的权限与附加到 EC2 实例的 IAM 角色相同。
有关适用于 EC2 的 IAM 角色的更多信息,请参阅适用于 Amazon EC2 的 IAM 角色。
以下示例说明如何使用AWS_ACCESS_KEY_ID
和AWS_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
支持的值有 build
、validate
和 test
。可以用逗号分隔的值形式输入多个阶段值。
当您提供阶段列表时, EC2 TOE 应用程序会按顺序运行每个文档的指定阶段。例如, EC2 TOE 运行的build
和validate
阶段document1.yaml
,然后运行的build
和validate
阶段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