O Elastic Container Instance oferece SDKs para três linguagens de programação: Go, Python e Java. Este tópico descreve como usar um SDK para criar uma instância de contêiner elástica. O exemplo utiliza o Alibaba Cloud SDK for Java.
Instalar o Alibaba Cloud SDK for Java
Recomendamos usar o Apache Maven para instalar o Alibaba Cloud SDK for Java. Adicione as seguintes dependências ao arquivo pom.xml do projeto Maven:
Biblioteca principal do Alibaba Cloud SDK for Java (aliyun-java-sdk-core)
Dependências aliyun-java-sdk-eci e gson
(Opcional) Dependência aliyun-java-sdk-vpc
(Opcional) Dependências aliyun-java-sdk-ecs e fastjson
Atualize regularmente a versão de cada dependência para usar os novos recursos. Para mais informações, visite Maven.
Se já existirem uma VPC, um vSwitch e um grupo de segurança, não será necessário instalar o Alibaba Cloud SDK for Java para criá-los. Nesse caso, ignore a instalação das dependências aliyun-java-sdk-vpc, aliyun-java-sdk-ecs e fastjson.
<dependencies>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<optional>true</optional>
<version>4.6.3</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-eci</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ecs</artifactId>
<version>4.24.42</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.19</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-vpc</artifactId>
<version>3.2.9</version>
</dependency>
</dependencies>
Siga este procedimento para instalar o Alibaba Cloud SDK for Java com a ferramenta de desenvolvimento IntelliJ IDEA:
-
Abra o IDEA e use um dos métodos abaixo para criar um projeto Maven:
-
Método 1: Criar um projeto Maven no IDEA
Na barra de navegação superior, escolha File > New > Project...
-
Na caixa de diálogo exibida, clique em Maven e conclua a configuração do projeto.

-
Método 2: Converter um projeto existente em projeto Maven
-
Clique com o botão direito no projeto a ser convertido e selecione Add Framework Support... no menu exibido.

-
Na caixa de diálogo exibida, selecione Maven e clique em OK.

-
-
-
Abra o arquivo pom.xml no diretório do projeto Maven e adicione as dependências.
Após adicionar as dependências, o Maven baixa automaticamente os pacotes JAR correspondentes.

Obter um par de AccessKey
Para chamar operações de API, use um par de AccessKey na verificação de identidade. Para proteger o par de AccessKey da sua conta Alibaba Cloud, crie um usuário RAM, conceda-lhe permissões de acesso às instâncias de contêiner elásticas e use o par de AccessKey desse usuário RAM para chamar o Elastic Container Instance SDK for Java.
Para mais informações, consulte os tópicos a seguir:
Criar recursos necessários para instâncias de contêiner elásticas
Antes de criar uma instância de contêiner elástica, crie uma VPC, um vSwitch e um grupo de segurança.
Se já existirem uma VPC, um vSwitch e um grupo de segurança, obtenha os IDs desses recursos para criar a instância de contêiner elástica.
-
Crie uma VPC.
A tabela a seguir descreve os parâmetros. Para mais informações, consulte CreateVpc.
Parâmetro
Exemplo
Descrição
RegionId
cn-shanghai
ID da região onde a VPC está implantada.
Selecione uma região com disponibilidade do Elastic Container Instance. Para mais informações, consulte Regiões e zonas.
CidrBlock
192.168.0.0/16
Bloco CIDR da VPC.
Use um dos seguintes blocos CIDR ou seus subconjuntos: 192.168.0.0/16, 172.16.0.0/12 e 10.0.0.0/8. Esses são blocos CIDR privados padrão definidos pelos documentos Request for Comments (RFC). A máscara de sub-rede deve ter entre 8 e 28 bits.
Código de exemplo:
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import com.aliyuncs.vpc.model.v20160428.*; public class CreateVpc { public static void main(String[] args) { DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai","<accessKeyId>", "<accessSecret>"); IAcsClient client = new DefaultAcsClient(profile); CreateVpcRequest request = new CreateVpcRequest(); request.setSysRegionId("cn-shanghai"); request.setCidrBlock("192.168.0.0/16"); try { CreateVpcResponse response = client.getAcsResponse(request); System.out.println(new Gson().toJson(response)); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { System.out.println("ErrCode:" + e.getErrCode()); System.out.println("ErrMsg:" + e.getErrMsg()); System.out.println("RequestId:" + e.getRequestId()); } } }A resposta a seguir indica que a VPC foi criada:
{ "vpcId": "vpc-uf6d60ru912b6jvco****", "vRouterId": "vrt-uf68fw505rxavz4hk****", "requestId": "2C7AA1E2-4407-5B41-89F2-3DADC5AEE18E", "routeTableId": "vtb-uf6orqxrmsyuv8gba****", "resourceGroupId": "rg-acfmzw2jz2z****" } -
Crie um vSwitch na VPC.
A tabela a seguir descreve os parâmetros. Para mais informações, consulte CreateVSwitch.
Parâmetro
Exemplo
Descrição
VpcId
vpc-uf6d60ru912b6jvco****
ID da VPC à qual o vSwitch pertence.
ZoneId
cn-shanghai-m
ID da zona à qual o vSwitch pertence.
Selecione uma zona recomendada na região escolhida. Para mais informações, consulte Regiões e zonas.
CidrBlock
192.168.0.0/24
Bloco CIDR do vSwitch. O bloco CIDR do vSwitch deve atender aos seguintes requisitos:
A máscara deve ter entre 16 e 29 bits.
O bloco CIDR do vSwitch deve estar contido no bloco CIDR da VPC à qual ele pertence.
O bloco CIDR do vSwitch não pode ser igual aos blocos CIDR de destino das rotas adicionadas à VPC. No entanto, pode ser um subconjunto desses blocos de destino.
Código de exemplo:
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import java.util.*; import com.aliyuncs.vpc.model.v20160428.*; public class CreateVSwitch { public static void main(String[] args) { DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "<accessKeyId>", "<accessSecret>"); IAcsClient client = new DefaultAcsClient(profile); CreateVSwitchRequest request = new CreateVSwitchRequest(); request.setSysRegionId("cn-shanghai"); request.setCidrBlock("192.168.0.0/24"); request.setVpcId("vpc-uf6d60ru912b6jvco****"); request.setZoneId("cn-shanghai-m"); try { CreateVSwitchResponse response = client.getAcsResponse(request); System.out.println(new Gson().toJson(response)); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { System.out.println("ErrCode:" + e.getErrCode()); System.out.println("ErrMsg:" + e.getErrMsg()); System.out.println("RequestId:" + e.getRequestId()); } } }A resposta a seguir indica que o vSwitch foi criado:
{ "vSwitchId": "vsw-uf6uma67wlgxwuyb5****", "requestId": "B94FAE14-043C-56B5-A763-F2E03C75AC3F" } -
Crie um grupo de segurança.
Especifique uma VPC ao criar um grupo de segurança. Código de exemplo:
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import java.util.*; import com.aliyuncs.ecs.model.v20140526.*; public class CreateSecurityGroup { public static void main(String[] args) { DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "<accessKeyId>", "<accessSecret>"); IAcsClient client = new DefaultAcsClient(profile); CreateSecurityGroupRequest request = new CreateSecurityGroupRequest(); request.setSysRegionId("cn-shanghai"); request.setVpcId("vpc-uf6d60ru912b6jvco****"); try { CreateSecurityGroupResponse response = client.getAcsResponse(request); System.out.println(new Gson().toJson(response)); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { System.out.println("ErrCode:" + e.getErrCode()); System.out.println("ErrMsg:" + e.getErrMsg()); System.out.println("RequestId:" + e.getRequestId()); } } }A resposta a seguir indica que o grupo de segurança foi criado:
{ "securityGroupId": "sg-uf63jawzncdab6xb****", "requestId": "73D5964C-686A-59AF-8433-209067AB51D7" }
Criar uma instância de contêiner elástica
A tabela a seguir descreve os parâmetros. Para mais informações, consulte CreateContainerGroup.
|
Parâmetro |
Exemplo |
Descrição |
|
RegionId |
cn-shanghai |
ID da região da instância de contêiner elástica. |
|
SecurityGroupId |
sg-uf63jawzncdab6xb**** |
ID do grupo de segurança a ser associado à instância de contêiner elástica. |
|
VSwitchId |
vsw-uf6uma67wlgxwuyb5**** |
vSwitch a ser associado à instância de contêiner elástica. |
|
ContainerGroupName |
test |
Nome da instância de contêiner elástica. |
|
Container.N.Image |
registry-vpc.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2 |
Imagem do contêiner N. |
|
Container.N.Name |
nginx |
Nome do contêiner N. |
Código de exemplo:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.*;
import com.aliyuncs.eci.model.v20180808.*;
public class CreateContainerGroup {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "<accessKeyId>", "<accessSecret>");
IAcsClient client = new DefaultAcsClient(profile);
CreateContainerGroupRequest request = new CreateContainerGroupRequest();
request.setRegionId("cn-shanghai");
request.setSecurityGroupId("sg-uf63jawzncdab6xb****");
request.setVSwitchId("vsw-uf6uma67wlgxwuyb5****");
request.setContainerGroupName("test");
List<CreateContainerGroupRequest.Container> containerList = new ArrayList<CreateContainerGroupRequest.Container>();
CreateContainerGroupRequest.Container container1 = new CreateContainerGroupRequest.Container();
container1.setImage("registry-vpc.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2");
container1.setName("nginx");
containerList.add(container1);
request.setContainers(containerList);
try {
CreateContainerGroupResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}
A resposta a seguir indica que a instância de contêiner elástica foi criada. O valor containerGroupId representa o ID da instância.
{
"requestId": "FA8DB391-3F54-5998-BDA0-8195113108E8",
"containerGroupId": "eci-uf6g69s8wou20ns7****"
}