如何在 Azure 功能中运行 IronPDF for Java
- IronPDF for Java 仅支持 Docker 部署。
- 不支持压缩部署,因为 IronPDF 需要在运行时执行二进制文件。
1.请遵循此 Microsoft 官方指南
* [https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-function-linux-custom-image](https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-function-linux-custom-image)
* 选择一种编程语言" -> 选择 `Java
* 按照指南操作,直到应用程序启动并运行。
2.添加 IronPDF 依赖项
- 在您的 pom 中添加以下内容,并使用最新版本
.<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>
- 注意:"ironpdf-engine-linux "是在 Docker 中运行 IronPDF 的**必要条件。
3.添加一个 RenderPdf
函数
在
Function.java
中添加一个新函数- 该函数将接收 URL 并返回渲染后的 PDF。
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();
}
}
}
4.更新 Dockerfile
添加 IronPDF Linux 所需软件包。
示例中的基础 Docker 映像是
mcr.microsoft.com/azure-functions/java:4-java$JAVA_VERSION-build
,即Debian 11
.因此,我们需要将这些软件包添加到 docker 文件中。
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
- 有关其他 Linux 发行版,请参见 /how-to/linux/
5.将功能重新部署到 Azure
1.构建和打包 mvn clean package
2.构建 Docker 映像,例如 `docker build --tag
3.推送 Docker 镜像,例如 docker push <DOCKER_ID>/azurefunctionsimage:v1.0.0
.
4.更新 Azure 函数,例如: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
6.享受 IronPDF
触发函数:
https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.google.com
- 注意:第一次触发函数时,可能会由于初始化而导致速度变慢或失败,但之后就会好起来。