IronPDF .NET'in Azure Function'da Nasıl Çalıştırılıp Yayınlanacağı

This article was translated from English: Does it need improvement?
Translated
View the article in English
Azure 1 related to IronPDF .NET'in Azure Function'da Nasıl Çalıştırılıp Yayınlanacağı

Evet. IronPDF, Azure üzerinde PDF belgeleri oluşturmak, değiştirmek ve okumak için kullanılabilir. IronPDF, MVC web siteleri, Azure İşlevleri ve daha fazlası gibi çeşitli Azure platformları üzerinde kapsamlı bir şekilde test edilmiştir.


Nasıl Yapılır Eğitimi

IronPdf Paketini Kurun

Azure Function Apps üç farklı ortama sahiptir: Linux, Windows ve Container. Bu makale, tüm üç ortamda IronPdf'in nasıl kurulacağını açıklar. Bunlar arasında, izole bir ortam sağladığı için Azure İşlev App Konteyner önerilir. Başlamak için, kurmak üzere uygun paketi seçelim.

Azure Function Uygulama Kabı

Azure İşlev App Container, minimum çabayla IronPdf dağıtmak için önerilen yöntemdir.

Install-Package IronPdf.Linux

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

Kullandığınız Linux dağıtımına göre Docker dosyasını yapılandırın. Ayrıntılı talimatlar için bu makaleye bakın.

Azure Function Uygulaması (Windows)

Standart IronPdf paketini kullanmak için, Paket dosyasından çalıştır seçeneğinin işaretli olmadığından emin olun. Bu seçeneği etkinleştirmek, projeyi bir ZIP dosyası olarak dağıtır ve bu, IronPdf'in dosya yapılandırmasıyla çakışır. Paket dosyasından çalıştır seçeneğini etkinleştirmeyi tercih ederseniz, bunun yerine IronPdf.Slim paketini kurun.

Install-Package IronPdf
Azure Package File related to Azure Function Uygulaması (Windows)

Azure Function Uygulaması (Linux)

Azure İşlev App (Linux) için, proje varsayılan olarak bir ZIP dosyası olarak dağıtılır ve bu davranış devre dışı bırakılamaz. Bu, Azure İşlev App (Windows) üzerindeki Paket dosyasından çalıştır seçeneğini etkinleştirmeye benzer.

Install-Package IronPdf.Slim

Doğru Azure Seçeneklerini Seçin

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

Azure Basic B1, son kullanıcılarımızın işleme ihtiyaçları için gerekli minimum barındırma seviyesidir. Yüksek akış sistemleri oluşturuyorsanız, bu yükseltilmesi gerekebilir.

UyarıNot: App service plan Plan Tipi seçilmemesi durumunda IronPdf, PDF belgelerini işlemeyebilir.

Doğru barındırma seviyesi Azure Katmanı seçimi

.NET 6 için Yapılandırma

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

  1. Linux'ta, Installation.LinuxAndDockerDependenciesAutoConfig=true; ayarlayın ve libgdiplus makinede kurulu olduğundan emin olun
  2. .NET 6 projenizin .csproj dosyasına aşağıdakini ekleyin:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
XML
  1. Projenizde runtimeconfig.template.json adında bir dosya oluşturun ve aşağıdaki ile doldurun:
{
  "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 İşlev Kod Örneği

Bu örnek, HTML'i PDF'e dönüştürüyor ve yerleşik Azure günlüğüne otomatik olarak girişler sağlıyor (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 şablonunu kullanarak bir proje oluşturmak biraz farklı kodla sonuçlanabilir. Bu farklılıklar nedeniyle, aynı paket yüklü olsa bile, bir proje çalışırken diğeri çalışmayabilir. Bu durum meydana gelirse, lütfen CustomDeploymentDirectory özelliğini "/tmp" olarak ayarlayın.

Her Kurulum Yapılandırmasını Anlayın

  • LinuxAndDockerDependenciesAutoConfig: Bu ayar, Chrome Motoru için gerekli tüm bağımlılıkların indirilip indirilmediğini kontrol eder ve indirmeye çalışır. Grafik kullanıcı arayüzü olmayan sistemlerde, örneğin Linux gibi, kullanılması gerekir. Konteyner sistemlerinde, bağımlılıklar genellikle Dockerfile'da listelenmiştir; bu nedenle, bunu false olarak ayarlayabilirsiniz.
  • AutomaticallyDownloadNativeBinaries: Bu seçenek, çalıştırma zamanında yerel Chrome ikililerini indirir. IronPdf.Slim paketi kullanırken gereklidir.
  • CustomDeploymentDirectory: Bu ayar, sınırlı yazma erişimi olan sistemler için gereklidir.

Bilinen Sorunlar

SVG Yazı Tipleri İşleme Paylaşılan Barındırma Planlarında Kullanılamaz

Azure barındırma platformunun daha ucuz paylaşımlı web-app katmanlarında, server'ların SVG fontlarını (Google Yazıtipleri gibi) yüklenmesini desteklemediğini gördüğümüz bir kısıtlamadır. Bu, bu paylaşımlı barındırma platformlarının güvenlik nedenleriyle windows GDI+ grafik nesnelerine erişimine izin verilmediği içindir.

Bu sorunla başa çıkmak için, en iyi yazı tipi renderı gerektiği durumlarda bir Windows veya Linux Docker Konteyner veya belki de Azure'de bir VPS kullanmanızı öneririz.

Azure Ücretsiz Katman Barındırması Yavaştır

Azure ücretsiz ve paylaşımlı katmanlar, ve tüketim planı PDF işleme için uygun değildir. Azure B1 hosting/Premium planını öneriyoruz, biz de kendimiz bunu kullanıyoruz. Herhangi bir bilgisayar için HTML to PDF işlemi önemli bir 'iş'tir - kendi makinenizde bir web sayfası açıp render almakla benzerdir. Gerçek bir tarayıcı motoru kullanılır, bu nedenle uygun bir şekilde sağlama yapmalıyız ve benzer güçte bir masaüstü makineyle benzer render süreleri beklemeliyiz.

Mühendislik Destek Talep Bileti Oluşturma

Bir talep bileti oluşturmak için 'IronPDF için Mühendislik Destek Talebi Nasıl Yapılır' rehberine başvurun

Sıkça Sorulan Sorular

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

Azure'da IronPDF gibi bir PDF üreten kütüphaneyi barındırmak için bir Azure Function veya bir MVC web sitesi kurabilirsiniz. Gerekli paketlerin NuGet'ten yüklendiğinden emin olun ve ortamınızı kütüphanenin gereksinimlerine göre yapılandırın.

Bir PDF kütüphanesiyle uyumlu Azure ortamları nelerdir?

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

Azure'da bir PDF kütüphanesi için barındırma gereksinimleri nelerdir?

IronPDF'yi Azure üzerinde kullanırken, optimum performans için en azından Azure Basic B1 barındırma katmanını kullanmanız önerilir. Bu, PDF'leri verimli bir şekilde işlemek için yeterli kaynak sağlar.

Linux'ta bir Azure Function App için PDF kütüphanesini nasıl kurarım?

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

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

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

Azure üzerinde PDF işleme için Docker Kapsayıcısı neden öneriliyor?

Azure üzerinde PDF işleme için Docker Kapsayıcısı önerilir çünkü daha kontrol edilebilir bir ortam sağlar, daha iyi yazı tipi işleme desteği sunar ve paylaşılan barındırma planlarının sınırlamalarından kaçınılır.

Azure Free Tier'de yavaş PDF işleme ne sebep olur?

Azure Free Tier'de yavaş PDF işleme, sınırlı bilgi işlem kaynakları nedeniyle olur. İşlem, bir web sayfası işlemekle benzer önemli ölçüde hesaplama gücü gerektirir, bu nedenle B1 veya Premium gibi daha yüksek basamak planlar daha uygun olur.

Bir PDF kütüphanesiyle çalışmayan Azure Function projesini nasıl sorun gideririm?

IronPDF ile çalışan Azure Function projeniz çalışmıyorsa, CustomDeploymentDirectory özelliğinin '/tmp' olarak ayarlandığından ve tüm gerekli paket ve yapılandırmaların doğru kurulduğundan ve ayarlandığından emin olun.

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

IronPDF'nin Azure üzerinde dağıtımı için destek almak üzere, ayrıntılı yardım için IronPDF web sitesinde bulunan 'IronPDF için Nasıl Mühendislik Destek Talebi Yapılır' rehberine bakın.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget Indirmeler 18,332,619 | Sürüm: 2026.4 yeni yayınlandı
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizin PDF olduğunu izleyin.