簡體   English   中英

AWS CLI 命令 output 值中的排除值

[英]Excluding value in AWS CLI command output value

我正在執行一項任務,以獲取 aws 帳戶中所有區域的所有實例以及其他詳細信息,我的要求是排除 windows 實例。 我已經嘗試了很多更改,但沒有得到理想的結果,任何建議都將不勝感激。

aws ec2 describe-instances --region us-east-1 --query 'Reservations[].Instances[].[Tags[?Key=='"'Name'"']|[0].Value,InstanceId,State.Name,PublicIpAddress,PrivateIpAddress,Placement.AvailabilityZone,PlatformDetails]' --filters Name=platform,Values!=windows --output table 

如果您在所有節點上都有可用的ssm ,建議嘗試使用aws ssm describe-instance-information而不是aws ec2 describe-instances 你可以得到所有的結果

aws ssm describe-instance-information --region us-east-1 --max-items 2

你也可以試試

aws ssm describe-instance-information --query 'InstanceInformationList[*][PlatformType==`Linux`,InstanceId]'  --region us-east-1 --max-items 2

如果有 Linux/windows,它可以為您提供實例 ID 和 true 或 false。

評論中的其他要求(IP、AZ 等):
你可以試試
aws ec2 describe-instances --query 'Reservations[*].Instances[*][][KernelId,Placement.[AvailabilityZone][],PublicIpAddress]' --region us-east-1 --max-items 2
您也可以添加其他過濾器。 關於 windows 和 linux 的問題,可以通過KernelID過濾。 我沒有 windows 服務器,所以我無法檢查,但我猜這個字段不會出現。

我的建議是忘記這個 "$*,@%" 'CLI' (它實際上是一個 Python 解釋器。全部都在文本模式下)......它的猴子語法和區分大小寫......並安裝 pwsh 並享受純面向對象和正交環境。

一到那里,

獲取 EC2Instance | 選擇對象-展開實例 | Where-Object Platform -eq "Windows"

或者

獲取 EC2Instance | Select -擴展實例|? 平台-ne“Windows”

還有很多很多很多其他的優點...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM