介绍

本文将介绍抖音云插件PyCharm版本的使用。

使用限制

    1.确保本机安装Docker环境,推荐Windows/Mac/Linux 用户安装Docker Desktop软件(下载链接),并打开软件保证Docker服务正常启动。
    2.下载并安装Jetbrains PyCharm软件,版本要求Professional,且版本为2021.03以上。
    3.本文档基于插件版本为1.5.4,参阅本文档前请将插件更新至1.5.4版本。

件安装

    1.打开PyCharm的设置界面。
    Mac OS用户选择 PyCharm -> Preferences。
    Windows用户选择File -> Settings。
    2.在设置界面中选择 Plugins ,在搜索框中输入 Douyin Cloud ToolKit,点击安装插件

登录

首次打开抖音云插件时需要先完成登录。点击登录按钮,在弹出框中输入登录抖音云控制台的账号密码,完成登录。
在弹出框中选择登录方式,并完成登录,账号需要先在抖音云控制台完成注册开通。
登录完成后,插件配置界面登录状态会更新为 已登录。

项目配置

项目首次使用抖音云插件时,需要选择配置对应的小程序和服务,点击配置按钮,在弹出框中选择对应的小程序和服务,完成配置。
选择完成后,插件配置界面AppService会更新为对应的选择。

刷新配置

如果在抖音云控制台对小程序和服务进行对应的修改后,需要刷新配置。点击刷新配置按钮刷新配置,插件会校验当前配置的有效性,如果没有效需要重新进行配置。

本地容器启动

通过抖音云插件可以将项目部署在本地 Docker 容器中,并且通过抖音云代理可以访问抖音云 dev 环境的数据库资源(比如 MySQL、 Redis、 Mongo 等),而无需开启数据库资源的公网访问,保证数据安全。
下面将介绍如何通过抖音云插件进行本地开发和调试,本文档中将以抖音云官方python语言的Djano demo为例,项目地址:GitHub - bytedance/douyincloud_python3_django_demo

1. 启动抖音云代理

    1.PyCharmRun/Debug Configuraitons中创建抖音云代理配置。
    2.填入对应的名称,点击Apply保存,点击OK完成创建。
    3.选择刚刚创建的抖音云代理配置,点击Run按钮启动抖音云代理。
启动完成,抖音云代理会在本地启动两个代理容器,用于云上云下流量转发。
    websocket 代理容器
    数据库代理容器
打开Docker Desktop,可以看到如下两个代理容器已经被正确启动,并且状态为 Running。

2.配置并启动后端服务

当抖音云代理配置启动完成后,会在当前项目路径下生成两个服务 docker 相关的配置文件,如下图所示:
    dycloud.Dockerfile
    dycloud-docker-compose.yml
注意
    如果代理启动完成后,在Project窗口中未显示生成的两个文件,可以在Project窗口右键 -> ReLoad From Disk点击刷新。
    如果本地已经存在同名文件,则抖音云代理不会生成该文件。如果想要重新生成该文件,需要手动删除项目下的同名文件。
说明
    通过生成的dycloud.Dockerfile以及dycloud-docker-compose.yml文件,将后端服务通过docker在本地启动,即可实现本地访问云端数据库的调试,具体可以参考如下流程。
配置文件的内容如下:
dycloud.Dockerfile
# python构建的基础镜像 FROM public-cn-beijing.cr.volces.com/public/python:3.9.15 WORKDIR /opt/application # 拷贝requirements.txt至当前目录下 COPY requirements.txt /opt/application # 安装依赖 RUN pip install --upgrade pip && pip3 install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple --trusted-host=pypi.mirrors.ustc.edu.cn/simple # 环境变量,从云端dev环境拉取,需要手动填充密码等相关信息 ENV MYSQL_USERNAME=test ENV MYSQL_ADDRESS=dycloud-local-proxy:3306 ENV MONGO_PASSWORD=请自行输入对应密码信息 ENV MONGO_ADDRESS=dycloud-local-proxy:3717 ENV CLOUD_ENV=DEV ENV SERVICE_ID=1j7tusjpcre4c ENV REDIS_PASSWORD=请自行输入对应密码信息 ENV REDIS_ADDRESS=dycloud-local-proxy:6379 ENV MONGO_USERNAME=root ENV REDIS_USERNAME=default ENV MYSQL_PASSWORD=请自行输入对应密码信息 # 拷贝项目所有文件至/opt/application COPY ./ /opt/application CMD ["python", "manage.py", "runserver", "--noreload", "0.0.0.0:8000"]
说明
    第9行 - 第19行对应于开发者所配置的service在抖音云dev环境的环境变量,其中MYSQL_ADDRESSMONGO_ADDRESSREDIS_ADDRESS对应的地址修改为了dycloud-local-proxy
    这是为了进行流量转发,开发者在项目中需要通过环境变量的方式来获取访问数据库的地址,进而在本地调试时实现访问云端数据库。
    由于安全原因,需要开发者自行填入访问数据库的对应的密码信息,参见上述示例的第11行、第15行以及第19行。
dycloud-docker-compose.yml
services: service: build: context: . dockerfile: dycloud.Dockerfile container_name: service extra_hosts: - config-center.dycloud.run:17.100.0.3 - developer.toutiao.com:17.100.0.3 - open.douyin.com:17.100.0.3 - webcast.bytedance.com:17.100.0.3 - ws-push.dycloud-api.service:17.100.0.4 networks: dycloud0: ipv4_address: 17.100.0.2 ports: - mode: ingress target: 8000 published: "8000" protocol: tcp volumes: - type: bind source: /Users/bytedance/Code/github/django_python3_demo target: /opt/application bind: create_host_path: true networks: dycloud0: name: dycloud0 external: true
说明
    上述配置文件主要涉及本地服务容器启动时的一些配置信息,包括容器网络信息、hosts信息等。

2.1 在PyCharm中完成Python相关配置

打开PyCharm设置界面,找到Python Interpreter设置,点击Add Interpreter添加一个解释器:
可以选择Docker...或者Docker Compose...新建一个Interpreter。开发者可自行按照下面2.1.1或者2.1.2小节的内容,创建一个Interpreter

2.1.1 选择Docker

说明
    Dockerfile配置项:选择刚刚生成的dycloud.Dockerfile文件。
    Context folder配置项:默认为.,可忽略。
展开Optional选项:
    Image tag配置项:用于标识构建的镜像,可自定义填写,上图填写service
    Run options配置项:填充如下内容:
--entrypoint= --rm -p 8000:8000 --network dycloud0 --ip 17.100.0.2 --add-host config-center.dycloud.run:17.100.0.3 --add-host developer.toutiao.com:17.100.0.3 --add-host open.douyin.com:17.100.0.3 --add-host webcast.bytedance.com:17.100.0.3 --add-host ws-push.dycloud-api.service:17.100.0.4
    勾选Rebuild image automatically every time before running code
点击Next执行下一步:
等待执行完成,点击Next继续下一步:
点击Create,完成创建。

2.1.2 选择Docker Compose

Configuration files选项中,选择刚刚生成的dycloud-docker-compose.yml文件:
点击Next,等待执行:
继续点击Next
点击Create完成创建。

2.1.3 启动服务

PyCharm Run/Debug Configurations中创建一个Django Server
选择刚刚创建的Interpreter
完成余下的配置,点击OK完成配置创建。
点击Run/Debug按钮启动服务或者断点调试服务:
观察服务日志,当服务正常启动时,可以在Docker Desktop中看到服务docker已经正确启动,并且状态为Running

本地接口调试

抖音云插件支持本地接口调试,您需要先参照【本地容器启动】通过抖音云插件启动服务;点击接口调试按钮打开接口调试界面:
在接口调试界面中,配置要请求的接口,点击调试按钮完成调试请求。
    在1处选择要请求的http method,抖音云插件支持get/post。
    在2处输出要请求的http url,只需要输入请求方法的path,比如/test
    点击4勾选模拟选择用户态登录,需要提前在抖音云控制台绑定抖音账号,如果没有绑定,点击5跳转完成绑定。
    在6处可以自定义配置请求的Header与请求的Query。
    在7处可以填写请求的Body参数,只有POST请求才会允许填写。
    点击3处调试按钮发送请求,将会在8处显示请求的具体结果,样例如下:
注:您也可以在启动服务后通过Postmanhttp请求调试工具来测试您的接口。

一键部署

抖音云插件支持将项目工程一键部署到抖音云端的dev环境,在工具栏中点击一键部署按钮,并在弹出框中完成镜像版本和发布备注的填写,点击OK开始一键部署。
填写对应的镜像标签和发布备注,点击OK按钮开始部署。
点击OK后,会在Douyin Cloud Console中实时显示部署的日志信息,便于查看部署情况。

常见问题

抖音云代理启动失败,如何排查?

常见的启动失败的原因如下,开发者可自行根据错误信息自行解决,下面列举一些常见的失败信息:
关键错误信息
解决办法
初始化docker失败
检查本机Docker Desktop软件是否正常启动
当前小程序下未启动本地调试功能
本地调试功能未打开,请前往抖音云控制台 -> 服务列表页,点击【本地调试】按钮确认功能是否打开。
如果仍然无法解决,可以通过提交工单解决。

代理启动后,找不到dycloud-local-proxy容器

停止抖音云代理,并重新运行抖音云代理配置,观察dycloud-local-proxy容器是否正确启动。

本地启动后访问数据库报错

按照如下步骤排查:
    1.首先检查抖音云代理是否正确启动,代理容器是否正确启动且状态为Running;如果不满足,需要重新启动抖音云代理。
    2.检查项目访问数据库的方式,本地调试模式下访问数据库的地址会通过环境变量的方式修改为抖音云数据库代理容器dycloud-local-proxy