首页 > 解决方案 > Azure - 如何使用在 Yaml 文件中编码的管道构建 WebJob

问题描述

我对 Azure、Pipelines 等完全陌生。

我正在尝试创建一个由网站和 WebJob(定期运行的后台作业)组成的应用服务。我想使用用 Yaml 文件编码的管道来构建和部署它。

我用一个非常简单的 ASP.Net Core 网站(项目“pipelines-dotnet-core”)和一个简单的 .Net Core 控制台程序(项目“WebJobsSDKSample”)创建了一个 Visual Studio 解决方案。

我创建了 Yaml 文件来构建、发布网站并将其部署到我的应用服务。这工作正常,我可以在浏览器中打开该站点。

然后我扩展了 Yaml 文件,将控制台程序项目的输出文件夹复制到网站的发布文件夹,将结果压缩为 zip 文件并部署该 zip 文件。我知道我必须将控制台程序项目输出文件夹复制到网站的发布文件夹下的/App_Data/jobs/triggered/app。

这条新管道运行良好,网站仍然可以正确部署。但是,当我打开我的应用服务的 WebJobs 页面时,它显示“您尚未添加任何 WebJobs”。

我的 Yaml 文件的内容如下。我需要更改什么才能正确部署 WebJob?

此外,如果您能指出如何在 Yaml 管道文件中编写 WebJob 的清晰示例,那将非常有帮助。

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

variables:
  buildConfiguration: 'Release'

steps:
- script: dotnet build --configuration $(buildConfiguration)
  displayName: 'dotnet build $(buildConfiguration)'
- task: DotNetCoreCLI@2
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(BuildConfiguration)'
    zipAfterPublish: false
- task: CopyFiles@2
  displayName: 'Copy Console App to WebJob Location'
  inputs:
    SourceFolder: WebJobsSDKSample/bin/Release/netcoreapp3.1
    TargetFolder: pipelines-dotnet-core/bin/Release/netcoreapp2.2/publish/App_Data/jobs/triggered/app
- task: ArchiveFiles@2
  displayName: 'Archive WebApp'
  inputs:
    rootFolderOrFile: pipelines-dotnet-core/bin/Release/netcoreapp2.2/publish
    includeRootFolder: false
    archiveFile: pipelines-dotnet-core/bin/Release/netcoreapp2.2/pipelines-dotnet-core.zip
- task: AzureWebApp@1
  inputs:
    azureSubscription: 'test connection 1'
    appName: 'WebApplication120200310093243'
    package: pipelines-dotnet-core/bin/Release/**/*.zip


标签: azureazure-web-app-serviceazure-webjobs

解决方案


推荐阅读