【问题标题】:Serverless execution of a perl script?perl 脚本的无服务器执行?
【发布时间】:2018-11-03 10:15:37
【问题描述】:

所以我正在尝试组合一个非常简单的无服务器应用程序来更好地学习架构。这是一个非常基本的事情 - 用户上传 23andme 数据,perl 脚本将 txt 文件转换为 vcf,然后上传到云存储,谷歌基因组学从那里获取它并将其提供给 bigquery 进行注释。使用持久 vm 将其自动化到管道中会很容易,但我希望这里有人会知道我刚刚错过的一些明显的事情

我对如何将其中的大部分自动化到自动管道中有一个不错的想法,但 perl 脚本似乎有点棘手。可能是因为 perl 是少数几种我什至不知道其基本语法的语言之一,但是除了用 Python 重写 23andme-vbf 脚本或废弃这个想法的“无服务器”部分,因为使用持久虚拟机自动化所有这些将非常简单,但我希望这可能是我刚刚错过的显而易见的事情。

过去似乎其他人在这里问过类似的问题,但到目前为止,我还没有找到任何答案。

【问题讨论】:

  • 当您说无服务器时,您的意思是您的软件在某种云中运行,您无需对其进行任何管理,还是您的意思是它在客户端计算机上运行?
  • 我的意思是,这将是一个有效的静态 Web 应用程序,用户提供原始数据文件到该应用程序,此时它将完全由(可能是 Lambda 或 Cloud Functions)处理,然后是 Google Genomics, BigQuery,处理后的结果将返回到客户端 javascript 应用程序进行显示,所有过程中都没有实际配置的虚拟机。

标签: perl google-cloud-platform serverless


【解决方案1】:

即使您知道 Perl 的基本语法,这也很重要。 the Google Cloud supports Perl 的一种方法是运行 a Mojolicious app inside a Perl Docker container。最后,您需要将您的 Perl 脚本包装在将部署到云的 Mojolicious 应用程序中。

【讨论】:

  • 是的,这绝对看起来很重要。最终只是找到了一个从研究生院对 perl 有足够了解的朋友,并让他帮我将脚本翻译成 python。在这一点上,我发现某处显然有一个直接的转换器,我应该从一开始就假设。非常感谢您在任何情况下回答我的问题。
【解决方案2】:

Google Cloud Blog 所述,Google App Engine 支持 Perl

周围有一些示例特别适用于运行 Mojolicious 应用程序,例如 this Github Repo,但我想这在很大程度上取决于您希望如何构建您的解决方案。

在容器中运行 Perl 应用程序可能是最简单的方法。

【讨论】:

    【解决方案3】:

    您可以尝试使用 emscripten 将 perl 代码转换为 javascript 并使用 Cloud Functions 运行它。

    有一些在线工具允许您通过使用 emscripten 创建的解释器运行 perl,运行 javascript。您可以通过在浏览器中粘贴一些 perl 代码来试用它们:

    https://www.shlomifish.org/microperl-web-repl-v1/repl.html
    https://gfx.github.io/perl.js/

    如果您有一个大型 perl 脚本,这可能不是一件容易完成的任务,但可以作为一个起点。

    【讨论】:

    • 谢谢 - 部分原因是我从未真正听说过 Emscripten,这看起来确实很有趣,部分原因是“将 perl 脚本重写或转换为不同的受支持语言”最终证明是是正确的答案,或者至少是我今天下午工作的答案。
    • emscripten 看起来不像 perl-to-javascript 转换器。看起来它将 perl 解释器移植到 LLVM,然后是 JavaScript。它不是将 Perl 代码翻译成 JavaScript,而是使用用 JavaScript 编写的 Perl 解释器执行 Perl 代码。
    • @mob,这完全正确......不知道我是怎么错过的。我会更新答案。
    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 2015-08-20
    • 2017-12-23
    • 1970-01-01
    • 2011-03-04
    相关资源
    最近更新 更多