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

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

使用创建组件 Amazon CLI

本节介绍如何使用 Image Builder 命令从中创建 EC2 Task Orchestrator and Executor (EC2 TOE) 组件 Amazon Command Line Interface。要构建组件,请提供 YAML 应用程序组件文档。这表示创建组件所需的阶段和步骤。要创建新的 YAML 组件文档,请参阅 创建 YAML 组件文档

使用 Image Builder 创建 EC2 TOE 组件 Amazon CLI

在本节中,您将学习如何设置和使用中的 Image Builder 命令 Amazon CLI 来创建 EC2 TOE 应用程序组件,如下所示。

  • 将您的 YAML 组件文档上传到可以从命令行引用的 S3 存储桶。

  • 使用create-component命令创建 EC2 TOE 应用程序组件。

  • 使用 list-components 命令和名称筛选器列出组件版本,以查看已存在哪些版本。您可以使用输出来确定应使用哪个版本进行更新。

要根据输入 YAML 文档创建 EC2 TOE 应用程序组件,请按照与您的映像操作系统平台相匹配的步骤进行操作。

Linux
将您的应用程序组件文档存储到 Amazon S3 中

您可以使用 S3 存储桶作为 EC2 TOE 应用程序组件源文档的存储库。要存储组件文档,请按照以下步骤操作:

  • 将文档上传到 Amazon S3

    如果您的文档小于 64 KB,则可以跳过此步骤。大小为 64 KB 或更大的文档必须存储在 Amazon S3 中。

    aws s3 cp update-linux-os.yaml s3://my-s3-bucket/my-path/update-linux-os.yaml
从 YAML 文档创建组件

要简化您在中使用的create-component命令 Amazon CLI,请创建一个 JSON 文件,其中包含要传递给命令的所有组件参数。包括您在前面的步骤中创建的 update-linux-os.yaml 文档的位置。uri 键值对包含文件引用。

注意

JSON 文件中数据值的命名惯例遵循为 Image Builder API 操作请求参数指定的模式。要查看 API 命令请求参数,请参阅《EC2 Image Builder API 参考》中的CreateComponent命令。

要将数据值作为命令行参数提供,请参阅《Amazon CLI 命令引用》中指定的参数名称。

  1. 创建 CLI 输入 JSON 文件

    使用文件编辑工具创建名为 create-update-linux-os-component.json 的文件。包括以下内容:

    { "name": "update-linux-os", "semanticVersion": "1.1.2", "description": "An example component that updates the Linux operating system", "changeDescription": "Initial version.", "platform": "Linux", "uri": "s3://my-s3-bucket/my-path/update-linux-os.yaml", "kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c", "tags": { "MyTagKey-purpose": "security-updates" } }
    注意
    • JSON 文件路径开头必须包含 file:// 符号。

    • JSON 文件的路径应遵循运行命令的基本操作系统的相应约定。例如,Windows 使用反斜杠 (\) 引用目录路径,Linux 则使用正斜杠 (/)。

  2. 创建组件

    使用以下命令创建组件,引用您在上一步中创建的 JSON 文件的文件名:

    aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
    注意
    • JSON 文件路径开头必须包含 file:// 符号。

    • JSON 文件的路径应遵循运行命令的基本操作系统的相应约定。例如,Windows 使用反斜杠 (\) 引用目录路径,Linux 则使用正斜杠 (/)。

Windows
将您的应用程序组件文档存储到 Amazon S3 中

您可以使用 S3 存储桶作为 EC2 TOE 应用程序组件源文档的存储库。要存储组件文档,请按照以下步骤操作:

  • 将文档上传到 Amazon S3

    如果您的文档小于 64 KB,则可以跳过此步骤。大小为 64 KB 或更大的文档必须存储在 Amazon S3 中。

    aws s3 cp update-windows-os.yaml s3://my-s3-bucket/my-path/update-windows-os.yaml
从 YAML 文档创建组件

要简化您在中使用的create-component命令 Amazon CLI,请创建一个 JSON 文件,其中包含要传递给命令的所有组件参数。包括您在前面的步骤中创建的 update-windows-os.yaml 文档的位置。uri 键值对包含文件引用。

注意

JSON 文件中数据值的命名惯例遵循为 Image Builder API 操作请求参数指定的模式。要查看 API 命令请求参数,请参阅《EC2 Image Builder API 参考》中的CreateComponent命令。

要将数据值作为命令行参数提供,请参阅《Amazon CLI 命令引用》中指定的参数名称。

  1. 创建 CLI 输入 JSON 文件

    使用文件编辑工具创建名为 create-update-windows-os-component.json 的文件。包括以下内容:

    { "name": "update-windows-os", "semanticVersion": "1.1.2", "description": "An example component that updates the Windows operating system.", "changeDescription": "Initial version.", "platform": "Windows", "uri": "s3://my-s3-bucket/my-path/update-windows-os.yaml", "kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c", "tags": { "MyTagKey-purpose": "security-updates" } }
    注意
    • JSON 文件路径开头必须包含 file:// 符号。

    • JSON 文件的路径应遵循运行命令的基本操作系统的相应约定。例如,Windows 使用反斜杠 (\) 引用目录路径,Linux 则使用正斜杠 (/)。

  2. 创建组件

    使用以下命令创建组件,引用您在上一步中创建的 JSON 文件的文件名:

    aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
    注意
    • JSON 文件路径开头必须包含 file:// 符号。

    • JSON 文件的路径应遵循运行命令的基本操作系统的相应约定。例如,Windows 使用反斜杠 (\) 引用目录路径,Linux 则使用正斜杠 (/)。

EC2 TOE 用于更新的组件版本控制 ()Amazon CLI

EC2 TOE 组件名称和版本嵌入在组件的 Amazon 资源名称 (ARN) 中,位于组件前缀之后。组件的每个新版本都有自己唯一的 ARN。创建新版本的步骤与创建新组件的步骤完全相同,前提是该组件名称的语义版本是唯一的。要了解有关 Image Builder 资源的语义版本控制的更多信息,请参阅Semantic 版本控制

为确保分配下一个逻辑版本,请先获取要更改的组件的现有版本列表。使用带有 Amazon CLI、并筛选名称的list-components命令。

在此示例中,您将根据在前面的 Linux 示例中创建的组件的名称进行筛选。要列出您创建的组件,请使用您在 create-component 命令中使用的 JSON 文件中的 name 参数值。

aws imagebuilder list-components --filters name="name",values="update-linux-os" { "requestId": "123a4567-b890-123c-45d6-ef789ab0cd1e", "componentVersionList": [ { "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.0", "name": "update-linux-os", "version": "1.0.0", "platform": "Linux", "type": "BUILD", "owner": "123456789012", "dateCreated": "2020-09-24T16:58:24.444Z" }, { "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.1", "name": "update-linux-os", "version": "1.0.1", "platform": "Linux", "type": "BUILD", "owner": "123456789012", "dateCreated": "2021-07-10T03:38:46.091Z" } ] }

根据您的结果,您可以确定下一个版本应该是什么。