我创建了一个资源管理器模板,该模板具有运行功能应用程序的资源,基本上使用默认模板为此目的,我可以手动将文件复制到我的文件存储中,sites\wwwroot
并且当我卷曲功能应用程序时它可以工作。
但我想知道的是,部署一堆文件来更新实际功能应用程序的正确方法是什么,而不是使用 git。我可以看到一些有关如何使用 git 的示例,但我的问题是我希望将所有功能都放在一个存储库中,而不是一堆较小的存储库(我想要一个 monorepo)。
在 Azure 中,您只需将 .gz 文件中的代码上传到 S3,然后在创建 lambda 时为其提供 zip 的路径。然后稍后有一个简单的 API,您可以调用它来推送一个新的 zip 和 presto。
azure 中的等效 API 是什么,只需给它一个 zip 并让它解压缩正确目录中的文件?
编辑:
我终于设法弄清楚了,最重要的答案基本上是正确的,但是我必须弄清楚一些额外的步骤,所以我会把它们放在这里。
我使用的实际 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 中设置用户名和密码(在此处记录),但您也可以azure-cli
这样设置:
$ az login
$ az webapp deployment user set --user-name abc --password xyz
这就是诀窍,一旦您设置了部署凭据,您就可以在基本身份验证中使用它们来调用 kudu api。