在线远程代理ip
微信提供了在本地调试云托管容器的能力,你可以使用微信官方提供的 VSCode 插件、微信开发者工具等2种方式进行本地调试。支持在本地构建镜像、微信信息和能力集成、线上 VPC 打通调试,小程序请求模拟等能力。
从 v1.0.12 开始,在 VSCode 插件中启动的容器支持在微信开发者工具中访问和本地调试,小程序模拟器中的callContainer请求会请求到本地,此功能需要更新开发者工具到 Nightly 版本,并确保 VSCode 插件版本已更新到最新版。
如只在 VSCode 中同时编辑调试一个服务,可直接打开服务代码目录作为根目录(暂不支持 VSCode Workspace 工作区),保证根目录下有Dockerfile文件,插件面板中会显示该服务的名字。
如果同时编辑调试多个服务,需将这些服务都放在同一个父文件夹下,然后 VSCode 打开这个文件夹或更上层的文件夹,然后在根目录下创建,里面需要包含cloudcontainerRoot字段,该字段指定一个子目录作为要管理调试的包含各个云托管服务代码的文件夹。假设你要调试两个服务,名字分别为travel和hotel,存放这两个服务代码文件夹的父目录名为cloudcontainers,则工作区目录应该如下组织:
调试过程中因需要获取微信信息,会使用云托管 CLI Key,因此需在 VSCode 插件配置填入小程序appid和cli key,点击插件面板的 ⚙ 图标打开配置:
打开配置后填入相应字段,cli key即云托管 CLI Key,可通过登录微信云托管控制台如图位置获取:
此时可以请求容器了,在插件面板旁会展示两个端口号,通过第一个端口访问容器会带有微信相关信息(header 中包含 appid 等),通过第二个端口访问容器不会带有微信相关信息而是直接请求到容器内部,右键服务选择Open in browser (via WX server)和Open in browser (no WX auth)可以在浏览器中打开,分别对应这两种情况,也可以写代码或通过 POSTMAN 等工具请求。
在微信开发者工具中,可以选择连接到 VSCode 启动的容器,从而在小程序模拟器中访问本地云托管容器。
如果需要进入到容器内部终端调试定位问题,可以右键服务名选择Attach Shell进入容器内终端
服务容器间互相调用,可以通过给各个服务分别配置个域名/IP完成,配置文件在工作区根目录下的.cloudbase/container/debug.json文件,示例如下:
如果在容器中访问到了内网地址,可以在插件面板的Proxy nodes for VPC access下添加内网域名 / IP(或在 VSCode 插件配置中手动输入):
同时需在插件配置中指定需访问哪个环境的 VPC(如果没有指定,则在开启 VPC 节点时会提示选择):
启动完成后,在服务容器中访问该地址,会自动代理访问到线上 VPC 对应的地址,可用此方法访问 VPC 内如数据库等任意资源。
更新vscode插件到最新版,启动自己的业务服务,在业务服务运行过程中,启动vpc中的服务,或者先启动api.weixin.qq.com服务,再启动业务服务,没有先后限制。
插件将会在你的云托管环境中开启一个代理服务,用于和本地api.weixin.qq.com服务,同时和业务服务共享同一个网络,就实现了本地的「开放接口服务」,需要注意,本地调试中只是模拟了业务服务的所处环境,不是真实的线上部署情况。
由于技术原因,本地调试暂不支持 HTTPS 云调用,需要先暂时使用 HTTP 协议进行本地调试在线远程代理ip。
为保证小程序凭证以及小程序敏感接口安全,开放接口服务不允许外网直接访问。 通过本地云调用,会启动与线上版本能力一致的调试镜像,且通过本地调试可以安全地访问内网 VPC 接口。