要把一个Node.js app 部署到Azure cloud上,我尝试成功了两种方法:

  • 第一个尝试是用Visual code直接部署Node.js web app到Azure web app service。

这个部署过程可以直接在Visual code 里面完成,当然也可以用az cli 的命令行来实现。

部署过程也可能不成功,在log window里面可以查看。

1
2
3
4
Create Node.js web app host Cesium 3d tiles data.


Mount the 3d tiles data in Azure storage account  container  3dtilescontainer to /home/site/wwwroot/tilesets/3dtiles
  • 第二个尝试是写一个 Dockerfile,在本地用docker build 生成一个docker image, push到ACR(Azure container registry)上面,

    然后启动一个Azure docker instance。

    如果想要把端口port 开在8080 上,需要在Dockerfile 里面加上这一行

    1
    
    EXPOSE 8080
    

    如果不想直接暴露这个ACI给用户,还可以在portal创建一个web app,连接到这个ACR,创建一个基于ACI的 web app。

比较这两个方法的话,第一个部署成功率不高,但是比较好调试。第二个部署成功率高,需要在本地运行Docker container调试。

等Web app部署成功以后,我们还可以去Azure portal上面,去用Development Tools 中的adanced tools 去连接到app里面,或者用SSH去查看运行状态,修改里面的源文件或配置文件。

修改完毕以后,可以重新启动web app 使得改动生效。

Tips

部署web app完毕以后,用postman 发送GET 或POST请求试试,看端口是否通畅。如果不通,也可能是Dockerfile 中expose的端口和server.js中的不一致。