Python 是否有一种推荐的方法来模拟Metaflow中集成测试的AWS批处理?
我想实现以Metaflow流为特征的集成测试;i、 e.在Docker容器内从头到尾运行流程;理想情况下,这不需要对包含特定步骤上的Python 是否有一种推荐的方法来模拟Metaflow中集成测试的AWS批处理?,python,docker,integration-testing,aws-batch,metaflow,Python,Docker,Integration Testing,Aws Batch,Metaflow,我想实现以Metaflow流为特征的集成测试;i、 e.在Docker容器内从头到尾运行流程;理想情况下,这不需要对包含特定步骤上的@batch装饰器的流进行大量重写 在s3方面,我可以通过设置一个本地s3模拟服务器(例如)来实现这一点,但是对于AWS批处理,没有等效的范例。我想知道,除了声明@resources而不是@batch,其他人如何处理这个问题 我想到的一个解决方案是修补@batch,以便: #my_batch.py:为了便于说明,我还没有真正尝试过这个方法 从metaflow导入批次
@batch
装饰器的流进行大量重写
在s3方面,我可以通过设置一个本地s3模拟服务器(例如)来实现这一点,但是对于AWS批处理,没有等效的范例。我想知道,除了声明@resources
而不是@batch
,其他人如何处理这个问题
我想到的一个解决方案是修补@batch
,以便:
#my_batch.py:为了便于说明,我还没有真正尝试过这个方法
从metaflow导入批次作为metaflow\u批次
从metaflow.metaflow_配置导入metaflow_配置
def批次(*args,**kwargs):
"""
如果没有批=真,则关闭@batch
再一次…为了说明,我还没有真正尝试过这个
"""
如果METAFLOW_CONFIG[“NO_BATCH”]==False:
返回metaflow_批次(*args,**kwargs)
返回lambda func:func
然后只需使用我的batch
decorator,在我的集成元流配置中设置NO_batch=false
:
#my_flow.py
从metaflow导入流,步骤,…#等
#使用my_batch.batch而不是metaflow.batch
从my_package.my_批次导入批次
类MyFlow(流):
@批处理
@台阶
定义我的步骤(…):
... # 等
但是,也许我还缺少一些明显的东西,或者甚至可以采用类似于localstack的方法?我主要尝试了aws相关服务的本地堆栈方法,我发现netflix维护着metaflow服务的docker映像:谢谢!我想最后我会选择批处理补丁解决方案,我会向metaflow发送一份PR,看看他们是否感兴趣:)