本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 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 命令中都指定了一个设置作为参数或选项,则以下优先规则适用:
优先规则
-
通过参数或选项直接提供给run命令的 Amazon CLI设置会覆盖在输入配置文件中为相同设置定义的任何值。
-
输入配置文件中的设置会覆盖组件的默认值。
-
如果没有将其他设置传递到组件文档,则它可以应用默认值(如果存在)。
此规则有两个例外:文档和参数。这些设置在输入配置中和作为命令参数时的工作方式有所不同。如果使用输入配置文件,则不得直接向 run 命令指定这些参数。这样做会产生错误。
组件设置
输入配置文件包含以下设置。要简化文件,可以省略任何不需要的可选设置。除非另有说明,否则所有设置均为可选设置。
-
cwIgnoreFailures(布尔值)-忽略日志中的 CloudWatch 日志失败。
-
cwLogGroup(字符串)- CloudWatch 日志的
LogGroup
名称。 -
cwLogRegion(字符串)-适用于 CloudWatch 日志的 Amazon 区域。
-
cwLogStream(字符串)- CloudWatch 日志的
LogStream
名称,用于指示将console.log
文件流式传输到 EC2 TOE 何处。 -
d@@ ocumentS3 BucketOwner(字符串)-URI 基于 S3 的文档的存储桶所有者的账户 ID。
-
documents(JSON对象数组,必填)— 表示 EC2 TOE run命令正在运行的YAML组件文档的对象数组。必须指定至少一个组件文档。
对象由以下字段组成:
-
path(字符串,必填)-YAML 组件文档的文件位置。其必须是以下内容之一:
-
本地文件路径 (
./component-doc-example.yaml
)。 -
一个 S3 URI (
s3://
)。bucket/key
-
Image Builder 组件构建版本ARN(arn: aws: imagebuilder: us-west--: component/ /2021.12.02/1)。
2:123456789012
my-example-component
-
-
parameters(对象数组)-键值对对象的数组,每个代表 run 命令在运行组件文档时传入的特定于组件的参数。组件的参数是可选的。组件文档可能定义参数,也可能没有定义参数。
对象由以下字段组成:
-
name(字符串,必填)-组件参数的名称。
-
value(字符串,必填)-要传递到组件文档的命名参数的值。
要了解有关组件参数的更多信息,请参阅 在自定义组件文档中使用变量 页面的参数一节。
-
-
-
executonId(字符串)-这是适用于执行当前run命令的唯一 ID。此 ID 包含在输出和日志文件名中,用于唯一标识这些文件,并将它们链接到当前的命令执行。如果省略此设置,则 EC2 TOE 生成GUID。
-
logDirectory(String)- EC2 TOE 存储此命令执行的所有日志文件的目标目录。默认情况下,该目录位于以下父目录中:
TOE_<DATETIME>_<EXECUTIONID>
。如果未指定日志目录,则 EC2 TOE 使用当前工作目录 (.
)。 -
LogS3 BucketName(字符串)-如果组件日志存储在 Amazon S3 中(推荐),则将组件应用程序日志 EC2 TOE 上传到此参数中命名的 S3 存储桶。
-
LogS3 BucketOwner(字符串)-如果组件日志存储在 Amazon S3 中(推荐),则这是 EC2 TOE 写入日志文件的存储桶的所有者账户 ID。
-
LogS3 KeyPrefix(字符串)— 如果组件日志存储在 Amazon S3 中(推荐),则这是存储桶中日志位置的 S3 对象密钥前缀。
-
parameters(对象数组)-键值对对象的数组,表示全局应用于当前 run 命令执行中包含的所有组件的参数。
-
name(字符串,必填)-全局参数的名称。
-
值(字符串,必填)-要传递到所有组件文档的命名参数的值。
-
-
p@@ h ases(字符串)— 以逗号分隔的列表,用于指定要从YAML组件文档运行哪些阶段。如果组件文档包含其他阶段,则这些阶段将无法运行。
-
stateDirectory(字符串)-存储状态跟踪文件的文件路径。
-
trace(布尔值)-启用对控制台的详细日志记录。
示例
以下示例显示了一个输入配置文件,该文件为两个组件文档 sampledoc.yaml
和 conversation-intro.yaml
运行 build
和 test
阶段。每个组件文档都有一个仅适用于其自身的参数,并且两者都使用一个共享参数。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>" }