簡體   English   中英

如何使用 CI 管道部署 Azure Function?

[英]How to deploy a Azure Function using a CI pipeline?

大多數時候,當我部署 function 時,我是通過發布配置文件來完成的。 但是,我不知道如何通過 CI/CD 部署它。

當我嘗試通過 Azure 上的部署中心進行操作時,它不起作用。 你在哪里 go 到部署中心 -> Github -> Azure 存儲庫 -> Z999382812/bra->16EFE489 我認為這是因為我的存儲庫文件夾設置不是它所期望的。 我的設置如下

-Repo folder
--Project1
--Project1Function
---Function1.cs
---Project1Function.csproj
---host.json
--.gitignore
--Project1.sln

我認為問題在於 Azure 期望包含 host.json 文件的 Project1Function 文件夾實際上位於存儲庫的根文件夾中。 問題是 Project1Function 引用了 Project1 並且基本上只是將 Project1 中的代碼稱為 function,這就是回購結構如此的原因。 因此,鑒於這種結構,我如何通過管道使用 CI 部署它? 我真的找不到描述如何執行此操作的好資源,因此指向教程/答案的鏈接也可以。

Azure function 可以以類似的方式部署 Azure WebApp 部署。 遵循正常的構建和部署流程

pool:
  name: Azure Pipelines
  demands:
  - msbuild
  - visualstudio

steps:
- task: NuGetToolInstaller@0
  displayName: 'Use NuGet 4.4.1'
  inputs:
    versionSpec: 4.4.1

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: '$(Parameters.solution)'
    vstsFeed: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

- task: VSBuild@1
  displayName: 'Build solution'
  inputs:
    solution: '$(Parameters.solution)'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    clean: true

- task: DotNetCoreCLI@2
  displayName: 'dotnet publish'
  inputs:
    command: publish
    publishWebProjects: false
    projects: |
     XXXXXX/XXXXXXXXXXX.csproj
     
    arguments: '-o $(Build.ArtifactStagingDirectory)/XXXXXXXXX -c Release'
    zipAfterPublish: false

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/XXXXXXXXXX'
    ArtifactName: '$(Parameters.ArtifactName)'
  condition: succeededOrFailed()

steps:
- task: AzureRmWebAppDeployment@4
  displayName: 'Deploy Azure App Service'
  inputs:
    azureSubscription: 'Subscription Name'
    WebAppName: XXXXXX
    VirtualApplication: /
    packageForLinux: '$(System.DefaultWorkingDirectory)/_Pipelinename/drop/XXXXXX.zip'

我認為這是您正在尋找的資源Functions CI/CD

這表明文件夾結構是這里的問題。

您能否在同一解決方案中沒有兩個單獨的項目,例如一個用於 Function 應用程序(具有所需的文件夾結構),一個用於另一個應用程序並在您的另一個項目中引用 Function 應用程序項目?

這可能有助於在 Function App 項目中獲得所需的結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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