Azure Fonksiyonunda IronPDF .NET Nasıl Çalıştırılır ve Dağıtılır

This article was translated from English: Does it need improvement?
Translated
View the article in English
Azure 1 related to Azure Fonksiyonunda IronPDF .NET Nasıl Çalıştırılır ve Dağıtılır

Evet. IronPDF, Azure üzerinde PDF belgeleri oluşturmak, değiştirmek ve okumak için kullanılabilir. IronPDF, MVC web siteleri, Azure Fonksiyonları ve daha fazlası dahil olmak üzere birçok Azure platformunda kapsamlı bir şekilde test edilmiştir.


Nasıl Rehberi

IronPDF Paketini Yükleyin

Azure Fonksiyon Uygulamaları üç farklı ortama sahiptir: Linux, Windows ve Konteyner. Bu makale, IronPDF'nin tüm üç ortamda nasıl yapılandırılacağını açıklıyor. Bunların arasında, Azure Fonksiyon Uygulama Konteyneri izole bir ortam sağladığı için önerilir. Başlamak için, yüklemek için uygun paketi seçelim.

Azure Fonksiyon Uygulama Konteyneri

Azure Function App Container, en az zahmeti içerir ve IronPDF'yi dağıtmanın önerilen yolu budur.

Install-Package IronPdf.Linux

Docker Dosyasını Yapılandırın

Kullandığınız Linux dağıtımına bağlı olarak Docker dosyasını yapılandırın. bu makaleye ayrıntılı talimatlar için bakın.

Azure Fonksiyon Uygulama (Windows)

Standart IronPDF paketini kullanmak için, Paket dosyasından çalıştır seçeneğinin işaretlenmediğinden emin olun. Bu seçeneği etkinleştirmek, projeyi bir ZIP dosyası olarak dağıtır ve IronPDF'nin dosya yapılandırmasına engel olur. Eğer paket dosyasından çalıştır seçeneğini etkinleştirmek isterseniz, IronPdf.Slim paketini yerine yükleyin.

Install-Package IronPdf
Azure Package File related to Azure Fonksiyon Uygulama (Windows)

Azure Fonksiyon Uygulama (Linux)

Azure Fonksiyon Uygulama (Linux) için, proje varsayılan olarak ZIP dosyası olarak dağıtılır ve bu davranış devre dışı bırakılamaz. Bu, Azure Fonksiyon Uygulama (Windows) üzerinde paket dosyasından çalıştır seçeneğini etkinleştirmekle benzerdir.

Install-Package IronPdf.Slim

Doğru Azure Seçeneklerini Seçin

Doğru Barındırma Katmanını Seçme

Azure Temel B1 kullanıcılarımızın oluşturma ihtiyaçları için gereken minimum barındırma seviyesidir. Eğer yüksek aktarım hızlı bir sistem oluşturuyorsanız, bu yükseltilmesi gerekebilir.

UyarıNot: Uygulama hizmeti planı Plan Türünü seçmemek, IronPDF'nin PDF belgelerini işleyememesine neden olabilir.

Doğru barındırma seviyesi Azure Tier'ı seçmek

.NET 6 için Yapılandırma

Microsoft yakın zamanda, birçok eski API'yi bozan görüntü kütüphanelerini .NET 6+'dan kaldırdı. Bu nedenle, bu eski API çağrılarına hala izin vermek için projenizi yapılandırmanız gereklidir.

  1. Linux'ta, Installation.LinuxAndDockerDependenciesAutoConfig=true; ayarını yaparak libgdiplus'nin makineye yüklendiğinden emin olun
  2. .NET 6 projeniz için .csproj dosyasına aşağıdakileri ekleyin:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
XML
  1. Projenizde runtimeconfig.template.json adlı bir dosya oluşturun ve içine aşağıdakileri yazın:
{
  "configProperties": {
    "System.Drawing.EnableUnixSupport": true
  }
}
  1. Son olarak, programınızın başına aşağıdaki satırı ekleyin:
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 Kod Örneği

Bu örnek, HTML'yi PDF/A'ya dönüştürür ve günlük girişlerini otomatik olarak yerleşik Azure günlük kaydedicisine gönderir (bkz. 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'da Azure Function şablonu kullanarak bir proje oluşturmak, biraz farklı kodlar ile sonuçlanabilir. Bu farklılıklar nedeniyle, aynı paket yüklü olsa bile bir proje çalışabilirken diğeri çalışmayabilir. Bu durum meydana gelirse, CustomDeploymentDirectory özelliğini "/tmp" olarak ayarlayın.

Her Yükleme Yapılandırmasını Anlayın

  • LinuxAndDockerDependenciesAutoConfig: Bu ayar, Chrome Engine için gerekli tüm bağımlılıkları kontrol eder ve indirme girişiminde bulunur. Linux gibi GUI olmayan sistemlerde kullanılması gereklidir. Konteyner sistemlerinde, bağımlılıklar genellikle Dockerfile'da listelenir; bu nedenle bunu yanlış olarak ayarlayabilirsiniz.
  • AutomaticallyDownloadNativeBinaries: Bu seçenek, yerel Chrome ikili dosyasını çalışma zamanında indirir. IronPdf.Slim paketi kullanılırken gereklidir.
  • CustomDeploymentDirectory: Bu ayar, sınırlı yazma erişimi olan sistemler için gereklidir.

Bilinen Sorunlar

SVG Yazı Tipleri Renderlaması Paylaşılan Barındırma Planlarında Mevcut Değil

Bulduğumuz bir sınırlama, Azure barındırma platformunun, Google Fontlar gibi SVG yazı tiplerini yükleyen sunucuları daha ucuz paylaşılan web uygulama katmanlarında desteklemediğidir. Bu, güvenlik nedenleriyle bu paylaşılan barındırma platformlarının Windows GDI+ grafik nesnelerine erişmesine izin verilmediğinden dolayıdır.

Bu sorunu aşmak için en iyi yazı tipini gerektiren alanlarda bir Windows veya Linux Docker Container veya belki de Azure'da bir VPS kullanmanızı öneririz.

Azure Free Tier Barındırma Yavaş

Azure ücretsiz ve paylaşılan katmanlar ile tüketim planı, PDF oluşturma için uygun değildir. Kendi kullandığınız Azure B1 barındırma/Premium planı öneririz. HTML to PDF süreci, herhangi bir bilgisayar için önemli bir "iş"tir; bu, kendi makinenizde bir web sayfasını açıp görüntülemekle benzerdir. Gerçek bir tarayıcı motoru kullanıldığından, buna göre kaynak ayırmamız ve benzer güçteki bir masaüstü makinesine benzer görüntüleme süreleri beklememiz gerekir.

Mühendislik Destek Talebi Bilet Oluşturma

IronPDF için Mühendislik Destek Talebi Nasıl Yapılır kılavuzuna bakarak talep bileti oluşturun

Sıkça Sorulan Sorular

Azure'da bir PDF oluşturan kütüphaneyi nasıl barındırabilirim?

IronPDF gibi PDF oluşturan bir kütüphaneyi Azure'da barındırabilirsiniz, bir Azure Function veya MVC web sitesi kurarak. NuGet'ten gerekli paketleri yüklediğinizden emin olun ve ortamınızı kütüphanenin gereksinimlerine göre yapılandırın.

Bir PDF kütüphanesi hangi Azure ortamları ile uyumludur?

IronPDF, MVC web siteleri ve Azure Functions dahil olmak üzere birçok Azure ortamıyla uyumludur. Farklı platformlarla sorunsuz çalışacak şekilde tasarlanmıştır.

Azure'da bir PDF kütüphanesinin barındırma gereksinimleri nelerdir?

Azure'da IronPDF kullanırken optimal performans için, en az Azure Basic B1 barındırma katmanının kullanılması önerilir. Bu, PDF'lerin etkin bir şekilde işlenmesi için yeterli kaynak sağlar.

Linux üzerinde bir Azure Function Uygulaması için bir PDF kütüphanesi nasıl kurulur?

Linux için bir Azure Function Uygulaması için IronPDF kurmak için, IronPdf.Slim paketini yükleyin. Projenizi bir ZIP dosyası olarak dağıtın ve Linux ortamı için tüm yapılandırmaların doğru ayarlandığından emin olun.

.NET 6 kullanırken Azure'da bir PDF kütüphanesi için hangi yapılandırmalar gereklidir?

Azure'da .NET 6 ile IronPDF kullanırken, eski API çağrılarına izin verecek şekilde proje ayarlarınızı güncelleyin. Installation.LinuxAndDockerDependenciesAutoConfig=true ayarlayın ve proje dosyalarınıza gerekli yapılandırmaları ekleyin.

Azure'da PDF işleme için neden bir Docker Konteyneri önerilmektedir?

Azure'da PDF işleme için bir Docker Konteyneri önerilir, çünkü daha kontrol edilebilir bir ortam sağlar, daha iyi yazı tipi işleme desteği sunar ve paylaşılan hosting planlarının sınırlamalarını önler.

Azure Ücretsiz Katmanında yavaş PDF işleme nelere bağlıdır?

Azure Ücretsiz Katmanında PDF işleme, sınırlı hesaplama kaynakları nedeniyle yavaştır. Bu süreç, bir web sayfasını işlemek gibi önemli ölçüde hesaplama gücü gerektirir, bu nedenle B1 veya Premium gibi daha yüksek katman planları daha uygundur.

PDF kütüphanesi ile çalışmayan bir Azure Function projesini nasıl çözebilirim?

IronPDF ile çalışmayan Azure Function projeniz varsa, CustomDeploymentDirectory özelliğinin '/tmp' olarak ayarlandığını kontrol edin ve gerekli tüm paketlerin ve yapılandırmaların doğru bir şekilde kurulmuş ve ayarlanmış olduğundan emin olun.

Azure'da bir PDF kütüphanesi dağıtımı için hangi destek seçenekleri mevcuttur?

Azure üzerinde IronPDF dağıtımı için destek almak için IronPDF web sitesinde bulunan 'IronPDF için Bir Mühendislik Destek Talebi Nasıl Oluşturulur' kılavuzunu inceleyin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 19,014,616 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.