Azure App Service에 .NET Core 웹 앱과 WebJob을 Azure DevOps(Azure Pipelines)로 배포
할 일
웹 애플리케이션 + WebJob 애플리케이션을 Azure App Service에 자동 배포하고 싶습니다!
소스 코드와 App Service는 ↓ 느낌의 것을 상정한다.
파이프라인을 만드는 절차
우선 전체상으로부터.
기본적인 사고방식은 publish할 때 App Service와 WebJob(Kudu)의 파일 폴더 구성에 맞추어 출력하고 그대로 App Service에 배포한다는 것이다.
템플릿에서 만들기
Pipelines -> Builds -> New -> New build pipeline
Use the classic editor
리포지토리 선택
ASP.NET Core 템플릿 선택
이것을 베이스로 파이프라인을 만든다.
dotnet restore/build/test
특히 바꾸지 않아도 된다.
dotnet publish
WebJob과 웹 응용 프로그램마다 publish 작업을 만듭니다.
Job publish
변경할 부분
변경 내용
Publish Web Projects
체크 해제
Zip Published Projects
체크 해제
Add project name to publish path
체크 해제
Path to project(s)
.csproj 파일을 명시적으로 설정하도록 변경
Arguments
output 파라미터를 아래와 같이 변경
--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)/App_Data/jobs/triggered/{ジョブ名}
JobA에 대한 작업
JobB에 대한 작업
웹 앱 publish
변경할 부분
변경 내용
Zip Published Projects
체크 해제
Add project name to publish path
체크 해제
run.cmd 및 settings.job 만들기
Powershell 작업을 추가하고 각 작업에 대해 run.cmd 및 settings.job을 만드는 스크립트를 작성합니다.
※run.cmd 와 settings.job 는 미리 WebJob 의 프로젝트 바로 아래에 두어도 된다. 이 경우이 절차는 건너 뜁니다.
변경할 부분
변경 내용
유형
인라인으로 변경
스크립트
스크립트 작성(샘플 및 스크린샷 참조)
Advanced -> Working Directory
$(Build.ArtifactStagingDirectory)
아래는 분당 실행되는 작업의 run.cmd 및 settings.job을 생성하는 스크립트 샘플입니다.
"dotnet {モジュール名}.dll" | out-file App_Data/jobs/triggered/{ジョブ名}/run.cmd -Encoding ASCII;
"{`"schedule`": `"0 * * * * *`"}" | out-file App_Data/jobs/triggered/{ジョブ名}/settings.job -Encoding ASCII;
App Service 배포
Azure App Service Deploy 작업을 추가하고 구독, App Service 이름 등 필요한 설정을 포함합니다.
변경할 부분
변경 내용
Package or folder
$(Build.ArtifactStagingDirectory)
Additional Deployment Options
Deployment method를 Zip Deploy로 설정
Publish Artifact
그대로 둘 수 있습니다.
테스트 실행
Save & queue 하면 파이프라인을 실행할 수 있다.
Enable system diagnostics를 체크하면 로그 출력이 상세해진다. 만약 실행에 실패했을 경우는 로그를 보고 원인을 특정한다.
실행 결과 확인
Azure 포털과 웹 사이트를 보면서 움직이는 것이 확인되었습니다!
끝.
참고
Reference
이 문제에 관하여(Azure App Service에 .NET Core 웹 앱과 WebJob을 Azure DevOps(Azure Pipelines)로 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takutoy/items/51302ba7f9776de185c8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)