最近部署在 Azure 上的 VM 经常因为某些原因被停用(Deallocated),遂想着写一个 PowerShell 脚本配置为 Windows 的计划任务来监控 Azure VM 的状态,一旦发现被停用了,自动启动 Azure VM。该脚本将用到 Azure PowerShell
提供的命令集,通过预先创建的 Azure service principal
来自动登录并获取 VM 状态,如果状态是 deallocated
就调用 Start-AzVm
命令来启动 VM,每次运行结果都会记录到本地日志。
我之前使用过 Visual Studio 来部署 Azure Web 站点,VS 和 Azure 的高度集成使网站部署变得十分简单。然而我另一个站点是通过 Gulp 自动构建静态页面、文件的,所以我希望能通过一条命令使 Gulp 自动完成网站的部署,如:gulp deploy
。Azure Web 站点的部署方式有很多选择:Visual Studio、Git、Powershell、FTP、手动部署等。在权衡了利弊之后,我决定采用 Gulp+Git 来实现自动部署站点。每个 Azure Web 站点都允许创建一个 Git 仓库作为部署源,不过这个选项默认是关闭的,Local Git Deployment to Azure App Service介绍了如何从管理界面中开启 Git 仓库以及如何通过 Git 命令将本地站点发布到 Azure 上。本文将重点介绍如何使用 Gulp 将文中的手动部署操作转为自动化脚本。