从 Azure devops 管道部署时无法访问 Azure Function Runtime
Azure Function Runtime Unreachable when deploying from Azure devops pipeline
感谢您抽出宝贵时间阅读。我目前的设置如下:
我有一个 azure 函数服务和 运行,visual studio 中的一个 az 函数项目(我已经测试过,它运行没有问题),一个部署在 azure devops 中的构建管道docker 带有我的函数项目的图像到 Azure 容器注册表。
我的问题:
当我尝试从我的 devops 管道为 CI/CD 设置我的函数服务时,我在我的应用程序的“函数”选项卡上收到以下错误:“无法访问 Azure Functions 运行时”。还列出了我的代码中的 none 个函数。然而,在部署中心,我收到一条消息“已成功部署到生产环境”,它显示了我构建的 docker 容器映像名称。
疑难解答:
在我的函数应用程序的部署中心(在 az 门户中),我将我的应用程序设置为直接从 azure 容器注册表读取(使用与我的管道之前构建的完全相同的 docker 映像),并且效果很好 - 部署成功,我可以看到我的个人功能名称。然而,当我切换回 CI/CD 部署时,我遇到了与之前相同的问题。
正在尝试查看是否有人遇到过同样的问题,或者可以提出使 CI/CD 集成正常工作的前进方向。
我在下面粘贴了我的 yaml 文件,为了保护隐私更改了一些名称。
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
variables:
project: 'myProjectName'
environment: 'prod'
dockerfile: '**/Dockerfile'
azureResource: 'myScraperFunction'
imageName: myScraperFunction
steps:
- task: Docker@2
displayName: Build
inputs:
command: build
containerRegistry: $(azureContainerRegistryName)
repository: '$(Build.Repository.Name)-$(project)'
tags: '$(Build.BuildNumber)-$(environment)'
Dockerfile: $(dockerfile)
buildContext: '$(Build.SourcesDirectory)'
arguments: --build-arg PAT=$(System.AccessToken)
- task: Docker@2
displayName: Push
inputs:
command: push
containerRegistry: $(azureContainerRegistryName)
repository: '$(Build.Repository.Name)-$(project)'
tags: '$(Build.BuildNumber)-$(environment)'
Dockerfile: $(dockerfile)
- task: AzureFunctionAppContainer@1
displayName: 'Azure Function App on Container Deploy: $(azureResource)'
inputs:
azureSubscription: '$(azureSubscription)'
appName: $(azureResource)
imageName: '$(azureContainerRegistry)/$(imageName):$(Build.BuildNumber)-$(environment)'
Configuration/typing yml 文件中的问题。构建步骤中的存储库名称是 hard-coded(我没有像上面发布的那样使用变量)并且由于拼写错误而与部署步骤中的存储库名称不匹配。
感谢您抽出宝贵时间阅读。我目前的设置如下:
我有一个 azure 函数服务和 运行,visual studio 中的一个 az 函数项目(我已经测试过,它运行没有问题),一个部署在 azure devops 中的构建管道docker 带有我的函数项目的图像到 Azure 容器注册表。
我的问题:
当我尝试从我的 devops 管道为 CI/CD 设置我的函数服务时,我在我的应用程序的“函数”选项卡上收到以下错误:“无法访问 Azure Functions 运行时”。还列出了我的代码中的 none 个函数。然而,在部署中心,我收到一条消息“已成功部署到生产环境”,它显示了我构建的 docker 容器映像名称。
疑难解答:
在我的函数应用程序的部署中心(在 az 门户中),我将我的应用程序设置为直接从 azure 容器注册表读取(使用与我的管道之前构建的完全相同的 docker 映像),并且效果很好 - 部署成功,我可以看到我的个人功能名称。然而,当我切换回 CI/CD 部署时,我遇到了与之前相同的问题。
正在尝试查看是否有人遇到过同样的问题,或者可以提出使 CI/CD 集成正常工作的前进方向。
我在下面粘贴了我的 yaml 文件,为了保护隐私更改了一些名称。
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
variables:
project: 'myProjectName'
environment: 'prod'
dockerfile: '**/Dockerfile'
azureResource: 'myScraperFunction'
imageName: myScraperFunction
steps:
- task: Docker@2
displayName: Build
inputs:
command: build
containerRegistry: $(azureContainerRegistryName)
repository: '$(Build.Repository.Name)-$(project)'
tags: '$(Build.BuildNumber)-$(environment)'
Dockerfile: $(dockerfile)
buildContext: '$(Build.SourcesDirectory)'
arguments: --build-arg PAT=$(System.AccessToken)
- task: Docker@2
displayName: Push
inputs:
command: push
containerRegistry: $(azureContainerRegistryName)
repository: '$(Build.Repository.Name)-$(project)'
tags: '$(Build.BuildNumber)-$(environment)'
Dockerfile: $(dockerfile)
- task: AzureFunctionAppContainer@1
displayName: 'Azure Function App on Container Deploy: $(azureResource)'
inputs:
azureSubscription: '$(azureSubscription)'
appName: $(azureResource)
imageName: '$(azureContainerRegistry)/$(imageName):$(Build.BuildNumber)-$(environment)'
Configuration/typing yml 文件中的问题。构建步骤中的存储库名称是 hard-coded(我没有像上面发布的那样使用变量)并且由于拼写错误而与部署步骤中的存储库名称不匹配。