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

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

配置输入EC2 TOE运行命令

为你简化命令行输入EC2 TOE run命令,您可以在 JSON 格式输入配置文件中包含命令参数和选项的设置,并使用.json文件扩展名。EC2 TOE可以从以下位置之一读取文件:

  • 本地文件路径 (. /config.json)。

  • S3 存储桶(s3:<bucket-path>//<bucket-name>/config.json)。

当你输入run命令中,您可以使用--config参数。例如:

awstoe run --config <file-path>/config.json

输入配置文件

输入配置 JSON 文件包括您可以直接通过提供的所有设置的键值对run命令参数和选项。如果在输入配置文件和run命令,作为参数或选项,适用以下优先级规则:

优先级规则

  1. 直接提供给run中的命令Amazon CLI,通过参数或选项覆盖在输入配置文件中为相同设置定义的任何值。

  2. 输入配置文件中的设置将覆盖组件默认值。

  3. 如果没有将其他设置传递到组件文档中,则可以应用默认值(如果存在)。

这条规则有两个例外情况 —— 文档和参数。这些设置在输入配置和命令参数中的工作方式不同。如果使用输入配置文件,则不得将这些参数直接指定给run命令。这样做将产生错误。

组件设置

输入配置文件包含以下设置。为了简化文件,您可以省略任何不需要的可选设置。除非另有说明,否则所有设置均可选

  • CWignoRefLefLee 失败(布尔值)— 忽略 CloudWatch Logs 中的日志记录失败。

  • CWLOG 集团(字符串)—LogGroupCloudWatch Logs 的名称。

  • CWLOG 地区(字符串)—Amazon适用于 CloudWatch Logs 的区域。

  • CWlogStream(字符串)—LogStream指示的 CloudWatch Logs 的名称EC2 TOE在哪里直播console.log文件。

  • 文档3Bucket 所有者(字符串) — 基于 S3 URI 的文档的存储桶拥有者的账户 ID。

  • 文件(对象数组,必填)— 代表 YAML 组件文档的 JSON 对象数组EC2 TOE run命令正在运行。必须至少指定一个组件文档。

    每个对象由以下字段组成:

    • 路径(字符串,必填)— YAML 组件文档的文件位置。必须是以下类型之一:

      • 本地文件路径 (. /组件doc-示例.yaml)。

      • S3 URI (s3://bucket/key)。

      • Image Builder 组件构建版本 ARN (arn: aw: aw: imageBuilder: us-west-2:1234589012: 组件/我的例子组件/2021.12.02/1)。

    • 参数(对象数组)— 键值对对象的数组,每个对象代表一个特定于组件的参数run命令在运行组件文档时传入。组件的参数是可选的。组件文档可能有参数定义,也可能未定义参数。

      每个对象由以下字段组成:

      • 名称(字符串,必填)— 组件参数的名称。

      • (字符串,必填)— 传入指定参数的组件文档的值。

      要了解有关组件参数的更多信息,请参阅参数部分中的部分在中定义和引用变量EC2 TOE页.

  • ExeconId(字符串) — 这是适用于当前执行的唯一 IDrun命令。此 ID 包含在输出和日志文件名中,用于唯一标识这些文件,并将它们链接到当前的命令执行。如果忽略了这个设置,EC2 TOE生成 GUID。

  • 日志目录(字符串) — 其中的目标目录EC2 TOE存储此命令执行中的所有日志文件。默认情况下,此目录位于以下父目录中:TOE_<DATETIME>_<EXECUTIONID>. 如果您未指定日志目录,EC2 TOE使用当前的工作目录(.)。

  • logs3BucketName(字符串)— 如果组件日志存储在 Amazon S3 中(推荐),EC2 TOE将组件应用程序日志上传到此参数中命名的 S3 存储桶。

  • logs3Bucket 所有者(字符串) — 如果组件日志存储在 Amazon S3 中(推荐),则这是存储桶的所有者账户 IDEC2 TOE写日志文件。

  • logs3Key前缀(字符串) — 如果组件日志存储在 Amazon S3 中(推荐),则这是存储桶中日志位置的 S3 对象 key prefix。

  • 参数(对象数组)— 键值对对象的数组,表示全局应用于当前组件中包含的所有组件的参数run命令执行。

    • 名称(字符串,必填)— 全局参数的名称。

    • (字符串,必填)— 传入指定参数的所有组件文档的值。

  • 阶段(字符串) — 以逗号分隔的列表,指定要从 YAML 组件文档中运行哪些阶段。如果组件文档包括其他阶段,那么这些阶段将无法运行。

  • 状态目录(字符串) — 存储状态跟踪文件的文件路径。

  • 跟踪(布尔值)— 启用对控制台的详细日志记录。

示例

以下示例显示了运行buildtest两个组成文档的阶段:sampledoc.yaml, 和conversation-intro.yaml. 每个组件文档都有一个仅适用于自身的参数,并且两者都使用一个共享参数。这些区域有:project参数适用于两个组件文档。

{ "documents": [ { "path": "<file path>/awstoe/sampledoc.yaml>", "parameters": [ { "name": "dayofweek", "value": "Monday" } ] }, { "path": "<file path>/awstoe/conversation-intro.yaml>", "parameters": [ { "name": "greeting", "value": "Hello, HAL." } ] } ], "phases": "build,test", "parameters": [ { "name": "project", "value": "examples" } ], "cwLogGroup": "<log_group_name>", "cwLogStream": "<log_stream_name>", "documentS3BucketOwner": "<owner_aws_account_number>", "executionId": "<id_number>", "logDirectory": "<local_directory_path>", "logS3BucketName": "<bucket_name_for_log_files>", "logS3KeyPrefix": "<key_prefix_for_log_files>", "logS3BucketOwner": "<owner_aws_account_number>" }