So führen Sie IronPDF for Java in einer Azure-Funktion aus

Darrius Serrant
Darrius Serrant
22. Januar 2023
Aktualisiert 20. Oktober 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

  • IronPDF for Java unterstützt nur die Docker-Bereitstellung.
  • Zip-Deployment wird nicht unterstützt, da IronPDF erfordert die Ausführung von Binärdateien zur Laufzeit.

  1. Befolgen Sie dieOffizielles Microsoft-Handbuch für die Funktionserstellung unter Linux mit Custom Image

    • Wählen Sie unter "Wählen Sie eine Programmiersprache" die Option "Java"

    • Folgen Sie der Anleitung, bis Ihre App betriebsbereit ist.
  2. Hinzufügen der IronPDF-Abhängigkeit

    • Fügen Sie dies zu Ihrem pom mit dem neuesten <version>
    <dependencies>
        <dependency>
                <groupId>com.ironsoftware</groupId>
                <artifactId>ironpdf</artifactId>
                <version>2022.xx.x</version>
            </dependency>
            <dependency>
                <groupId>com.ironsoftware</groupId>
                <artifactId>ironpdf-engine-linux-x64</artifactId>
                <version>2022.xx.x</version>
            </dependency>
        </dependencies>
XML
  • Hinweis: ironpdf-engine-linux ist erforderlich, um IronPDF in Docker auszuführen.
  1. Hinzufügen einer "RenderPdf"-Funktion

    • Hinzufügen einer neuen Funktion in Function.java

    • Diese Funktion empfängt eine URL und gibt eine gerenderte PDF-Datei zurück.
    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) {
        context.getLogger().info("Java HTTP trigger processed a request. (RenderPdf)");
        // Parse query parameter
        final String url = request.getQueryParameters().get("url");
        if (url == null) {
            return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body("Please pass a url on the query string").build();
        } else {
            context.getLogger().info("IronPDF try to render url: " + url);
            PdfDocument pdfDocument = com.ironsoftware.ironpdf.PdfDocument.renderUrlAsPdf(url);
            byte [] content = pdfDocument.getBinaryData();
            return request.createResponseBuilder(HttpStatus.OK)
                    .body(content)
                    .header("Content-Disposition", "attachment; filename=ironpdf_result.pdf")
                    .build();
        }
    }
    }
JAVA
  1. Dockerfile aktualisieren

    • Fügen Sie die für IronPDF Linux erforderlichen Pakete hinzu.

    Im Beispiel ist das Basis-Docker-Image mcr.microsoft.com/azure-functions/java:4-java$JAVA_VERSION-build, was Debian 11 ist.

    Wir müssen also diese Pakete zur Docker-Datei hinzufügen.

   RUN apt update \
   && apt 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
   RUN apt-get install -y xvfb libva-dev libgdiplus
  1. Stellen Sie Ihre Funktion auf Azure um

    1. Erstellen und verpacken von mvn clean package

    2. Docker-Image erstellen, z.B. "docker build --tag/azurefunctionsimage:v1.0.0 .`

    3. Docker-Image pushen, z.B. docker push <DOCKER_ID>/azurefunctionsimage:v1.0.0

    4. Azure-Funktion aktualisieren, z. B. az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> --resource-group AzureFunctionsContainers-rg --plan myPremiumPlan --deployment-container-image-name <DOCKER_ID>/azurefunctionsimage:v1.0.0
  2. Genießen Sie IronPDF

    • Funktion auslösen bei: https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.google.com

    • Hinweis: Wenn die Funktion zum ersten Mal ausgelöst wird, kann sie langsam sein oder aufgrund der Initialisierung fehlschlagen, aber danach funktioniert sie einwandfrei.
Darrius Serrant
Full Stack Software Engineer (WebOps)

Darrius Serrant hat einen Bachelor-Abschluss in Informatik von der University of Miami und arbeitet als Full Stack WebOps Marketing Engineer bei Iron Software. Schon in jungen Jahren vom Programmieren angezogen, sah er das Rechnen sowohl als mysteriös als auch zugänglich an, was es zum perfekten Medium für Kreativität und Problemlösung machte.

Bei Iron Software genießt Darrius es, neue Dinge zu erschaffen und komplexe Konzepte zu vereinfachen, um sie verständlicher zu machen. Als einer unserer ansässigen Entwickler hat er sich auch freiwillig gemeldet, um Schüler zu unterrichten und sein Fachwissen mit der nächsten Generation zu teilen.

Für Darrius ist seine Arbeit erfüllend, weil sie geschätzt wird und einen echten Einfluss hat.