更新时间:2024-05-31 GMT+08:00
分享

推理服务访问公网

本章节提供了推理服务访问公网的方法。

应用场景

推理服务访问公网地址的场景,如:

  • 输入图片,先进行公网OCR服务调用,然后进行NLP处理;
  • 进行公网文件下载,然后进行分析;
  • 分析结果回调给公网服务终端。

方案设计

从推理服务的算法实例内部,访问公网服务地址的方案。如下图所示:

图1 推理服务访问公网

操作事项

  1. ModelArts:设置资源池的网络

    专属资源池的创建作业类型包含推理服务,选择的网络需打通VPC网络,如下图所示:
    图2 创建专属资源池
    图3 打通VPC

    打通VPC可实现ModelArts资源池和用户VPC的网络打通。打通VPC前需要提前创建好VPC和子网,具体步骤请参考创建虚拟私有云和子网

  2. 用户VPC:安装和配置正向代理

    在安装正向代理前,需要先购买一台弹性云服务器ECS(镜像可选择Ubuntu最新版本),并配置好弹性EIP,然后登录ECS进行正向代理Squid的安装和配置,步骤如下:

    1. 如果没有安装Docker,执行以下命令进行Docker安装
      curl -sSL https://get.daocloud.io/docker | sh
    2. 拉取Squid镜像
      docker pull ubuntu/squid
    3. 创建主机目录,配置whitelist.conf和squid.conf

      先创建主机目录:

      mkdir –p /etc/squid/

      添加whitelist.conf配置文件,内容为安全控制可访问的地址,如:

      .apig.cn-east-3.huaweicloudapis.com

      添加squid.conf配置文件,内容如下:

      # An ACL named 'whitelist'
      acl whitelist dstdomain '/etc/squid/whitelist.conf'
       
      # Allow whitelisted URLs through
      http_access allow whitelist
       
      # Block the rest
      http_access deny all
       
      # Default port
      http_port 3128

      然后设置主机目录和配置文件权限如下:

      chmod 640 -R /etc/squid
    4. 启动squid实例
      docker run -d --name squid -e TZ=UTC -v /etc/squid:/etc/squid -p 3128:3128 ubuntu/squid:latest
    5. 如果whitelist.conf或squid.conf有更新,则进入容器刷新squid
      docker exec –it squid bash
      root@{container_id}:/# squid -k reconfigure

  3. 算法镜像:设置DNS代理和公网地址调用

    1. 设置代理

      在代码中设置代理指向代理服务器私有IP和端口,如下所示:

      proxies = {
        "http": "http://{proxy_server_private_ip}:3128",
        "https": "http://{proxy_server_private_ip}:3128"
      }

      服务器私有IP获取如下图所示:

      图4 ECS私有IP
    2. 地址调用

      在推理代码中,使用服务URL进行业务请求,如:

      https://e8a048ce25136addbbac23ce6132a.apig.cn-east-3.huaweicloudapis.com

分享:

    相关文档

    相关产品