Azure Function で IronPDF for Java を実行する方法
- IronPDF for JavaはDockerデプロイメントのみをサポートしています。
- Zip Deploymentはサポートされていません。なぜなら IronPDFは実行時にバイナリの実行が必要です。
-
以下に従ってください。マイクロソフト公式ガイド カスタムイメージを使用したLinux上での関数作成
-
「プログラミング言語を選択」 -> 「Java」を選択
- アプリが起動するまでガイドに従ってください。
-
-
IronPDFの依存関係を追加します
- 最新のものをpomに追加してください
もちろん、英語のテキストを教えていただけますでしょうか?
- 最新のものをpomに追加してください
<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
はIronPDFをDockerで実行するために必須です。
-
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();
}
}
}
-
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ディストロについてはIronPdf.Linux インストールガイド
-
Azureに関数を再デプロイする
-
ビルドおよびパッケージ
mvn clean package
-
Dockerイメージをビルドする 例:
docker build --tag <DOCKER_ID>/azurefunctionsimage:v1.0.0 .
-
Docker イメージをプッシュする例:
docker push <DOCKER_ID>/azurefunctionsimage:v1.0.0
- 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
-
-
IronPDFをお楽しみください
-
トリガー機能https://
.azurewebsites.net/api/RenderPdf?url=https://www.google.com`。 - 注意: 関数が最初に起動したときは、動作が遅くなったり、初期化で失敗することがありますが、その後は問題ありません。
-