【问题标题】:In Azure, how do I deploy functionapp code without using git?在 Azure 中,如何在不使用 git 的情况下部署 functionapp 代码?
【发布时间】:2017-10-06 03:49:29
【问题描述】:

我创建了一个资源管理器模板,该模板具有运行功能应用程序的资源,基本上使用默认模板来实现此目的,我可以手动将文件复制到sites\wwwroot 下的文件存储中,并且当我卷曲功能应用程序时它可以工作。

但我想知道的是,部署一堆文件以更新实际功能应用程序的正确方法是什么,而不是使用 git。我可以看到一些有关如何使用 git 的示例,但我的问题是我希望将所有功能都放在一个存储库中,而不是一堆较小的存储库(我想要一个 monorepo)。

在 Azure 中,您只需将 .gz 文件中的代码上传到 S3,然后在创建 lambda 时为其指定 zip 的路径。然后稍后有一个简单的 API,您可以调用它来推送一个新的 zip 和 presto。

azure 中的等效 API 是什么,只需给它一个 zip 并让它解压缩正确目录中的文件?

编辑:

我终于弄明白了,最佳答案基本上是正确的,但是我必须弄清楚一些额外的步骤,所以我会把它们放在这里。

curl 上的具体文档是here。我与团队的问题线程是here

我使用的实际 curl 调用是这样的:

$ curl -XPUT --data-binary @index.js.zip "https://abc:xyz@ugh.scm.azurewebsites.net/api/zip/site/wwwroot/hello"

注意事项:

  • 您必须使用--data-binary-d 会导致错误的有效负载
  • 要在我使用的 bash 中创建 zip:$ zip index.js.zip index.js
  • abc:xyz 是部署用户名和密码
  • 正确的发送路径是site/wwwroot/hello,其中hello是函数的名称。

您可以在 azure 门户 UI (documented here) 中设置用户名和密码,但也可以使用 azure-cli 进行设置,如下所示:

$ az login
$ az webapp deployment user set --user-name abc --password xyz

这就是诀窍,一旦您设置了部署凭据,您就可以在基本身份验证中使用它们来调用 kudu api。

【问题讨论】:

    标签: azure azure-functions azure-deployment azure-node-sdk


    【解决方案1】:

    在 Azure 中也允许使用 Rest API 部署 Function App。我们可以使用下面的 Rest API 来做到这一点。我们可以从Kudu REST API 获得更多详细信息。我们可以从发布文件中获取ftp使用和密码,关于如何发布文件,请参考另一个SO thread

    PUT https://{user}:{password}@{FunctionAppname}.scm.azurewebsites.net/api/zip/{path}  # example path:site/wwwroot
    

    【讨论】:

    • 谢谢,我昨晚在深夜黑客攻击后设法弄清楚了,但这基本上是正确的,所以我将你标记为答案。我更新了我的问题,提供了有关我的解决方案的更多详细信息。
    • 还可以尝试我们在here 上讨论过的新的zip deployment API
    猜你喜欢
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 2022-01-06
    • 2015-03-29
    • 2021-03-22
    • 2022-12-16
    • 1970-01-01
    • 2016-06-03
    相关资源
    最近更新 更多