【问题标题】:BOTO3 using Python to fetch information of a list of EC2BOTO3 使用 Python 获取 EC2 列表的信息
【发布时间】:2021-03-13 04:16:22
【问题描述】:

我正在尝试使用 Python + Boto3.csv 上的 EC2 列表中编译信息。

.csv 包含这些实例的私有 IP。以下命令返回我需要的所有内容:

aws ec2 describe-network-interfaces --filters Name=addresses.private-ip-address,Values="<PRIVATE IP>" --region <MY REGION>

所以我决定使用 Boto3 来做类似的事情。

但我的代码没有返回字典中的信息,因为我无法在代码中指定 Region

文档允许我指定可用区,但它不仅可以工作。

ec2 = boto3.client('ec2')
describe_network_interfaces = ec2.describe_network_interfaces(
    Filters=[
        {
            'Name': 'addresses.private-ip-address',
            'Values': [
                '<PRIVATE IP>'
            ],
            'Name': 'availability-zone',
            'Values': [
                '<REGION>'
            ]
        }
    ],
    MaxResults=123
)
print(describe_network_interfaces)

☝️ 这返回给我这个????

{'NetworkInterfaces': [], 'ResponseMetadata': { <LOTS OF METADATA> }}

我认为它不起作用,因为我无法使用 Boto3describe_network_interfaces 指定 Region。但我可以使用 AWS CLI 命令来完成。

有什么建议吗?

OBS:popen 对于当前的项目来说不是一个好主意。

提前致谢。

【问题讨论】:

标签: python amazon-web-services amazon-ec2 boto3


【解决方案1】:

您可以在客户端级别设置区域,例如:

my_region = "us-east-1"
ec2 = boto3.client('ec2', region_name=my_region)

这在我的环境中成功地获取了有关在另一个区域运行的系统的信息。

【讨论】:

  • 那行得通。 :) 虽然我需要指定可用区。
  • availability-zone上添加过滤器。
猜你喜欢
  • 2019-07-02
  • 1970-01-01
  • 2017-06-01
  • 2019-10-06
  • 2021-05-17
  • 2020-10-30
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多