IronPDF for JavaをAzureに設定する方法
このガイドでは、IronPDF for JavaをAzure Functionsコンテナ内に展開し、サーバーレスHTTPエンドポイントからオンデマンドでPDFを生成するために必要なすべてをカバーします。 IronPDFはネイティブのChromiumレンダリングエンジンを搭載しているため、Dockerイメージとしてパッケージ化する必要があります。Azure Functionsの標準Zip展開では、実行時にIronPDFが依存するバイナリを実行できません。このガイドに従い、動作するAzure FunctionがクエリパラメータとしてURLを受け取り、完全にレンダリングされたPDFをダウンロード可能なファイルとして返すようになります。
Microsoft推奨のカスタムコンテナワークフロー を使用して、LinuxベースのAzure Functionsで展開します。 Mavenプロジェクトは機能コードと依存関係の管理を提供します。 Dockerがコンテナイメージを構築し、それをレジストリにプッシュし、Azure Function Appが参照します。展開が完了すると、初回起動時間が主なパフォーマンスの考慮事項で、その後の呼び出しは迅速かつ一貫しています。
開始する前に、Azure CLI、Docker Desktop、Maven 3.8以上、およびJDK 11またはJDK 17がローカルにインストールされていることを確認してください。 また、Function Appsとストレージアカウントを作成する権限を持つアクティブなAzureサブスクリプションが必要です。
クイックスタート:Azure FunctionsでIronPDF for Javaを展開
以下のコードは完全なRenderPdfAzure関数を示しています。 それはurlクエリパラメータを受け入れ、PDFバイトストリームを返します。 Mavenの依存関係設定を完了した後、これをFunction.javaに追加します。
//: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();
}
}
}
今日あなたのプロジェクトでIronPDFを無料トライアルで使用開始。
目次
- 必要な前提条件は何ですか?
- Azure Functionプロジェクトをどのように設定しますか?
- IronPDF依存関係をMavenプロジェクトにどのように追加しますか?
- RenderPdf関数をどのように書きますか?
- IronPDF用のDockerfileをどのように設定しますか?
- Dockerイメージをどのようにビルドしてプッシュしますか?
- Azureに関数をどのようにデプロイしますか?
- 関数をどのようにトリガーしてテストしますか?
- 次のステップは何ですか?
必要な前提条件は何ですか?
開始前に、必要なすべてのツールがインストールされていることと、Azureサブスクリプションがアクティブであることを確認してください。これらのチェックをスキップすると、展開プロセスの途中でビルドの失敗が多発します。
必要なローカルツール:
- Azure CLI(バージョン2.40以降)
- Linuxコンテナが有効になっているDocker Desktop
- Maven 3.8以降
- JDK 11またはJDK 17(JDK 17が推奨されるLTSバージョン)
- Azure Functions Core Tools v4
必要なAzureリソース:
- アクティブなAzureサブスクリプション
- リソースグループ、ストレージアカウント、Function Appプランを作成する権限
- 作成したイメージをホストするためのDocker Hubアカウント(またはAzure Container Registry)
ironpdf-engine-linux-x64 artifact when running inside any Docker container. Azure Functionsでの標準Zip展開では、IronPDFのネイティブバイナリを実行できません。Dockerが唯一サポートされる展開方法です。次のセクションに進む前に、Azure CLIを認証するためにaz loginを実行します。
Azure Functionプロジェクトをどのように設定しますか?
Linuxでカスタムイメージを使用して関数を作成するためのMicrosoftガイドは、完全なスキャフォルディングプロセスをカバーしています。 その手順を"プログラミング言語"にJavaを選択する重要な選択を行ってください。
スキャフォルドされたプロジェクトがビルドされ、プレースホルダ関数をAzure Functions Core Toolsを使用してローカルで実行するまでガイドを進めてください。 以下を使用してこれを検証します:
//: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
プレースホルダがローカルHTTPリクエストに応答すると、プロジェクト構造が正しくなり、IronPDF統合の準備が整いました。 主なファイルはDockerfile(コンテナ定義)です。
host.json and local.settings.json alongside pom.xml. local.settings.jsonファイルはローカル開発用の環境変数を格納しており、デフォルトではソース管理から除外され、決してコミットされるべきではありません。IronPDF依存関係をMavenプロジェクトにどのように追加しますか?
IronPDF for JavaはMaven Centralを通じて配布されています。 2つのアーティファクトが必要です:Java APIを提供するコアironpdfライブラリと、Linux x86-64用にコンパイルされたネイティブChromiumエンジンをバンドルするironpdf-engine-linux-x64です。エンジンアーティファクトは、実行時にバイナリを実行する必要があるためにDockerデプロイが必須となる理由です。
<dependencies>ブロック内に追加します。 現在のリリースを使用するためLATEST_VERSIONを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>
両方のアーティファクトは同じバージョン番号を使用する必要があります。 ironpdf-engine-linux-x64の間でバージョンが一致しないと、関数が最初にPDFをレンダリングしようとした際にランタイム例外が発生します。
mvn dependency:resolveを実行し、Dockerイメージの構築に時間をかける前に確認します。
RenderPdf関数をどのように書きますか?
Content-Disposition: attachmentヘッダ付きで結果のPDFをバイナリー応答として返します。 このヘッダーは、ブラウザ(またはHTTPクライアント)にPDFをインラインで表示するのではなくダウンロードするよう指示します。
完全な関数コードは、上記のクイックスタートに表示されています。 それをsrc/main/java/com/example/Function.javaに配置し、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();
}
}
}
PdfDocument.renderUrlAsPdf(url)は、コンテナ内でヘッドレスChromiumインスタンスを起動し、ターゲットURL(JavaScriptを含む)を完全に読み込み、レンダリングされた出力をPDFとしてキャプチャします。 これにより、ユーザーがブラウザで見るものと視覚的に同一の出力が生成され、最新のWebアプリケーション、ダッシュボード、およびレポートページをキャプチャするのに適しています。
authLevel = AuthorizationLevel.ANONYMOUS setting in the function trigger makes the endpoint publicly accessible. 実稼働環境へのデプロイでは、これをADMINに変更し、リクエストヘッダーで関数キーを渡します。IronPDF用のDockerfileをどのように設定しますか?
IronPDFのChromiumエンジンは、ベースAzure Functionsイメージに含まれていない一連の共有Linuxライブラリに依存しています。 ベースイメージmcr.microsoft.com/azure-functions/java:4-java17-buildはDebian 11上で構築されているため、パッケージをaptを使用してインストールしなければなりません。
次のRUNコマンドを、Azure Functions Mavenアーキタイプによって生成されたDockerfileに追加する必要があります。 COPYステップの前にそれらを配置します:
//: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
libgdiplusパッケージは、グラフィックスレンダリングのためのGDI+互換性を提供します。 libatk-bridge2.0-0は、Chromiumのサンドボックス化およびアクセシビリティ階層によって必要とされます。 xvfbは仮想フレームバッファを提供し、一部のDebian設定でヘッドレスモードでもChromiumが必要とするものです。 RUNブロックの最後にあり、パッケージマネージャーキャッシュを削除し、最終イメージサイズを可能な限り小さく保ちます。
Dockerイメージをどのようにビルドしてプッシュしますか?
Mavenプロジェクトがビルドされ、Dockerfileが更新されたら、コンテナイメージを作成してDockerレジストリにアップロードできます。 Azure Functionsは、Function Appが作成または更新されると、このイメージを取得します。
ステップ1 — 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
Mavenは、関数コードをコンパイルし、すべての依存関係(IronPDFアーティファクトを含む)を解決し、target/ディレクトリにデプロイ可能なJARを生成します。 進行する前にコンパイルエラーを修正してください。
ステップ2 — 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 .
ビルドはDockerfileに記載されたLinuxパッケージをインストールし、JARをコピーして、最終イメージにすべてをレイヤー化します。 最初のビルドではパッケージのダウンロードとレイヤーキャッシュが確立されるため数分かかることがあります。 同じベースイメージを使用する後続のビルドはかなり高速です。
ステップ3 — 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
関数をAzureにどのようにデプロイしますか?
イメージがレジストリにある場合、Azure Function Appを作成(または更新)してそれを参照することができます。 az functionapp createコマンドは、Function Appをプロビジョニングし、それをストレージアカウントにリンクし、コンテナイメージを一歩で設定します。
ステップ1 — 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
Function Appのグローバルに一意の名前を<STORAGE_NAME>に、前のステップで使用したDocker Hubユーザー名またはACRログインサーバーを<DOCKER_ID>に置き換えます。
--plan myPremiumPlanフラグは、プレミアムホスティングプランを選択します。 IronPDFのChromiumエンジンはレンダリング中にかなりのメモリを消費します; 消費プランの1.5 GBメモリ上限では十分ではないことが多いです。 プレミアムプランは少なくとも3.5 GBを提供し、コールドスタート遅延を排除するために予備のインスタンスをサポートします。
ステップ2 — デプロイメントを確認する:
//: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"
コンテナが正常に起動したときに"Running"がコマンドとして返されます。 それが"Starting"またはエラーを返した場合、Azure ポータルの Function App の Log Stream でコンテナのプルまたは起動エラーを確認してください。
関数をどのようにトリガーしてテストしますか?
Function AppがRenderPdfエンドポイントはリクエストを受け入れる準備が整います。 エンドポイントのURLは、Function App名および@FunctionNameアノテーションで定義された関数名に基づいた予測可能なパターンに従います。
ブラウザまたは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"
正常な応答は、output.pdfという名前のPDFファイルを現在のディレクトリに保存します。 curl の-oフラグは、バイナリ応答ボディをファイルに書き込み、端末には表示しません。
ブラウザでテストする場合は、以下のURLに移動します:
https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.example.com
ブラウザはPDFのダウンロードを促します。 それを開いてページが正しくレンダリングされたかどうかを確認します。
エラーのログを確認する:Azureポータルに移動し、Function Appを開き、監視の下のLog Streamを選択します。 context.getLogger() 呼び出しからのログエントリは、ほぼリアルタイムでここに表示されるため、レンダリングの失敗を診断するのが簡単です。
次のステップは何ですか?
このガイドでは、IronPDF for JavaをAzure Functions Dockerコンテナ内に展開し、URLをPDFとしてレンダリングするHTTPトリガー関数を作成し、必要なLinux依存関係でDockerfileを設定し、ライブエンドポイントをテストする方法を示しました。 同じパターンは、わずかな変更でより高度なユースケースに拡張できます。
関数を拡張する:
- URLではなく
PdfDocument.renderHtmlAsPdf(htmlString)を使用してHTML文字列を直接レンダリングする - 透かしを適用したり、複数のPDFをマージしたり、IronPDFのフルJava PDF API を使用してデジタル署名を追加することができます
- リクエストヘッダーまたはPOSTボディを読み取って、カスタムHTMLコンテンツやレンダリングオプションを渡す
本番準備を改善する:
FUNCTIONに切り替え、関数キーを定期的に回転させる- Azure Key Vaultを使用して、アプリケーション設定で参照されている機密情報を保存します
- レンダリングの遅延と失敗率のエンドツーエンドの可視性を確保するためにApplication Insightsを構成する
- Dockerイメージの更新webhookを設定して、Azureが新しいイメージバージョンのプッシュを自動で再展開
さらに多くのIronPDF for Javaガイドを探索する:
- IronPDF for Java: Linuxインストールガイド
- JavaでHTMLからPDFを生成
- IronPDF for Java: Docker展開ガイド
- IronPDFのフルJava APIリファレンス
無料のIronPDFトライアルを開始して、評価期間中に透かしなしでレンダリングおよび操作機能にアクセスします。 本番環境への展開の準備が整ったら、IronPDFライセンスオプションを表示し、プロジェクトの規模に合ったプランを見つけてください。
よくある質問
Azure FunctionsにIronPDFをデプロイするためにDockerデプロイが必要なのはなぜですか?
IronPDFはネイティブのChromiumレンダリングエンジンを提供し、ランタイムでバイナリを実行する必要があります。Azure FunctionsのZipデプロイはネイティブバイナリを実行できないため、Dockerコンテナイメージが唯一のサポートされているデプロイパスです。
Dockerコンテナ内でIronPDFを実行するために必要なMavenアーティファクトはどれですか?
pom.xmlには2つのアーティファクトが必要です:Java API用のcom.ironsoftware:ironpdfとネイティブChromiumエンジン用のcom.ironsoftware:ironpdf-engine-linux-x64。両者は同じバージョン番号を共有する必要があります。
IronPDFに対してDockerfileがインストールする必要のあるLinuxパッケージは何ですか?
Dockerfileは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、およびlibva-devをインストールする必要があります。
RenderPdf関数は何をしますか?
RenderPdf関数はHTTPトリガーされたAzure Functionで、urlクエリパラメータを読み取り、PdfDocument.renderUrlAsPdfに渡し、結果のPDFバイトをContent-Disposition: attachmentヘッダーと共に返し、呼び出し元がダウンロード可能なPDFファイルを受け取ることができます。
IronPDF用のAzure Functionsのホスティングプランはどれを使用するべきですか?
プレミアムプランが推奨されます。IronPDFのChromiumエンジンは容量を大量に必要とし、消費プランの1.5GBの上限を超えることがしばしばあります。プレミアムプランは最低でも3.5GBを提供し、コールドスタートのレイテンシーを排除するためにウォームインスタンスをサポートします。
新しくデプロイされた関数への最初のリクエストが遅いのはなぜですか?
コールドスタート後の最初のリクエストは、Azureがコンテナイメージをプルし、IronPDFがChromiumエンジンを初期化する必要があるため、20〜60秒かかることがあります。同じコンテナライフタイム内のその後のリクエストははるかに高速です。プレミアムプランのプレウォームドインスタンス機能がこの遅延を排除することができます。
既存のAzure Function Appを新しいDockerイメージに更新するにはどうすればよいですか?
更新されたタグで新しいイメージを再構築してプッシュした後、新しい--deployment-container-image-name値でaz functionapp createを再度実行するか、AzureポータルのFunction Appのデプロイセンターでコンテナの設定を更新します。
IronPDFはURLだけでなく、Azure FunctionでHTML文字列をレンダリングできますか?
はい。PdfDocument.renderUrlAsPdf(url)をPdfDocument.renderHtmlAsPdf(htmlString)に置き換えて直接HTML文字列をレンダリングします。関数構造とレスポンス処理は同じままです。
リクエストからurlクエリパラメータが欠落している場合はどうなりますか?
関数はurlパラメータがnullかどうかをチェックし、任意のPDFレンダリングを試みる前にHTTP 400 Bad Requestレスポンスと説明的なメッセージを返します。


