Elastic Container Instance (ECI) menyediakan software development kits (SDK) untuk Go, Python, dan Java. Topik ini menggunakan Java SDK sebagai contoh untuk menunjukkan cara membuat instance ECI.
Instal Java SDK
Anda dapat menginstal Java SDK menggunakan Apache Maven. Tambahkan dependensi berikut ke file pom.xml proyek Maven Anda:
Jika Anda sudah memiliki virtual private cloud (VPC), vSwitch, dan security group, Anda tidak perlu membuatnya menggunakan SDK. Dalam hal ini, Anda tidak perlu menginstal dependensi aliyun-java-sdk-vpc, aliyun-java-sdk-ecs, atau fastjson.
Pustaka inti Alibaba Cloud: aliyun-java-sdk-core
Elastic Container Instance: aliyun-java-sdk-eci dan dependensi gson
(Opsional) Virtual Private Cloud: aliyun-java-sdk-vpc
(Opsional) Elastic Compute Service: aliyun-java-sdk-ecs dan dependensi fastjson
Berikut adalah contohnya:
Perbarui dependensi ke versi terbarunya untuk menggunakan fitur-fitur baru. Untuk informasi lebih lanjut, lihat Maven.
<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>Prosedur berikut menggunakan IntelliJ IDEA sebagai contoh:
Buka IntelliJ IDEA dan buat proyek Maven dengan salah satu cara berikut.
Metode 1: Buat proyek Maven di IntelliJ IDEA
Pada bilah menu, pilih File > New > Project....
Pada kotak dialog yang muncul, pilih Maven dan lengkapi konfigurasi proyek.

Metode 2: Konversi proyek yang sudah ada menjadi proyek Maven
Klik kanan proyek yang ingin Anda konversi dan pilih Add Framework Support... dari menu pop-up.

Pada kotak dialog yang muncul, pilih Maven lalu klik OK.

Buka file pom.xml di folder proyek Maven dan tambahkan dependensinya.
Setelah Anda menambahkan dependensi, Maven secara otomatis mengunduh paket JAR yang diperlukan.

Dapatkan Informasi AccessKey
Saat memanggil operasi API Alibaba Cloud, Anda harus menggunakan AccessKey untuk verifikasi identitas. Untuk mencegah risiko keamanan akibat kebocoran pasangan AccessKey akun Alibaba Cloud Anda, buatlah pengguna Resource Access Management (RAM). Kemudian, berikan izin kepada pengguna RAM tersebut untuk mengakses ECI dan gunakan pasangan AccessKey pengguna RAM tersebut bersama SDK.
Prosedurnya sebagai berikut:
Untuk informasi lebih lanjut tentang pembuatan pengguna RAM, lihat Create a RAM user.
Untuk informasi lebih lanjut, lihat Grant permissions to a RAM user.
Untuk informasi lebih lanjut tentang pembuatan pasangan AccessKey, lihat Create an AccessKey pair.
Buat sumber daya untuk instans ECI
Sebelum membuat instans ECI, Anda harus membuat VPC, vSwitch, dan security group.
Jika Anda sudah memiliki VPC, vSwitch, dan security group, Anda dapat mengambil ID-nya dan langsung menggunakannya untuk membuat instans ECI.
Buat VPC.
Tabel berikut menjelaskan parameter yang digunakan dalam contoh. Untuk informasi lebih lanjut, lihat CreateVpc.
Parameter
Nilai Contoh
Deskripsi
RegionId
cn-shanghai
Wilayah tempat VPC berada.
Pilih wilayah yang didukung oleh ECI. Untuk informasi lebih lanjut, lihat Regions and Zones.
CidrBlock
192.168.0.0/16
Blok CIDR VPC.
Gunakan salah satu blok CIDR pribadi standar yang didefinisikan dalam RFC atau subnet-nya: 192.168.0.0/16, 172.16.0.0/12, atau 10.0.0.0/8. Panjang mask yang valid adalah 8 hingga 28 bit.
Kode berikut memberikan contohnya:
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()); } } }Jika permintaan berhasil, respons berikut dikembalikan:
{ "vpcId": "vpc-uf6d60ru912b6jvco****", "vRouterId": "vrt-uf68fw505rxavz4hk****", "requestId": "2C7AA1E2-4407-5B41-89F2-3DADC5AEE18E", "routeTableId": "vtb-uf6orqxrmsyuv8gba****", "resourceGroupId": "rg-acfmzw2jz2z****" }Buat vSwitch di dalam VPC.
Tabel berikut menjelaskan parameter yang digunakan dalam contoh. Untuk informasi lebih lanjut, lihat CreateVSwitch.
Parameter
Nilai Contoh
Deskripsi
VpcId
vpc-uf6d60ru912b6jvco****
ID VPC tempat vSwitch berada.
ZoneId
cn-shanghai-m
ID zona tempat vSwitch berada.
Pilih zona yang direkomendasikan di wilayah yang dipilih. Untuk informasi lebih lanjut, lihat Regions and Zones.
CidrBlock
192.168.0.0/24
Blok CIDR vSwitch. Blok CIDR harus memenuhi persyaratan berikut:
Panjang mask harus antara 16 hingga 29 bit.
Blok CIDR harus merupakan subnet dari blok CIDR VPC.
Blok CIDR tidak boleh sama dengan blok CIDR tujuan entri rute di VPC, tetapi boleh merupakan subset dari blok CIDR tujuan tersebut.
Kode berikut memberikan contohnya:
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()); } } }Jika permintaan berhasil, respons berikut dikembalikan:
{ "vSwitchId": "vsw-uf6uma67wlgxwuyb5****", "requestId": "B94FAE14-043C-56B5-A763-F2E03C75AC3F" }Buat security group.
Saat membuat security group, Anda harus menentukan VPC. Kode berikut memberikan contohnya:
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()); } } }Jika permintaan berhasil, respons berikut dikembalikan:
{ "securityGroupId": "sg-uf63jawzncdab6xb****", "requestId": "73D5964C-686A-59AF-8433-209067AB51D7" }
Buat instans ECI
Contoh ini menentukan parameter berikut. Untuk informasi lebih lanjut, lihat CreateContainerGroup.
Parameter | Nilai Contoh | Deskripsi |
RegionId | cn-shanghai | Wilayah tempat instans ECI berada. |
SecurityGroupId | sg-uf63jawzncdab6xb**** | Security group tempat instans ECI berada. |
VSwitchId | vsw-uf6uma67wlgxwuyb5**** | vSwitch tempat instans ECI berada. |
ContainerGroupName | test | Nama instans ECI. |
Container.N.Image | registry-vpc.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2 | Gambar kontainer. |
Container.N.Name | nginx | Nama kontainer. |
Kode berikut memberikan contohnya:
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());
}
}
}Jika permintaan berhasil, respons berikut dikembalikan. Nilai containerGroupId adalah ID instans ECI yang dibuat.
{
"requestId": "FA8DB391-3F54-5998-BDA0-8195113108E8",
"containerGroupId": "eci-uf6g69s8wou20ns7****"
}