[英]Build&release Azure function to include function.json file
我正在嘗試為我們的 1.x Azure 功能配置 CI/CD 管道。 Azure 函數由 Azure 服務總線觸發,這些配置(主題和訂閱)在 function.json 文件中。 我們很少安裝此 Azure 函數,並希望在構建/發布期間需要在 Azure DevOps 中以某種方式更改 function.json 文件。
這是一項“遺留工作”,因此我們在 Azure DevOps 中沒有以前的 CI/CD 管道。 早些時候,這是從 Visual Studio 手動部署的。 我現在已經為 Azure DevOps 配置了構建和發布配置,但它們沒有像我預期的那樣工作:文件沒有像以前那樣部署。
工作版本是這樣部署的:
wwwroot
| - bin
| | - dlls
| | - de, es, fr, etc. folders
| - MyFunction
| | - function.json
| - appsettings.json
| - host.json
| - packages.config
| - Web.config
現在,我嘗試從 Azure DevOps 進行部署是這樣部署的:
wwwroot
| - dlls
| - host.json
| - de, es, fr, etc. folders
它只有“bin 文件夾”並且缺少 function.json 文件。
我應該如何在 Azure DevOps 中構建/部署 Azure 函數以像之前一樣使用 function.json 文件和 bin 文件夾部署它? 我在構建管道中嘗試了幾種不同的 dotnet build 和 dotnet publish 命令。 在發布管道中,我使用 Azure 應用服務部署任務進行部署。
我應該如何在 Azure DevOps 中構建/部署 Azure 函數以像之前一樣使用 function.json 文件和 bin 文件夾部署它?
我可以使用 Azure Devops CI/CD 正確部署 Azure 功能,以下是詳細步驟:
1.構建任務yaml文件如下:
queue:
name: Hosted VS2017
demands:
- msbuild
- visualstudio
steps:
- task: NuGetToolInstaller@0
displayName: 'Use NuGet 4.3.0'
- task: NuGetCommand@2
displayName: 'NuGet restore'
- task: VSBuild@1
displayName: 'Build solution **\*.sln'
- task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
inputs:
SourceFolder: 'FunctionApp2\bin\debug\net461'
TargetFolder: '$(build.artifactstagingdirectory)'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
UI 設計器和項目結構請參考截圖。
2.發布任務信息:我使用【部署Azure應用服務】任務,選擇App類型:Function App。 更多信息請參考截圖
不小心我自己解決了這個問題。 我使用以下參數運行 Visual Studio Build 任務:
/p:DeployOnBuild=true
/p:WebPublishMethod=Package
/p:SkipInvalidConfigurations=true
/p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)/package/"
/p:DeployIisAppPath="Default Web Site"
/p:OutputPath="$(build.artifactstagingdirectory)/out/"
DesktopBuildPackageLocation
按照我想要的方式構建它$(Build.ArtifactStagingDirectory)/package/WantedOutputPackage.zip
。 然后我將該包作為工件發布。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.