Azure函数:如果我想在我的nodejs函数中调用一个linux可执行库,我必须使用Premium计划的自定义linux镜像功能吗?

cxfofazt  于 2023-08-07  发布在  Linux
关注(0)|答案(1)|浏览(108)

我是Azure的新手,如果这很明显,请原谅我。
我正在构建一个Azure linux nodejs函数,它将zip文件从Blob存储下载到本地文件系统,解压缩文件,并使用一个名为GDCM的linux库从解压缩的.dicom文件中提取信息,最后将解压缩文件上传回Blob存储。
在AWS Lambda中,我可以通过为lambda函数创建一个层来很好地做到这一点:
创建图层时,必须将库的所有内容文件捆绑到.zip文件存档中。您可以从Amazon Simple Storage Service(Amazon S3)或本地计算机将.zip存档文件上传到图层。Lambda在设置函数的执行环境时将层内容提取到/opt目录中。
为了实现同样的目标,我是否需要构建一个包含GDCM linux库的自定义linux映像?这意味着我必须使用Premium计划。
或者我可以通过使用消费计划来实现相同的目标吗?

csga3l58

csga3l581#

张贴我的意见作为对社区的回答。

  • 您的函数应用程序项目文件可以使用Azure函数的zip部署功能从a.zip(压缩)上传到Azure。此外,您还可以立即从部署套件档案执行您的函数。此方法省略了将文件从软件包移动到功能应用程序的wwwroot目录的部署阶段。相反,Functions运行时会装载程序包文件,使wwwroot目录的内容为只读。然后在Function应用程序配置中添加WEBSITE_RUN_FROM_PACKAGE- 1设置。此设置将从压缩包中执行您的函数。
  • 利用您的首选工具,您可以a.zip为您的项目创建www.example.com包,并将其上传到Azure中的功能应用程序。可以使用Azure CLI启动推送部署。该命令
az functionapp deployment source config-zip -g <resource_group> -n \
<app_name> --src <zip_file_path>

字符串
x1c 0d1x的数据
请参阅此document以了解Azure函数的zip部署。
关于GDCM库,您可以将the.zip包含库文件的www.example.com软件包上传到您的函数应用程序中。在配置函数的执行环境时,库文件将被提取到/opt目录中。

您可以按照以下步骤操作-

在函数应用程序的项目根目录中,创建一个名为bin的文件夹。
您可以通过在Kudu Console中创建Function应用程序来访问Function应用程序的根目录:-



将GDCM库文件复制到bin文件夹中。将以下行添加到function.json文件中,将www.example.com替换libgdcm.so为GDCM库文件的名称,如下所示:

函数.json

{
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    }
  ],

"entryPoint": "MyNamespace.Function.Run",
"libraryPath": "/home/site/wwwroot/bin/libgdcm.so"

}


使用您选择的工具,a.zip为您的项目创建www.example.com捆绑包。The.zip包应上传到Azure中的功能应用程序。在配置函数的执行环境时,库文件将被提取并放置在/opt目录中。

一种替代方法是将Function应用程序停靠化,并在Azure Function停靠文件中安装自定义linux库,然后进行部署。

相关问题