azure - 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
解决方案
推荐阅读
- java - 抛出 SQLException 但一切正常
- java - 如何通过 JavaBean 转换数字并将其发送回 JSP 页面
- authentication - 如何找出哪些值对 Symfony 4 中 Argon2i 的 memory_cost、threads 和 time_cost 有利?
- javascript - node.js 编译的 pkg 不会运行(但从节点运行)
- cakephp - 获取 CakePHP 3.6 中所有关联模型的列表
- azure-ad-b2c - Azure B2C 用户迁移令人困惑的演示代码
- c# - 转换为 Linq(lambda 表达式) - 仅选择一个带有连接的表
- html - bg_image 的 CSS SWAP 背景位置
- angular - Angular 将文件作为 JSON 中的一个属性发送
- scala - 使用隐式将字符串转换为 ZonedDateTime