我们编写了一个基于Gulp的构建脚本,用于编译我们的C#Azure功能应用程序,从中创建一个.zip文件,并通过Kudu API将其部署到Azure。
在构建应用程序的相关文件并将其复制到deploy文件夹后,它看起来像这样:
- host.json
- Function01
|- function.json
|- Function01.dll
|- Dependency.dll
- Function02
|- function.json
|- Function02.dll
|- Dependency.dll
然后将其压缩并部署到Kudu,如下所示:
- Delete `site/wwwroot` to get rid of current state
- Recreate `site/wwwroot`
- Upload created .zip file to `site/wwwroot`
这个脚本对我们基于Javascript的函数应用程序非常有用,但对于C#,有时会发生运行时没有获取新部署的二进制文件但继续使用旧的二进制文件。重新启动应用程序也无济于事。我们每次都不会遇到这种情况,但可能只有五分之一。运行时是否在某处缓存二进制文件,还是需要更改存储二进制文件的文件夹?
所有开发者都在使用VS for Mac。我们没有Windows机器,也不想直接从VS部署,而是通过Jenkins服务器使用我们的Continuous Deploy管道。