我试图在AWS帐户中获得所有EBS卷的列表。我使用的是Python 3和boto3版本1.10.34。
我发现这篇文章有一些建议,但都不管用。
我将ec2\u客户端设置为这样:import boto3 session=boto3.session(profile\u name=aws\u account,region\u name='us-east-1')ec2\u client=session.client('ec2'))
如果我尝试
卷=ec2_client.volumes.all()
我返回属性错误:'EC2'对象没有属性'卷'
。
如果我尝试
volumes=ec2\u client.get\u all\u volumes()
我返回AttributeError:“ec2”对象没有属性“get\u all\u volumes”
。
如何才能正确地执行此操作?
我建议您在需要描述“所有”卷时使用paginator
。
如果卷数超过1000卷,descripe\u volumes()
不会描述所有卷,只会描述前1000卷。
让我引用下面的参考留档。
某些AWS操作返回的结果不完整,需要后续请求才能获得整个结果集。在前一个请求停止的地方发送后续请求以继续的html" target="_blank">过程称为分页。例如,AmazonS3的list_objects操作一次最多返回1000个对象,您必须使用适当的标记发送后续请求,以便检索下一页的结果。
分页器是boto3的一个特性,它作为对截断的API操作的整个结果集的迭代过程的抽象。
参考:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/paginators.html
请参阅下面的片段:
def get_all_volumes(session):
volumes = []
ec2 = session.client("ec2")
# Get all Volumes using paginator
paginator = ec2.get_paginator("describe_volumes")
page_iterator = paginator.paginate()
for page in page_iterator:
volumes.extend(page["Volumes"])
return volumes
我有一个aws组织,有几个S3桶和成员帐户。我在其中一个S3 bucket中添加了bucket策略,允许根据aws在下面URL中提供的文档从成员帐户访问它。 但是在登录了特定的会员账号之后,我仍然无法在那里看到S3的bucket。所以请告诉我这里出了什么问题。
我想要通过 databricks 从 Azure 订阅中动态获取所有存储帐户和容器。 因此,我可以遍历容器中的每个文件,并获取我之前完成的文件及其大小。 现在,我想动态地将存储帐户和容器设置为在 databricks 环境中进行处理。
我有一个AWS帐户,其中多个EC2实例、负载平衡器、目标组、安全组等由多个所有者设置。我们使用地形来建立这个系统,但有时由于腐败,国家变得不一致。当前的恢复机制是手动销毁该帐户中由特定所有者拥有的所有资源。有没有一种简单的方法可以将AWS帐户中属于特定所有者的所有资源都销毁?
有没有办法列出AWS中的所有资源?对于所有区域,所有资源...例如列出所有EC2实例、所有VPC、API Gateway中的所有API等...我想列出我帐户的所有资源,因为我很难找到我现在可以放弃的资源。
本节,我们要添加倒数第二个用户控制器动作,index。index 动作不是显示某一个用户,而是显示所有用户。在这个过程中,我们要学习如何在数据库中生成示例用户数据,以及如何分页显示用户列表,让首页显示任意数量的用户。用户列表、分页链接和“Users”(所有用户)导航链接的构思图如图 9.8 所示。[6]9.4 节会添加管理功能,用来删除用户。 图 9.8:用户列表页面的构思图 9.3.1 用户列表
有没有办法在AWS帐户中列出所有可计费资源(基本上是EC2、EBS、RDS)。是否有任何aws cli命令或脚本可用于执行此操作。 我有aws帐户root访问权限。