如何从 AWS SSM 的清单中删除已终止的实例?

问题描述 投票:0回答:2

我正在尝试从 SSM 的清单中删除已终止的托管节点,但找不到任何方法可以通过 CLI 或 SDK 来执行此操作。目前,当我运行命令

aws ssm get-inventory
时,结果列表包含以下模式的许多条目:

{
    "Id": "i-0ffeeb0756265c10f",
    "Data": {
        "AWS:InstanceInformation": {
            "TypeName": "AWS:InstanceInformation",
            "SchemaVersion": "1.0",
            "CaptureTime": "2022-09-09T05:11:53Z",
            "Content": [
                {
                    "InstanceId": "i-0ffeeb0756265c10f",
                    "InstanceStatus": "Terminated"
                }
            ]
        }
    }
}

这些实例也不会显示在 AWS 控制台的托管节点中。有没有办法从 SSM 清单中删除这些已终止的实例?非常感谢!

amazon-web-services aws-sdk aws-cli aws-ssm
2个回答
1
投票

aws ssm get-inventory
可以使用--filters。

键=字符串,值=字符串,字符串,类型=字符串

给你:

键=实例状态,值=已终止,类型=NotEqual

所以这样的事情应该有效:

aws ssm get-inventory --filters Key=InstanceStatus,Values=Terminated,Type=NotEqual

这正是我从文档这里得到的。我还没有尝试过,所以可能需要一些调整。


0
投票

过滤器适合这种语法:

aws ssm get-inventory --filters '[{"Key":"AWS:InstanceInformation.InstanceStatus","Values":["terminated"],"Type":"NotEqual"}]'

ssm 中仍然终止的实例是一个问题。如果你有很多这样的东西(可能有),就会导致速率限制。

aws ssm get-inventory

An error occurred (ThrottlingException) when calling the GetInventory operation (reached max retries: 2): Rate exceeded
© www.soinside.com 2019 - 2024. All rights reserved.