Todos os produtos
Search
Central de documentação

Elastic Compute Service:Exemplos de chamada do ECS Java SDK V2.0

Última atualização: Jul 03, 2026

Este tópico descreve como instale e usar o kit de desenvolvimento de software (SDK) Java V2.0. Um exemplo demonstra como chamar a operação de API DescribeInstances para consultar os detalhes de uma ou mais instâncias do Elastic Compute Service (ECS).

Pré-requisitos

  1. O AccessKey de uma conta Alibaba Cloud fornece acesso total aos seus recursos, o que representa um alto risco de segurança em caso de vazamento. Recomendamos crie um usuário do Resource Access Management (RAM) e conceder a ele apenas as permissões necessárias. Em seguida, use o AccessKey desse usuário RAM para chamar operações de API. Para mais informações, consulte Criar um AccessKey.

  2. Conceda ao usuário RAM permissões para gerencie recursos do ECS. O código de exemplo neste tópico mostra uma operação de consulta. Neste exemplo, utiliza-se a política de sistema AliyunECSReadonlyAccess. Você pode conceder permissões personalizadas conforme necessário.

    1. Use políticas personalizadas.

      Para mais informações sobre como crie políticas personalizadas, consulte Criar uma política personalizada e Informações de autorização.

      O ECS fornece exemplos de políticas personalizadas baseados em melhores práticas. Utilize esses exemplos para crie rapidamente políticas que atendam às necessidades do seu negócio. Para mais informações, consulte Políticas personalizadas.

    2. Use políticas de sistema.

      Para obter informações sobre todas as políticas de sistema suportadas pelo ECS e suas descrições de permissão, consulte Políticas de sistema para ECS.

  3. Configure o AccessKey usando variáveis de ambiente. Para mais informações, consulte Configurar variáveis de ambiente em sistemas Linux, macOS e Windows.

Instale o SDK

Existem várias formas de instale o Java SDK. Este tópico utiliza o Apache Maven como exemplo. Para mais informações sobre outros métodos de instalação, consulte o SDK Center.

Abra o arquivo pom.xml do seu projeto Maven. Adicione a dependência ao nó <dependencies> e atualize a configuração do Maven.

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>ecs20140526</artifactId>
  <version>5.3.0</version>
</dependency>

Usar o SDK

1. Inicializar o cliente

É possível utilizar diversos tipos de credenciais para inicializar um cliente, como um AccessKey ou um token do Security Token Service (STS). Para mais informações sobre outros tipos de credenciais, consulte Gerencie credenciais de acesso. Este exemplo mostra como inicializar um cliente usando um AccessKey.

import com.aliyun.ecs20140526.Client;
import com.aliyun.teaopenapi.models.Config;

public class Sample {
    private static Client createClient() throws Exception {
        Config config = new Config()
                // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                // For the endpoint, see https://api.aliyun.com/product/Ecs
                .setEndpoint("ecs.cn-hangzhou.aliyuncs.com");
        return new Client(config);
    }
}

2. Crie um objeto de solicitação para a operação de API

Antes de crie o objeto de solicitação, visualize a documentação da API da operação para obter informações sobre os parâmetros.

Nota

Convenção de nomenclatura do objeto de solicitação: {APIName}Request. Por exemplo, o objeto de solicitação para a operação de API DescribeInstances é DescribeInstancesRequest.

// Create a request object.
DescribeInstancesRequest request = new DescribeInstancesRequest().setRegionId("cn-hangzhou");

3. Iniciar uma chamada

Ao usar o cliente para chamar uma operação OpenAPI, defina parâmetros de tempo de execução, como configurações de timeout e proxy. Para mais informações, consulte Configurações avançadas.

Nota

Convenção de nomenclatura do objeto de resposta: {APIName}Response. Por exemplo, o objeto de resposta para a operação de API DescribeInstances é DescribeInstancesResponse.

// Set runtime parameters.
RuntimeOptions runtime = new RuntimeOptions();
// Call the DescribeInstances API operation.
DescribeInstancesResponse response = client.describeInstancesWithOptions(request, runtime);
System.out.println(response.body.toMap());

4. Tratar exceções

O Java SDK oferece uma classificação detalhada de exceções, divididas principalmente em dois tipos: TeaUnretryableException e TeaException.

  • TeaUnretryableException: Geralmente lançada devido a problemas de rede após atingir o número máximo de tentativas.

  • TeaException: Destinada principalmente a erros de negócio.

Adote medidas adequadas para tratar exceções, como propagá-las, registrar logs e tentar recuperação, garantindo assim a robustez e estabilidade do sistema.

5. Exemplo completo

import com.aliyun.ecs20140526.Client;
import com.aliyun.ecs20140526.models.DescribeInstancesRequest;
import com.aliyun.ecs20140526.models.DescribeInstancesResponse;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaUnretryableException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;

public class Sample {
    private static Client createClient() throws Exception {
        Config config = new Config()
                // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                // For the endpoint, see https://api.aliyun.com/product/Ecs
                .setEndpoint("ecs.cn-hangzhou.aliyuncs.com");
        return new Client(config);
    }

    public static void main(String[] args) {
        try {
            Client client = Sample.createClient();
            // Create a request object.
            DescribeInstancesRequest request = new DescribeInstancesRequest()
                    .setRegionId("cn-hangzhou");
            // Set runtime parameters.
            RuntimeOptions runtime = new RuntimeOptions();
            // Call the DescribeInstances API operation.
            DescribeInstancesResponse response = client.describeInstancesWithOptions(request, runtime);
            System.out.println(response.body.toMap());
        } catch (TeaUnretryableException ue) {
            // This is for printing and demonstration purposes only. Handle exceptions with care. Do not ignore exceptions in your projects.
            ue.printStackTrace();
            // Print the error message.
            System.out.println(ue.getMessage());
            // Print the request record to query the request information when the error occurred.
            System.out.println(ue.getLastRequest());
        } catch (TeaException e) {
            // This is for printing and demonstration purposes only. Handle exceptions with care. Do not ignore exceptions in your projects.
            e.printStackTrace();
            // Print the error code.
            System.out.println(e.getCode());
            // Print the error message, which includes the RequestId.
            System.out.println(e.getMessage());
            // Print the specific error content returned by the server.
            System.out.println(e.getData());
        } catch (Exception e) {
            // This is for printing and demonstration purposes only. Handle exceptions with care. Do not ignore exceptions in your projects.
            e.printStackTrace();
        }
    }
}

Exemplos baseados em cenários

Mais informações

Além dos métodos anteriores, utilize chamadas generalizadas para invocar operações OpenAPI do ECS. Para mais detalhes, consulte Chamadas generalizadas.

Caso esteja utilizando o SDK V1.0 e deseje mais informações, consulte Java SDK V1.0.