Dagster多项目AWS部署如何替代repo.py启动gRPC服务
Dagster AWS部署多代码位置配置解决方案
针对workspace.yaml配置多Python包的需求
dagster api grpc 命令原生不支持 -w 参数直接加载workspace.yaml,因为该命令设计初衷是启动单个代码位置的gRPC服务,而非批量加载工作空间下的所有代码位置。
要实现多Python包的代码加载,正确操作如下:
- 给每个独立的Python代码包单独启动一个gRPC服务,分配不同端口,比如包1用4000端口,包2用4001端口,对应命令分别为:
# 包1启动命令 dagster api grpc -h 0.0.0.0 -p 4000 -m project_01 # 包2启动命令 dagster api grpc -h 0.0.0.0 -p 4001 -m project_02 - 然后在dagster实例的
workspace.yaml中配置所有gRPC服务端点即可,示例配置如下:load_from: - grpc_server: host: 127.0.0.1 port: 4000 location_name: project_01 - grpc_server: host: 127.0.0.1 port: 4001 location_name: project_02
针对dagster api grpc -m提示模块不存在的问题
该命令要求传入的模块名必须是Python可正常导入的有效模块,遇到报错可按以下顺序排查修复:
- 首先确认你的项目包已经安装到当前Python环境中,可在项目根目录执行
pip install -e .完成开发模式安装,安装后执行python -c "import project_01"验证是否可以正常导入 - 注意Python模块名不支持横杠,你用到的
project-01如果是目录名/包名,需要改为下划线project_01,否则Python无法识别为合法模块名 - 确认模块内存在暴露的仓库定义,你可以在包的
__init__.py中加入from .repo import *将仓库定义暴露到模块顶层,或者启动命令时直接指定模块内的仓库文件路径,比如dagster api grpc -h 0.0.0.0 -p 4000 -m project_01.repo
内容的提问来源于stack exchange,提问作者zafar
相关产品推荐
相关产品推荐

