| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 【Azure - App Service】如何使用PowerShell一键部署前端代码到微软Azure云的App Service上 -> 正文阅读 |
|
[开发工具]【Azure - App Service】如何使用PowerShell一键部署前端代码到微软Azure云的App Service上 |
前言前段时间由于项目需求总结了Azure上的Local Git部署方式,但是也不是每个项目都适合这种方式。不同项目有自己的特点,需要使用不同的不是方式。好在Azure App Service 提供了多种内置的部署方式很App的运行方式。 ?这次要使用的就是使用压缩包的形式进行部署,代码是React前端项目。 使用Local Git方式部署失败那至于为什么不使用Local Git部署方式?呢?主要还是这里面也有很多坑,之前使用的Local Git方式部署的是.net core的项目,可能是这东西是微软出的原因,App Service 对其支持特别好,只要把代码push上去,它就能自动的帮你编译和部署。 但是当我用同样的方式部署部署的时候总是失败,而且耗时很长。后来又通过.deployment 文件设置了自定义部署,但是仍然不行,各种出错。所以期待有高手过来指导一下。 Local Git部署-死。 使用FTP方式部署在折腾了一圈Local Git方式部署失败之后,尝试转换下方向。把目标对准了FTP方式部署,为啥呢?因为之前发现在服务器上build+deploy没办法一气呵成,尤其是build的时候各种出错。即使解决了对应的错误,又出了内存不足的错误,所以相对来讲部署质量没办法控制。 而看到微软官方文档上有FTP部署的方式,那么是不是可以把build放到本地,然后直接把build好的文件直接上传到服务器呢?因为这样的话就能创建一个本地的脚本,每次部署的时候只需要运行一下这个脚本就行了,也省了不少事。 结果折腾了一圈下来还是有问题。 一开始使用PowerShell的module PSFTP来上传build好的文件,但是最后发现有部分文件能上传上去,有部分不能上传。然后使用FTP客户端又试了几遍,还是不行,FTP客户端显示部分文件被占用。手动停掉App Service之后,可以上传,估计是App Service在运行的时候把部分文件占用了的原因。 然后尝试在脚本中加入 az webapp start/az webapp stop 命令在上传的前后停止和启动App Service 但是还是没办法正常上传。 FTP部署-死。 使用ZIP方式部署后来通过观察VSCode插件的部署,似乎每次部署都会生成zip文件再往Azure上发布。那我可不可以自己也是用这种方式来试试呢?然后查了一下微软的官方文档确实也支持zip方式部署。而且Azure Cli就有这个命令 az webapp deploy。 1. Azure Cli部署命令非常简单,制定app service 对应的Resource Goup, App Name以及zip包的路径就行。
当然为了确保部署能够成功,最好在这个代码之前再加上一个。
?但是,但是。。。这个命令还是不成功啊。WTF... 试了n回,尝试了各种方法,Google也没找到对应的方法。希望有解决这个问题的大神分享一下。 az webapp deploy - 死。? 2. Azure PowerShell部署在查看微软官方文档的时候发现除了可以使用Azure Cli还可以使用Azure PowerShell,这当然是我熟悉的方式了。怀着试试也不会怀孕的想法,试了一下这个命令。 ?然后,病狗。成功了^_^。 这个命令跟Azure Cli的使用方式几乎一模一样也是3个参数,Resource Group, App Name, 压缩包路径。
在生成压缩包的时候要稍微注意一下,App Service会把解压后的东西直接放到wwwroot目录下,换句话说,压缩包的跟路径应该跟wwwroot目录是一致的。也是就说Zip包的跟路径就是你应用程序运行的跟路径,也是部署的跟路径。 整合编译部署的脚本既然问题已经得到解决,那么接下来就是把它做成一个脚本,以后使用的时候就能更方便了。也不用依耐别人去部署了。废话不说上代码 1. 在App根目录下面新建build.ps12. 输入以下内容
这个脚本依赖于Azure PowerShell所以在使用之前需要先安装Azure PowerShell。? 移步下面的链接来安装Azure PowerShell。 https://github.com/Azure/azure-powershell/releaseshttps://github.com/Azure/azure-powershell/releases 3. 脚本使用
参数说明-ResourceGroup 资源组名字 -AppName App Service 的名字 -Deploy 是否发布到Azure -Pull 是否在build之前先拉取代码 -NoBuild 如果代码没有更新只是想重新部署,可以使用这个参数来节省时间 -Clear 是否清除build目录 使用举例:先build再部署
Pull, Build + Deploy
?只部署
?只build
?Clear,Pull ,?Build + Deploy
? 总结本文总结了几个Azure部署方式的坑,以及如何使用Azure PowerShell来部署编译打包后的文件到Azure服务器上。最后分享了一下整合的PowerShell脚本。 Azure Cli和FTP部署失败的问题尚未解决,期待高手分享。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:44:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |