You cannot call API operations on VPC-type ECS instances that do not have public IP addresses. This topic describes how to call API operations on VPC-type ECS instances over the Alibaba Cloud internal network.

Background information

ECS provides public endpoints. If your ECS instance does not have a public bandwidth or a public IP address, you cannot make API requests by using tools such as Alibaba Cloud CLI or SDKs. You can use one of the following methods to call API operations over the Alibaba Cloud internal network:
  • SDK: Use the SDK for Java core library v4.5.3 or later to call API operations over the internal network in a VPC.
  • CLI: Use CLI to call API operations over the internal network by specifying the endpoint of a specific region.
Take note of the following items:
  • These methods are applicable only in regions where VPC-type ECS instances are deployed. The endpoint of a region can be used to manage resources only within that region. Cross-region operations are not supported.
  • We recommend that you use custom images that have Alibaba Cloud CLI or SDKs deployed to create ECS instances. The ECS instances must load related dependencies with access to the Internet.
The following table describes the endpoints that support API calls over the internal network. Make sure that you use an endpoint listed in the table.
Alibaba Cloud region Region ID Endpoint
China (Hangzhou) cn-hangzhou ecs-vpc.cn-hangzhou.aliyuncs.com
China (Shanghai) cn-shanghai ecs-vpc.cn-shanghai.aliyuncs.com
China (Nanjing - Local Region) cn-nanjing ecs-vpc.cn-nanjing.aliyuncs.com
China (Fuzhou - Local Region) cn-fuzhou ecs-vpc.cn-fuzhou.aliyuncs.com
China (Qingdao) cn-qingdao ecs-vpc.cn-qingdao.aliyuncs.com
China (Beijing) cn-beijing ecs-vpc.cn-beijing.aliyuncs.com
China (Zhangjiakou) cn-zhangjiakou ecs-vpc.cn-zhangjiakou.aliyuncs.com
China (Hohhot) cn-huhehaote ecs-vpc.cn-huhehaote.aliyuncs.com
China (Ulanqab) cn-wulanchabu ecs-vpc.cn-wulanchabu.aliyuncs.com
China (Shenzhen) cn-shenzhen ecs-vpc.cn-shenzhen.aliyuncs.com
China (Heyuan) cn-heyuan ecs-vpc.cn-heyuan.aliyuncs.com
China (Guangzhou) cn-guangzhou ecs-vpc.cn-guangzhou.aliyuncs.com
China (Chengdu) cn-chengdu ecs-vpc.cn-chengdu.aliyuncs.com
China (Hong Kong) cn-hongkong ecs-vpc.cn-hongkong.aliyuncs.com
Singapore ap-southeast-1 ecs-vpc.ap-southeast-1.aliyuncs.com
Australia (Sydney) ap-southeast-2 ecs-vpc.ap-southeast-2.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
Philippines (Manila) ap-southeast-6 ecs-vpc.ap-southeast-6.aliyuncs.com
Thailand (Bangkok) ap-southeast-7 ecs-vpc.ap-southeast-7.aliyuncs.com
Japan (Tokyo) ap-northeast-1 ecs-vpc.ap-northeast-1.aliyuncs.com
South Korea (Seoul) ap-northeast-2 ecs-vpc.ap-northeast-2.aliyuncs.com
Germany (Frankfurt) eu-central-1 ecs-vpc.eu-central-1.aliyuncs.com
UK (London) eu-west-1 ecs-vpc.eu-west-1.aliyuncs.com
US (Silicon Valley) us-west-1 ecs-vpc.us-west-1.aliyuncs.com
US (Virginia) us-east-1 ecs-vpc.us-east-1.aliyuncs.com
India (Mumbai) ap-south-1 ecs-vpc.ap-south-1.aliyuncs.com
UAE (Dubai) me-east-1 ecs-vpc.me-east-1.aliyuncs.com

Method 1: (Recommended) Use SDKs to call API operations over the internal network

Simple configurations are required when you use SDKs to call API operations over the internal network. The following code provides an example on how to use SDK for Java to call an API operation over the internal network:
DefaultProfile profile = DefaultProfile.getProfile("<RegionId>", "<AccessKeyId>", "<AccessKeySecret>");
IAcsClient client = new DefaultAcsClient(profile);

// Configure parameters that take effect globally. In the configuration, <product> indicates the service name. For example, you can enter Ecs for ECS. 
DefaultProfile.addEndpoint("<RegionId>", "<product>", "<Endpoint>");

// Configure parameters that take effect only for the request. For example, when you call the DescribeRegions operation, you can make the following configurations: 
DescribeRegionsRequest regionsRequest = new DescribeRegionsRequest();
// If you configure the productNetwork parameter, you do not need to configure the SysEndpoint parameter. 
regionsRequest.setSysEndpoint("<Endpoint>");
// Configure the network. Valid values of the productNetwork parameter: vpc and public. Default value: public. 
// If you want to call the DescribeRegions operation over the internal network, set the parameter to vpc. If you want to call this operation over the Internet, set the parameter to public. 
regionsRequest.productNetwork = "vpc";
DescribeRegionsResponse regionsResponse = client.getAcsResponse(regionsRequest);

Method 2: Use CLI to call API operations over the internal network

The DescribeRegions operation is used in this example. Sample command:
aliyun ecs DescribeRegions --endpoint ecs-vpc.cn-hangzhou.aliyuncs.com