通过 LaunchTime wrt Powershell 获取特定时间段的实例计数

to get the instance count of a certain period via LaunchTime wrt Powershell

提问人:Money Times 提问时间:11/17/2023 最后编辑:Money Times 更新时间:11/19/2023 访问量:55

问:

我尝试过以下方法

我的日期格式是否符合 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)

但是我没有在这里得到实际的计数,得到总数的计数 - 如果我在这里错过了什么?

PowerShell amazon-ec2 aws-cli 格式 日期格式

评论


答:

1赞 mklement0 11/18/2023 #1

注意:

  • 我无权访问 AWS,因此以下内容未经测试。
  • 我假设您的查询部分是正确的。Reservations[*].Instances[*]

假设您希望使用 JMESPath 查询(由 CLI 的 --query 参数支持)仅提取匹配实例的属性值:.InstanceIdaws

取代:

--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 中表示为字符串。这种格式确保词法排序等同于按时间顺序排序。