示例:配置跨VPC通信的终端节点
场景描述
如果用户想要实现VPC间的资源通信,相比于通过公网IP的访问方式,VPC终端节点支持将VPC私密地连接到终端节点服务(云服务、用户私有服务),无需使用弹性公网IP,访问效率更高,组网更安全。
下面介绍如何通过调用创建终端节点服务API和创建终端节点API实现终端节点到终端节点服务的连接。API的调用方法请参见如何调用API。
通过IAM服务获取到的Token有效期为24小时,需要使用同一个Token鉴权时,可以先将Token缓存,避免频繁调用。
前提条件
您需要规划VPC终端节点所在的区域信息,并根据区域确定调用API的Endpoint,详细信息请参见终端节点(Endpoint)。
创建终端节点服务
在本示例中,为云服务器创建了一个接口型的终端节点服务。
创建终端节点服务前请先获取创建的必要信息,如服务后端资源的Port ID、所在的虚拟私有云(VPC)的VPC ID等,详情请参考创建终端节点服务。
{ "port_id": "4189d3c2-8882-4871-a3c2-d380272eed88", "vpc_id": "4189d3c2-8882-4871-a3c2-d380272eed80", "approval_enabled":false, "service_type":"interface", "server_type":"VM", "ports": [ { "client_port":8080, "server_port":80, "protocol":"TCP" }, { "client_port":8081, "server_port":80, "protocol":"TCP" } ] }
- port_id:标识终端节点服务后端资源的ID。例如创建云服务器类型的终端节点服务,则对应云服务器IP地址对应的网卡ID。
- vpc_id:终端节点服务对应后端资源所在的VPC的ID。
- approval_enabled:终端节点连接终端节点服务是否需要审批,例如“false”,表示可以直接连接,不需要审批。
- service_type:终端节点服务类型。例如“interface”,表示接口类型的终端节点服务。
- server_type:创建的终端节点服务的后端资源类型。例如“VM”,表示创建云服务器类型的终端节点服务。
- ports.client_port:终端节点提供给用户,作为访问终端节点服务的端口。
- ports.server_port:终端节点服务绑定了后端资源,作为提供服务的端口。
- ports.protocol:端口映射协议。
创建终端节点
在本示例中,创建了一个终端节点,且支持自动创建内网域名。
创建终端节点前请先获取创建的必要信息,如终端节点所在的VPC的ID、Subnet ID和上一步创建返回的终端节点服务ID等,详情请参考创建终端节点。
{ "subnet_id": "4189d3c2-8882-4871-a3c2-d380272eed81", "vpc_id": "4189d3c2-8882-4871-a3c2-d380272eed82", "endpoint_service_id":"4189d3c2-8882-4871-a3c2-d380272eed83", "enable_dns":true }
- subnet_id:终端节点所在VPC的子网ID
- vpc_id:终端节点所在的VPC的ID。
- endpoint_service_id:终端节点服务的ID。
- enable_dns:是否为终端节点创建内网域名。例如“true”,表示创建内网域名。
创建完成之后,终端节点所在的VPC内的实例可使用该终端节点访问ID为“4189d3c2-8882-4871-a3c2-d380272eed83”的终端节点服务。