Elastic Container Instance menyediakan SDK dalam tiga bahasa pemrograman: Go, Python, dan Java. Dokumen ini menjelaskan cara menggunakan SDK untuk membuat instance kontainer elastis, dengan contoh berupa Alibaba Cloud SDK for Java.
Instal Alibaba Cloud SDK for Java
Disarankan untuk menggunakan Apache Maven guna menginstal Alibaba Cloud SDK for Java. Tambahkan dependensi berikut ke file pom.xml di proyek Maven:
Pustaka inti dari Alibaba Cloud SDK for Java (aliyun-java-sdk-core)
Dependensi aliyun-java-sdk-eci dan gson
(Opsional) Dependensi aliyun-java-sdk-vpc
(Opsional) Dependensi aliyun-java-sdk-ecs dan fastjson
Perbarui versi setiap dependensi secara berkala untuk memanfaatkan fitur baru. Untuk informasi lebih lanjut, kunjungi Maven.
Jika VPC, vSwitch, dan grup keamanan sudah tersedia, Anda tidak perlu menginstal Alibaba Cloud SDK for Java untuk membuat komponen tersebut. Dalam hal ini, instalasi dependensi aliyun-java-sdk-vpc, aliyun-java-sdk-ecs, dan fastjson dapat dilewati.
<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>Berikut adalah langkah-langkah untuk menginstal Alibaba Cloud SDK for Java jika Anda menggunakan IntelliJ IDEA sebagai alat pengembangan Java:
Buka IntelliJ IDEA dan gunakan salah satu metode berikut untuk membuat proyek Maven:
Metode 1: Buat Proyek Maven di IntelliJ IDEA
Di bilah navigasi atas, pilih File > New > Project....
Dalam kotak dialog yang muncul, klik Maven dan selesaikan konfigurasi proyek.

Metode 2: Konversikan Proyek yang Ada Menjadi Proyek Maven
Klik kanan proyek yang ingin dikonversi dan pilih Add Framework Support... dari menu yang muncul.

Di kotak dialog yang muncul, pilih Maven dan klik OK.

Buka file pom.xml di direktori proyek Maven dan tambahkan dependensi.
Setelah dependensi ditambahkan, Maven akan otomatis mengunduh paket JAR yang sesuai.

Peroleh pasangan AccessKey
Saat memanggil operasi API, Anda harus menggunakan pasangan AccessKey untuk menyelesaikan verifikasi identitas. Untuk melindungi pasangan AccessKey akun Alibaba Cloud Anda, disarankan untuk membuat pengguna RAM, memberikan izin kepada pengguna RAM untuk mengakses instance kontainer elastis, dan menggunakan pasangan AccessKey pengguna RAM untuk memanggil Elastic Container Instance SDK for Java.
Untuk informasi lebih lanjut, lihat topik-topik berikut:
Buat sumber daya yang diperlukan oleh instance kontainer elastis
Sebelum membuat instance kontainer elastis, Anda harus membuat VPC, vSwitch, dan grup keamanan.
Jika VPC, vSwitch, dan grup keamanan sudah ada, Anda dapat menggunakan ID mereka untuk membuat instance kontainer elastis.
Buat VPC.
Tabel berikut menjelaskan parameter-parameter tersebut. Untuk informasi lebih lanjut, lihat CreateVpc.
Parameter
Contoh
Deskripsi
RegionId
cn-shanghai
ID wilayah tempat VPC diterapkan.
Pilih wilayah tempat Elastic Container Instance tersedia. Untuk informasi lebih lanjut, lihat Wilayah dan zona.
CidrBlock
192.168.0.0/16
Blok CIDR dari VPC.
Anda dapat menggunakan salah satu blok CIDR berikut atau subsetnya: 192.168.0.0/16, 172.16.0.0/12, dan 10.0.0.0/8. Blok CIDR ini adalah blok CIDR privat standar sebagaimana didefinisikan dalam dokumen Request for Comments (RFC). Masker subnet harus memiliki panjang 8 hingga 28 bit.
Contoh kode:
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()); } } }Respons berikut menunjukkan bahwa VPC telah dibuat:
{ "vpcId": "vpc-uf6d60ru912b6jvco****", "vRouterId": "vrt-uf68fw505rxavz4hk****", "requestId": "2C7AA1E2-4407-5B41-89F2-3DADC5AEE18E", "routeTableId": "vtb-uf6orqxrmsyuv8gba****", "resourceGroupId": "rg-acfmzw2jz2z****" }Buat vSwitch di VPC.
Tabel berikut menjelaskan parameter-parameter tersebut. Untuk informasi lebih lanjut, lihat CreateVSwitch.
Parameter
Contoh
Deskripsi
VpcId
vpc-uf6d60ru912b6jvco****
ID VPC tempat vSwitch milik.
ZoneId
cn-shanghai-m
ID zona tempat vSwitch milik.
Pilih zona yang direkomendasikan di wilayah yang dipilih. Untuk informasi lebih lanjut, lihat Wilayah dan zona.
CidrBlock
192.168.0.0/24
Blok CIDR dari vSwitch. Blok CIDR dari vSwitch harus memenuhi persyaratan berikut:
Masker harus memiliki panjang 16 hingga 29 bit.
Blok CIDR dari vSwitch harus berada dalam blok CIDR dari VPC tempat vSwitch milik.
Blok CIDR dari vSwitch tidak boleh sama dengan blok CIDR tujuan yang ditambahkan ke VPC. Namun, blok CIDR dari vSwitch bisa menjadi subset dari blok CIDR tujuan.
Contoh kode:
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()); } } }Respons berikut menunjukkan bahwa vSwitch telah dibuat:
{ "vSwitchId": "vsw-uf6uma67wlgxwuyb5****", "requestId": "B94FAE14-043C-56B5-A763-F2E03C75AC3F" }Buat grup keamanan.
Anda harus menentukan VPC saat membuat grup keamanan. Contoh kode:
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()); } } }Respons berikut menunjukkan bahwa grup keamanan telah dibuat:
{ "securityGroupId": "sg-uf63jawzncdab6xb****", "requestId": "73D5964C-686A-59AF-8433-209067AB51D7" }
Buat instance kontainer elastis
Tabel berikut menjelaskan parameter-parameter tersebut. Untuk informasi lebih lanjut, lihat CreateContainerGroup.
Parameter | Contoh | Deskripsi |
RegionId | cn-shanghai | ID wilayah dari instance kontainer elastis. |
SecurityGroupId | sg-uf63jawzncdab6xb**** | ID grup keamanan yang ingin Anda asosiasikan dengan instance kontainer elastis. |
VSwitchId | vsw-uf6uma67wlgxwuyb5**** | vSwitch yang ingin Anda asosiasikan dengan instance kontainer elastis. |
ContainerGroupName | test | Nama instance kontainer elastis. |
Container.N.Image | registry-vpc.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2 | Gambar dari kontainer N. |
Container.N.Name | nginx | Nama dari kontainer N. |
Contoh kode:
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());
}
}
}Respons berikut menunjukkan bahwa instance kontainer elastis telah dibuat. Nilai containerGroupId menunjukkan ID dari instance.
{
"requestId": "FA8DB391-3F54-5998-BDA0-8195113108E8",
"containerGroupId": "eci-uf6g69s8wou20ns7****"
}