python - BOTO3 使用 Python 获取 EC2 列表的信息
问题描述
我正在尝试使用Python + Boto3从.csv上的 EC2 列表中编译信息。
此.csv包含这些实例的私有IP。以下命令返回我需要的所有内容:
aws ec2 describe-network-interfaces --filters Name=addresses.private-ip-address,Values="<PRIVATE IP>" --region <MY REGION>
所以我决定使用Boto3来做类似的事情。
但是我的代码没有返回字典中的信息,因为我无法在代码中指定区域。
该文档允许我指定可用区,但它不仅可以工作。
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> }}
我相信它不起作用,因为我无法使用Boto3指定区域describe_network_interfaces
。但我可以使用AWS CLI命令来完成。
有什么建议么?
OBS: popen 对于当前的项目来说不是一个好主意。
提前致谢。
解决方案
您可以在客户端级别设置区域,例如:
my_region = "us-east-1"
ec2 = boto3.client('ec2', region_name=my_region)
这在我的环境中成功地获取了有关在另一个区域运行的系统的信息。
推荐阅读
- java - Calling a button from a second xml file from the main .java file
- javascript - how to convert json object to a specified json format
- javascript - 检查对象数组中的对象 - javascript
- javascript - Cannot read property stop of undefined - when calling a static method from inside class
- sql - 我无法在 SQL Server 中的 2 个表之间建立复合关系
- android - how to call notifyDataSetChanged after deleting listItem
- python - Python如何使用多处理计算子目录中大量文件中的行项目频率
- matplotlib - Matplotlib 轴如何双曲线缩放?
- php - php版本的切换在mac上不起作用
- python - Airflow - 禁用心跳日志