Para facilitar chamadas de API, recomendamos integrar o Alibaba Cloud SDK ao seu projeto. Os SDKs simplificam o desenvolvimento, integram recursos rapidamente e reduzem significativamente os custos de O&M. Este tópico descreve como integrar o Alibaba Cloud SDK V1.0 para Java em seu projeto e usar o SDK para desenvolvimento.
Pré-requisitos
Instale o JDK 1.6 ou posterior.
Instale o SDK
Para usar o Alibaba Cloud SDK V1.0 para Java, instale também o SDK do service cloud e a biblioteca principal do SDK.
SDK do service cloud
O SDK de um service cloud inclui o objeto de solicitação necessário para chamar operações de API e o objeto de resposta. Neste exemplo, configure o Elastic Compute Service (ECS) SDK V1.0 para Java como uma dependência Maven. O código a seguir mostra essa dependência.
<dependencies>
<!-- ecs V1.0 SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ecs</artifactId>
<version>5.11.7</version>
</dependency>
</dependencies>
O SDK V1.0 para Java de um service Alibaba Cloud segue o formato de nomenclatura aliyun-java-sdk-${Service code}. Consulte também informações sobre o SDK V1.0 para Java de um service Alibaba Cloud específico no SDK Center.
Biblioteca principal do SDK
A biblioteca principal do SDK contém o objeto cliente, a lógica de assinatura e a lógica de tratamento de erros, essenciais para chamar operações de API. Recomendamos configurar a biblioteca principal do SDK como uma dependência Maven. O código a seguir mostra essa dependência.
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.7.3</version>
</dependency>
Para obter mais detalhes sobre a versão da biblioteca principal, consulte Repositório Maven: com.aliyun » aliyun-java-sdk-core.
Usar o SDK
O exemplo a seguir demonstra como usar o Alibaba Cloud SDK V1.0 para chamar a operação de API DescribeInstances do ECS.
1. Inicializar um cliente de solicitação
Todas as operações de API usam o objeto Client fornecido pela biblioteca principal. Antes de chamar uma operação de API, inicialize um cliente de solicitação. Neste exemplo, inicialize o cliente de solicitação com um par de AccessKey. Para obter mais informações, consulte Manage access credentials.
Neste exemplo, obtenha o par de AccessKey das variáveis de ambiente ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET. Configure essas variáveis antes de executar o código. Para obter mais informações, consulte Configure environment variables on Linux, macOS, and Windows.
com.aliyuncs.profile.DefaultProfile profile = com.aliyuncs.profile.DefaultProfile.getProfile(
"<REGION_ID>",
// Obtain the AccessKey ID of the Resource Access Management (RAM) user from an environment variable.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// Obtain the AccessKey secret of the RAM user from an environment variable.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
com.aliyuncs.IAcsClient client = new com.aliyuncs.DefaultAcsClient(profile);
O processamento de múltiplas threads por um único cliente SDK pode causar problemas de segurança. Se vários services Alibaba Cloud compartilharem as mesmas informações de perfil, poderá ocorrer acesso não autorizado. Recomendamos usar o Alibaba Cloud SDK V2.0 para desenvolvimento.
2. Crie um objeto de solicitação
Use o objeto de solicitação fornecido pelo SDK para encapsular os parâmetros da requisição.
Nomeie o objeto de solicitação da operação de API no seguinte formato: <API operation name>Request.
com.aliyuncs.ecs.model.v20140526.DescribeInstancesRequest request = new com.aliyuncs.ecs.model.v20140526.DescribeInstancesRequest();
request.setRegionId("cn-hangzhou");
request.setInstanceIds(new com.google.gson.Gson().toJson(Arrays.asList("i-bp1fq61ktxxxxxxxxxxxx","i-bp1fq62ktxxxxxxxxxxxx")));
3. Execute uma solicitação de API
Use o cliente de solicitação criado na Etapa 1 para chamar a operação getAcsResponse. Passe o objeto de solicitação criado na Etapa 2 como parâmetro. Se a chamada for bem-sucedida, o sistema retornará um objeto de resposta.
Nomeie o objeto de resposta da operação de API no seguinte formato: <API operation name>Response.
com.aliyuncs.ecs.model.v20140526.DescribeInstancesResponse response = client.getAcsResponse(request);
System.out.println(new com.google.gson.Gson().toJson(response));
4. Tratar erros
Se ocorrer um erro durante a chamada de uma operação de API, capture ServerException e ClientException para obter a mensagem de erro. Geralmente, erros ClientException resultam de parâmetros inválidos na inicialização do cliente, como parâmetros de AccessKey incorretos. Erros ServerException podem ter diversas causas. Para solucionar problemas, entre em contato com o suporte ao cliente e forneça o ID da solicitação.
Referências
Para obter mais informações sobre configurações do SDK, como definições de proxy e timeout, consulte Advanced settings.
Para saber como crie um par de AccessKey, consulte Create an AccessKey.