boto3 ec2.instance.filter выводит теги в json - PullRequest
0 голосов
/ 03 июля 2019

У меня есть скрипт Python, который выводит экземпляры EC2 на основе фильтра, и у меня есть словарь под названием ec_info = {}, который я передаю данные из ec2.instances.filter() вывода.

def get_instances():
    result = {}
    ec2 = boto3.resource('ec2')
    data = ec2.instances.filter(Filters=[{'Name':'tag:Project','Values': ['Web']}])
    for instance in data:
        for tag in instance.tags:
            if 'Name' in tag['Key']:
                name = tag['Value']
        ec2_info = {
             "Name": name,
             "Instance_Id": str(instance.id),
             "State": instance.state["Name"],
             "Private_IP": instance.private_ip_address,
             }
        data = json.dumps(ec2_info,indent=4,sort_keys=True)
        print(data)

get_instances()

в результате яполучить вывод json, но не так, как ожидалось:

{
  "Instance_Id": "some_id",
  "Name": "some_name",
  "Private_IP": "ip",
  "State": "running"
}
{
  "Instance_Id": "some_id",
  "Name": "some_name",
  "Private_IP": "IP",
  "State": "running"
}
{
  "Instance_Id": "some_id",
  "Name": "some_name",
  "Private_IP": "ip",
  "State": "running"
}

Я хочу получить такой вывод:

{
  "Instance_Id": "some_id",
  "Name": "some_name",
  "Private_IP": "ip",
  "State": "running"

  "Instance_Id": "some_id",
  "Name": "some_name",
  "Private_IP": "IP",
  "State": "running"

  "Instance_Id": "some_id",
  "Name": "some_name",
  "Private_IP": "ip",
  "State": "running"
}

только один гигантский вывод json.

Как я могу это сделатьчто?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...