So führen Sie IronPDF for Java in einer Azure-Funktion aus
- 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.
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.
Hinzufügen der IronPDF-Abhängigkeit
- Fügen Sie dies zu Ihrem pom mit dem neuesten
<version>
- Fügen Sie dies zu Ihrem pom mit dem neuesten
<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>
- Hinweis:
ironpdf-engine-linux
ist erforderlich, um IronPDF in Docker auszuführen.
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();
}
}
}
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
, wasDebian 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
- Für andere Linux-Distributionen sieheIronPDF Linux-Installationshandbuch
Stellen Sie Ihre Funktion auf Azure um
Erstellen und verpacken von
mvn clean package
Docker-Image erstellen, z.B. "docker build --tag
/azurefunctionsimage:v1.0.0 .` Docker-Image pushen, z.B.
docker push <DOCKER_ID>/azurefunctionsimage:v1.0.0
- 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
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.