首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Nuclio函数与所提供的python大型代码一起使用:可能吗?

将Nuclio函数与所提供的python大型代码一起使用:可能吗?
EN

Stack Overflow用户
提问于 2021-09-23 19:10:06
回答 1查看 44关注 0票数 0

所以我的情况是,我一直在尝试基于一些数据科学管道来分配python的负载,经过大量的搜索和一些QA (Scale out jobs with high memory consumption but low computing power within AWS and using Docker: finding best solution),我得出的结论是,Nuclio可能是一个很好的选择,最有可能构建在kubernetes之上。然而,一个主要的问题仍然存在:

假设我想这样做:

代码语言:javascript
复制
@run_with_nuclio
def step_1(context):
    # in the docker image
    import pandas as pd
    # in my project, using submodules
    from my_big_submodule_1 import do_this
    from my_big_submodule_2 import do_that
    do_this()
    do_that()

我过去遇到过严重的“上下文”问题,所以现在我的超级聪明、超级安全的解决方案是打包(从字面上看,获取项目中的所有py文件,将它们压缩),将它们传递给要执行的函数(在远程环境中),在那里解压缩它们,然后运行函数。

这是“好”的,因为它为我提供了巨大的灵活性。但这种意大利面条的解决方案不是可行的。

有没有办法通过利用Nuclio框架来做到这一点?(函数似乎包含所有信息,从不调用“经典”包中不存在的外部包)

EN

回答 1

Stack Overflow用户

发布于 2021-09-23 19:26:59

如果我正确理解了您的问题,您正在寻找一种方法来在Nuclio函数中利用项目中的外部Python模块?

如果是这样的话,解决方案不是以Nuclio为中心,而是以Docker为中心。您需要确保您的Python模块在Docker环境中可用。有两种方法可以完成此操作:

Docker

  • 将您的代码烘焙到您的Docker镜像中(最简单,也是推荐的)。在此基础上,您应该能够在Nuclio函数中使用它。在Nuclio文档中有一个关于从docs文件部署函数的页面:https://nuclio.io/docs/latest/tasks/deploy-functions-from-dockerfile/。这种方法更简单,因为一切都在您的Docker映像中。但是,如果您的代码发生更改,您将需要重新构建映像(可以通过CI/CD管道实现自动化)。

  1. 使用K8s PVC (或Docker卷)将包含Python模块的目录挂载到容器中,添加到Python路径,然后按预期使用。这种方法比较复杂,并且取决于您的K8s环境。但是,由于代码只是挂载在容器中,因此如果代码发生更改,则不需要重新构建映像。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69305724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档