当前位置: 首页 > 知识库问答 >
问题:

在AWS中,我如何列出所有预订,而不考虑标签和其他值

齐招
2023-03-14

我想列出所有ec2资源的标签(客户网关|dhcp选项|图像|实例|互联网网关|网络acl|网络接口|保留实例|路由表|安全组|快照|斑点实例-请求|子网|卷|vpc|vpn连接和vpn网关)。

下面的代码列出了我的ec2客户端的所有带有标记的资源:

session = boto3.Session(profile_name='default')
ec2Client = session.client('ec2', region_name='eu-west-2') 
allTags = ec2Client.describe_tags()['Tags']
for tag in allTags:
    print tag

问题

这里的问题是,只有在“实例”的情况下,不包括没有标记的实例这样的资源。如果ec2中有5个实例,3个有标签,2个没有标签,上面的代码将只列出这3个有标签的实例。

期望输出

我希望列出所有资源(实例、专有网络、子网、安全组等),无论是否定义了标记。如果有标签,它会显示标签,如果没有,我仍然希望它包含在没有标签的结果中。

一种方法是对每个资源使用descripe_xxx方法来获得保留并查找标记,但我必须对每个资源调用它(比如descripe_instances()、descripe_快照、descripe_security_groups()等),在我看来,这并不是一种干净、通用的解决方案。

问题

有没有办法使用boto3库列出所有资源,如果资源有标签,也显示标签,如果没有,那么只显示资源?

共有1个答案

哈翔
2023-03-14

据我所知,boto3没有提供describe_all方法,为了达到你想要的结果,如果我理解正确,你将不得不分别描述所有对象类型,即describe_vpcsdescribe_instances等,然后在生成的数据结构中寻找标签。

例如,可以从所有生成的方法调用(describe_instancesdescribe_vpcsdescribe_subnets等)中构造一个单一的数据结构,如下所示:

{
  Vpcs: [{... Tags: [{...}]}]
  Instances: [{... Tags: [{...}]}]
  Subnets: [{... Tags: [{...}]}]
  ...
}

我相信这是与你问题中提到的物体最接近的匹配。

 类似资料:
  • 我仍然没有发现正在发生的事情,但以下是我目前发现并做的事情: 1)log4j.xml文件格式不正确:缺少DOCTYPE,有多个布局,某些布局类不正确。 2)我已在命令行中指定了log4j.xml文件的路径;3)对DOMConfigurator和PropertyConfigurator的几次调用,我已将它们删除。 我将研究范围缩小到一个基于线程ID创建动态日志文件的类。在执行该类中的代码之前,log

  • 我编写了一个Flink CEP片段,该片段使用()检查状态模式(由键控)。其思想是,如果特定状态在指定时间内未在第一个状态之后到达,则发出警报。 这是有效的,但是如果有nomore消息到该流,则不会触发警报。但只有当带有某种随机状态的消息到达时,这部分才会被触发。 那么,我如何使它触发警报,即使没有消息到达这个流,当带有下一个序列的消息没有带时间到达时?

  • 我想知道是否有一种方法可以控制显示多少标签-我知道有<code>步长<code>功能,但这是数字。我正在寻找类似<code>interval:3 这是我如何呈现图表的: 中文: 在我的组件中,我有:

  • 我试图检查一个数组中的所有服务器,看看它们是否配置了SSH无密码信任。 如果没有,我想打印服务器详细信息,并继续循环遍历数组元素(ips) (我想在退出之前有机会打印所有错误的。) 我尝试了以下方法,但它在遇到第一个未配置的服务器后退出循环: 我做错了什么?

  • 问题内容: 我有两个列表,当我用下面的代码绘图时,x轴只显示 最多12个(最多15个)。我可以知道如何显示x列表中的所有值吗 x轴?提前谢谢。 如果我在“set xticklabels”函数中设置minor=True,它将显示所有 x=2,4,6,8,…,16。。。但我想要所有的价值观。 P、 我的x轴没有排序,应该显示如图所示。 问题答案: Add this: To your code befo

  • 根据业务需要,我必须比较API URL的JSON响应,假设这是一个通用解决方案。JSON比较需要包括值不匹配以及模式不匹配。 根据要求,应为通用解决方案。我无法根据响应创建java对象并进行比较,因为响应JSON可以是具有任何模式的任何东西,因此JSON到对象的约定是不可能的,因为对象结构不能预先定义,并且会随每组API而变化。 我尝试的:尝试实施 方法1)flipkart孵化器/zjsonpat