Błędy w relacjach Azure Pipeline podczas wdrażania funkcji Azure
Podczas wdrażania funkcji Azure, która korzysta z IronPDF, możesz napotkać następujący błąd, jeśli DeploymentType w Twoim Azure Pipeline jest ustawiony na auto lub zipDeploy.
[0714/125524.684:FATAL:gpu_data_manager_impl_private.cc(440)] GPU process isn't usable. Goodbye.
Ten błąd występuje, ponieważ zipDeploy nie zachowuje poprawnie natywnych bibliotek, od których zależy IronPDF, w tym komponentów Chromium Embedded Framework (CEF). Gdy te biblioteki są brakujące lub uszkodzone po wdrożeniu, proces GPU zawodzi w czasie wykonywania.
Rozwiązanie
Zmień DeploymentType na webDeploy w zadaniu AzureRmWebAppDeployment@4. Ta metoda wdrażania zachowuje wszystkie natywne biblioteki, w tym CEF, podczas procesu wdrażania.
Ustaw także zipAfterPublish: false w kroku publikowania, aby folder wyjściowy nie został spakowany przed wdrożeniem.
Następujący plik YAML dla potoku pokazuje kompletną zalecaną konfigurację:
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'
Zastąp <your-azure-subscription-name>, <path-to-your-csproj> i <your-azure-function-app-name> swoimi rzeczywistymi wartościami. Aby uzyskać ogólne informacje dotyczące konfiguracji funkcji Azure, zobacz przewodnik po wdrażaniu Azure.

