Azure DevOps 构建多个 dotnet 函数并将其部署到同一个函数应用程序
Azure DevOps build and deploy multiple dotnet functions to same functionapp
我的职能在:
/src/functions/
.NET Core函数命名
FunctionApp1 和 FunctionApp2
我正在尝试构建这两个函数并将它们部署到我的函数应用程序中。
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
- task: DotNetCoreCLI@2
displayName: 'Build project'
inputs:
projects: 'src/functions/**/*.csproj'
arguments: '--output publish_output --configuration Release'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: 'publish_output/'
includeRootFolder: false
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
- task: DownloadBuildArtifacts@0
displayName: 'Download Build Artifacts'
inputs:
artifactName: drop
extractTars: false
- task: AzureFunctionApp@1
displayName: 'Azure Function App Deploy: myfunk'
inputs:
azureSubscription: '(sadfgghjkkk)'
appType: functionApp
appName: myfunk
package: '$(System.ArtifactsDirectory)/*.zip'
构建和发布运行良好,但我最终只有一个函数存在。我如何构建该目录中的每个函数,然后单独发布它们?
我建议你把这个包起来
- task: DotNetCoreCLI@2
displayName: 'Build project'
inputs:
projects: 'src/functions/**/*.csproj'
arguments: '--output publish_output --configuration Release'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: 'publish_output/'
includeRootFolder: false
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
- task: DownloadBuildArtifacts@0
displayName: 'Download Build Artifacts'
inputs:
artifactName: drop
extractTars: false
- task: AzureFunctionApp@1
displayName: 'Azure Function App Deploy: myfunk'
inputs:
azureSubscription: '(sadfgghjkkk)'
appType: functionApp
appName: myfunk
package: '$(System.ArtifactsDirectory)/*.zip'
as a template 然后重复使用几次。
parameters:
- name: functionName
type: string
default: ' '
steps:
- script: echo ${{ parameters.functionName}}
- task: DotNetCoreCLI@2
displayName: 'Build project'
inputs:
projects: 'src/functions/**/${{ parameters.functionName}}.csproj'
arguments: '--output ${{ parameters.functionName}} --configuration Release'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '${{ parameters.functionName}}/'
includeRootFolder: false
archiveFile: '$(Build.ArtifactStagingDirectory)/${{ parameters.functionName}}-$(Build.BuildId).zip'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: ${{ parameters.functionName}}'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/${{ parameters.functionName}}-$(Build.BuildId).zip'
ArtifactName: '${{ parameters.functionName}}'
- task: AzureFunctionApp@1
displayName: 'Azure Function App Deploy: myfunk'
inputs:
azureSubscription: '(sadfgghjkkk)'
appType: functionApp
appName: myfunk
package: '$(Build.ArtifactStagingDirectory)/${{ parameters.functionName}}-$(Build.BuildId).zip'
然后
steps:
- template: function-deploy.yml
parameters:
functionName: 'Func1'
- template: function-deploy.yml
parameters:
functionName: 'Func2'
注意:我手头没有解决方案来验证这里是否有错别字。
我的职能在: /src/functions/
.NET Core函数命名 FunctionApp1 和 FunctionApp2
我正在尝试构建这两个函数并将它们部署到我的函数应用程序中。
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
- task: DotNetCoreCLI@2
displayName: 'Build project'
inputs:
projects: 'src/functions/**/*.csproj'
arguments: '--output publish_output --configuration Release'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: 'publish_output/'
includeRootFolder: false
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
- task: DownloadBuildArtifacts@0
displayName: 'Download Build Artifacts'
inputs:
artifactName: drop
extractTars: false
- task: AzureFunctionApp@1
displayName: 'Azure Function App Deploy: myfunk'
inputs:
azureSubscription: '(sadfgghjkkk)'
appType: functionApp
appName: myfunk
package: '$(System.ArtifactsDirectory)/*.zip'
构建和发布运行良好,但我最终只有一个函数存在。我如何构建该目录中的每个函数,然后单独发布它们?
我建议你把这个包起来
- task: DotNetCoreCLI@2
displayName: 'Build project'
inputs:
projects: 'src/functions/**/*.csproj'
arguments: '--output publish_output --configuration Release'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: 'publish_output/'
includeRootFolder: false
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
- task: DownloadBuildArtifacts@0
displayName: 'Download Build Artifacts'
inputs:
artifactName: drop
extractTars: false
- task: AzureFunctionApp@1
displayName: 'Azure Function App Deploy: myfunk'
inputs:
azureSubscription: '(sadfgghjkkk)'
appType: functionApp
appName: myfunk
package: '$(System.ArtifactsDirectory)/*.zip'
as a template 然后重复使用几次。
parameters:
- name: functionName
type: string
default: ' '
steps:
- script: echo ${{ parameters.functionName}}
- task: DotNetCoreCLI@2
displayName: 'Build project'
inputs:
projects: 'src/functions/**/${{ parameters.functionName}}.csproj'
arguments: '--output ${{ parameters.functionName}} --configuration Release'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '${{ parameters.functionName}}/'
includeRootFolder: false
archiveFile: '$(Build.ArtifactStagingDirectory)/${{ parameters.functionName}}-$(Build.BuildId).zip'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: ${{ parameters.functionName}}'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/${{ parameters.functionName}}-$(Build.BuildId).zip'
ArtifactName: '${{ parameters.functionName}}'
- task: AzureFunctionApp@1
displayName: 'Azure Function App Deploy: myfunk'
inputs:
azureSubscription: '(sadfgghjkkk)'
appType: functionApp
appName: myfunk
package: '$(Build.ArtifactStagingDirectory)/${{ parameters.functionName}}-$(Build.BuildId).zip'
然后
steps:
- template: function-deploy.yml
parameters:
functionName: 'Func1'
- template: function-deploy.yml
parameters:
functionName: 'Func2'
注意:我手头没有解决方案来验证这里是否有错别字。