用于功能应用程序部署的CI-CD Azure devops
我的功能应用程序名称:用于功能应用程序部署的CI-CD Azure devops,azure,azure-devops,azure-functions,azure-pipelines,Azure,Azure Devops,Azure Functions,Azure Pipelines,我的功能应用程序名称: my_func_dev_app 我在项目中的功能 func_dev func_prd 将func_dev推送到我的func_dev应用程序 将func_prd推到我的func_prd应用程序 但它将func_dev和func_prd都推到了我的func_de_应用程序上 我的应用程序文件夹结构 (folder)myapp_function (folder)func_dev --__init__.py -- function
my_func_dev_app
我在项目中的功能
func_dev
func_prd
将func_dev推送到我的func_dev应用程序
将func_prd推到我的func_prd应用程序
但它将func_dev和func_prd都推到了我的func_de_应用程序上
我的应用程序文件夹结构
(folder)myapp_function
(folder)func_dev --__init__.py
-- function.json
(folder)func_prd --__init__.py
-- function.json
task.py
多级管道:
#pipelines1
trigger:
- '*'
stages:
- stage: 'Build'
displayName: 'Build the web application'
jobs:
- job: 'Build'
displayName: 'Build job'
pool:
name: 'onprem_agent'
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**
OverWrite: true
CleanTargetFolder: true
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: ArchiveFiles@2
displayName: "Archive files"
inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/myapp_function'
includeRootFolder: false
archiveFile: '$(Build.ArtifactStagingDirectory)/build$(Build.BuildId).zip'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'myapp_function'
- stage: 'DEV_AZURE'
displayName: 'Az DEV Deploy'
dependsOn: Build
condition: |
and
(
succeeded(),
eq(variables['Build.SourceBranchName'], variables['releaseBranchName'])
)
jobs:
- deployment: Deploy
environment: dev
variables:
- group: Release
strategy:
runOnce:
deploy:
steps:
- download: current
artifact: myapp_function
displayName: Downloading artifacts
- task: AzureFunctionApp@1
inputs:
azureSubscription: CI-CD
appType: functionAppLinux
appName: my_func_dev_app
package: '$(Pipeline.Workspace)/myapp_function/*.zip'
deployToSlotOrASE: true
resourceGroupName: my-rg
slotName: PRODUCTION
displayName: 'Deploying dev'
如何修复?将func_dev推到my_func_dev_应用程序并忽略func_prd
如何修复?将func_dev推到my_func_dev_应用程序并忽略func_prd
为了解决这个问题,您可以将两个项目分别打包到zip中
在ArchiveFiles任务中,需要指定特定的项目
例如:
对于func\u dev项目:$(Build.artifactstagindirectory)/myapp\u function/func\u dev
- task: ArchiveFiles@2
displayName: "Archive files"
inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/myapp_function/func_dev'
includeRootFolder: false
archiveFile: '$(Build.ArtifactStagingDirectory)/build$(Build.BuildId)-func_dev.zip'
然后您只能打包与函数app name对应的项目
如果要同时将两个项目部署到一个管道中相应的功能应用程序,您可以使用相同的方法将这两个项目分别打包为zip。我为不同的功能应用程序提供了相同的源文件。.单独打包会消耗更多的存储空间作为工件,并且需要更长的时间来构建。.有解决方案吗?将相同的源文件共享到不同的应用程序服务