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.
Azure Fonksiyonunda HTML'den PDF'ye nasıl dönüştürülür
- Azure Fonksiyonunda HTML'yi PDF'ye dönüştürmek için C# kütüphanesini yükleyin
- Azure Temel B1 barındırma katmanını veya üstünü seçin
- Yayınlarken
paket dosyasından çalıştırseçeneğini işaretsiz bırakın - Önerilen konfigürasyon talimatlarını izleyin
- Azure'da PDF oluşturucu oluşturmak için kod örneğini kullanın
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.
- IronPdf.Linux paketi
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.
- IronPDF paketi
Install-Package IronPdf
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.
- IronPdf.Slim paketi
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.
.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.
- Linux'ta,
Installation.LinuxAndDockerDependenciesAutoConfig=true;ayarını yaparaklibgdiplus'nin makineye yüklendiğinden emin olun - .NET 6 projeniz için .csproj dosyasına aşağıdakileri ekleyin:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
- Projenizde
runtimeconfig.template.jsonadlı bir dosya oluşturun ve içine aşağıdakileri yazın:
{
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
- 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)
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
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.

