ana*_*ine 6 amazon-ec2 amazon-web-services aws-cli
我目前正在尝试从命令行编写 aws ec2 查询(在 AWS Linux 中,这并不重要)。我正在尝试设置一个匹配以下两项的过滤器:
实际发生的情况是,所有处于关闭状态的实例都将被返回,无论它们是否设置了标签“ShortPurpose”:“Fleet”。
我的实例设置如下:
+-------------+--------------+------------------------+--+
| Instance ID | Tag | Tag Value | |
+-------------+--------------+------------------------+--+
| i-09876 | ShortPurpose | Fleet | |
| | Organisation | UmbrellaCorp | |
| | Name | cloud-01 | |
| | Owner | ORG-UMBR-ELLA | |
| | Purpose | Cloud processing fleet | |
+-------------+--------------+------------------------+--+
| | | | |
| i-12345 | (no tags) | | |
| | | | |
+-------------+--------------+------------------------+--+
Run Code Online (Sandbox Code Playgroud)
我正在使用的命令是:
aws ec2 describe-instances --query "Reservations[*].Instances[*].InstanceId" --filters "Name=tag:ShortPurpose,Values=Fleet,Name=instance-state-code,Values=80"
Run Code Online (Sandbox Code Playgroud)
结果是标准数组样式响应。实例状态已成功过滤,但标签未过滤。
我尝试验证您的命令,但它在您编写时产生错误:
Error parsing parameter '--filters': Second instance of key "Name" encountered for input:
Name=tag:ShortPurpose,Values=Fleet,Name=instance-state-code,Values=80
^
This is often because there is a preceeding "," instead of a space.
Run Code Online (Sandbox Code Playgroud)
但是,我能够在我的沙箱实例上成功使用它,如下所示:
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].InstanceId" \
--filters Name=tag:ShortPurpose,Values=Fleet Name=instance-state-code,Values=80
Run Code Online (Sandbox Code Playgroud)