How to Run & Deploy IronPDF .NET on Azure Function

This article was translated from English: Does it need improvement?
Translated
View the article in English
class="container-fluid">
class="row">
class="col-md-2"> Azure 1 related to How to Run & Deploy IronPDF .NET on Azure Function

はい。 IronPDFは、Azure上でPDFドキュメントを生成、操作、読み取るために利用できます。 IronPDFは、MVCウェブサイト、Azure Functionsなど、複数のAzureプラットフォームで徹底的にテストされています。

class="hsg-featured-snippet">

Azure FunctionでHTMLをPDFに変換する方法

  1. Azure FunctionでHTMLをPDFに変換するためのC#ライブラリをインストール
  2. Azure Basic B1ホスティングティア以上を選択
  3. 発行時にパッケージファイルから実行オプションをオフにする
  4. 推奨される構成手順に従う
  5. Azureを使用してPDFジェネレーターを作成するためのコード例を利用する

class="main-content__segment-title">チュートリアル

IronPdfパッケージをインストールする

Azure Function Appsには、LinuxWindows、およびコンテナという3つの独自の環境があります。 この記事では、すべての環境でのIronPdfのセットアップ方法を説明します。 これらの中で、Azure Function Appコンテナは、分離された環境を提供するため推奨されます。 開始するには、インストールする適切なパッケージを選択します。

Azure Function Appコンテナ

Azure Function Appコンテナは、最小の手間で済むため、IronPdfをデプロイするのに推奨される方法です。

data-bs-title="クリップボードにコピー済み">
Install-Package IronPdf.Linux

Dockerファイルの構成

使用しているLinuxディストリビューションに基づいて、Dockerファイルを構成します。 この記事を参照して、詳細な指示を確認してください。

Azure Function App(Windows)

標準のIronPdfパッケージを使用するには、パッケージファイルから実行オプションがオフになっていることを確認してください。 このオプションを有効にすると、プロジェクトがZIPファイルとしてデプロイされ、IronPdfのファイル構成に干渉します。 パッケージファイルから実行オプションを有効にしたい場合は、代わりにIronPdf.Slimパッケージをインストールしてください。

Install-Package IronPdf
class="content-img-align-center">
class="center-image-wrapper"> Azure Package File related to Azure Function App(Windows)

Azure Function App(Linux)

Azure Function App(Linux)では、プロジェクトがデフォルトでZIPファイルとしてデプロイされ、この動作を無効にすることはできません。 これは、Azure Function App(Windows)でパッケージファイルから実行オプションを有効にすることに似ています。

data-bs-title="クリップボードにコピー済み">
Install-Package IronPdf.Slim

正しいAzureオプションを選択

正しいホスティングティアの選択

Azure Basic B1は、エンドユーザーのレンダリングニーズに必要な最低限のホスティングレベルです。 高スループットのシステムを作成している場合、アップグレードが必要になるかもしれません。

警告注: アプリサービスプランの計画タイプを選択しないと、IronPdfのPDFドキュメントのレンダリングに失敗する可能性があります。

class="content-img-align-center">
class="center-image-wrapper"> 正しいホスティングレベルAzureティアを選択する

.NET 6の構成

Microsoftは最近、.NET 6+からイメージングライブラリを削除し、多くのレガシーAPIを破壊しました。そのため、これらのレガシーAPI呼び出しを引き続き許可するようにプロジェクトを構成する必要があります。

  1. Linuxで、Installation.LinuxAndDockerDependenciesAutoConfig=true;を設定し、libgdiplusがマシンにインストールされるようにします
  2. あなたの.NET 6プロジェクトの.csprojファイルに以下を追加します:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
XML
  1. プロジェクトにruntimeconfig.template.jsonという名前のファイルを作成し、以下を入力します:
{
  "configProperties": {
    "System.Drawing.EnableUnixSupport": true
  }
}
  1. 最後に、プログラムの開始部分に次の行を追加します:
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
$vbLabelText   $csharpLabel

Azure Functionコードの例

この例は、HTMLをPDFに変換し、組み込みのAzureロガーにログエントリを自動出力しています(ILogger logを参照)。

[FunctionName("PrintPdf")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log, ExecutionContext context)
{
    log.LogInformation("Entered PrintPdf API function...");

    // Apply license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Enable logging
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
    IronPdf.Logging.Logger.CustomLogger = log;

    // Configure IronPdf settings
    IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
    IronPdf.Installation.AutomaticallyDownloadNativeBinaries = true;
    IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
    IronPdf.Installation.CustomDeploymentDirectory = "/tmp";

    try
    {
        log.LogInformation("About to render PDF...");
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        // Render PDF from a URL
        var pdf = renderer.RenderUrlAsPdf("https://www.google.com/");
        log.LogInformation("Finished rendering PDF...");
        return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "google.pdf" };
    }
    catch (Exception e)
    {
        log.LogError(e, "Error while rendering PDF");
        return new OkObjectResult($"Error while rendering PDF: {e}");
    }
}
[FunctionName("PrintPdf")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log, ExecutionContext context)
{
    log.LogInformation("Entered PrintPdf API function...");

    // Apply license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Enable logging
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
    IronPdf.Logging.Logger.CustomLogger = log;

    // Configure IronPdf settings
    IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
    IronPdf.Installation.AutomaticallyDownloadNativeBinaries = true;
    IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
    IronPdf.Installation.CustomDeploymentDirectory = "/tmp";

    try
    {
        log.LogInformation("About to render PDF...");
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        // Render PDF from a URL
        var pdf = renderer.RenderUrlAsPdf("https://www.google.com/");
        log.LogInformation("Finished rendering PDF...");
        return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "google.pdf" };
    }
    catch (Exception e)
    {
        log.LogError(e, "Error while rendering PDF");
        return new OkObjectResult($"Error while rendering PDF: {e}");
    }
}
<FunctionName("PrintPdf")>
Public Shared Async Function Run(<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route := Nothing)> ByVal req As HttpRequest, ByVal log As ILogger, ByVal context As ExecutionContext) As Task(Of IActionResult)
	log.LogInformation("Entered PrintPdf API function...")

	' Apply license key
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

	' Enable logging
	IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom
	IronPdf.Logging.Logger.CustomLogger = log

	' Configure IronPdf settings
	IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
	IronPdf.Installation.AutomaticallyDownloadNativeBinaries = True
	IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
	IronPdf.Installation.CustomDeploymentDirectory = "/tmp"

	Try
		log.LogInformation("About to render PDF...")
		Dim renderer As New ChromePdfRenderer()
		' Render PDF from a URL
		Dim pdf = renderer.RenderUrlAsPdf("https://www.google.com/")
		log.LogInformation("Finished rendering PDF...")
		Return New FileContentResult(pdf.BinaryData, "application/pdf") With {.FileDownloadName = "google.pdf"}
	Catch e As Exception
		log.LogError(e, "Error while rendering PDF")
		Return New OkObjectResult($"Error while rendering PDF: {e}")
	End Try
End Function
$vbLabelText   $csharpLabel

Visual StudioでAzure Functionテンプレートを使用してプロジェクトを作成すると、少し異なるコードになる場合があります。 これらの違いのために、同じパッケージをインストールしていても、あるプロジェクトは機能し、別のプロジェクトは機能しないかもしれません。 このような場合は、CustomDeploymentDirectoryプロパティを"/tmp"に設定してください。

各インストール構成を理解する

  • LinuxAndDockerDependenciesAutoConfig: この設定は、Chromeエンジンに必要なすべての依存関係を確認し、ダウンロードしようとします。LinuxのようなGUIのないシステムで使用する必要があります。 コンテナシステムでは、依存関係は通常Dockerfileにリストされています。そのため、これをfalseに設定することができます。
  • AutomaticallyDownloadNativeBinaries: これは、ネイティブChromeバイナリをランタイムでダウンロードします。これは、IronPdf.Slimパッケージを使用する際に必要です。
  • CustomDeploymentDirectory: これは、書き込みアクセスが制限されたシステムで必要な設定です。

既知の問題

SVGフォントレンダリングは共有ホスティングプランでは利用できません

我々が発見した制限の1つは、Azureホスティングプラットフォームが、Google FontsなどのSVGフォントを安価な共有ウェブアプリ層にロードするサーバーをサポートしていないことです。 これは、これらの共有ホスティングプラットフォームが、セキュリティ上の理由でWindows GDI+グラフィックスオブジェクトにアクセスできないためです。

この問題を回避するには、WindowsまたはLinuxのDockerコンテナ、あるいはAzure上のVPSを推奨します。

Azure無料ティアホスティングは遅い

Azureの無料および共有ティア、およびコンシューマプランは、PDFレンダリングには適していません。 私たち自身が使用しているAzure B1ホスティング/プレミアムプランをお勧めします。 HTML to PDFのプロセスは、コンピュータにとって重要な「作業」です。それは自分のマシンでウェブページを開いてレンダリングするのに似ています。実際のブラウザエンジンが使用されているため、それ相応のプロビジョニングが必要であり、似たようなパワーのデスクトップマシンと同様のレンダリング時間を想定する必要があります。

エンジニアリングサポートリクエストチケットの作成

リクエストチケットを作成するには、'IronPDFのためのエンジニアリングサポートリクエストの作り方'ガイドを参照してください

よくある質問

PDF生成ライブラリをAzureでホストするにはどうすればよいですか?

IronPDFのようなPDF生成ライブラリをAzureでホストするには、Azure FunctionまたはMVCウェブサイトを設定してください。必要なパッケージがNuGetからインストールされており、ライブラリの要件に従って環境が設定されていることを確認してください。

どのAzure環境がPDFライブラリに対応していますか?

IronPDFは、MVCウェブサイトやAzure Functionsを含む複数のAzure環境と互換性があります。Azureが提供するさまざまなプラットフォームでシームレスに動作するように設計されています。

AzureでPDFライブラリをホスティングするための要件は何ですか?

AzureでIronPDFを使用する際の最適なパフォーマンスのためには、少なくともAzure Basic B1ホスティング層を使用することをお勧めします。これにより、PDFを効率的にレンダリングするための十分なリソースが保証されます。

LinuxでAzure Function App用のPDFライブラリを設定するにはどうすればよいですか?

Linux用のAzure Function AppにIronPDFを設定するには、IronPdf.Slimパッケージをインストールしてください。プロジェクトをZIPファイルとしてデプロイし、Linux環境用にすべての設定が正しく設定されていることを確認します。

.NET 6を使用する際、AzureでPDFライブラリに必要な設定は何ですか?

.NET 6を使用してIronPDFをAzureで使用する際には、レガシーAPI呼び出しを許可するようにプロジェクト設定を更新します。Installation.LinuxAndDockerDependenciesAutoConfig=trueを設定し、必要な設定をプロジェクトファイルに含めます。

AzureでのPDFレンダリングにDocker Containerが推奨される理由は何ですか?

Docker Containerは、より制御された環境を提供し、フォントレンダリングを向上させ、共有ホスティングプランの制限を回避するために、AzureでのPDFレンダリングに推奨されます。

Azure Free TierでのPDFレンダリングが遅くなる要因は何ですか?

Azure Free Tierではコンピュータリソースが限られているため、PDFレンダリングが遅くなります。プロセスにはウェブページのレンダリングに似た高い計算力が必要であり、B1プランやPremiumプランなどの上位層がより適しています。

PDFライブラリを使用したAzure Functionプロジェクトが動作しない場合のトラブルシューティング範囲は?

IronPDFを使用したAzure Functionプロジェクトが機能していない場合、CustomDeploymentDirectoryプロパティが'/tmp'に設定されているか確認し、必要なパッケージと設定が正しくインストールされ設定されていることを確認してください。

AzureでのPDFライブラリのデプロイに利用できるサポートオプションは?

AzureでのIronPDFのデプロイについてサポートが必要な場合、IronPDFウェブサイト上の「IronPDFのエンジニアリングサポートリクエストを作成する方法」ガイドを参照して詳細なサポートを受けてください。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はいいですか?
Nuget ダウンロード 16,154,058 | バージョン: 2025.11 ただ今リリースされました