本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
提出 API 请求
的查询请求 Amazon Resource Groups 是使用 HTTP 动词(例如或)的 HTTP GET 或 HTTPS 请求POST。
资源组终端节点
终端节点是用作 Web 服务入口点的 URL。在提出减少延迟的请求时,您可以选择适当的 Amazon Web Services 区域 终端节点。有关资源组使用的终端节点的信息,请参见Amazon Resource Groups中的Amazon Web Services 一般参考。
查询参数
每个查询请求都必须包含一些常用参数来处理身份验证和操作选择。有关更多信息,请参阅 Amazon Resource Groups API 参考中的常用参数。
某些 API 操作采用参数列表。这些列表使用以下表示法指定:
param.member.n
的值n是从 1 开始的整数。所有参数列表都必须遵循此表示法,包括仅包含一个参数的列表。查询参数列表如下例所示。
&attribute.member.1=this &attribute.member.2=that
请求标识符
在来自 Amazon 查询 API 的每个响应中,都有一个ResponseMetadata元素,其中包含一个RequestId元素。此字符串是用于提供跟踪信息的 Amazon 唯一标识符。尽管RequestId它是每个响应的一部分,但为了提高可读性和减少冗余,它并未在各个 API 文档页面上列出。
查询 API 身份验证
您可以通过 HTTP 或 HTTPS 发送查询请求。无论使用哪种协议,都必须在每个查询请求中包含签名。有关创建和加入签名的更多信息,请参阅中的签名 Amazon API 请求Amazon Web Services 一般参考。
可用的库
Amazon 为喜欢使用特定语言的 API 而不是命令行工具和查询 API 来构建应用程序的软件开发人员提供库、示例代码、教程和其他资源。这些库提供基本功能(未包含在 API 中),例如请求身份验证、请求重试和错误处理,因此更易于上手。资源组、库和资源适用于以下语言和平台:
有关所有语言的库和示例代码的更多信息,请参阅示例代码和库。
使用 P OST 方法发出 API 请求
如果您不使用其中一个 Amazon SDK,则可以使用请求方法通过 HTTP 发出资源组POST请求。该POST方法要求您在请求标头中指定操作,并在请求正文中以 JSON 格式提供操作数据。
| 标头名称 | 标头值 |
|---|---|
Host |
Amazon Resource Groups 终端节点。例如: |
X-Amz-Date |
您必须在 HTTP 日期标头或 Amazon x-am z-date 标头中提供时间戳。某些 HTTP 客户端库不允许您设置日期标头。当存在 x-amz-date 标头时,系统会在请求身份验证期间忽略任何 Date 标头。 x-amz-date 标头必须以 ISO 8601 基本格式指定。例如: |
Authorization |
一组 Amazon 用于确保请求的有效性和真实性的授权参数。有关构造此标头的更多信息,请参阅中的签名版本 4 签名流程Amazon Web Services 一般参考。 |
X-Amz-Target |
指定资源组命名空间和版本以及要执行的操作。
注意对于资源组,请始终使用版本 例如,要调用该
|
Content-Type |
指定输入格式。使用以下值。
|
Accept |
指定响应格式。使用以下值。
|
Content-Length |
有效载荷的大小(以字节为单位)。 |
Content-Encoding |
指定输入和输出的编码格式。使用以下值。
|
以下是 HTTP 请求的示例标头,该请求用于创建包含所有已标记资源的资源组Stage=Test。在此示例中,为了便于Authorization阅读,此处对该行进行了换行。不要把它写在你的实际请求中。
POST / HTTP/1.1 Host: resource-groups.us-east-1.amazonaws.com X-Amz-Date: 20180112T092034Z Accept-Encoding: identity Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20220113/us-west-2/resource-groups/aws4_request, SignedHeaders=content-encoding;content-length;content-type;host;x-amz-date;x-amz-target, Signature=EXAMPLE5cb91f88f1EXAMPLEa02d3af93dEXAMPLE91e5d03588EXAMPLE88ff1d Content-Type: application/json Accept: application/json Content-Length: 283 { "Description": "Resources created for the testing stage.", "Name": "QueryGroup", "ResourceQuery": { "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}", "Type": "TAG_FILTERS_1_0" }, "Tags": {"Department": "Finance"} }