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

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

【问题讨论】:

    标签: azure azure-functions python-wheel


    【解决方案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。

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

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

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

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

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

    【讨论】:

    • 谢谢,但我想安装一个自定义的 Wheel 文件以及如何在 azure 函数中安装该文件。你能帮我吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    相关资源
    最近更新 更多