node.js - 自动将节点 js 应用部署到 azure(无 github)
问题描述
Azure 应用服务: Linux 服务器、Node JS 实例
应用: Node.js
前提条件:
- 未提供登录凭据。客户只给我们发布设置文件。
- 直接 FTP 访问不会授予修改或添加文件的权限(仅读取和下载)
- 由于我们公司的政策,我们无法将代码直接链接到 GitHub/Azure 客户端中的任何源管理系统。代码必须直接从本地部署。
部署方式:
Kudu API 发布 zip 文件(在上述限制下我们能想到的唯一方法)
挑战:
- 每次我们进行部署时,旧文件和上传的 zip 文件都不会被删除
- 每次我们进行部署时,我们都需要让客户端运行命令
npm install
(如果有新的包) - 每次部署时,都需要让客户端“重启应用服务”才能生效
期待:
考虑到约束,我们如何使挑战(1)、(2)和(3)自动化。我期待在通过 Kudu API 进行每个 zip 部署后,我们可以在客户端 azure 中设置一些 Posthook 脚本?并且可能已经有 posthook 脚本的模板。
例如:在我压缩部署后,Azure 将自动检测并运行脚本,如下所示:
- 删除旧文件,压缩解压,解压完成后删除压缩文件
npm install
- 重启应用
并且可能根据返回的脚本错误消息返回任何错误。
这是否可能,是否有任何文档,或者是否有任何我不知道的更直接的方法。
解决方案
推荐阅读
- ios - react native [[DEFAULT]] firebaseapp 未初始化 react-native-firebase
- python - ImportError:无法导入名称“SimpleCookie”错误
- join - Doctrine Query Builder 嵌套 orX 和 andX 条件与连接
- android - Firebase PhoneAuth Signout 后 Firebase 数据库侦听器无法正常工作
- android - 安装无需用户操作即可一直运行的服务,即使在重新启动后也是如此
- javascript - 在angularjs中对月份和年份列进行排序
- android - 滚动 Listview 中的文本值时正在更改
- php - Laravel5.6 - 覆盖供应商视图
- vba - 基于另一个单元格验证单元格输入
- ajax - Yii2 多次 pjax 重载耗时太长