How to Run & Deploy IronPDF .NET on Azure Function

This article was translated from English: Does it need improvement?
Translated
View the article in English
class="container-fluid">
class="row">
class="col-md-2"> Azure 1 related to How to Run & Deploy IronPDF .NET on Azure Function

Oui. IronPDF peut être utilisé pour générer, manipuler et lire des documents PDF sur Azure. IronPDF a été minutieusement testé sur plusieurs plateformes Azure, y compris les sites MVC, Azure Functions, et bien d'autres.

class="hsg-featured-snippet">

Comment convertir du HTML en PDF dans Azure Function

  1. Installez la bibliothèque C# pour convertir HTML en PDF dans Azure Function
  2. Choisissez le niveau d'hébergement Azure Basic B1 ou supérieur
  3. Désactivez l'option Run from package file lors de la publication
  4. Suivez les instructions de configuration recommandées
  5. Utilisez l'exemple de code pour créer un générateur de PDF avec Azure

class="main-content__segment-title">Comment réaliser un tutoriel

Installer le package IronPdf

Les Applications Azure Function ont trois environnements distincts : Linux, Windows, et Container. Cet article explique comment configurer IronPdf dans les trois environnements. Parmi ceux-ci, Azure Function App Container est recommandé car il offre un environnement isolé. Pour commencer, choisissons le package approprié à installer.

Azure Function App Container

Azure Function App Container implique peu de tracas, ce qui en fait le moyen recommandé pour déployer IronPdf.

Install-Package IronPdf.Linux

Configurer le fichier Docker

Configurez le fichier Docker en fonction de la distribution Linux que vous utilisez. Veuillez vous référer à cet article pour des instructions détaillées.

Azure Function App (Windows)

Pour utiliser le package IronPdf standard, assurez-vous que l'option Exécuter depuis le fichier package est désactivée. Activer cette option déploie le projet en tant que fichier ZIP, ce qui interfère avec la configuration du fichier IronPdf. Si vous préférez activer l'option Exécuter depuis le fichier package, installez plutôt le package IronPdf.Slim.

Install-Package IronPdf
class="content-img-align-center">
class="center-image-wrapper"> Azure Package File related to Azure Function App (Windows)

Azure Function App (Linux)

Pour Azure Function App (Linux), le projet est déployé par défaut en tant que fichier ZIP, et ce comportement ne peut pas être désactivé. Ceci est similaire à l'activation de l'option Run from package file sur Azure Function App (Windows).

Install-Package IronPdf.Slim

Sélectionner les bonnes options Azure

Choisir le bon niveau d'hébergement

Azure Basic B1 est le niveau d'hébergement minimum requis pour les besoins de rendu de nos utilisateurs finaux. Si vous créez un système à haut débit, cela peut nécessiter une mise à niveau.

AvertissementRemarque: Ne pas sélectionner un Type de Plan de plan de service d'application peut entraîner un échec de rendu des documents PDF par IronPdf.

class="content-img-align-center">
class="center-image-wrapper"> Choisir le bon niveau d'hébergement Azure Tier

Configuration pour .NET 6

Microsoft a récemment supprimé les bibliothèques d'imagerie de .NET 6+, cassant de nombreuses API héritées. En tant que tel, il est nécessaire de configurer votre projet pour permettre encore ces appels d'API hérités.

  1. Sur Linux, définissez Installation.LinuxAndDockerDependenciesAutoConfig=true; pour garantir que libgdiplus est installé sur la machine
  2. Ajoutez ce qui suit au fichier .csproj pour votre projet .NET 6:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
XML
  1. Créez un fichier dans votre projet appelé runtimeconfig.template.json et remplissez-le avec le contenu suivant:
{
  "configProperties": {
    "System.Drawing.EnableUnixSupport": true
  }
}
  1. Enfin, ajoutez la ligne suivante au début de votre programme:
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
$vbLabelText   $csharpLabel

Exemple de Code Azure Function

Cet exemple convertit du HTML en PDF et génère automatiquement des entrées de journal dans le journal Azure intégré (voir ILogger log).

[FunctionName("PrintPdf")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log, ExecutionContext context)
{
    log.LogInformation("Entered PrintPdf API function...");

    // Apply license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Enable logging
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
    IronPdf.Logging.Logger.CustomLogger = log;

    // Configure IronPdf settings
    IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
    IronPdf.Installation.AutomaticallyDownloadNativeBinaries = true;
    IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
    IronPdf.Installation.CustomDeploymentDirectory = "/tmp";

    try
    {
        log.LogInformation("About to render PDF...");
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        // Render PDF from a URL
        var pdf = renderer.RenderUrlAsPdf("https://www.google.com/");
        log.LogInformation("Finished rendering PDF...");
        return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "google.pdf" };
    }
    catch (Exception e)
    {
        log.LogError(e, "Error while rendering PDF");
        return new OkObjectResult($"Error while rendering PDF: {e}");
    }
}
[FunctionName("PrintPdf")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log, ExecutionContext context)
{
    log.LogInformation("Entered PrintPdf API function...");

    // Apply license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Enable logging
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
    IronPdf.Logging.Logger.CustomLogger = log;

    // Configure IronPdf settings
    IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
    IronPdf.Installation.AutomaticallyDownloadNativeBinaries = true;
    IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
    IronPdf.Installation.CustomDeploymentDirectory = "/tmp";

    try
    {
        log.LogInformation("About to render PDF...");
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        // Render PDF from a URL
        var pdf = renderer.RenderUrlAsPdf("https://www.google.com/");
        log.LogInformation("Finished rendering PDF...");
        return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "google.pdf" };
    }
    catch (Exception e)
    {
        log.LogError(e, "Error while rendering PDF");
        return new OkObjectResult($"Error while rendering PDF: {e}");
    }
}
<FunctionName("PrintPdf")>
Public Shared Async Function Run(<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route := Nothing)> ByVal req As HttpRequest, ByVal log As ILogger, ByVal context As ExecutionContext) As Task(Of IActionResult)
	log.LogInformation("Entered PrintPdf API function...")

	' Apply license key
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

	' Enable logging
	IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom
	IronPdf.Logging.Logger.CustomLogger = log

	' Configure IronPdf settings
	IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
	IronPdf.Installation.AutomaticallyDownloadNativeBinaries = True
	IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
	IronPdf.Installation.CustomDeploymentDirectory = "/tmp"

	Try
		log.LogInformation("About to render PDF...")
		Dim renderer As New ChromePdfRenderer()
		' Render PDF from a URL
		Dim pdf = renderer.RenderUrlAsPdf("https://www.google.com/")
		log.LogInformation("Finished rendering PDF...")
		Return New FileContentResult(pdf.BinaryData, "application/pdf") With {.FileDownloadName = "google.pdf"}
	Catch e As Exception
		log.LogError(e, "Error while rendering PDF")
		Return New OkObjectResult($"Error while rendering PDF: {e}")
	End Try
End Function
$vbLabelText   $csharpLabel

Créer un projet en utilisant le modèle Azure Function dans Visual Studio peut entraîner un code légèrement différent. En raison de ces différences, même avec le même package installé, un projet pourrait fonctionner alors que l'autre ne fonctionne pas. Si cela se produit, veuillez définir la propriété CustomDeploymentDirectory à "/tmp".

Comprendre Chaque Configuration d'Installation

  • LinuxAndDockerDependenciesAutoConfig: Ce paramètre vérifie et tente de télécharger toutes les dépendances nécessaires pour le moteur Chrome. Il est requis lors de l'utilisation de systèmes non-GUI, tels que Linux. Dans les systèmes de conteneurs, les dépendances sont généralement répertoriées dans le fichier Docker; par conséquent, vous pouvez régler cela à false.
  • AutomaticallyDownloadNativeBinaries: Cette option télécharge le binaire Chrome natif au moment de l'exécution. Elle est requise lors de l'utilisation du package IronPdf.Slim.
  • CustomDeploymentDirectory: Ce paramètre est requis pour les systèmes avec un accès en écriture limité.

Problèmes connus

Le rendu des polices SVG n'est pas disponible sur les plans d'hébergement partagés

Une limitation que nous avons trouvée est que la plateforme d'hébergement Azure ne prend pas en charge les serveurs chargeant des polices SVG, telles que les polices Google, dans leurs niveaux de web-app partagés les moins chers. C'est parce que ces plateformes d'hébergement partagées ne peuvent pas accéder aux objets graphiques windows GDI+ pour des raisons de sécurité.

Nous recommandons d'utiliser un Conteneur Docker Windows ou Linux ou peut-être un VPS sur Azure pour naviguer sur ce problème où le meilleur rendu de polices est requis.

L'hébergement gratuit d'Azure est lent

Les niveaux gratuits et partagés d'Azure, ainsi que le plan de consommation, ne conviennent pas au rendu PDF. Nous recommandons l'hébergement Azure B1/plan Premium, que nous utilisons nous-mêmes. Le processus de HTML to PDF représente un travail significatif pour tout ordinateur - similaire à ouvrir et rendre une page web sur votre propre machine. Un véritable moteur de navigateur est utilisé, d'où la nécessité de prévoir en conséquence et de s'attendre à des temps de rendu similaires à ceux d'une machine de bureau de puissance similaire.

Création d'un Ticket de Demande de Support Technique

Pour créer un ticket de demande, référez-vous au guide 'Comment Faire Une Demande de Support Technique pour IronPDF'

Questions Fréquemment Posées

Comment puis-je héberger une bibliothèque de génération de PDF sur Azure ?

Vous pouvez héberger une bibliothèque de génération de PDF comme IronPDF sur Azure en configurant une Azure Function ou un site web MVC. Assurez-vous d'avoir installé les packages nécessaires depuis NuGet et configurez votre environnement selon les exigences de la bibliothèque.

Quels environnements Azure sont compatibles avec une bibliothèque PDF ?

IronPDF est compatible avec plusieurs environnements Azure, y compris les sites web MVC et les Azure Functions. Il est conçu pour fonctionner sans problème sur les différentes plateformes fournies par Azure.

Quelles sont les exigences d'hébergement pour une bibliothèque PDF sur Azure ?

Pour des performances optimales lors de l'utilisation de IronPDF sur Azure, il est recommandé d'utiliser au moins le niveau d'hébergement Azure Basic B1. Cela garantit des ressources suffisantes pour rendre les PDFs efficacement.

Comment configurer une bibliothèque PDF pour une Azure Function App sur Linux ?

Pour configurer IronPDF pour une Azure Function App sur Linux, installez le package IronPdf.Slim. Déployez votre projet sous forme de fichier ZIP et assurez-vous que toutes les configurations sont correctement définies pour l'environnement Linux.

Quelles configurations sont nécessaires pour .NET 6 lors de l'utilisation d'une bibliothèque PDF sur Azure ?

Lorsque vous utilisez IronPDF avec .NET 6 sur Azure, mettez à jour les paramètres de votre projet pour autoriser les appels d'API hérités. Réglez Installation.LinuxAndDockerDependenciesAutoConfig=true et incluez les configurations nécessaires dans vos fichiers de projet.

Pourquoi un conteneur Docker est-il recommandé pour le rendu PDF sur Azure ?

Un conteneur Docker est recommandé pour le rendu PDF sur Azure car il offre un environnement plus contrôlé, prend en charge un meilleur rendu des polices et évite les limitations des plans d'hébergement partagé.

Qu'est-ce qui peut causer un ralentissement du rendu PDF sur Azure Free Tier ?

Le rendu PDF est lent sur Azure Free Tier en raison de ressources informatiques limitées. Le processus nécessite une importante puissance de calcul, similaire au rendu d'une page web, rendant les plans de niveau supérieur comme B1 ou Premium plus adaptés.

Comment puis-je résoudre un projet Azure Function ne fonctionnant pas avec une bibliothèque PDF ?

Si votre projet Azure Function avec IronPDF ne fonctionne pas, vérifiez que la propriété CustomDeploymentDirectory est définie sur '/tmp', et assurez-vous que tous les packages et configurations nécessaires sont correctement installés et définis.

Quelles options de support sont disponibles pour le déploiement d'une bibliothèque PDF sur Azure ?

Pour obtenir de l'aide avec le déploiement de IronPDF sur Azure, consultez le guide 'Comment faire une demande d'assistance technique pour IronPDF' sur le site web IronPDF pour une assistance détaillée.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 16,154,058 | Version : 2025.11 vient de sortir