在Azure中,如何在不使用git的情况下部署functionapp代码?

在Azure中,如何在不使用git的情况下部署functionapp代码?,azure,azure-functions,azure-deployment,azure-node-sdk,Azure,Azure Functions,Azure Deployment,Azure Node Sdk,我创建了一个资源管理器模板,该模板具有运行函数应用程序的资源,基本上使用默认模板来实现此目的,我可以在sites\wwwroot下手动将文件复制到我的文件存储中,当我卷曲functionapp时,它可以工作 但我想知道的是,部署一堆文件来更新实际的functionapp的正确方法是什么,而不是使用git。我可以看到一些如何使用git的例子,但我的问题是,我希望我的所有功能都在一个单一的回购协议中,而不是一堆较小的回购协议(我想要一个单一回购协议) 在Azure中,您只需将.gz文件中的代码上载到

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

但我想知道的是,部署一堆文件来更新实际的functionapp的正确方法是什么,而不是使用git。我可以看到一些如何使用git的例子,但我的问题是,我希望我的所有功能都在一个单一的回购协议中,而不是一堆较小的回购协议(我想要一个单一回购协议)

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

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

编辑:

我终于找到了答案,最重要的答案基本上是正确的,但我还需要找出一些额外的步骤,所以我将把它们放在这里

curl上的特定文档是。我与团队的问题线索是

我实际使用的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 portal UI()中设置用户名和密码,但也可以使用
azure cli
进行设置,如下所示:

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

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

Azure中也允许使用Rest api部署函数应用程序。我们可以使用下面的RESTAPI来实现这一点。我们可以从中获得更多详细信息。我们可以从发布文件中获取ftp使用和密码,关于如何发布文件,请参考另一个


谢谢,昨晚在一次深夜黑客攻击后,我设法找到了答案,但这基本上是正确的,所以我把你作为答案。我更新了我的问题,提供了关于我的解决方案的更多详细信息。还尝试了我们在上讨论的新API
PUT https://{user}:{password}@{FunctionAppname}.scm.azurewebsites.net/api/zip/{path}  # example path:site/wwwroot