rest - 如何将ec2端点的响应格式化为json
问题描述
我正在尝试对 ec2-Endpoint 执行 GET-Request,https://ec2.eu-central-1.amazonaws.com/?Action=DescribeInstances&Version=2016-11-15
以获取我的 aws 帐户(在 eu-central-1 区域中)中所有 ec2 实例的列表。不幸的是,响应的内容是 xml 格式的。有没有机会改变对json的响应格式?
我已经将 GET-Request 的 Accept-Header 设置为“application/json”,但没有成功。
如果我使用相同的 Accept-Header 查询 iam-endpoint https://iam.amazonaws.com/?Action=ListUsers&Version=2010-05-08
,则响应的内容将以 json 字符串格式正确传递。
这些是 ec2-query 的标头(不起作用):
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-query 的标题(工作):
GET /?Action=ListUsers&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 请求来实现这一点。
非常感谢您的帮助。
解决方案
可能为时已晚,但可能会帮助其他人。
我还尝试从 DescribeInstances 获取 json 输出,但没有运气。目前这似乎是不可能的,因为即使 aws cli 在 xml 中接收它,然后将其转换为 json。您可以使用 --debug 标志查看它:
aws ec2 描述实例 --debug
推荐阅读
- javascript - 当我向另一个选项卡发送打印请求时 Chrome 崩溃
- rest - 通过 Pentaho 数据集成连接到 QuickBase REST API
- javascript - 以编程方式打开对话框以共享到 Twitter
- c - 使用 CubeMx 通过 USART 传输多个字符串
- java - JSP 页面如何处理 Spring 控制器中未定义的变量?
- c# - C# 如何调用基类 == 运算符,而不显式类型转换?
- python - 如何让pyplot将多行放在一个图中
- html - `:hover::before` 的目的是什么?
- javascript - jQuery Ajax 不会 POST 到 php
- function - ncelab 中的错误:F*MISLUN:缺少顶层模块、设计单元名称