如何下载 Azure Function (Python) .zip 文件?

How to download Azure Function (Python) .zip file?

文档 here(自 2018 年起)说从门户单击 Download app content 以检索 Azure 函数的 .zip 文件。

但是,这个选项对于我的 Python 函数是灰色的:

该文档继续提供使用 REST API 和以下 url https://<function_app>.scm.azurewebsites.net/api/zip/site/wwwroot/.

检索 .zip 文件的替代方法

不幸的是,这会下载一个 download.zip 文件,其中仅包含 hosts.json 文件,而不是函数代码和相关文件。

那么,如何从 Azure 门户、REST API 或 scm 后端下载我的 Python 函数作为 .zip 文件?

编辑 1: 到目前为止尝试这两个建议的解决方案也没有结果。

更新:

根据您的评论,您说您的函数应用程序只有 'host.json' 文件。所以你之前没有部署 azure 函数?或者你部署失败? Ftps(高级计划和应用程序服务计划)或一个一个地复制文件是为了获取 zip 文件的内容。从 blob 存储中的 'scm-releases' 容器获取 zip 文件应该是正确的方法。

这是 python 天蓝色函数的 structure。所以只要获取所有的文件就可以得到zip文件的内容。如果您在门户网站上检查时没有找到任何东西,我想您可能部署失败或之前从未部署过函数应用程序?如果您之前部署成功,zip 文件应该在 'scm-releases' 容器中生成。

原答案:

python azure 功能的'Download app content' 按钮似乎现在不可用。您提供的文档更新于 2018 年 8 月 12 日,但是 python 的 azure function 支持是从 August 18, 2019 开始的,因此 'Download function app files' 的文档可能不适用。我想也许你可以向官方提交工单,这个按钮不可用。

您可以使用 ftp 获取应用内容,但仅限高级计划和应用服务计划:

如果是基于消费计划,需要在每个触发器中点击,复制代码。

触发器外的文件在这个地方:

如果您有权访问函数的存储帐户,则只需从 scm-releases 容器下载即可。

您可以在门户(应用程序设置)的配置下的 AzureWebJobsStorage 参数中找到帐户连接字符串。

终于!想通了。

下载已部署的 Python Azure 函数的 .zip 文件:

  • 转到https://<function-app-name>.scm.azurewebsites.net/api/vfs/data/SitePackages/
  • 主体看起来像:
[
    {
        "name": "20210507210231.zip",
        "size": 22920602,
        "mtime": "2021-05-07T21:03:30.9505229+00:00",
        "crtime": "2021-05-07T21:03:30.9505229+00:00",
        "mime": "application/x-zip-compressed",
        "href": "https://<function-app-name>.scm.azurewebsites.net/api/vfs/data/SitePackages/20210507210231.zip",
        "path": "/home/data/SitePackages/20210507210231.zip"
    },
    {
        "name": "20210512182244.zip",
        "size": 91280954,
        "mtime": "2021-05-12T18:22:46.4017597+00:00",
        "crtime": "2021-05-12T18:22:46.4017597+00:00",
        "mime": "application/x-zip-compressed",
        "href": "https://<function-app-name>.scm.azurewebsites.net/api/vfs/data/SitePackages/20210512182244.zip",
        "path": "/home/data/SitePackages/20210512182244.zip"
    },
    {
        "name": "20210520163007.zip",
        "size": 22248931,
        "mtime": "2021-05-20T16:31:13.4771898+00:00",
        "crtime": "2021-05-20T16:31:13.4771898+00:00",
        "mime": "application/x-zip-compressed",
        "href": "https://<function-app-name>.scm.azurewebsites.net/api/vfs/data/SitePackages/20210520163007.zip",
        "path": "/home/data/SitePackages/20210520163007.zip"
    },
    {
        "name": "packagename.txt",
        "size": 18,
        "mtime": "2021-05-20T16:31:20.8453653+00:00",
        "crtime": "2021-05-20T16:31:20.8453653+00:00",
        "mime": "text/plain",
        "href": "https://<function-app-name>.scm.azurewebsites.net/api/vfs/data/SitePackages/packagename.txt",
        "path": "/home/data/SitePackages/packagename.txt"
    },
    {
        "name": "packagepath.txt",
        "size": 23,
        "mtime": "2021-05-12T18:22:46.5567703+00:00",
        "crtime": "2021-05-12T18:22:46.5567703+00:00",
        "mime": "text/plain",
        "href": "https://<function-app-name>.scm.azurewebsites.net/api/vfs/data/SitePackages/packagepath.txt",
        "path": "/home/data/SitePackages/packagepath.txt"
    }
]
  • hrefURL显示最新的mtime下载文件
  • 注意:最新的时间戳在列表中靠后(至少对我而言)

已记录 here