本文档 AWS CLI 仅适用于版本 1。有关版本 2 的文档 AWS CLI,请参阅版本 2 用户指南。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CLI 中的骨架和输入文件 AWS CLI
大多数 AWS CLI 命令都接受文件中的所有参数输入。可以使用 generate-cli-skeleton
选项生成这些模板。
关于 AWS CLI 骨架和输入文件
大多数 AWS Command Line Interface (AWS CLI) 命令都支持使用--cli-input-json
参数 s 接受文件中的所有--cli-input-yaml
参数输入的功能。
这些同样的命令很有帮助,--generate-cli-skeleton
可以提供生成包含所有可以编辑和填写的参数的格式的文件的参数。然后,您可以带有相关 --cli-input-json
参数运行命令并指向填充的文件。
重要
有几个 AWS CLI 命令不能直接映射到单个 AWS API操作,例如aws s3
命令aws s3
。此类命令不支持本主题中介绍的 --generate-cli-skeleton
或 --cli-input-json
参数。如果您不知道特定命令是否支持这些参数,请运行以下命令,替换 service
以及 command
用你感兴趣的名字命名。
$
aws service command
help
输出包含 Synopsis
部分,其中显示了指定的命令支持的参数。
$
aws iam list-users help
... SYNOPSIS list-users ... [--cli-input-json] ... [--generate-cli-skeleton <value>] ...
--generate-cli-skeleton
参数将导致命令无法运行,而是生成和显示您可以自定义的参数模板并用作以后命令的输入。生成的模板包含命令支持的所有参数。
--generate-cli-skeleton
参数接受以下值之一:
-
input
— 生成的模板包括所有格式为的输入参数JSON。这是默认值。 -
output
— 生成的模板包括所有格式为的输出参数JSON。
由于本质上 AWS CLI 是围绕服务的 “包装”API,因此骨架文件希望您通过其基础API参数名称来引用所有参数。这可能与 AWS CLI 参数名称不同。例如,名为的 AWS CLI 参数user-name
可能映射到名为的 AWS 服务API参数UserName
(请注意更改的大写和缺少的破折号)。我们建议您使用 --generate-cli-skeleton
选项,用“正确”的参数名称生成模板,以避免错误。您也可以参考服务的《API参考指南》以查看预期的参数名称。您可以从模板中删除不需要的和不想为其提供值的任何参数。
例如,如果您运行以下命令,它将为亚马逊弹性计算云 (AmazonEC2) 命令生成参数模板run-instances。
生成命令框架
生成并使用参数框架文件
-
运行带有
--generate-cli-skeleton
参数的命令以生成,YAML然后将输出定向到文件进行保存。 -
在文本编辑器中打开参数骨架文件,并删除任何不需要的参数。例如,您可以将模板缩减到以下内容。请确保该文件仍然有效,JSON在删除不需要的元素之后。
在此示例中,我们将
DryRun
参数设置为true
以使用 Amazon EC2 试运行功能。通过此功能,您可以安全地测试命令,而无需实际创建或修改任何资源。 -
使用适合您的场景的值填入剩余的值。在此示例中,我们提供了要使用的 Amazon 系统映像 (AMI) 的实例类型、密钥名称、安全组和标识符。此示例假设默认 AWS 区域。AMI
ami-dfc39aef
是在该us-west-2
地区托管的 64 位亚马逊 Linux 映像。如果您使用其他区域,则必须找到正确的 AMI ID 才能使用。 -
通过使用
file://
前缀将完成的模板文件传递到--cli-input-json
参数,使用填写的参数运行命令。将路径 AWS CLI 解释为相对于当前工作目录,因此在以下示例中,它直接在当前工作目录中查找文件,该示例仅显示文件名而不显示路径。试运行错误表明JSON的格式正确且参数值有效。如果输出中报告了其他问题,请解决这些问题并重复上一步,直到显示“
Request would have succeeded
”消息。 -
现在,您可以将
DryRun
参数设置为false
以禁用空运行。 -
运行命令,
run-instances
实际启动一个 Amazon EC2 实例并显示成功启动后生成的详细信息。输出格式由--output
参数控制,与输入参数模板的格式分开。