Как отформатировать ответы конечной точки ec2 на json - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь выполнить GET-запрос к конечной точке ec2 https://ec2.eu-central-1.amazonaws.com/?Action=DescribeInstances&Version=2016-11-15, чтобы получить список всех экземпляров ec2 в моей учетной записи aws (в регионе eu-central-1). К сожалению, содержание ответа отформатировано в xml. Есть ли возможность изменить формат ответа на json?

Я уже установил в GET-запросе Accept-Header значение "application / json", но безуспешно.

Если я запрашиваю конечную точку iam https://iam.amazonaws.com/?Action=ListUsers&Version=2010-05-08 с тем же заголовком Accept, содержимое ответа доставляется должным образом в формате строки json.

Это заголовки для ec2-запроса (не работает):

GET /?Action=DescribeInstances&Version=2016-11-15 HTTP/1.1
Host: ec2.eu-central-1.amazonaws.com
Accept: application/json
Content-Type: application/x-www-form-urlencoded
X-Amz-Date: 20180706T091958Z
Authorization: <valid AWS4 authorization header>
Cache-Control: no-cache
Postman-Token: 69c8f349-95b5-4e9d-991c-5ce2a55b0cbe

И заголовки моего iam-запроса (рабочий):

GET /?Action=ListUsers&amp;Version=2010-05-08 HTTP/1.1
Host: iam.amazonaws.com
Accept: application/json
Content-Type: application/x-www-form-urlencoded
X-Amz-Date: 20180706T092222Z
Authorization: <valid AWS4 authorization header>
Cache-Control: no-cache
Postman-Token: ad86f2ae-870c-4289-a9d3-1f2ad9082c8f

Выполнение команды aws cli tools aws ec2 describe-instances перечисляет все экземпляры в формате json, поэтому я думаю, что должен быть способ добиться этого с помощью GET-запроса.

Большое спасибо за вашу помощь.

1 Ответ

0 голосов
/ 04 апреля 2019

Возможно, слишком поздно, но может помочь другим.

Я также безуспешно пытался получить вывод json из DescribeInstances. В данный момент это кажется невозможным, поскольку даже aws cli получает его в xml и затем преобразует в json. Вы можете увидеть это, используя флаг --debug:

aws ec2 description-instances --debug

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