簡體   English   中英

構建和發布 Azure 函數以包含 function.json 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM