Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将NodeJS项目部署到Azure网站?_Node.js_Azure_Deployment - Fatal编程技术网

Node.js 如何将NodeJS项目部署到Azure网站?

Node.js 如何将NodeJS项目部署到Azure网站?,node.js,azure,deployment,Node.js,Azure,Deployment,我们有一个与TeamCity一起构建的NodeJs项目,然后使用FTP将构建的文件上传到我们的Azure web应用程序(.azurewebsites)。该项目包含数千个文件,因此FTP上载时间非常慢(需要很长时间)。我们更愿意将构建打包为ZIP文件,然后使用FTP上传ZIP(更快)。但是,我们如何使用脚本在Azure上解压缩ZIP文件 还是有更好的方法将我们的构建部署到Azure web应用程序 注释: 这是一个Azure web应用程序服务,不存在于VM上 我们的流程需要通过脚本实现自动化

我们有一个与TeamCity一起构建的NodeJs项目,然后使用FTP将构建的文件上传到我们的Azure web应用程序(.azurewebsites)。该项目包含数千个文件,因此FTP上载时间非常慢(需要很长时间)。我们更愿意将构建打包为ZIP文件,然后使用FTP上传ZIP(更快)。但是,我们如何使用脚本在Azure上解压缩ZIP文件

还是有更好的方法将我们的构建部署到Azure web应用程序

注释

  • 这是一个Azure web应用程序服务,不存在于VM上
  • 我们的流程需要通过脚本实现自动化,以支持CI/CD
  • 使用Git和其他回购协议部署是不可行的

您可以使用Kudu API或MsBuild将应用程序(web应用程序或函数)部署到Azure应用程序服务。部署通常分为两个部分:

  • 使用ARM模板部署应用程序服务
  • 使用以下方法之一部署代码/应用程序
  • 如果您使用的是VST,那么这两个步骤都有模板,设置起来需要2分钟。如果您不使用VST,那么Kudu API是解决问题的最佳方法

    您可以在此处找到更多信息:


    您还可以使用Azure PowerShell管理cmdlet实现相同的功能。但是,目前仅在Windows上支持此功能。您可以使用Kudu API或MsBuild将应用程序(web应用程序或函数)部署到Azure应用程序服务。部署通常分为两个部分:

  • 使用ARM模板部署应用程序服务
  • 使用以下方法之一部署代码/应用程序
  • 如果您使用的是VST,那么这两个步骤都有模板,设置起来需要2分钟。如果您不使用VST,那么Kudu API是解决问题的最佳方法

    您可以在此处找到更多信息:


    您还可以使用Azure PowerShell管理cmdlet实现相同的功能。不过,目前仅在Windows上支持此功能

    谢谢Chris。我在PowerShell中尝试了Kudu REST API,它有点正常,但出现了一个错误:
    Invoke RestMethod:操作已超时
    。从Azure site cmd控制台,我可以看到Zip中的内容,因此这里一定有一些东西起了作用,但不确定整个过程是否因为超时错误而完成。顺便说一句:我还查看了一些Azure PowerShell cmdlet,其中一个看起来特别有潜力:
    发布AzureWebsiteProject
    。但是,此cmdlet需要
    Select-AzureSubscription
    cmdlet,该cmdlet不显示我的Azure订阅。但是,
    Select-AzureRmSubscription
    确实显示我的订阅,但此cmdlet不适用于
    Publish-AzureWebsiteProject
    。有什么想法吗?AzureRm是否有发布cmdlet?对于Kudu REST API Invoke RestMethod,我添加了以下内容以帮助解决超时错误:
    -TimeoutSec 240
    。这似乎有效,所以我现在就和库杜一起去。再次感谢@keith Kudu进程超时的原因是它试图通过
    npm restore
    还原所有包。您可以使用webpack解决此问题,但它仍处于beta/preview状态,不确定在这种情况下是否有效。谢谢Chris。我在PowerShell中尝试了Kudu REST API,它有点正常,但出现了一个错误:
    Invoke RestMethod:操作已超时
    。从Azure site cmd控制台,我可以看到Zip中的内容,因此这里一定有一些东西起了作用,但不确定整个过程是否因为超时错误而完成。顺便说一句:我还查看了一些Azure PowerShell cmdlet,其中一个看起来特别有潜力:
    发布AzureWebsiteProject
    。但是,此cmdlet需要
    Select-AzureSubscription
    cmdlet,该cmdlet不显示我的Azure订阅。但是,
    Select-AzureRmSubscription
    确实显示我的订阅,但此cmdlet不适用于
    Publish-AzureWebsiteProject
    。有什么想法吗?AzureRm是否有发布cmdlet?对于Kudu REST API Invoke RestMethod,我添加了以下内容以帮助解决超时错误:
    -TimeoutSec 240
    。这似乎有效,所以我现在就和库杜一起去。再次感谢@keith Kudu进程超时的原因是它试图通过
    npm restore
    还原所有包。您可以使用webpack解决此问题,但它仍处于测试版/预览版,不确定在这种情况下是否能正常工作。