Anda tidak dapat memanggil operasi API dari instance Elastic Computing Service (ECS) dalam virtual private cloud (VPC) jika instance tersebut tidak memiliki alamat IP publik. Topik ini menjelaskan cara memanggil operasi API dari instance-instance ini melalui jaringan internal Alibaba Cloud.
Informasi latar belakang
ECS menyediakan titik akhir publik. Jika sebuah instance ECS tidak memiliki bandwidth publik atau alamat IP publik, Anda tidak dapat memanggil operasi API menggunakan alat seperti Alibaba Cloud command-line interface (CLI) atau software development kits (SDK). Dalam kasus ini, Anda dapat menggunakan salah satu dari dua metode berikut untuk memanggil operasi API melalui jaringan internal Alibaba Cloud:
SDK: SDK untuk pustaka inti Java versi V4.5.3 dan yang lebih baru mendukung pemanggilan operasi API melalui jaringan internal di VPC.
CLI: Saat menggunakan CLI, ubah titik akhir ke yang sesuai dengan wilayah untuk memanggil operasi API melalui jaringan internal.
Catatan:
Kedua metode ini bersifat spesifik wilayah. Anda hanya dapat menggunakan titik akhir untuk mengelola sumber daya di wilayah yang sama dengan instance ECS. Operasi lintas wilayah tidak didukung.
Untuk membuat instance ECS, gunakan gambar kustom tempat Alibaba Cloud CLI atau SDK sudah diterapkan. Ini mencegah instance gagal memuat dependensi karena mereka tidak memiliki akses Internet.
Tabel berikut mencantumkan titik akhir ECS yang mendukung panggilan API melalui jaringan internal. Pastikan bahwa titik akhir yang Anda gunakan tercantum dalam tabel ini.
Wilayah Alibaba Cloud | ID Wilayah | Endpoint |
Cina (Hangzhou) | cn-hangzhou | ecs-vpc.cn-hangzhou.aliyuncs.com |
Cina (Shanghai) | cn-shanghai | ecs-vpc.cn-shanghai.aliyuncs.com |
Cina (Nanjing - Wilayah Lokal) | cn-nanjing | ecs-vpc.cn-nanjing.aliyuncs.com |
Cina (Fuzhou - Wilayah Lokal) | cn-fuzhou | ecs-vpc.cn-fuzhou.aliyuncs.com |
Cina (Qingdao) | cn-qingdao | ecs-vpc.cn-qingdao.aliyuncs.com |
Cina (Beijing) | cn-beijing | ecs-vpc.cn-beijing.aliyuncs.com |
Cina (Zhangjiakou) | cn-zhangjiakou | ecs-vpc.cn-zhangjiakou.aliyuncs.com |
Cina (Hohhot) | cn-huhehaote | ecs-vpc.cn-huhehaote.aliyuncs.com |
Cina (Ulanqab) | cn-wulanchabu | ecs-vpc.cn-wulanchabu.aliyuncs.com |
Cina (Shenzhen) | cn-shenzhen | ecs-vpc.cn-shenzhen.aliyuncs.com |
Cina (Heyuan) | cn-heyuan | ecs-vpc.cn-heyuan.aliyuncs.com |
Cina (Guangzhou) | cn-guangzhou | ecs-vpc.cn-guangzhou.aliyuncs.com |
Cina (Chengdu) | cn-chengdu | ecs-vpc.cn-chengdu.aliyuncs.com |
Cina (Hong Kong) | cn-hongkong | ecs-vpc.cn-hongkong.aliyuncs.com |
Singapura | ap-southeast-1 | ecs-vpc.ap-southeast-1.aliyuncs.com |
Malaysia (Kuala Lumpur) | ap-southeast-3 | ecs-vpc.ap-southeast-3.aliyuncs.com |
Indonesia (Jakarta) | ap-southeast-5 | ecs-vpc.ap-southeast-5.aliyuncs.com |
Filipina (Manila) | ap-southeast-6 | ecs-vpc.ap-southeast-6.aliyuncs.com |
Thailand (Bangkok) | ap-southeast-7 | ecs-vpc.ap-southeast-7.aliyuncs.com |
Jepang (Tokyo) | ap-northeast-1 | ecs-vpc.ap-northeast-1.aliyuncs.com |
Korea Selatan (Seoul) | ap-northeast-2 | ecs-vpc.ap-northeast-2.aliyuncs.com |
Jerman (Frankfurt) | eu-central-1 | ecs-vpc.eu-central-1.aliyuncs.com |
Inggris (London) | eu-west-1 | ecs-vpc.eu-west-1.aliyuncs.com |
AS (Silicon Valley) | us-west-1 | ecs-vpc.us-west-1.aliyuncs.com |
AS (Virginia) | us-east-1 | ecs-vpc.us-east-1.aliyuncs.com |
UEA (Dubai) | me-east-1 | ecs-vpc.me-east-1.aliyuncs.com |
Metode 1 (Direkomendasikan): Gunakan SDK untuk memanggil operasi API melalui jaringan internal
Saat menggunakan SDK, Anda dapat memanggil operasi API melalui jaringan internal dengan konfigurasi sederhana. Contoh kode Java berikut adalah contohnya:
import com.aliyun.ecs20140526.Client;
import com.aliyun.ecs20140526.models.DescribeRegionsRequest;
import com.aliyun.ecs20140526.models.DescribeRegionsResponse;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class Test {
public static void main(String[] args) throws Exception {
Config config = new Config();
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah disetel.
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah disetel.
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Untuk titik akhir, lihat https://api.aliyun.com/product/Ecs
config.setEndpoint("<ENDPOINT>");
// Inisialisasi klien ECS.
Client ecsClient = new Client(config);
// Buat objek permintaan untuk menanyakan informasi wilayah.
DescribeRegionsRequest describeRegionsRequest = new DescribeRegionsRequest();
// Buat objek opsi runtime.
RuntimeOptions runtime = new RuntimeOptions();
// Kirim permintaan dan peroleh tanggapan dengan informasi wilayah.
DescribeRegionsResponse response = ecsClient.describeRegionsWithOptions(describeRegionsRequest, runtime);
System.out.println(response.body.toMap());
}
}Metode 2: Gunakan CLI untuk memanggil operasi API melalui jaringan internal
Contoh ini menggunakan operasi DescribeRegions. Perintah sampelnya adalah sebagai berikut:
aliyun ecs DescribeRegions --endpoint ecs-vpc.cn-hangzhou.aliyuncs.com