Erreurs de pipeline Azure lors du déploiement de fonctions Azure
Lors du déploiement d'une fonction Azure qui utilise IronPDF, vous pouvez rencontrer l'erreur suivante si le DeploymentType dans votre pipeline Azure est défini sur auto ou zipDeploy.
[0714/125524.684:FATAL:gpu_data_manager_impl_private.cc(440)] GPU process isn't usable. Goodbye.
Cette erreur se produit parce que zipDeploy ne préserve pas correctement les binaires natifs dont dépend IronPDF, y compris les composants du Chromium Embedded Framework (CEF). Lorsque ces binaires sont manquants ou corrompus après le déploiement, le processus GPU échoue à l'exécution.
Solution
Changez le DeploymentType en webDeploy dans la tâche AzureRmWebAppDeployment@4. Cette méthode de déploiement préserve tous les binaires natifs, y compris le CEF, pendant le processus de déploiement.
Définissez également zipAfterPublish: false dans l'étape de publication afin que le dossier de sortie ne soit pas zippé avant le déploiement.
Le YAML de pipeline suivant montre la configuration recommandée complète :
jobs:
- job:
steps:
- checkout: self
displayName: Checkout Repository
lfs: true
- task: AzureCLI@2
displayName: Check Azure CLI Installation
inputs:
azureSubscription: '<your-azure-subscription-name>'
scriptType: 'ps'
scriptLocation: 'inlineScript'
inlineScript: 'az --version'
- task: DotNetCoreCLI@2
displayName: Restore Function Project
inputs:
command: 'restore'
projects: '<path-to-your-csproj>'
- task: DotNetCoreCLI@2
displayName: Build Function Project
inputs:
command: 'build'
projects: '<path-to-your-csproj>'
arguments: '--configuration Release --no-restore --verbosity normal'
- task: DotNetCoreCLI@2
displayName: Publish Function Project
inputs:
command: publish
arguments: '--configuration Release --no-build --output $(Build.ArtifactStagingDirectory)/publish_output'
projects: '<path-to-your-csproj>'
publishWebProjects: false
modifyOutputPath: false
zipAfterPublish: false
- task: AzureRmWebAppDeployment@4
displayName: 'Deploy Azure Function App'
inputs:
ConnectionType: 'AzureRM'
azureSubscription: '<your-azure-subscription-name>'
appType: 'functionApp'
WebAppName: '<your-azure-function-app-name>'
enableCustomDeployment: true
DeploymentType: 'webDeploy'
jobs:
- job:
steps:
- checkout: self
displayName: Checkout Repository
lfs: true
- task: AzureCLI@2
displayName: Check Azure CLI Installation
inputs:
azureSubscription: '<your-azure-subscription-name>'
scriptType: 'ps'
scriptLocation: 'inlineScript'
inlineScript: 'az --version'
- task: DotNetCoreCLI@2
displayName: Restore Function Project
inputs:
command: 'restore'
projects: '<path-to-your-csproj>'
- task: DotNetCoreCLI@2
displayName: Build Function Project
inputs:
command: 'build'
projects: '<path-to-your-csproj>'
arguments: '--configuration Release --no-restore --verbosity normal'
- task: DotNetCoreCLI@2
displayName: Publish Function Project
inputs:
command: publish
arguments: '--configuration Release --no-build --output $(Build.ArtifactStagingDirectory)/publish_output'
projects: '<path-to-your-csproj>'
publishWebProjects: false
modifyOutputPath: false
zipAfterPublish: false
- task: AzureRmWebAppDeployment@4
displayName: 'Deploy Azure Function App'
inputs:
ConnectionType: 'AzureRM'
azureSubscription: '<your-azure-subscription-name>'
appType: 'functionApp'
WebAppName: '<your-azure-function-app-name>'
enableCustomDeployment: true
DeploymentType: 'webDeploy'
Remplacez <your-azure-subscription-name>, <path-to-your-csproj> et <your-azure-function-app-name> par vos valeurs réelles. Pour la configuration générale des fonctions Azure, consultez le guide de déploiement Azure.

