通过 Azure DevOps 进行的 NodeJS Azure 应用服务部署显示解压缩错误?

问题描述 投票:0回答:1

我正在尝试使用 Microsoft 提供的文档为基于 NodeJS 的 Azure 应用服务(在 Windows 上运行)配置构建和发布管道。

不幸的是,虽然运行构建和发布管道时没有显示错误并且部署显示成功,但应用程序无法加载以下部署,应用程序服务编辑器中的 web.config 文件中显示以下错误:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name = "Site Unavailable" stopProcessing = "true">
                    <match url = ".*" />
                    <action type = "CustomResponse" statusCode = "503" subStatusCode = "0" statusReason = "Site Unavailable" statusDescription = "Could not download zip" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

应用服务编辑器中还存在一个名为“FAILED TO INITIALIZE RUN FROM PACKAGE.txt”的文件,其中错误“从包初始化运行失败。不支持的 Zip 格式或损坏的 zip 文件。”显示。

虽然错误表明用于部署的 zip 文件在某种程度上无效,但不清楚它到底出了什么问题,我怀疑只是 zip 中的对象太多或者太大(超过 130MB) 。但我不确定如果是这种情况将如何解决。

我提供了以下构建和发布管道所涉及的步骤:

建设管道:

npm install

archive files

publish to azure pipelines

发布管道:

Release Pipeline

任何有关如何解决此问题的想法将不胜感激。

node.js azure azure-devops azure-web-app-service cicd
1个回答
0
投票

我使用 Express Generator 创建了一个简单的 Node.js 应用程序,参考 在 Azure 中部署 Node.js Web 应用程序来测试该问题。

我创建了一个相同的构建管道来使用以下 YAML 文件构建和发布 zip 工件。

trigger:
- none
pool:
  vmimage: windows-latest
steps:
  - task: Npm@1
    inputs:
      command: 'install'
      workingDir: '$(Build.SourcesDirectory)'
  - task: ArchiveFiles@2
    inputs:
      rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
      includeRootFolder: false
      archiveType: 'zip'
      archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
      replaceExistingArchive: true
  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

然后,我使用 Azure 应用服务部署任务创建了一个发布管道,以部署构建中的工件。我选择部署方法

zip deploy
并在应用程序设置中设置
-SCM_DO_BUILD_DURING_DEPLOYMENT true
。 (此应用程序设置在部署时启用构建自动化,它会自动检测启动脚本并使用它生成
web.config
。)

task

结果: result

© www.soinside.com 2019 - 2024. All rights reserved.