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

Ja. IronPDF kann verwendet werden, um PDF-Dokumente auf Azure zu generieren, zu manipulieren und zu lesen. IronPDF wurde auf mehreren Azure-Plattformen gründlich getestet, darunter MVC-Websites, Azure Functions und viele mehr.

class="hsg-featured-snippet">

Wie man HTML zu PDF in Azure Function konvertiert

  1. C#-Bibliothek installieren, um HTML zu PDF in Azure Function zu konvertieren
  2. Wählen Sie die Azure Basic B1 Hosting-Stufe oder höher
  3. Deaktivieren Sie die Run from package file-Option beim Veröffentlichen
  4. Befolgen Sie die empfohlenen Konfigurationsanweisungen
  5. Verwenden Sie das Codebeispiel, um einen PDF-Generator mit Azure zu erstellen

class="main-content__segment-title">Tutorial

IronPdf-Paket installieren

Azure Function Apps haben drei unterschiedliche Umgebungen: Linux, Windows und Container. Dieser Artikel erklärt, wie IronPdf in allen drei Umgebungen eingerichtet wird. Unter diesen wird der Azure Function App Container empfohlen, da er eine isolierte Umgebung bietet. Zu Beginn sollten wir das entsprechende Paket auswählen, das installiert werden soll.

Azure Function App Container

Der Azure Function App Container beinhaltet minimalen Aufwand und ist der empfohlene Weg, um IronPdf bereitzustellen.

Install-Package IronPdf.Linux

Docker-Datei konfigurieren

Konfigurieren Sie die Docker-Datei basierend auf der von Ihnen verwendeten Linux-Distribution. Bitte beachten Sie diesen Artikel für ausführliche Anweisungen.

Azure Function App (Windows)

Um das Standard-IronPdf-Paket zu verwenden, stellen Sie sicher, dass die Run from package file-Option deaktiviert ist. Wenn diese Option aktiviert ist, wird das Projekt als ZIP-Datei bereitgestellt, was die Dateikonfiguration von IronPdf beeinträchtigt. Wenn Sie die Run from package file-Option aktivieren möchten, installieren Sie stattdessen das IronPdf.Slim-Paket.

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)

Für die Azure Function App (Linux) wird das Projekt standardmäßig als ZIP-Datei bereitgestellt, und dieses Verhalten kann nicht deaktiviert werden. Dies ist vergleichbar mit der Aktivierung der Run from package file-Option bei Azure Function App (Windows).

Install-Package IronPdf.Slim

Richtige Azure-Optionen auswählen

Die richtige Hosting-Stufe wählen

Azure Basic B1 ist das minimale Hosting-Level, das für die Rendering-Anforderungen unserer Endbenutzer erforderlich ist. Wenn Sie ein System mit hoher Durchsatzrate erstellen, muss dies möglicherweise aufgerüstet werden.

WarnungHinweis: Wenn Sie keinen Plan Typ App Service Plan auswählen, kann IronPdf möglicherweise keine PDF-Dokumente rendern.

class="content-img-align-center">
class="center-image-wrapper"> Die richtige Hosting-Stufe Azure Tier wählen

Konfiguration für .NET 6

Microsoft hat kürzlich Bildbibliotheken aus .NET 6+ entfernt, was viele Legacy-APIs stört. Daher ist es notwendig, Ihr Projekt so zu konfigurieren, dass diese Legacy-API-Aufrufe weiterhin möglich sind.

  1. Auf Linux setzen Sie Installation.LinuxAndDockerDependenciesAutoConfig=true;, um sicherzustellen, dass libgdiplus auf dem Rechner installiert ist
  2. Fügen Sie Folgendes zu Ihrer .csproj-Datei für Ihr .NET 6-Projekt hinzu:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
XML
  1. Erstellen Sie eine Datei in Ihrem Projekt mit dem Namen runtimeconfig.template.json und füllen Sie sie mit dem folgenden Inhalt:
{
  "configProperties": {
    "System.Drawing.EnableUnixSupport": true
  }
}
  1. Fügen Sie schließlich die folgende Zeile am Anfang Ihres Programms hinzu:
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 Code-Beispiel

Dieses Beispiel konvertiert HTML in PDF und gibt automatisch Log-Einträge an den integrierten Azure-Logger aus (siehe 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

Das Erstellen eines Projekts mit der Azure Function-Vorlage in Visual Studio kann zu leicht abweichendem Code führen. Aufgrund dieser Unterschiede kann es sein, dass selbst bei installiertem gleichen Paket ein Projekt funktioniert, während das andere nicht funktioniert. Tritt dies auf, setzen Sie bitte die Eigenschaft CustomDeploymentDirectory auf "/tmp".

Jede Installationskonfiguration verstehen

  • LinuxAndDockerDependenciesAutoConfig: Diese Einstellung überprüft und versucht, alle notwendigen Abhängigkeiten für die Chrome Engine herunterzuladen. Es ist erforderlich, wenn Systeme ohne Grafikoberfläche wie Linux verwendet werden. In Containersystemen sind die Abhängigkeiten normalerweise in der Dockerdatei aufgelistet; daher können Sie dies auf false setzen.
  • AutomaticallyDownloadNativeBinaries: Diese Option lädt das native Chrome-Binary zur Laufzeit herunter. Es ist erforderlich, wenn das IronPdf.Slim-Paket verwendet wird.
  • CustomDeploymentDirectory: Diese Einstellung ist erforderlich für Systeme mit begrenztem Schreibzugriff.

Bekannte Probleme

SVG-Schriftarten-Rendering ist auf Shared-Hosting-Plänen nicht verfügbar

Eine Einschränkung, die wir festgestellt haben, ist, dass die Azure-Hosting-Plattform Servern nicht erlaubt, SVG-Schriftarten wie Google Fonts in ihren günstigeren Shared-Web-App-Tiers zu laden. Dies liegt daran, dass diese Shared-Hosting-Plattformen aus Sicherheitsgründen keinen Zugriff auf Windows-GDI+-Grafikobjekte haben.

Wir empfehlen die Verwendung eines Windows- oder Linux-Docker-Containers oder möglicherweise eines VPS auf Azure, um dieses Problem zu umgehen, wo das beste Schriftrendering erforderlich ist.

Azure-Free-Tier-Hosting ist langsam

Azure-Free- und Shared-Tiers sowie der Verbrauchsplan sind nicht geeignet für die PDF-Darstellung. Wir empfehlen das Azure B1 Hosting/Premium-Plan, welches wir selbst verwenden. Der Prozess von HTML zu PDF ist bedeutende 'Arbeit' für jeden Computer - ähnlich wie das Öffnen und Rendern einer Webseite auf Ihrem eigenen Rechner. Es wird ein echter Browser-Engine verwendet, daher müssen wir entsprechend vorsorgen und ähnliche Renderzeiten wie bei einem vergleichbaren Desktop-Rechner erwarten.

Erstellen eines Engineering-Support-Anforderungstickets

Um ein Anforderungsticket zu erstellen, konsultieren Sie den Leitfaden 'Wie man eine Engineering-Support-Anfrage für IronPDF stellt'

Häufig gestellte Fragen

Wie kann ich eine PDF-erzeugende Bibliothek auf Azure hosten?

Sie können eine PDF-erzeugende Bibliothek wie IronPDF auf Azure hosten, indem Sie eine Azure Function oder eine MVC-Website einrichten. Stellen Sie sicher, dass Sie die erforderlichen Pakete aus NuGet installiert haben und konfigurieren Sie Ihre Umgebung gemäß den Anforderungen der Bibliothek.

Welche Azure-Umgebungen sind mit einer PDF-Bibliothek kompatibel?

IronPDF ist mit mehreren Azure-Umgebungen kompatibel, einschließlich MVC-Websites und Azure Functions. Es ist so konzipiert, dass es nahtlos über verschiedene von Azure bereitgestellte Plattformen hinweg arbeitet.

Was sind die Hosting-Anforderungen für eine PDF-Bibliothek auf Azure?

Für optimale Leistung bei der Nutzung von IronPDF auf Azure wird empfohlen, mindestens den Azure Basic B1-Hosting-Tarif zu verwenden. Dies stellt ausreichende Ressourcen für eine effiziente PDF-Darstellung sicher.

Wie richte ich eine PDF-Bibliothek für eine Azure Function App auf Linux ein?

Um IronPDF für eine Azure Function App auf Linux einzurichten, installieren Sie das IronPdf.Slim-Paket. Bereitstellen Sie Ihr Projekt als ZIP-Datei und stellen Sie sicher, dass alle Konfigurationen korrekt für die Linux-Umgebung eingestellt sind.

Welche Konfigurationen sind für .NET 6 beim Einsatz einer PDF-Bibliothek auf Azure erforderlich?

Beim Einsatz von IronPDF mit .NET 6 auf Azure aktualisieren Sie die Projekteinstellungen, um Legacy-API-Aufrufe zuzulassen. Setzen Sie Installation.LinuxAndDockerDependenciesAutoConfig=true und fügen Sie die notwendigen Konfigurationen in Ihre Projektdateien ein.

Warum wird ein Docker-Container für das Erstellen von PDFs auf Azure empfohlen?

Ein Docker-Container wird für die PDF-Erstellung auf Azure empfohlen, da er eine kontrolliertere Umgebung bietet, eine bessere Schriftwiedergabe unterstützt und die Einschränkungen von Shared-Hosting-Plänen vermeidet.

Was kann langsame PDF-Erstellung auf dem Azure-Free-Tarif verursachen?

Die PDF-Erstellung ist auf dem Azure-Free-Tarif langsam aufgrund begrenzter Computerressourcen. Der Prozess erfordert erheblichen Berechnungsaufwand, ähnlich wie das Rendern einer Webseite, weshalb höhere Tarife wie B1 oder Premium besser geeignet sind.

Wie kann ich ein nicht funktionierendes Azure Function-Projekt mit einer PDF-Bibliothek beheben?

Wenn Ihr Azure Function-Projekt mit IronPDF nicht funktioniert, prüfen Sie, ob die CustomDeploymentDirectory-Eigenschaft auf '/tmp' gesetzt ist, und stellen Sie sicher, dass alle erforderlichen Pakete und Konfigurationen korrekt installiert und eingestellt sind.

Welche Support-Optionen gibt es für die Bereitstellung einer PDF-Bibliothek auf Azure?

Für Unterstützung bei der Bereitstellung von IronPDF auf Azure konsultieren Sie den Leitfaden „How to Make an Engineering Support Request for IronPDF“ auf der IronPDF-Website für detaillierte Hilfe.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 16,154,058 | Version: 2025.11 gerade veröffentlicht