如何将自定义轮文件安装到天蓝色函数中?

Posted

技术标签:

【中文标题】如何将自定义轮文件安装到天蓝色函数中?【英文标题】:How to install an custom wheel file into azure functions? 【发布时间】:2022-01-21 12:42:59 【问题描述】:

我有一个天蓝色的功能。我想在函数中安装一个 python 外部***文件。在本地,我使用 pip install 安装。我尝试将文件放在 python 包中并尝试使用 requirements.txt 文件进行安装,但没有部署该函数。

【问题讨论】:

【参考方案1】:

您可以按照以下步骤将外部滚轮安装到 azure 函数中:

来自azure python function 的这个 github 示例。

您可以向https://function app name.azurewebsites.net/api/function name 发出HTTP 请求,并在克隆后测试上述示例输出。

添加需要的库:

我们可以使用pip 在我们的 Azure 环境中安装我们的模块。

我们需要两个库,pycrypto 和 hdfk。 Microsoft 有一个 doc,关于如何在本地 Windows 环境中编译模块。按照这些说明生成您在接下来的步骤中需要的 pycrypto ***。

要告诉 pip 要安装什么,我们需要将 requirements.txt 文件添加到我们项目的根目录和已编译的***。

这是需求文件的样子。

--find-links wheelhouse
pycrypto==2.6.1
hkdf==0.0.3

而且更新后的项目结构现在看起来有点像这样

.
+--EDIGenerator
   +--function.json       
   +--run.py              
+--lib                     
   +--AzureHTTPHelper.py
+--wheelhouse
   +--pycrypto-2.6.1-cp27-none-win32.whl
.gitignore
host.json
README.md
requirements.txt

同时更新 run.py 以包含生成 eid 的代码,您可以在此处查看实现:https://github.com/myquay/Sample.Azure.Functions.Python/blob/master/EDIGenerator/run.py

注意:在 Azure 中,我们将在 virtual environment 中安装所有这些模块。 所以 Python 知道要从这个位置导入我们的库,请确保在导入这些库的任何文件中都有 sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..', 'env/Lib/site-packages')))。_

在我们的 Azure Functions 实例上安装库:

我们将手动运行我们的 Kudu 脚本:

通过单击“功能应用设置”下的“转到 Kudu”按钮打开 kudu。

    导航到您的函数文件夹cd D:\home\site\wwwroot

    设置你的python虚拟环境,python可执行文件只是安装在正常的地方。 D:\Python27\Scripts\virtualenv.exe env

    激活你的虚拟环境"env/Scripts/activate.bat"

    从 requirements.txt pip install -r requirements.txt 安装

注意:*如果您收到错误“Unable to find vcvarsall.bat”,则表示您上传的***不兼容。确保为正确版本的 Python 编译***

【讨论】:

谢谢,但我想安装一个自定义的 Wheel 文件以及如何在 azure 函数中安装该文件。你能帮我吗?

以上是关于如何将自定义轮文件安装到天蓝色函数中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义函数加载到 R 中的 foreach 循环中?

如何将自定义挂钩添加到 Woocommerce 的自定义插件

如何将自定义对象的集合存储到 user.config 文件中?

如何将自定义按钮添加到调用 JavaScript 函数的工具栏?

使用 pkgbuild 将自定义步骤添加到安装

如何将自定义 jar 文件添加/复制到 Kafka MirrorMaker 中?