服务调用方式

最近更新时间:2020-07-31 17:41:27

公网地址调用

TI-EMS 的在线服务一旦部署完成后,您可以选择创建一个公网地址来进行服务调用。调用方式为 gRPC 或 HTTP ,调用地址和需要的鉴权信息可在控制台对应的在线服务列表处单击【更多】>【调用】>【公网调用】查看。
服务调用 demo 详见 最佳实践

VPC 地址调用

TI-EMS 支持用户自己的 VPC 通过 privatelink 通道和 TI-EMS 的 VPC 环境打通,。在控制台对应的在线服务列表处单击【更多】>【调用】>【VPC 调用】,选择需要打通的 VPC 私有网络和子网信息,完成打通后可显示调用地址和需要的鉴权信息。VPC 相关操作请详见 VPC 产品文档

VPC 高速直连调用

除了通过 privatelink 打通两个 VPC,TI-EMS 还可通过挂载用户弹性网卡到服务容器(专用资源组)上,来实现两个 VPC 中网络环境的互通。下面介绍 VPC 高速直连的调用方式。

准备环境

腾讯云官网提供了各种语言的 SDK 供使用,这里我们使用 Python SDK 做演示。

您可以通过 pip 安装 Python SDK。

pip install tencentcloud-sdk-python

使用 sdk 之前您需要在控制台获取 SecretID、SecretKey。

调用示例

from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.tiems.v20190416 import tiems_client, models
import requests
def do_request(address, request_str):
    headers = {"Content-type": "application/json", "Accept": "application/json", "X-AUTH-TOKEN": ""}
    try:
        response = requests.post(address, data=request_str, headers=headers)
        print(response.text)
    except Exception as e:
        print(e)
if __name__ == '__main__':
    try:
        # 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey
        cred = credential.Credential("xx", "yy")
        # 实例化client对象
        client = tiems_client.TiemsClient(cred, "ap-beijing")
        # 实例化一个请求对象 并请求查询服务,这里我们提前在页面上创建了一个 两副本的 pmml 服务,并且做了 内网打通
        req = models.DescribeServicesRequest()
        resp = client.DescribeServices(req)
        # 输出json格式的字符串回包
        replicas = resp.Services[0].Status.ReplicaInfos
        ips = [a.EniIp for a in replicas if a.Status == "Normal"]
        # 发送预测请求,这里 我们做了一个简单的负载均衡,依次访问两个副本ip 
        print(ips)
        for ip in ips:
            address = 'http://' + ip + '/v1/models/m:predict'
            do_request(address, '{"instances" : [{"x1": 6.2, "x2": 2.2, "x3": 1.1, "x4": 1.}]}')
    except TencentCloudSDKException as err:
        print(err)
['10.20.142.88', '10.20.142.79']
{"predictions": [{"probability(1)":"0.07345460015950317","probability(-1)":"0.9265453998404969","y":"-1"}]}
{"predictions": [{"probability(1)":"0.07345460015950317","probability(-1)":"0.9265453998404969","y":"-1"}]}
注意:

TI-EMS 目前仅支持专用资源组 VPC 打通。

API Gateway 公网调用

TI-EMS 新增 API Gateway 公网地址调用功能,该功能需要您开通 API 网关服务,使用 API Gateway 公网地址调用功能,系统会在模型服务部署完成后自动帮您生成一个 API 网关层面的公网地址,您可以作为服务请求地址调用,该功能正在内测阶段,请 单击申请 进行体验。