介绍
我的场景是我想跨多个项目重用 Azure DevOps 中的存储库中的共享代码。我已经构建了一个管道,该管道将 awheel
作为工件生成,因此我可以将其下载到其他管道。
情况
目前我已经成功设置了一个部署 Python Function App 的管道。该应用程序运行良好且稳定。我使用SCM_DO_BUILD_DURING_DEPLOYMENT=1
and ENABLE_ORYX_BUILD=1
来实现这一点。
我现在处于想要使用介绍中提到的工件(Python/pip 轮)的位置。我在管道中添加了一个步骤,并且能够成功下载工件。下一步是确保在我的Python Function App
Zip Deployment
. 这就是我坚持的地方。
我的 zip 的结构如下所示:
__app__
| - MyFirstFunction
| | - __init__.py
| | - function.json
| | - example.py
| - MySecondFunction
| | - __init__.py
| | - function.json
| - wheels
| | - my_wheel-20201014.10-py3-none-any.whl <<< this is my wheel
| - host.json
| - requirements.txt
问题
我尝试添加命令,例如POST_BUILD_COMMAND
并PRE_BUILD_COMMAND
让 pip install the wheel,但是当我使用命令时,似乎找不到包(由 Oryx/Kudu 找到):
-POST_BUILD_COMMAND "python -m pip install --find-links=home/site/wwwroot/wheels my_wheel"
Azure DevOps 不会引发任何异常或错误消息。就在我执行该函数时,我得到一个异常说:
Failure Exception: ModuleNotFoundError: No module named 'my_wheel'.
我的问题是如何更改我的解决方案以确保构建能够正确安装 my_wheel。
旁注:不幸的是,我无法使用 Azure DevOps 的 Artifacts 源来发布 my_wheel 并让 pip 使用该源。