View a markdown version of this page

使用适用于亚马逊 EC2 的 API - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用适用于亚马逊 EC2 的 API

重要

从 2022 年 10 月 14 日起,来自亚马逊 EC2 API 的 HTTP 响应不再包含原因短语元素。正如 RFC7230 所建议的那样,您应确保您的应用程序不使用原因短语内容。确保您的应用程序改用 HTTP 响应中包含的 3 位数状态码元素。

我们为亚马逊 EC2 提供查询 API 以及软件开发套件 (SDK) Amazon ,使您能够使用自己的首选编程语言访问亚马逊 EC2。有关更多信息,请参阅 Amazon EC2 开发人员指南

所需知识

如果您计划通过 API 访问 Amazon EC2,则应熟悉以下内容:

  • XML

  • Web 服务

  • HTTP 请求

  • 一种或多种编程语言,例如 Java、PHP、Perl、Python、Ruby、C# 或 C++。

适用于亚马逊 EC2 的可用API

亚马逊 EC2 查询 API 提供使用 HTTP 动词 GET 或 POST 以及名为的查询参数的 HTTP 或 HTTPS 请求Action

Amazon 为喜欢使用特定语言的 API 构建应用程序而不是通过 HTTP 或 HTTPS 提交请求的软件开发人员提供库、示例代码、教程和其他资源。这些库提供的基本功能可自动处理任务,例如对您的请求进行加密签名、重试请求和处理错误响应,因此您可以更轻松地入门。

有关更多信息,请参阅《亚马逊 EC2 开发人员指南》中的使用软件开发 Amazon 工具包创建 Amazon EC2 资源

常用查询参数

大多数 Amazon EC2 API 操作都支持下表中描述的参数。常用参数会有所不同,具体取决于您使用签名版本 2 还是签名版本 4 来签署请求。有关更多信息,请参阅 I AM 用户指南中的 Amazon 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

签署请求的日期和时间,格式为 yyyymmddthHmmssz。该日期必须与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

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

示例:AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L

DryRun

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

X-Amz-AlgorithmX-Amz-CredentialX-Amz-SignedHeaders、和X-Amz-Signature参数可以在查询字符串中指定为单独的参数,也可以将其值包含在单个Authorization标头中。有关更多信息,请参阅 I AM 用户指南中的 Amazon 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

这是有条件的。请求必须包含TimestampExpires,但不能同时包含两者。

Timestamp

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

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

这是有条件的。请求必须包含TimestampExpires,但不能同时包含两者。

Signature

请求签名。

示例:Qnpl4Qk/7tINHzfXCiT7VEXAMPLE

SignatureMethod

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

示例:HmacSHA256

SignatureVersion

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

示例:2

DryRun

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

SecurityToken

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

示例:AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L

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