如何在AWS EC2实例中部署RASA?含部署方式及代码托管问题咨询
AWS EC2 部署 RASA 指南及常见问题解决
一、部署方式选择:Docker vs 直接部署
Docker 部署优势
- 环境一致性:不管EC2实例是什么系统,Docker容器能保证RASA运行环境完全一致,彻底避免依赖版本冲突
- 快速部署/回滚:镜像打包好后,拉取就能启动,更新或回滚只需要切换镜像版本,操作成本极低
- 资源隔离:容器之间互不干扰,方便后续扩展多实例或搭配Rasa X等关联服务
- 运维简单:无需在EC2上手动折腾Python、各类依赖库,减少环境配置出错概率
直接部署优势
- 资源占用略低:省去Docker容器的额外开销,适合配置较低的EC2实例(比如t2.micro)
- 调试便捷:直接在EC2系统中操作,查看日志、修改代码更直接,适合开发阶段快速迭代调试
- 无Docker学习成本:如果团队完全不熟悉Docker,直接部署上手更快
场景建议
- 生产环境:优先选Docker,稳定性和可维护性更高
- 开发/测试环境:两种都可以,追求效率选直接部署,要模拟生产环境选Docker
二、AWS EC2 部署 RASA 步骤(两种方式)
Docker 部署步骤
- 在EC2实例上安装Docker:
sudo apt update sudo apt install docker.io -y sudo systemctl start docker sudo systemctl enable docker - 拉取RASA官方镜像:
docker pull rasa/rasa:latest-full - 运行RASA容器(假设本地有RASA项目目录
./rasa-project):docker run -d -p 5005:5005 -v $(pwd)/rasa-project:/app rasa/rasa:latest-full run --enable-api - 验证:访问
http://<EC2公网IP>:5005,返回RASA API的状态信息即为成功
直接部署步骤
- 配置EC2环境(以Ubuntu为例):
sudo apt update sudo apt install python3-pip python3-venv -y - 创建虚拟环境并激活:
python3 -m venv rasa-env source rasa-env/bin/activate - 安装RASA:
pip install rasa - 上传RASA项目到EC2(用
scp或Git克隆),进入项目目录后启动:rasa run --enable-api --cors "*" - 验证:同样访问
http://<EC2公网IP>:5005检查状态
三、RASA项目上传Git/GitLab 常见问题及解决
1. 大文件无法上传(如模型文件)
- 问题:RASA训练后的模型文件通常较大,Git默认拒绝大文件推送
- 解决:
- 使用Git LFS(大文件存储):
- 安装Git LFS:
sudo apt install git-lfs - 初始化:
git lfs install - 追踪模型文件:
git lfs track "models/*.tar.gz" - 提交
.gitattributes文件,再推送代码
- 安装Git LFS:
- 或者将模型文件排除在Git之外,在
.gitignore中添加:models/,模型单独存储到S3等云存储服务
- 使用Git LFS(大文件存储):
2. 依赖文件冲突或遗漏
- 问题:上传项目后,其他人部署时出现依赖缺失
- 解决:
- 生成
requirements.txt:在本地虚拟环境中执行pip freeze > requirements.txt,将该文件加入Git - 若用Docker,确保
Dockerfile和docker-compose.yml都加入Git,保证环境可完全复现
- 生成
3. Git推送时权限被拒
- 问题:GitLab/GitHub提示权限不足无法推送
- 解决:
- 检查本地Git配置的用户名邮箱是否与平台一致:
git config --list - 改用SSH密钥登录:生成SSH密钥后,将公钥添加到GitLab/GitHub的账户设置中
- 若用HTTPS,确保输入的用户名密码正确,或者使用个人访问令牌(PAT)替代密码
- 检查本地Git配置的用户名邮箱是否与平台一致:
4. 敏感信息泄露(如API密钥)
- 问题:项目中的敏感配置(如数据库密码)被误上传到Git
- 解决:
- 创建
.env文件存储敏感信息,在.gitignore中添加.env - 使用环境变量替代硬编码的敏感信息,RASA支持从环境变量读取配置
- 创建
内容的提问来源于stack exchange,提问作者Yuvaraj Arumugam
相关产品推荐
相关产品推荐

