提问人:Money Times 提问时间:11/17/2023 最后编辑:Money Times 更新时间:11/19/2023 访问量:55
通过 LaunchTime wrt Powershell 获取特定时间段的实例计数
to get the instance count of a certain period via LaunchTime wrt Powershell
问:
我尝试过以下方法
我的日期格式是否符合 awscli LaunchTime 标准?
要获取最近 5 天的实例计数,该计数是通过 Powershell 中的 AWS cli 的 LaunchTime 创建的,请执行以下操作:
$getDays = Get-Date
$5Days = $getDays.AddDays(-5).ToString('yyyy-MM-dd')
$instancesCreated = aws ec2 --profile $awsProfile --region $awsRegion describe-instances --query "Reservations[*].Instances[*].[InstanceId,LaunchTime>='$5Days']"
Write-Output (" Total instances count in last 5days : " +$instancesCreated)
但是我没有在这里得到实际的计数,得到总数的计数 - 如果我在这里错过了什么?
答:
1赞
mklement0
11/18/2023
#1
注意:
- 我无权访问 AWS,因此以下内容未经测试。
- 我假设您的查询部分是正确的。
Reservations[*].Instances[*]
假设您希望使用 JMESPath 查询(由 CLI 的 --query
参数支持)仅提取匹配实例的属性值:.InstanceId
aws
取代:
--query "Reservations[*].Instances[*].[InstanceId,LaunchTime>='$5Days']"
跟:
--query "(Reservations[*].Instances[])[?LaunchTime>='$5Days'].InstanceId"
评论
0赞
Money Times
11/19/2023
再次感谢先生的观察@mklement0!但是当我使用替换的查询 <a> 进行更改时,发生了两件事,现在它没有显示任何结果(但早些时候它正在获取整个实例的记录)<b>当我使用 .AddDays,然后我检查了修改日期的数据类型 - 它向我显示字符串类型,但如果我检查 describe-instance api,它说日期的数据类型是 ISO 8601 [docs.aws.amazon.com/cli/latest/reference/ec2/... - 转换 launchDate(launch-time) 时我是否遗漏了什么?
0赞
mklement0
11/19/2023
@MoneyTimes,看看我的更新是否有帮助。是的,日期格式是 ISO 8601,但日期在 JSON 中表示为字符串。这种格式确保词法排序等同于按时间顺序排序。
评论