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
Azure DevOps第一次Web应用部署总是出现错误_Azure_Azure Devops_Azure Web App Service - Fatal编程技术网

Azure DevOps第一次Web应用部署总是出现错误

Azure DevOps第一次Web应用部署总是出现错误,azure,azure-devops,azure-web-app-service,Azure,Azure Devops,Azure Web App Service,我面临着这种奇怪的情况。我有以下设置 使用创建React应用程序创建React JS应用程序 GitHub上的代码 Azure Web应用程序-从Azure门户创建 Azure DevOps+管道+YAML 这周我做了很多部署,我注意到了这种情况。每次第一次部署,在wwwroot文件夹中都会出现以下情况 但是,每个后续部署都可以正常工作 复制 使用Create react app创建新应用程序 把它放到GitHub上 将GitHub存储库链接到Azure DevOps管道 以部署到全新创

我面临着这种奇怪的情况。我有以下设置

  • 使用创建React应用程序创建React JS应用程序
  • GitHub上的代码
  • Azure Web应用程序-从Azure门户创建
  • Azure DevOps+管道+YAML
这周我做了很多部署,我注意到了这种情况。每次第一次部署,在wwwroot文件夹中都会出现以下情况

但是,每个后续部署都可以正常工作

复制

  • 使用Create react app创建新应用程序
  • 把它放到GitHub上
  • 将GitHub存储库链接到Azure DevOps管道
  • 以部署到全新创建的Azure Web应用程序的管道为目标
初始部署将始终失败,如上图所示。请记住,后续部署不会失败。

所以,问题是,我能做些什么来防止这种情况

我计划在Azure上自动化资源创建,同时自动化部署

更新1

根据评论,包括我在这里的YAML。我在我所有的react JS部署中都使用了这一点,这些部署显示了与上面相同的问题

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'


- task: NodeTool@0
  inputs:
    versionSpec: '10.x'
  displayName: 'Install Node.js'

- script: |
    npm install
    npm run build
  displayName: 'npm install and build'



- task: CopyFiles@2
  inputs:
    Contents: 'build/**' # Pull the build directory (React)
    TargetFolder: '$(Build.ArtifactStagingDirectory)'


- task: PublishBuildArtifacts@1
  inputs: 
    pathtoPublish: $(Build.ArtifactStagingDirectory) # dist or build files
    ArtifactName: 'www' # output artifact named www

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/build/'
    includeRootFolder: false


- task: AzureWebApp@1
  inputs:
    azureSubscription: 'ReactJSRecipeAppConnection'
    appName: 'ReactJSRecipeAppSep232020'
    package: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip' 

初始化从包运行失败
通常意味着zip文件已损坏或不可解压缩。请检查是否设置了应用程序服务->应用程序设置下的
网站\u RUN\u FROM\u PACKAGE
标志


此外,尝试使用task
Azure App Service deploy
v4,而不是task
Azure Web App
v1。

从与@Cece Dong的讨论开始,以下是最终对我有效的方法

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '10.x'
  displayName: 'Install Node.js'

- script: |
    npm install
    npm run build
  displayName: 'npm install and build'

- task: CopyFiles@2
  inputs:
    Contents: 'build/**' # Pull the build directory (React)
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs: 
    pathtoPublish: $(Build.ArtifactStagingDirectory) # dist or build files
    ArtifactName: 'www' # output artifact named www

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/build/'
    includeRootFolder: false

- task: AzureRMWebAppDeployment@4
  inputs:
    appType: webApp    
    azureSubscription: 'RandomStuffReactJSConnection'
    WebAppName: 'randomstuffreactjsappsept24'
    package: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip' 
我可以确认,上述情况不再需要第二个触发器才能正确部署


具体来说,使用'AzureRMWebAppDeployment@4'是什么解决了最初的问题。

可能超时了?比如安装一些依赖项,安装完成,但是安装超时,然后第二次安装不需要这样做,因此,没有超时我真的不这么认为。这周我肯定部署了六个站点。每一次情况都是持续不断的。我不敢相信我创建的每个网站每次都超时了。这些文件根本不进入wwwroot文件夹。我认为,在管道中的某个地方,配置文件没有正确创建。这可能是azure devops的工作方式。但是为什么它会在第二次工作呢?这就是我希望找到的:)现在,我只是在触发第二次部署,每次都是为了克服这个问题。代码YAML pipeline没有任何更改。@Jay请与您共享YAML pipeline,并将变量system.debug设置为true以获取详细日志。如果包已损坏,为什么同一应用程序的相同YAML配置在第二次部署时可以正常工作?我没有在这些部署之间接触应用程序设置,也没有对代码进行任何更改。我所做的就是在项目中的任何地方添加评论行,触发第二次立即部署。我将尝试Azure应用程序服务部署,看看是否获得更好的结果:)你的问题进展如何?Cece,你好。我本周要参加这个活动。为了测试这个解决方案,我将投入至少几个小时。请期待本周末的更新。目前,我们只需触发第二次部署(最多需要几秒钟)就可以进行管理,并且进展良好。今天我已经安排了时间进行调查。请期待几小时后我的更新。