

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solicitações de consulta para o Amazon EC2
<a name="Query-Requests"></a>

As solicitações de consulta são solicitações HTTP ou HTTPS que usam o verbo HTTP GET ou POST e um parâmetro de consulta chamado`Action`. Para cada ação da API do Amazon EC2, você pode escolher se quer usar GET ou POST. Independentemente do verbo escolhido, os mesmos dados são enviados e recebidos. [Para obter uma lista das ações da API do Amazon EC2, consulte Ações.](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-apis.html)

**Topics**
+ [Estrutura de uma solicitação GET](#structure-of-a-get-request)
+ [Parâmetros de consulta](#query-parameters)
+ [Autenticação da API de](#query-authentication)
+ [Estruturas de resposta à consulta](#api-responses)
+ [Paginação](#api-pagination)
+ [Evitando solicitações via HTTP](#prevent-http-requests)

## Estrutura de uma solicitação GET
<a name="structure-of-a-get-request"></a>

A documentação do Amazon EC2 apresenta as solicitações GET como URLs, que podem ser usadas diretamente em um navegador.

**nota**  
Como as solicitações GET são URLs, você deve codificar em URL os valores dos parâmetros. Na documentação do Amazon EC2, deixamos os exemplos de solicitações GET sem codificação para facilitar a leitura.

A solicitação consiste no seguinte:
+ **Ponto final**: o URL que serve como ponto de entrada para o serviço web. Para obter mais informações, consulte os [endpoints de serviço do Amazon EC2](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-endpoints.html).
+ **Ação**: a ação que você deseja realizar; por exemplo, use `RunInstances` para iniciar uma instância.
+ **Parâmetros**: qualquer parâmetro para a ação; cada parâmetro é separado por um e comercial (&).
+ **Versão**: a versão da API a ser usada. Para a API do Amazon EC2, a versão é 2016-11-15.
+ **Parâmetros** de autorização: os parâmetros de autorização AWS usados para garantir a validade e a autenticidade da solicitação. O Amazon EC2 é compatível com Signature versão 2 e Signature versão 4. Recomendamos usar a Versão 4 da assinatura. Para obter mais informações, consulte [Solicitações de AWS API de assinatura](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) no *Guia do usuário do IAM*.

Os seguintes parâmetros opcionais podem ser incluídos em sua solicitação:
+ **DryRun**: verifica se você tem as permissões necessárias para a ação, sem realmente fazer a solicitação. Se você tiver as permissões necessárias, a solicitação retornará`DryRunOperation`; caso contrário, ela retornará`UnauthorizedOperation`.
+ **SecurityToken**: o token de segurança temporário obtido por meio de uma chamada para AWS Security Token Service.

Para obter mais informações sobre parâmetros comuns para solicitações de API, consulte [Parâmetros de consulta comuns](https://docs.aws.amazon.com//AWSEC2/latest/APIReference/CommonParameters.html).

Veja a seguir um exemplo de solicitação que executa instâncias:

```
https://ec2.amazonaws.com/?Action=RunInstances&ImageId=ami-2bb65342&MaxCount=3&MinCount=1&Placement.AvailabilityZone=us-east-1a&Monitoring.Enabled=true&Version=2016-11-15&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20130813%2Fus-east-1%2Fec2%2Faws4_request&X-Amz-Date=20130813T150206Z&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-date&X-Amz-Signature=525d1a96c69b5549dd78dbbec8efe264102288b83ba87b7d58d4b76b71f59fd2
Content-type: application/json
host:ec2.amazonaws.com
```

Para tornar essas solicitações de exemplo ainda mais fáceis de ler, a AWS documentação pode apresentá-las no seguinte formato:

```
https://ec2.amazonaws.com/?Action=RunInstances
&ImageId=ami-2bb65342
&MaxCount=3
&MinCount=1
&Placement.AvailabilityZone=us-east-1a
&Monitoring.Enabled=true
&Version=2016-11-15
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=AKIAIOSFODNN7EXAMPLEus-east-1%2Fec2%2Faws4_request
&X-Amz-Date=20130813T150206Z
&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-date
&X-Amz-Signature=ced6826de92d2bdeed8f846f0bf508e8559e98e4b0194b84example54174deb456c
Content-type: application/json
host:ec2.amazonaws.com
```

A primeira linha especifica o ponto final da solicitação. Depois do endpoint há um ponto de interrogação (?), que separa o endpoint dos parâmetros. Para obter mais informações sobre endpoints do Amazon EC2, consulte Endpoints de serviço do [Amazon](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-endpoints.html) EC2. 

O parâmetro `Action` indica a ação a ser realizada. Para obter uma lista completa de ações, consulte [Ações](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-apis.html). As linhas restantes especificam parâmetros adicionais para a solicitação.

No exemplo de solicitações de consulta que apresentamos na documentação da API do Amazon EC2, omitimos os cabeçalhos, [os parâmetros comuns necessários](https://docs.aws.amazon.com//AWSEC2/latest/APIReference/CommonParameters.html) e os parâmetros de autenticação para facilitar o foco nos parâmetros da ação. Nós os substituímos pela string `&AUTHPARAMS` literal para lembrá-lo de que você deve incluir esses parâmetros em sua solicitação; por exemplo:

```
https://ec2.amazonaws.com/?Action=RunInstances
&ImageId=ami-2bb65342
&MaxCount=3
&MinCount=1
&Placement.AvailabilityZone=us-east-1a
&Monitoring.Enabled=true
&AUTHPARAMS
```

**Importante**  
Antes de especificar o ID da chave de acesso para o `Credential` parâmetro `AWSAccessKeyId` or, revise e siga as orientações nas [credenciais AWS de segurança](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html).

## Parâmetros de consulta
<a name="query-parameters"></a>

Cada solicitação de consulta deve incluir os parâmetros comuns necessários para lidar com a autenticação e a seleção de uma ação. Os parâmetros de consulta diferenciam maiúsculas de minúsculas

Algumas operações levam listas de parâmetros. Essas listas são especificadas usando a notação *param.n*, em que *n* é um número inteiro começando em 1. 

O exemplo a seguir adiciona vários dispositivos a um mapeamento de dispositivos de bloco usando uma lista de `BlockDeviceMapping` parâmetros.

```
http://ec2.amazonaws.com/?Action=RunInstances
&ImageId.1=ami-72aa081b
...
&BlockDeviceMapping.1.DeviceName=/dev/sdj
&BlockDeviceMapping.1.Ebs.NoDevice=true
&BlockDeviceMapping.2.DeviceName=/dev/sdh
&BlockDeviceMapping.2.Ebs.VolumeSize=300
&BlockDeviceMapping.3.DeviceName=/dev/sdc
&BlockDeviceMapping.3.VirtualName=ephemeral1
&AUTHPARAMS
```

## Autenticação da API de
<a name="query-authentication"></a>

Você pode enviar solicitações de consulta pelo protocolo HTTP ou HTTPS.

Independentemente do protocolo usado, você deve incluir uma assinatura em cada solicitação de consulta. O Amazon EC2 é compatível com Signature versão 2 e Signature versão 4. Recomendamos usar a Versão 4 da assinatura. Para obter mais informações, consulte [Solicitações de AWS API de assinatura](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) no *Guia do usuário do IAM*.

As solicitações do Signature Version 4 permitem que você especifique todos os parâmetros de autorização em um único cabeçalho, por exemplo:

```
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Amz-Date: 20130813T150211Z
Host: ec2.amazonaws.com
Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/202230813/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=ced6826de92d2bdeed8f846f0bf508e8559e98e4b0194b84example54174deb456c

http://ec2.amazonaws.com/?Action=RunInstances
ImageId=ami-2bb65342
&MaxCount=3
&MinCount=1
&Monitoring.Enabled=true
&Placement.AvailabilityZone=us-east-1a
&Version=2016-11-15
```

## Estruturas de resposta à consulta
<a name="api-responses"></a>

Em resposta a uma solicitação de consulta, o serviço retorna uma estrutura de dados XML que está em conformidade com um esquema XML definido para o Amazon EC2. A estrutura de uma resposta XML é específica para a solicitação associada. Em geral, os tipos de dados de resposta são nomeados de acordo com a operação realizada e se o tipo de dados é um contêiner (pode ter filhos). Exemplos de contêineres incluem `groupSet` grupos de segurança e `keySet` pares de chaves (veja o exemplo a seguir). Os elementos do item são filhos dos contêineres e seu conteúdo varia de acordo com a função do contêiner.

Cada resposta bem-sucedida inclui uma ID de solicitação em um `requestId` elemento, e toda resposta malsucedida inclui uma ID de solicitação em um `RequestID` elemento. O valor é uma string exclusiva AWS atribuída. Se você tiver problemas com uma solicitação específica, AWS solicitará o ID da solicitação para ajudar a solucionar o problema. Veja a seguir um exemplo de resposta.

```
<DescribeKeyPairsResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/">
  <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
  <keySet>
    <item>
      <keyName>gsg-keypair</keyName>
      <keyFingerprint>
         00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
      </keyFingerprint>
    </item>
  </keySet>
</DescribeKeyPairsResponse>
```

**Considerações**
+ A partir de 31 de julho de 2024, para quaisquer novas ações de API do Amazon EC2 ou regiões AWS recém-suportadas, as estruturas de dados XML nas respostas não incluirão novas linhas e recuos. Se você usa um cliente personalizado, certifique-se de que ele não dependa das respostas, incluindo novas linhas e recuos.
+ A partir de 31 de julho de 2025, as estruturas de dados XML nas respostas não incluirão mais novas linhas e recuos. Essa alteração reduzirá o tamanho das respostas. Se você usa um cliente personalizado, certifique-se de que ele não dependa das respostas, incluindo novas linhas e recuos.
+ A ordem dos elementos na resposta, incluindo aqueles dentro de estruturas aninhadas, pode variar. Os aplicativos não devem presumir que os elementos aparecem em uma ordem específica.

## Paginação
<a name="api-pagination"></a>

Para ações que podem retornar uma longa lista de itens, a API do Amazon EC2 inclui parâmetros para suportar a paginação:`MaxResults`, `NextToken` (entrada) e `nextToken` (saída). Com a paginação, você especifica um tamanho para `MaxResults` e, em seguida, cada chamada retorna 0 para `MaxResults` itens e conjuntos. `nextToken` Se houver itens adicionais para iterar, não `nextToken` é nulo e você pode especificar seu valor no `NextToken` parâmetro de uma chamada subsequente para obter o próximo conjunto de itens. Com a paginação, você continua chamando a ação até que `nextToken` seja nula, mesmo que receba menos de `MaxResults` itens, incluindo zero itens.

Se você chamar uma ação de descrição da API com uma lista de IDs e`MaxResults`, a solicitação falhará com o erro`InvalidParameterCombination`.

Recomendamos que você use a paginação ao usar ações de descrição que podem potencialmente retornar um grande número de resultados, como. `DescribeInstances` O uso da paginação limita o número de itens retornados e o tempo necessário para que essas chamadas retornem.

Para obter mais informações, consulte [Paginação](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-pagination.html) no *Amazon EC2* Developer Guide.

## Evitando solicitações via HTTP
<a name="prevent-http-requests"></a>

Se sua carga de trabalho não exigir que você use HTTP, recomendamos que você evite usá-la para evitar a transmissão e o recebimento de dados não criptografados e, em vez disso, use HTTPS. Você pode usar a chave de condição [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport)global do IAM em suas políticas do IAM para impedir que os usuários enviem solicitações por HTTP.

O exemplo de política a seguir impede que os usuários enviem solicitações por HTTP.

```
{
    "Statement": [
        {
            "Sid": "AllowAllEC2HttpsRequests",
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "aws:SecureTransport": "true"
                }
            }
        }
    ]
}
```