Извлечение элементов из двух уровней с помощью интерфейса командной строки AWS «description-instance» - PullRequest
0 голосов
/ 05 февраля 2019

Я бы хотел - запросить на нескольких уровнях API описаний экземпляров aws ec2.Например, я хотел бы объединить:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[ImageId, InstanceType, KeyName, State.Name, PublicIpAddress, NetworkInterfaces.Groups.GroupName]' --output json

и такие поля, как OwnerId, уровень которых выше экземпляра.

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете включить верхний уровень OwnerId, указав его до Instances[*]:

aws ec2 describe-instances --query 'Reservations[*].[OwnerId,Instances[*].[ImageId, InstanceType, KeyName, State.Name, PublicIpAddress, NetworkInterfaces.Groups.GroupName]]' --output json

Однако факт наличия отношения «один ко многим» с экземплярами означает, чтобудет возвращено на более высоком уровне:

[
    [
        "123456789012", 
        [
            [
                "ami-48d38c2b", 
                "t2.micro", 
                "class", 
                "running", 
                "54.2.33.44", 
                null
            ]
        ]
    ], 
    [
        "123456789012", 
        [
            [
                "ami-f806349b", 
                "t2.small", 
                "class", 
                "running", 
                "54.1.22.33", 
                null
            ]
        ]
    ]
]

Кстати, OwnerId - это просто идентификатор учетной записи AWS, которой принадлежит ресурс, который почти во всех случаях будет иметь одинаковое значение.

...