Gracias por tomarse el tiempo para leer. Mi configuración actual es la siguiente:
Tengo un servicio de función azure en funcionamiento, un proyecto de función az en Visual Studio (que probé y se ejecuta sin problemas), una canalización de compilación en devops azure que implementa una imagen acoplable con mi proyecto de función en un registro de contenedor azure.
Mi problema:
Cuando intento configurar mi servicio de funciones para CI/CD desde mi canalización devops, aparece el siguiente error en la pestaña "funciones" de mi aplicación: "El tiempo de ejecución de Azure Functions es inalcanzable". Además, ninguna de las funciones de mi código está en la lista. Sin embargo, en el centro de implementación, aparece el mensaje "Implementado con éxito en producción" y muestra el nombre de la imagen del contenedor acoplable creado.
Solución de problemas:
En el centro de implementación de mi aplicación de funciones (en el portal az), configuré mi aplicación para leer directamente desde el registro de contenedores de Azure (usando exactamente la misma imagen de ventana acoplable que mi canalización creó anteriormente), y funcionó perfectamente: la implementación fue exitosa y yo podía ver el nombre de mis funciones individuales. Sin embargo, cuando volví a cambiar a la implementación de CI/CD, tuve el mismo problema que antes.
Tratando de ver si alguien ha tenido el mismo problema o podría sugerir un camino a seguir para que la integración de CI/CD funcione.
Pegué mi archivo yaml a continuación con algunos nombres cambiados por privacidad.
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)'Problema de configuración/tecleo en el archivo yml. El nombre del repositorio durante el paso de compilación estaba codificado (no usé una variable como la que se publicó anteriormente) y no coincidía con el nombre del repositorio en el paso de implementación debido a un error ortográfico.