问题描述
我遇到了以下命令来创建AWS SSH密钥对,但无法理解此处的“ --query”参数在做什么。
aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pem
有人可以向我解释-query 参数的重要性吗?
解决方法
--query
参数是AWS CLI工具的一项功能,可让您过滤命令成功执行后显示的响应。 --query KeyMaterial
参数所做的只是将命令的输出限制为SSH密钥的实际内容,而没有诸如密钥的ID之类的任何其他数据。这是必要的,因为输出是通过> MyKeyPair.pem
保存到文件的。
通过使用--query
参数,您可以修改将从AWS API收到的响应。
此功能在您要以编程方式使用AWS CLI提取响应的一部分的情况下非常有用,在您的示例中,这是从响应中提取KeyMaterial
属性,但它也可以用于根据属性值过滤和提取属性。
在您的用例中,这意味着您将能够获取密钥的纯文本并将其直接泵送到文本文件中,而无需手动执行复制和粘贴(尽管这受--output
标志的帮助)。
有关更多信息,请查看Controlling command output from the AWS CLI文档。