本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用适用于 Amazon EC2 的 API
重要
自 2022 年 10 月 14 日起,来自亚马逊 EC2 API 的 HTTP 响应不再包含理由短语元素。按照 RFC7230
我们提供适用于 Amazon EC2 的查询 API 以及软件开发套件 (SDK) AWS ,使您能够使用自己的首选编程语言访问 Amazon EC2。有关更多信息,请参阅 Amazon EC2 开发人员指南。
所需知识
如果您计划通过 API 访问 Amazon EC2,则应熟悉以下内容:
-
XML
-
Web 服务
-
HTTP 请求
-
一种或多种编程语言,例如 Java、PHP、Perl、Python、Ruby、C# 或 C++。
适用于 Amazon EC2 的可用API
Amazon EC2 查询 API 提供使用 HTTP 动词 GET 或 POST 以及名为的查询参数的 HTTP 或 HTTPS 请求Action。
AWS 为喜欢使用特定语言的 API 而不是通过 HTTP 或 HTTPS 提交请求的软件开发人员提供库、示例代码、教程和其他资源。这些库提供了一些基本功能,可以自动处理诸如对请求进行加密签名、重试请求和处理错误响应之类的任务,因此您可以更轻松地入门。
有关更多信息,请参阅 Amazon EC2 开发人员指南中的使用软件开发 AWS 工具包创建 Amazon EC2 资源。
常用查询参数
大多数 Amazon EC2 API 操作都支持下表中描述的参数。根据您使用的是签名版本 2 还是签名版本 4 来签署请求,常见参数会有所不同。有关更多信息,请参阅 I AM 用户指南中的签署 AWS API 请求。
签名版本 4 的参数
| Name | 说明 | 必填 |
|---|---|---|
|
|
要执行的操作。 示例: |
是 |
|
|
要使用的 API 版本。 |
是 |
|
|
用于创建请求签名的哈希算法。 示例: |
是 |
|
|
请求的凭证范围,格式为 示例: |
是 |
|
|
签署请求的日期和时间,格式为 yyymmddthhmmssZ。该日期必须与 示例: |
是 |
X-Amz-SignedHeaders |
您在请求中包含的标头。您必须至少包括标 示例: |
是 |
|
|
从您的私有访问密钥派生的签名。 示例: |
是 |
|
|
通过调用获得的临时安全令牌 AWS Security Token Service。 示例: |
否 |
|
|
检查您是否拥有操作所需的权限,而无需实际发出请求。如果您拥有所需的权限,则请求会返回 |
否 |
X-Amz-Algorithm、X-Amz-CredentialX-Amz-SignedHeaders、和X-Amz-Signature参数既可以在查询字符串中指定为单独的参数,也可以将其值包含在单个Authorization标题中。有关更多信息,请参阅 I AM 用户指南中的签署 AWS API 请求。
签名版本 2 的参数
| Name | 说明 | 必填 |
|---|---|---|
|
|
要执行的操作。 示例: |
是 |
|
|
要使用的 API 版本。 |
是 |
|
|
请求发送者的访问密钥 ID。这标识了将为使用该服务而收取费用的账户。与访问密钥 ID 关联的账户必须注册 Amazon EC2,否则该请求将不被接受。 示例: |
是 |
|
|
请求中包含的签名到期的日期和时间,格式为 YYYY-MM-DDThh:mm:ssZ。有关更多信息,请参阅 ISO 8601 示例: |
这是有条件的。请求必须包含Timestamp或之一Expires,但不能同时包含两者。 |
|
|
签署请求的日期和时间,格式为 YYYY-MM-DDThh:mm:ssZ。有关更多信息,请参阅 ISO 8601 示例: |
这是有条件的。请求必须包含Timestamp或之一Expires,但不能同时包含两者。 |
|
|
请求签名。 示例: |
是 |
|
|
用于创建请求签名的哈希算法。有效值: 示例: |
是 |
|
|
对请求进行签名时使用的签名版本。将此值设置为 示例: |
是 |
|
|
检查您是否拥有操作所需的权限,而无需实际发出请求。如果您拥有所需的权限,则请求会返回 |
否 |
|
|
通过调用获得的临时安全令牌 AWS Security Token Service。 示例: |
否 |
参数值必须为 URL-encoded。对于传递给 Amazon EC2 的任何查询参数,这都是如此,Signature参数中通常是必需的。有些客户会自动执行此操作,但这不是常态。