将代码从 Azure 存储库部署到 Function 应用槽
Deploy code from Azure repo to Function app slot
我已经设置了 Azure DevOps 存储库和管道以将我的代码部署到 Azure Functio App 插槽。我能够将应用程序部署到我的插槽,但在进行一些代码更改后,我尝试重新部署我的 app/code 但现在管道失败了。可能是因为我的管道配置错误(因此它只能在插槽为空时部署但不能在现有代码之上更新或重新部署)。
这是我的管道
- master
variables:
# Azure Resource Manager connection created during pipeline creation
azureSubscription: 'My Service Connector'
# Function app name
functionAppName: 'My Fuction app name'
# Agent VM image name
vmImageName: 'vs2017-win2016'
# Working Directory
workingDirectory: '$(System.DefaultWorkingDirectory)/'
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- powershell: |
if (Test-Path "extensions.csproj") {
dotnet build extensions.csproj --output ./$(workingDirectory)/bin
}
displayName: 'Build extensions'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: $(workingDirectory)
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- publish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
artifact: drop
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
condition: succeeded()
jobs:
- deployment: Deploy
displayName: Deploy
environment: $(functionAppName)
pool:
vmImage: $(vmImageName)
strategy:
runOnce:
deploy:
steps:
- task: AzureFunctionApp@1
inputs:
azureSubscription: '$(azureSubscription)'
appType: functionApp
appName: $(functionAppName)
package: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'
deployToSlotOrASE: true
resourceGroupName: 'my app resource group'
slotName: testing
管道错误:
仅供参考,我不是开发人员,也不熟悉 git、repos、管道等工具。有什么提示我可以做些什么不同的事情,以便我可以从 Azure Repos + 管道更新我的应用程序代码?
尝试建立一个新的ARM连接(Azure Resource Manager service connection)用于流水线中,看是否可以工作。
如果问题仍然存在,您可以通过将管道变量 System.Debug
设置为 true
来启用调试。队列一个新的运行。从调试日志中,您可能会获得有关该问题的更多有用信息。
必须将 vmImageName: 'vs2017-win2016' 更改为 vmImageName: 'windows-lastest' 才能正常工作。
我已经设置了 Azure DevOps 存储库和管道以将我的代码部署到 Azure Functio App 插槽。我能够将应用程序部署到我的插槽,但在进行一些代码更改后,我尝试重新部署我的 app/code 但现在管道失败了。可能是因为我的管道配置错误(因此它只能在插槽为空时部署但不能在现有代码之上更新或重新部署)。
这是我的管道
- master
variables:
# Azure Resource Manager connection created during pipeline creation
azureSubscription: 'My Service Connector'
# Function app name
functionAppName: 'My Fuction app name'
# Agent VM image name
vmImageName: 'vs2017-win2016'
# Working Directory
workingDirectory: '$(System.DefaultWorkingDirectory)/'
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- powershell: |
if (Test-Path "extensions.csproj") {
dotnet build extensions.csproj --output ./$(workingDirectory)/bin
}
displayName: 'Build extensions'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: $(workingDirectory)
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- publish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
artifact: drop
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
condition: succeeded()
jobs:
- deployment: Deploy
displayName: Deploy
environment: $(functionAppName)
pool:
vmImage: $(vmImageName)
strategy:
runOnce:
deploy:
steps:
- task: AzureFunctionApp@1
inputs:
azureSubscription: '$(azureSubscription)'
appType: functionApp
appName: $(functionAppName)
package: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'
deployToSlotOrASE: true
resourceGroupName: 'my app resource group'
slotName: testing
管道错误:
仅供参考,我不是开发人员,也不熟悉 git、repos、管道等工具。有什么提示我可以做些什么不同的事情,以便我可以从 Azure Repos + 管道更新我的应用程序代码?
尝试建立一个新的ARM连接(Azure Resource Manager service connection)用于流水线中,看是否可以工作。
如果问题仍然存在,您可以通过将管道变量 System.Debug
设置为 true
来启用调试。队列一个新的运行。从调试日志中,您可能会获得有关该问题的更多有用信息。
必须将 vmImageName: 'vs2017-win2016' 更改为 vmImageName: 'windows-lastest' 才能正常工作。