Ce guide couvre tout ce qui est nécessaire pour déployer IronPDF for Java à l'intérieur d'un conteneur Azure Functions et générer des PDFs à la demande depuis un point d'accès HTTP sans serveur. Parce qu'IronPDF expédie un moteur de rendu Chromium natif, il doit être emballé en tant qu'image Docker — le déploiement Zip standard sur Azure Functions ne peut pas exécuter les binaires sur lesquels IronPDF s'appuie à l'exécution. Suivant ce guide, une fonction Azure fonctionnelle acceptera une URL en tant que paramètre de requête et retournera un PDF entièrement rendu en tant que fichier téléchargeable.

L'approche utilise le flux de travail recommandé par Microsoft pour conteneurs personnalisés pour Azure Functions basé sur Linux. Un projet Maven fournit le code de la fonction et la gestion des dépendances. Docker crée l'image de conteneur, qui est poussée à un registre et référencée par l'application Azure Function. Une fois déployé, le temps de démarrage à froid est la considération principale en termes de performance — les invocations suivantes sont rapides et cohérentes.

Avant de commencer, assurez-vous que l'Azure CLI, Docker Desktop, Maven 3.8+ et JDK 11 ou JDK 17 sont installés localement. Un abonnement Azure actif avec la permission de créer des Function Apps et des comptes de stockage est également requis.

Démarrage rapide : Déployer IronPDF for Java sur Azure Functions

Le code ci-dessous montre la fonction Azure complète RenderPdf. Elle accepte un paramètre de requête url et renvoie un flux d'octets PDF. Ajoutez ceci à Function.java après avoir terminé la configuration des dépendances Maven dans les sections suivantes.

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/RenderPdf.java
import com.microsoft.azure.functions.*;
import com.ironsoftware.ironpdf.PdfDocument;
import java.util.Optional;

public class Function {

    /**
     * HTTP-triggered Azure Function: accepts a URL, renders it as a PDF,
     * and returns the PDF bytes as a downloadable attachment.
     */
    @FunctionName("RenderPdf")
    public HttpResponseMessage renderPdf(
            @HttpTrigger(
                    name = "req",
                    methods = {HttpMethod.GET, HttpMethod.POST},
                    authLevel = AuthorizationLevel.ANONYMOUS)
            HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context) {

        context.getLogger().info("RenderPdf function triggered.");

        // Read the target URL from the query string
        final String url = request.getQueryParameters().get("url");

        if (url == null) {
            return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
                    .body("Provide a 'url' query parameter.")
                    .build();
        }

        try {
            context.getLogger().info("Rendering URL as PDF: " + url);

            // IronPDF renders the full page including JavaScript
            PdfDocument pdf = PdfDocument.renderUrlAsPdf(url);
            byte[] pdfBytes = pdf.getBinaryData();

            return request.createResponseBuilder(HttpStatus.OK)
                    .body(pdfBytes)
                    .header("Content-Disposition", "attachment; filename=output.pdf")
                    .header("Content-Type", "application/pdf")
                    .build();

        } catch (Exception ex) {
            context.getLogger().severe("PDF rendering failed: " + ex.getMessage());
            return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
                    .body("PDF rendering failed. Check function logs for details.")
                    .build();
        }
    }
}
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/RenderPdf.java
import com.microsoft.azure.functions.*;
import com.ironsoftware.ironpdf.PdfDocument;
import java.util.Optional;

public class Function {

    /**
     * HTTP-triggered Azure Function: accepts a URL, renders it as a PDF,
     * and returns the PDF bytes as a downloadable attachment.
     */
    @FunctionName("RenderPdf")
    public HttpResponseMessage renderPdf(
            @HttpTrigger(
                    name = "req",
                    methods = {HttpMethod.GET, HttpMethod.POST},
                    authLevel = AuthorizationLevel.ANONYMOUS)
            HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context) {

        context.getLogger().info("RenderPdf function triggered.");

        // Read the target URL from the query string
        final String url = request.getQueryParameters().get("url");

        if (url == null) {
            return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
                    .body("Provide a 'url' query parameter.")
                    .build();
        }

        try {
            context.getLogger().info("Rendering URL as PDF: " + url);

            // IronPDF renders the full page including JavaScript
            PdfDocument pdf = PdfDocument.renderUrlAsPdf(url);
            byte[] pdfBytes = pdf.getBinaryData();

            return request.createResponseBuilder(HttpStatus.OK)
                    .body(pdfBytes)
                    .header("Content-Disposition", "attachment; filename=output.pdf")
                    .header("Content-Type", "application/pdf")
                    .build();

        } catch (Exception ex) {
            context.getLogger().severe("PDF rendering failed: " + ex.getMessage());
            return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
                    .body("PDF rendering failed. Check function logs for details.")
                    .build();
        }
    }
}
JAVA

Commencez à utiliser IronPDF dans votre projet aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer

Table des matières

Quels sont les prérequis ? {#prerequisites}

Avant de commencer, confirmez que tous les outils requis sont installés et qu'un abonnement Azure est actif. Négliger ces vérifications entraîne souvent des échecs de build à mi-parcours du processus de déploiement.

Outils locaux requis :

Ressources Azure requises :

  • Un abonnement Azure actif
  • Permissions pour créer des groupes de ressources, des comptes de stockage et des plans Function App
  • Un compte Docker Hub (ou Azure Container Registry) pour héberger l'image construite

ImportantIronPDF for Java nécessite l'artefact ironpdf-engine-linux-x64 lorsqu'il s'exécute dans un conteneur Docker. Le déploiement standard en zip sur Azure Functions ne peut pas exécuter les binaires natifs d'IronPDF — Docker est la seule méthode de déploiement prise en charge.

Exécutez az login pour authentifier l'interface CLI Azure avant de passer à la section suivante.

Comment configurer le projet Azure Function? {#set-up-project}

Le guide de Microsoft pour créer une fonction sur Linux en utilisant une image personnalisée couvre l'ensemble du processus de scaffolding. Suivez ces étapes avec une sélection importante : choisissez Java lorsqu'on vous demande un langage de programmation.

Travaillez à travers le guide jusqu'à ce que le projet échafaudé soit construit et que la fonction de remplacement s'exécute localement à l'aide des Azure Functions Core Tools. Vérifiez cela avec :

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/local-run.sh
mvn clean package
func start
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/local-run.sh
mvn clean package
func start
SHELL

Une fois que le substitut répond à une requête HTTP locale, la structure du projet est correcte et prête pour l'intégration d'IronPDF. Les fichiers clés sont pom.xml (configuration Maven), Function.java (code de fonction) et Dockerfile (définition de conteneur).

Veuillez noterL'archétype Azure Functions Maven génère un host.json et un local.settings.json aux côtés de pom.xml. Le fichier local.settings.json stocke les variables d'environnement pour le développement local — il est exclu du contrôle de version par défaut et ne doit jamais être validé.

Comment ajouter les dépendances IronPDF à votre projet Maven? {#add-IronPDF-dependencies}

IronPDF for Java est distribué via Maven Central. Deux artefacts sont requis : la bibliothèque principale ironpdf qui fournit l'API Java, et ironpdf-engine-linux-x64 qui regroupe le moteur Chromium natif compilé pour Linux x86-64. C'est l'artefact du moteur qui rend le déploiement via Docker obligatoire — il fournit des binaires qui doivent être exécutés au moment de l'exécution.

Ouvrez pom.xml et ajoutez ce qui suit à l'intérieur du bloc <dependencies>. Remplacez LATEST_VERSION par la version actuelle disponible sur Maven Central :

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/pom.xml
<dependencies>

    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>LATEST_VERSION</version>
    </dependency>

    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf-engine-linux-x64</artifactId>
        <version>LATEST_VERSION</version>
    </dependency>
</dependencies>
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/pom.xml
<dependencies>

    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>LATEST_VERSION</version>
    </dependency>

    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf-engine-linux-x64</artifactId>
        <version>LATEST_VERSION</version>
    </dependency>
</dependencies>
XML

Les deux artefacts doivent utiliser le même numéro de version. Des versions incompatibles entre ironpdf et ironpdf-engine-linux-x64 provoquent une exception d'exécution lorsque la fonction tente pour la première fois de générer un PDF.

Après avoir mis à jour pom.xml, exécutez mvn dependency:resolve pour vérifier que Maven peut télécharger les deux artefacts depuis Central avant de consacrer du temps à la création de l'image Docker.

{t:(Consultez les notes de version [IronPDF for Java pour la dernière version stable. Utiliser la version la plus récente garantit la compatibilité avec le dernier moteur de rendu Chromium et évite les bugs connus.)}]

Comment écrire la fonction RenderPdf? {#write-renderpdf-function}

La fonction RenderPdf est une fonction Azure déclenchée par HTTP qui accepte un paramètre de requête url, affiche la page cible à l'aide du moteur basé sur Chromium d'IronPDF et renvoie le PDF résultant sous forme de réponse binaire avec un en-tête Content-Disposition: attachment. Cet en-tête indique au navigateur (ou client HTTP) de télécharger le PDF plutôt que de l'afficher en ligne.

Le code complet de la fonction est montré dans le Démarrage rapide ci-dessus. Placez-la dans src/main/java/com/example/Function.java, en remplaçant ou en complétant l'espace réservé généré par l'archétype Maven.

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/RenderPdf-annotated.java
import com.microsoft.azure.functions.*;
import com.ironsoftware.ironpdf.PdfDocument;
import java.util.Optional;

public class Function {

    @FunctionName("RenderPdf")
    public HttpResponseMessage renderPdf(
            @HttpTrigger(
                    name = "req",
                    methods = {HttpMethod.GET, HttpMethod.POST},
                    authLevel = AuthorizationLevel.ANONYMOUS)
            HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context) {

        // Log each invocation for Azure Monitor / Application Insights
        context.getLogger().info("RenderPdf triggered.");

        final String url = request.getQueryParameters().get("url");

        // Return 400 if no URL was supplied
        if (url == null) {
            return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
                    .body("Provide a 'url' query parameter.")
                    .build();
        }

        try {
            // renderUrlAsPdf launches Chromium, loads the page, and captures it as PDF
            PdfDocument pdf = PdfDocument.renderUrlAsPdf(url);

            // getBinaryData returns the raw PDF bytes ready for transmission
            byte[] pdfBytes = pdf.getBinaryData();

            return request.createResponseBuilder(HttpStatus.OK)
                    .body(pdfBytes)
                    .header("Content-Disposition", "attachment; filename=output.pdf")
                    .header("Content-Type", "application/pdf")
                    .build();

        } catch (Exception ex) {
            context.getLogger().severe("Rendering error: " + ex.getMessage());
            return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
                    .body("PDF rendering failed.")
                    .build();
        }
    }
}
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/RenderPdf-annotated.java
import com.microsoft.azure.functions.*;
import com.ironsoftware.ironpdf.PdfDocument;
import java.util.Optional;

public class Function {

    @FunctionName("RenderPdf")
    public HttpResponseMessage renderPdf(
            @HttpTrigger(
                    name = "req",
                    methods = {HttpMethod.GET, HttpMethod.POST},
                    authLevel = AuthorizationLevel.ANONYMOUS)
            HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context) {

        // Log each invocation for Azure Monitor / Application Insights
        context.getLogger().info("RenderPdf triggered.");

        final String url = request.getQueryParameters().get("url");

        // Return 400 if no URL was supplied
        if (url == null) {
            return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
                    .body("Provide a 'url' query parameter.")
                    .build();
        }

        try {
            // renderUrlAsPdf launches Chromium, loads the page, and captures it as PDF
            PdfDocument pdf = PdfDocument.renderUrlAsPdf(url);

            // getBinaryData returns the raw PDF bytes ready for transmission
            byte[] pdfBytes = pdf.getBinaryData();

            return request.createResponseBuilder(HttpStatus.OK)
                    .body(pdfBytes)
                    .header("Content-Disposition", "attachment; filename=output.pdf")
                    .header("Content-Type", "application/pdf")
                    .build();

        } catch (Exception ex) {
            context.getLogger().severe("Rendering error: " + ex.getMessage());
            return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
                    .body("PDF rendering failed.")
                    .build();
        }
    }
}
JAVA

PdfDocument.renderUrlAsPdf(url) lance une instance Chromium sans interface utilisateur à l'intérieur du conteneur, charge entièrement l'URL cible (y compris le JavaScript) et capture le résultat affiché sous forme de PDF. Cela produit une sortie visuellement identique à ce que voit un utilisateur dans un navigateur, ce qui le rend adapté pour capturer des applications web modernes, des tableaux de bord et des pages de rapports.

ImportantLe paramètre authLevel = AuthorizationLevel.ANONYMOUS dans le déclencheur de fonction rend le point de terminaison accessible au public. Pour les déploiements en production, remplacez ceci par FUNCTION ou ADMIN et transmettez la clé de fonction dans l'en-tête de la requête.

Comment configurer le Dockerfile pour IronPDF? {#configure-dockerfile}

Le moteur Chromium d'IronPDF dépend d'un ensemble de bibliothèques Linux partagées qui ne sont pas incluses dans l'image de base des Azure Functions. L'image de base mcr.microsoft.com/azure-functions/java:4-java17-build est construite sur Debian 11, les paquets doivent donc être installés à l'aide de apt.

Les commandes RUN suivantes doivent être ajoutées au fichier Dockerfile généré par l'archétype Maven Azure Functions. Placez-les après l'instruction FROM et avant les étapes COPY qui ajoutent le fichier JAR de l'application :

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/Dockerfile
FROM mcr.microsoft.com/azure-functions/java:4-java17-build AS installer-env

# Install system dependencies required by IronPDF's Chromium renderer
RUN apt-get update && apt-get install -y \
    libgdiplus \
    libxkbcommon-x11-0 \
    libc6 \
    libc6-dev \
    libgtk2.0-0 \
    libnss3 \
    libatk-bridge2.0-0 \
    libx11-xcb1 \
    libxcb-dri3-0 \
    libdrm-common \
    libgbm1 \
    libasound2 \
    libxrender1 \
    libfontconfig1 \
    libxshmfence1 \
    && apt-get install -y xvfb libva-dev libgdiplus \
    && rm -rf /var/lib/apt/lists/*

# Copy the built function JAR
COPY --from=installer-env /home/site/wwwroot /home/site/wwwroot

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

Le package libgdiplus offre une compatibilité GDI+ pour le rendu graphique. libnss3 et libatk-bridge2.0-0 sont requis par les couches de sandboxing et d'accessibilité de Chromium. xvfb fournit un framebuffer virtuel, dont Chromium a besoin même en mode sans affichage sur certaines configurations Debian. L'étape rm -rf /var/lib/apt/lists/* à la fin du bloc RUN supprime le cache du Package Manager, ce qui permet de réduire au maximum la taille finale de l'image.

Comment construire et pousser l'image Docker? {#build-push-docker}

Avec le projet Maven construit et le Dockerfile mis à jour, l'image de conteneur peut être assemblée et téléchargée sur un registre Docker. Azure Functions récupère cette image lorsque l'App Function est créée ou mise à jour.

Étape 1 — Construit et packaging du projet Maven :

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/build.sh
# Compile the Java code and package it as a JAR
mvn clean package
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/build.sh
# Compile the Java code and package it as a JAR
mvn clean package
SHELL

Maven compile le code de la fonction, résout toutes les dépendances (y compris les deux artefacts IronPDF) et produit un fichier JAR déployable dans le répertoire target/. Corrigez toutes les erreurs de compilation avant de continuer.

Étape 2 — Construire l'image Docker :

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/docker-build.sh
# Replace <DOCKER_ID> with your Docker Hub username or ACR login server
docker build --tag <DOCKER_ID>/ironpdf-azure-functions:v1.0.0 .
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/docker-build.sh
# Replace <DOCKER_ID> with your Docker Hub username or ACR login server
docker build --tag <DOCKER_ID>/ironpdf-azure-functions:v1.0.0 .
SHELL

Le build installe les paquets Linux listés dans le Dockerfile, copie le JAR, et superpose le tout dans une image finale. Lors du premier build, cela peut prendre plusieurs minutes car les téléchargements de paquets et la mise en cache des couches sont établis. Les constructions ultérieures utilisant la même image de base sont nettement plus rapides.

Étape 3 — Pousser l'image sur Docker Hub :

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/docker-push.sh
# Authenticate if not already logged in
docker login

# Push the image to the registry
docker push <DOCKER_ID>/ironpdf-azure-functions:v1.0.0
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/docker-push.sh
# Authenticate if not already logged in
docker login

# Push the image to the registry
docker push <DOCKER_ID>/ironpdf-azure-functions:v1.0.0
SHELL

ConseilsAzure Container Registry (ACR) est une alternative privée à Docker Hub. ACR s'intègre directement avec Azure Active Directory et est le choix recommandé pour les charges de travail en production où la confidentialité de l'image est importante.

Comment déployer la fonction sur Azure? {#deploy-to-azure}

Avec l'image dans le registre, l'Azure Function App peut être créée (ou mise à jour) pour y faire référence. La commande az functionapp create provisionne l'application Function App, la lie à un compte de stockage et définit l'image du conteneur en une seule étape.

Étape 1 — Créer ou mettre à jour le Function App :

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/az-deploy.sh
az functionapp create \
  --name <APP_NAME> \
  --storage-account <STORAGE_NAME> \
  --resource-group AzureFunctionsContainers-rg \
  --plan myPremiumPlan \
  --deployment-container-image-name <DOCKER_ID>/ironpdf-azure-functions:v1.0.0
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/az-deploy.sh
az functionapp create \
  --name <APP_NAME> \
  --storage-account <STORAGE_NAME> \
  --resource-group AzureFunctionsContainers-rg \
  --plan myPremiumPlan \
  --deployment-container-image-name <DOCKER_ID>/ironpdf-azure-functions:v1.0.0
SHELL

Remplacez <APP_NAME> par un nom unique au niveau mondial pour l'application Function App, <STORAGE_NAME> par le nom d'un compte Azure Storage existant, et <DOCKER_ID> par le nom d'utilisateur Docker Hub ou le serveur de connexion ACR utilisé à l'étape précédente.

Le drapeau --plan myPremiumPlan sélectionne un forfait d'hébergement Premium. Le moteur Chromium d'IronPDF consomme une mémoire significative lors du rendu ; le plafond de mémoire de 1,5 Go du plan Consumption est souvent insuffisant. Le plan Premium fournit au moins 3,5 Go et prend en charge les instances préchauffées supprimant la latence du démarrage à froid.

Étape 2 — Vérifier le déploiement :

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/az-verify.sh
# Check that the function app is running and the container has been pulled
az functionapp show \
  --name <APP_NAME> \
  --resource-group AzureFunctionsContainers-rg \
  --query "state"
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/az-verify.sh
# Check that the function app is running and the container has been pulled
az functionapp show \
  --name <APP_NAME> \
  --resource-group AzureFunctionsContainers-rg \
  --query "state"
SHELL

La commande renvoie "Running" lorsque le conteneur a démarré avec succès. Si le résultat est "Starting" ou une erreur, vérifiez le flux de journaux du portail Azure sous l'application Function App pour détecter d'éventuelles erreurs de récupération ou de démarrage du conteneur.

AvertissementLe plan Consumption (sans serveur) n'est pas recommandé pour IronPDF sur Azure Functions. Le rendu de PDF avec Chromium nécessite plus de mémoire que celle allouée par le plan Consumption. Utilisez un plan Premium ou Dedicated (App Service) pour éviter les erreurs de mémoire insuffisante.

Comment déclencher et tester la fonction? {#trigger-and-test}

Une fois que l'application Function signale un état Running, le point de terminaison RenderPdf est prêt à accepter des requêtes. L'URL du point de terminaison suit un modèle prévisible basé sur le nom de l'application Function App et le nom de la fonction défini dans l'annotation @FunctionName.

Testez en utilisant un navigateur ou curl :

//:path=/static-assets/pdf/content-code-examples/tutorials/azure/test-request.sh
# Replace <APP_NAME> with the Function App name
curl -o output.pdf \
  "https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.example.com"
//:path=/static-assets/pdf/content-code-examples/tutorials/azure/test-request.sh
# Replace <APP_NAME> with the Function App name
curl -o output.pdf \
  "https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.example.com"
SHELL

Une réponse réussie économise un fichier PDF nommé output.pdf dans le répertoire actuel. Le drapeau -o dans curl écrit le corps de la réponse binaire dans un fichier plutôt que de l'afficher sur le terminal.

Lors des tests dans un navigateur, allez sur :

https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.example.com

Le navigateur demandera à télécharger un PDF. Ouvrez-le pour vérifier que la page a été rendue correctement.

ImportantLa première requête après un démarrage à froid peut prendre 20 à 60 secondes car Azure récupère l'image du conteneur et IronPDF initialise Chromium. Les requêtes suivantes dans la même durée de vie du conteneur sont beaucoup plus rapides. La fonction d'instance préchauffée du plan Premium élimine les démarrages à froid en gardant au moins une instance en fonctionnement en continu.

Vérification des journaux d'erreurs : Allez sur le portail Azure, ouvrez le Function App et sélectionnez Log Stream sous Monitoring. Les entrées de journal provenant des appels context.getLogger() s'affichent ici en temps quasi réel, ce qui facilite le diagnostic des échecs de rendu.

Quelles sont les prochaines étapes? {#next-steps}

Ce guide a démontré comment déployer IronPDF for Java dans un conteneur Docker Azure Functions, écrire une fonction déclenchée par HTTP qui rend des URLs en PDF, configurer le Dockerfile avec les dépendances Linux requises et tester le point de terminaison en direct. Le même modèle s'étend à des cas d'utilisation plus avancés avec des changements minimes.

Élargir la fonction :

  • Afficher les chaînes HTML directement à l'aide de PdfDocument.renderHtmlAsPdf(htmlString) au lieu d'une URL
  • Appliquer des filigranes, fusionner plusieurs PDF ou ajouter des signatures numériques en utilisant l'API complète d'IronPDF for Java
  • Lire les en-têtes de requête ou le corps POST pour passer du contenu HTML personnalisé ou des options de rendu

Améliorer la préparation à la production :

  • Remplacer authLevel par FUNCTION et permuter régulièrement les touches de fonction
  • Utilisez la Azure Key Vault pour stocker tous les secrets référencés dans les paramètres de l'application
  • Configurez Application Insights pour une observabilité de bout en bout de la latence de rendu et des taux d'échec
  • Configurez un webhook de mise à jour d'image Docker afin qu'Azure redéploie automatiquement lorsqu'une nouvelle version d'image est poussée

Explorez plus de guides IronPDF for Java :

Commencez un essai gratuit IronPDF pour accéder à toutes les fonctionnalités de rendu et de manipulation sans filigrane pendant la période d'évaluation. Lorsque vous êtes prêt à déployer en production, voyez les options de licence IronPDF pour trouver le plan qui convient à l'échelle du projet.

Questions Fréquemment Posées

Pourquoi le déploiement Docker est-il requis pour IronPDF sur Azure Functions ?

IronPDF expédie un moteur de rendu natif Chromium qui doit exécuter des binaires au moment de l'exécution. Le déploiement Zip d'Azure Functions ne peut pas exécuter de binaires natifs, donc une image de conteneur Docker est le seul chemin de déploiement pris en charge.

Quels artefacts Maven sont nécessaires pour exécuter IronPDF à l'intérieur d'un conteneur Docker ?

Deux artefacts sont nécessaires dans pom.xml : com.ironsoftware:ironpdf pour l'API Java et com.ironsoftware:ironpdf-engine-linux-x64 pour le moteur Chromium natif. Tous deux doivent partager le même numéro de version.

Quels packages Linux le Dockerfile doit-il installer pour IronPDF ?

Le Dockerfile doit installer libgdiplus, libxkbcommon-x11-0, libc6, libc6-dev, libgtk2.0-0, libnss3, libatk-bridge2.0-0, libx11-xcb1, libxcb-dri3-0, libdrm-common, libgbm1, libasound2, libxrender1, libfontconfig1, libxshmfence1, xvfb, et libva-dev.

Que fait la fonction RenderPdf ?

La fonction RenderPdf est une fonction Azure déclenchée par HTTP qui lit un paramètre de requête url, le passe à PdfDocument.renderUrlAsPdf, et retourne les octets PDF résultants avec un en-tête Content-Disposition: attachment afin que l'expéditeur reçoive un fichier PDF téléchargeable.

Quel plan d'hébergement Azure Functions devrait être utilisé pour IronPDF ?

Le plan Premium est recommandé. Le moteur Chromium d'IronPDF nécessite beaucoup de mémoire — souvent plus que le plafond de 1,5 Go du plan Consumption. Le plan Premium fournit au moins 3,5 Go et prend en charge des instances préchauffées pour éliminer la latence de démarrage à froid.

Pourquoi la première requête à une fonction nouvellement déployée est-elle lente ?

La première requête après un démarrage à froid peut prendre 20–60 secondes car Azure doit tirer l'image du conteneur et IronPDF doit initialiser son moteur Chromium. Les requêtes suivantes durant la même durée de vie du conteneur répondent beaucoup plus rapidement. La fonctionnalité d'instances préchauffées du plan Premium peut éliminer ce délai.

Comment mettez-vous à jour une Application Function Azure existante pour utiliser une nouvelle image Docker ?

Recommencez à construire et poussez la nouvelle image avec une balise mise à jour, puis exécutez az functionapp create à nouveau avec la nouvelle valeur --deployment-container-image-name, ou mettez à jour les paramètres du conteneur dans le portail Azure sous le Centre de Déploiement de l'Application Function.

IronPDF peut-il rendre des chaînes HTML dans une fonction Azure, et pas seulement des URLs ?

Oui. Remplacez PdfDocument.renderUrlAsPdf(url) par PdfDocument.renderHtmlAsPdf(htmlString) pour rendre une chaîne HTML directement. La structure de la fonction et le traitement de la réponse restent les mêmes.

Que se passe-t-il si le paramètre de requête url est manquant dans la requête ?

La fonction vérifie si le paramètre url est null et renvoie une réponse HTTP 400 Bad Request avec un message descriptif avant d'essayer tout rendu PDF.

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?
Version : 2026.5 just released
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ?
exécuter un échantillon Regardez votre code HTML se transformer en PDF.