如果专有网络(VPC)类型的ECS实例没有公网访问能力,则无法在该ECS实例调用API。本文介绍如何通过修改Endpoint字段实现内网调用API。
背景信息
VPC提供的接入地址(Endpoint)为公网服务地址,当您的VPC类型ECS实例没有公网访问能力时,无法使用阿里云CLI和SDK等工具发起API调用请求。VPC接入地址请参见请求结构。
您可以通过修改Endpoint字段实现内网调用API。内网调用API的接入地址(Endpoint)如下表所示,请确保您使用的Endpoint在列举范围内。
说明 内网调用API仅适用于VPC类型ECS实例所在的地域,且仅能使用对应地域的接入地址(Endpoint)操作同地域资源,不支持跨地域操作。
阿里云地域 | 地域ID | 内网调用API接入地址(Endpoint) |
---|---|---|
华东1(杭州) | cn-hangzhou | vpc-vpc.cn-hangzhou.aliyuncs.com |
华东2(上海) | cn-shanghai | vpc-vpc.cn-shanghai.aliyuncs.com |
华北1(青岛) | cn-qingdao | vpc-vpc.cn-qingdao.aliyuncs.com |
华北2(北京) | cn-beijing | vpc-vpc.cn-beijing.aliyuncs.com |
华北3(张家口) | cn-zhangjiakou | vpc-vpc.cn-zhangjiakou.aliyuncs.com |
华北5(呼和浩特) | cn-huhehaote | vpc-vpc.cn-huhehaote.aliyuncs.com |
华北6(乌兰察布) | cn-wulanchabu | vpc-vpc.cn-wulanchabu.aliyuncs.com |
华南1(深圳) | cn-shenzhen | vpc-vpc.cn-shenzhen.aliyuncs.com |
华南2(河源) | cn-heyuan | vpc-vpc.cn-heyuan.aliyuncs.com |
西南1(成都) | cn-chengdu | vpc-vpc.cn-chengdu.aliyuncs.com |
中国(香港) | cn-hongkong | vpc-vpc.cn-hongkong.aliyuncs.com |
新加坡 | ap-southeast-1 | vpc-vpc.ap-southeast-1.aliyuncs.com |
澳大利亚(悉尼) | ap-southeast-2 | vpc-vpc.ap-southeast-2.aliyuncs.com |
马来西亚(吉隆坡) | ap-southeast-3 | vpc-vpc.ap-southeast-3.aliyuncs.com |
印度尼西亚(雅加达) | ap-southeast-5 | vpc-vpc.ap-southeast-5.aliyuncs.com |
日本(东京) | ap-northeast-1 | vpc-vpc.ap-northeast-1.aliyuncs.com |
德国(法兰克福) | eu-central-1 | vpc-vpc.eu-central-1.aliyuncs.com |
英国(伦敦) | eu-west-1 | vpc-vpc.eu-west-1.aliyuncs.com |
美国(硅谷) | us-west-1 | vpc-vpc.us-west-1.aliyuncs.com |
美国(弗吉尼亚) | us-east-1 | vpc-vpc.us-east-1.aliyuncs.com |
印度(孟买) | ap-south-1 | vpc-vpc.ap-south-1.aliyuncs.com |
阿联酋(迪拜) | me-east-1 | vpc-vpc.me-east-1.aliyuncs.com |
阿里云CLI内网调用API示例
使用阿里云CLI,您只需要将Endpoint修改为对应地域的内网调用API接入地址,即可实现内网调用API。示例如下:
aliyun vpc DescribeRegions --endpoint vpc-vpc.cn-hangzhou.aliyuncs.com
SDK内网调用API示例
使用SDK调用API,您只需要将Endpoint修改为对应地域的内网调用API接入地址,即可实现内网调用API。Java代码示例如下:
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<AccessKeyId>", "<AccessKeySecret>");
IAcsClient client = new DefaultAcsClient(profile);
// 全局生效配置。其中:
// <product>为产品名称,专有网络的值为Vpc,<Endpoint>的值为对应地域的内网调用API接入地址。
DefaultProfile.addEndpoint("cn-hangzhou", "vpc", "vpc-vpc.cn-hangzhou.aliyuncs.com");
// 只对当前请求生效配置。例如,调用DescribeRegions接口。
DescribeRegionsRequest regionsRequest = new DescribeRegionsRequest();
// 如设置下述productNetwork参数,则无需手动设置SysEndpoint。
regionsRequest.setSysEndpoint("<Endpoint>");
// 设置网络。productNetwork参数的取值范围:vpc、 public。
// vpc为内网调用接入地址选项;public为公网调用API的选项,即默认选项。
regionsRequest.productNetwork = "vpc";
DescribeRegionsResponse regionsResponse = client.getAcsResponse(regionsRequest);