如何使用内部 pypi build/deploy Python Azure Function App

How to build/deploy a Python Azure Function App using an internal pypi

我正在使用命令 func azure functionapp publish 将我的 python 函数应用程序发布到 Azure。据我所知,该命令仅打包源代码并将其传输到 Azure,然后在 Azure 的远程计算机上“构建”并部署函数应用程序。构建阶段包括从 pypi 收集依赖项。有没有办法覆盖它寻找这些依赖项的位置?我想将它指向我的 ow pypi 服务器,或者,在我的源代码树中本地提供轮子并让它使用它们。我有几个 questions/problems:

  1. 我的假设是否正确?
  2. 假设它们是,这可能吗?如何实现?

我尝试了一些东西,阅读了一些文档,查看了 CLI 工具中的各种 --help 选项,我设置了一个 pip.conf 文件,我已经验证了它的有效性对于本地 pip 使用,然后故意“破坏它”并尝试查看发布是否会失败(它没有,所以这让我相信它忽略了 pip.conf,或者构建(并且依赖项的收集发生在远程端)。我不知所措,任何提示、指示或答案都将不胜感激!

您可以添加额外的 pip 源以指向您自己的 pypi 服务器。检查 https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-python#remote-build-with-extra-index-url

带有额外索引的远程构建 URL: 当您的包可从可访问的自定义包索引中获得时,请使用远程构建。发布前,请确保 create an app setting named PIP_EXTRA_INDEX_URL. The value for this setting is the URL of your custom package index. Using this setting tells the remote build to run pip install using the --extra-index-url option. To learn more, see the Python pip install documentation.

您还可以将基本身份验证凭据与额外的包索引 URLs 一起使用。要了解更多信息,请参阅 Python 文档中的 Basic authentication credentials

关于引用本地包,那也是可以的。检查 https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-python#install-local-packages

我希望你的两个问题现在都能得到解答。