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.
Azure İşlevinde HTML'yi PDF'ye dönüştürme
- Azure Function'da HTML'yi PDF'ye dönüştürmek için C# kütüphanesini kurun
- Azure Basic B1 barındırma katmanını veya üstünü seçin
- Yayınlarken
Paket dosyasından çalıştırseçeneğinin işaretini kaldırın - Önerilen yapılandırma talimatlarını izleyin
- Azure kullanarak bir PDF oluşturucu oluşturmak için kod örneğini kullanın
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.
- IronPdf.Linux paketi
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.
- IronPdf paketi
Install-Package IronPdf
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.
- IronPdf.Slim paketi
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.
.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.
- Linux'ta,
Installation.LinuxAndDockerDependenciesAutoConfig=true;ayarlayın velibgdiplusmakinede kurulu olduğundan emin olun - .NET 6 projenizin .csproj dosyasına aşağıdakini ekleyin:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
- Projenizde
runtimeconfig.template.jsonadında bir dosya oluşturun ve aşağıdaki ile doldurun:
{
"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 İş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
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.

