微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有推荐的方法来模拟 AWS Batch 以在 Metaflow 中进行集成测试?

如何解决是否有推荐的方法来模拟 AWS Batch 以在 Metaflow 中进行集成测试?

我想实施以 Metaflow 流为特色的集成测试;即在 Docker 容器内从头到尾运行流程;理想情况下,这不需要对包含特定步骤的 @batch 装饰器的流程进行大量重写。

在 s3 方面,我可以通过设置本地 s3 模拟服务器(例如 s3ninja)来实现这一点,但是对于 AWS Batch,没有等效的范例。我想知道,除了声明 @resources 而不是 @batch 之外,其他人如何解决这个问题?

我想到的一个解决方案是这样修补@batch

# my_batch.py: for illustrative purposes,I haven't actually tried this yet

from Metaflow import batch as Metaflow_batch
from Metaflow.Metaflow_config import MetaFLOW_CONfig

def batch(*args,**kwargs):
    """
    Turns @batch "off" if NO_BATCH == True
    again... for illustrative purposes,I haven't actually tried this yet
    """
    if MetaFLOW_CONfig["NO_BATCH"] == False:
        return Metaflow_batch(*args,**kwargs)
    return lambda func: func

然后只需使用我的 batch 装饰器,在我的集成 Metaflow 配置中设置 NO_BATCH = false

# my_flow.py
from Metaflow import Flow,step,... # etc
# use my_batch.batch rather than Metaflow.batch
from my_package.my_batch import batch

class MyFlow(Flow):
   @batch
   @step
   def my_step(...):
      ... # etc

但也许我遗漏了一些明显的东西,或者甚至是我可以采取的类似 localstack 的方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。