Erros no Azure Pipeline ao Implantar Funções do Azure
Ao implantar uma Função do Azure que utiliza IronPDF, você pode encontrar o seguinte erro se o DeploymentType no seu Azure Pipeline estiver definido como auto ou zipDeploy.
[0714/125524.684:FATAL:gpu_data_manager_impl_private.cc(440)] GPU process isn't usable. Goodbye.
Esse erro ocorre porque zipDeploy não preserva corretamente os binários nativos dos quais o IronPDF depende, incluindo os componentes do Chromium Embedded Framework (CEF). Quando esses binários estão ausentes ou corrompidos após a implantação, o processo da GPU falha em tempo de execução.
Solução
Altere o DeploymentType para webDeploy na tarefa AzureRmWebAppDeployment@4. Esse método de implantação preserva todos os binários nativos, incluindo CEF, durante o processo de implantação.
Também configure zipAfterPublish: false na etapa de publicação para que a pasta de saída não seja compactada antes da implantação.
O seguinte YAML de pipeline mostra a configuração completa recomendada:
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'
Substitua <your-azure-subscription-name>, <path-to-your-csproj> e <your-azure-function-app-name> pelos seus valores reais. Para configuração geral e setup de Funções do Azure, consulte o guia de implantação do Azure.

