View a markdown version of this page

使用适用于 Amazon EC2 的 API - Amazon Elastic Compute Cloud

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用适用于 Amazon EC2 的 API

重要

2022 年 10 月 14 日起,来自亚马逊 EC2 API 的 HTTP 响应不再包含理由短语元素。按照 RFC7230 的建议,您应确保您的应用程序不使用推理短语内容。确保您的应用程序改用 HTTP 响应中包含的 3 位数状态码元素。

我们提供适用于 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 说明 必填

Action

要执行的操作。

示例:RunInstances

Version

要使用的 API 版本。

X-Amz-Algorithm

用于创建请求签名的哈希算法。

示例:AWS4-HMAC-SHA256

X-Amz-Credential

请求的凭证范围,格式为access-key-ID/YYYYMMDD/region/serviceaws4_request

示例:AKIDEXAMPLE/20140707/us-east-1/ec2/aws4_request

X-Amz-Date

签署请求的日期和时间,格式为 yyymmddthhmmssZ。该日期必须与X-Amz-Credential参数凭证范围中包含的日期或Authorization标题中使用的日期相匹配(参见表格下方的注释)。

示例:20140707T150456Z

X-Amz-SignedHeaders

您在请求中包含的标头。您必须至少包括标host题。如果您在请求中包含x-amz-date标头,则必须将其包含在已签名的标头列表中。

示例:content-type;host;user-agent

X-Amz-Signature

从您的私有访问密钥派生的签名。

示例:ced6826de92d2bdeed8f846f0bf508e8559example

X-Amz-Security-Token

通过调用获得的临时安全令牌 AWS Security Token Service。

示例:AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L

DryRun

检查您是否拥有操作所需的权限,而无需实际发出请求。如果您拥有所需的权限,则请求会返回DryRunOperation;否则,它会返回UnauthorizedOperation

X-Amz-AlgorithmX-Amz-CredentialX-Amz-SignedHeaders、和X-Amz-Signature参数既可以在查询字符串中指定为单独的参数,也可以将其值包含在单个Authorization标题中。有关更多信息,请参阅 I AM 用户指南中的签署 AWS API 请求

签名版本 2 的参数

Name 说明 必填

Action

要执行的操作。

示例:RunInstances

Version

要使用的 API 版本。

AWSAccessKeyId

请求发送者的访问密钥 ID。这标识了将为使用该服务而收取费用的账户。与访问密钥 ID 关联的账户必须注册 Amazon EC2,否则该请求将不被接受。

示例:AKIAIOSFODNN7EXAMPLE

Expires

请求中包含的签名到期的日期和时间,格式为 YYYY-MM-DDThh:mm:ssZ。有关更多信息,请参阅 ISO 8601

示例:2006-07-07T15:04:56Z

这是有条件的。请求必须包含Timestamp或之一Expires,但不能同时包含两者。

Timestamp

签署请求的日期和时间,格式为 YYYY-MM-DDThh:mm:ssZ。有关更多信息,请参阅 ISO 8601

示例:2006-07-07T15:04:56Z

这是有条件的。请求必须包含Timestamp或之一Expires,但不能同时包含两者。

Signature

请求签名。

示例:Qnpl4Qk/7tINHzfXCiT7VEXAMPLE

SignatureMethod

用于创建请求签名的哈希算法。有效值:HmacSHA256 | HmacSHA1

示例:HmacSHA256

SignatureVersion

对请求进行签名时使用的签名版本。将此值设置为 2

示例:2

DryRun

检查您是否拥有操作所需的权限,而无需实际发出请求。如果您拥有所需的权限,则请求会返回DryRunOperation;否则,它会返回UnauthorizedOperation

SecurityToken

通过调用获得的临时安全令牌 AWS Security Token Service。

示例:AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L

参数值必须为 URL-encoded。对于传递给 Amazon EC2 的任何查询参数,这都是如此,Signature参数中通常是必需的。有些客户会自动执行此操作,但这不是常态。