AWS Lambda üzerinde 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
Amazon Web Services V1 related to AWS Lambda üzerinde IronPDF .NET Nasıl Çalıştırılır ve Dağıtılır

1. Konteyner şablonuyla AWS Lambda oluşturun (.NET 5)

AWS'nin bu resmi belgesinin ilk bölümüne bakın: Konteyner Resimleri ile .NET 5 AWS Lambda Desteği.

2. Paket bağımlılıklarını ekleyin

Bu bağımlılıklar, AWS ortamında Chrome için gereklidir.

Docker dosyasını bu talimhatlara göre değiştirin:

.NET 5 ile AWS Lambda

.NET 7 ile AWS Lambda

.NET 8 ile AWS Lambda

3. IronPDF (Linux) NuGet paketini ekleyin

Install IronPdf.Linux

  1. Çözüm Gezgini'nde, Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet.
  2. Select Browse and search IronPdf.Linux.
  3. Paketi seçin ve yükleyin.

4. FunctionHandler kodunu değiştirin

This example will create a PDF file from a webpage https://ironpdf.com/ and save it to /tmp. Bu PDF'yi görmek için, S3 gibi başka bir hizmete yüklemeniz gerekmektedir.

AWS Lambda üzerinde IronPDF kullanırken geçici klasörü yapılandırmak gereklidir. Bunu yapmak için TempFolderPath ve CustomDeploymentDirectory özelliklerini kullanın.

public Casing FunctionHandler(string input, ILambdaContext context)
{
    try
    {
        context.Logger.LogLine($"START FunctionHandler RequestId: {context.AwsRequestId} Input: {input}");

        var awsTmpPath = @"/tmp/"; // AWS temporary storage location

        // [Optional] Enable logging for debugging
        // Uncomment these lines if you encounter issues
        // IronPdf.Logging.Logger.EnableDebugging = true;
        // IronPdf.Logging.Logger.LogFilePath = awsTmpPath;
        // IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

        // Set your IronPDF license key
        IronPdf.License.LicenseKey = "YOUR_LICENSE_KEY";

        // Disable GPU for Chrome rendering in headless environments
        IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;

        // Configure IronPDF to use the AWS temporary directory
        IronPdf.Installation.TempFolderPath = awsTmpPath;
        IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath;

        // Automatically configure Linux and Docker dependencies
        IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;

        context.Logger.LogLine($"Creating IronPdf.ChromePdfRenderer");
        var Renderer = new IronPdf.ChromePdfRenderer();

        context.Logger.LogLine($"Rendering PDF");
        using var pdfDoc = Renderer.RenderUrlAsPdf("https://ironpdf.com/");

        var guid = Guid.NewGuid();
        var fileName = $"/tmp/{input}_{guid}.pdf"; // Save file to /tmp

        context.Logger.LogLine($"Saving PDF with name: {fileName}");
        pdfDoc.SaveAs(fileName);

        // Place for future code to upload the PDF file to a service like AWS S3.

        context.Logger.LogLine($"COMPLETE!");
    }
    catch (Exception e)
    {
        context.Logger.LogLine($"[ERROR] FunctionHandler : {e.Message}");
    }

    return new Casing(input?.ToLower(), input?.ToUpper());
}
public Casing FunctionHandler(string input, ILambdaContext context)
{
    try
    {
        context.Logger.LogLine($"START FunctionHandler RequestId: {context.AwsRequestId} Input: {input}");

        var awsTmpPath = @"/tmp/"; // AWS temporary storage location

        // [Optional] Enable logging for debugging
        // Uncomment these lines if you encounter issues
        // IronPdf.Logging.Logger.EnableDebugging = true;
        // IronPdf.Logging.Logger.LogFilePath = awsTmpPath;
        // IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

        // Set your IronPDF license key
        IronPdf.License.LicenseKey = "YOUR_LICENSE_KEY";

        // Disable GPU for Chrome rendering in headless environments
        IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;

        // Configure IronPDF to use the AWS temporary directory
        IronPdf.Installation.TempFolderPath = awsTmpPath;
        IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath;

        // Automatically configure Linux and Docker dependencies
        IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;

        context.Logger.LogLine($"Creating IronPdf.ChromePdfRenderer");
        var Renderer = new IronPdf.ChromePdfRenderer();

        context.Logger.LogLine($"Rendering PDF");
        using var pdfDoc = Renderer.RenderUrlAsPdf("https://ironpdf.com/");

        var guid = Guid.NewGuid();
        var fileName = $"/tmp/{input}_{guid}.pdf"; // Save file to /tmp

        context.Logger.LogLine($"Saving PDF with name: {fileName}");
        pdfDoc.SaveAs(fileName);

        // Place for future code to upload the PDF file to a service like AWS S3.

        context.Logger.LogLine($"COMPLETE!");
    }
    catch (Exception e)
    {
        context.Logger.LogLine($"[ERROR] FunctionHandler : {e.Message}");
    }

    return new Casing(input?.ToLower(), input?.ToUpper());
}
Public Function FunctionHandler(ByVal input As String, ByVal context As ILambdaContext) As Casing
	Try
		context.Logger.LogLine($"START FunctionHandler RequestId: {context.AwsRequestId} Input: {input}")

		Dim awsTmpPath = "/tmp/" ' AWS temporary storage location

		' [Optional] Enable logging for debugging
		' Uncomment these lines if you encounter issues
		' IronPdf.Logging.Logger.EnableDebugging = true;
		' IronPdf.Logging.Logger.LogFilePath = awsTmpPath;
		' IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

		' Set your IronPDF license key
		IronPdf.License.LicenseKey = "YOUR_LICENSE_KEY"

		' Disable GPU for Chrome rendering in headless environments
		IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled

		' Configure IronPDF to use the AWS temporary directory
		IronPdf.Installation.TempFolderPath = awsTmpPath
		IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath

		' Automatically configure Linux and Docker dependencies
		IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True

		context.Logger.LogLine($"Creating IronPdf.ChromePdfRenderer")
		Dim Renderer = New IronPdf.ChromePdfRenderer()

		context.Logger.LogLine($"Rendering PDF")
		Dim pdfDoc = Renderer.RenderUrlAsPdf("https://ironpdf.com/")

		Dim guid As System.Guid = System.Guid.NewGuid()
		Dim fileName = $"/tmp/{input}_{guid}.pdf" ' Save file to /tmp

		context.Logger.LogLine($"Saving PDF with name: {fileName}")
		pdfDoc.SaveAs(fileName)

		' Place for future code to upload the PDF file to a service like AWS S3.

		context.Logger.LogLine($"COMPLETE!")
	Catch e As Exception
		context.Logger.LogLine($"[ERROR] FunctionHandler : {e.Message}")
	End Try

	Return New Casing(input?.ToLower(), input?.ToUpper())
End Function
$vbLabelText   $csharpLabel

5. Bellek ve Zaman Aşımını Artırın

IronPDF, Lambda'nın varsayılan değerinden daha fazla zaman ve bellek gerektirir. You can configure it in aws-lambda-tools-defaults.json. Lütfen bunu işlevinize uyacak şekilde ayarlayın. Bu örnekte, 512 (MB) ve 330 (saniye) olarak ayarlayacağız.

{
    "function-memory-size": 512,
    "function-timeout": 330
}

Bu yapılandırmayı Lambda konsolu kullanarak da güncelleyebilirsiniz. AWS Lambda işlevlerini yapılandırma makalesine daha fazla bilgi için gidin.

6. Yayınla

'Konteyner Resimleri ile .NET 5 AWS Lambda Desteği' belgesinin ikinci bölümündeki talimatları takip ederek Lambda işlevinizi yayınlayın ve test edin.

7. Deneyin!

Lambda işlevini Lambda konsolu veya Visual Studio kullanarak AWS Araç Seti ile Visual Studio kullanarak etkinleştirebilirsiniz.

Sıkça Sorulan Sorular

.NET AWS Lambda fonksiyonu kullanarak bir URL'den nasıl PDF oluşturabilirim?

.NET AWS Lambda fonksiyonunda bir URL'den PDF oluşturmak için IronPDF'in ChromePdfRenderer.RenderUrlAsPdf yöntemini kullanın. Geçici klasörün TempFolderPath ve CustomDeploymentDirectory özellikleriyle yapılandırıldığından emin olun.

AWS Lambda'da IronPDF'i yapılandırmak için hangi adımları izlemeliyim?

AWS Lambda'da IronPDF'i yapılandırmak için TempFolderPath ve CustomDeploymentDirectory ayarlarını kullanarak geçici klasör yollarını ayarlayın, GPU'yu ChromeGpuModes.Disabled ile devre dışı bırakın ve LinuxAndDockerDependenciesAutoConfig özelliği true olarak ayarlanarak Linux ve Docker bağımlılıklarının otomatik yapılandırılmasını etkinleştirin.

AWS Lambda için bellek ve zaman aşımı ayarlarını değiştirmenin önemi nedir?

Bellek ve zaman aşımı ayarlarını değiştirmek çok önemlidir çünkü IronPDF, varsayılan ayarlardan daha fazla kaynak gerektirir. Bu ayarlar aws-lambda-tools-defaults.json veya AWS Lambda konsolu üzerinden yapılandırılabilir.

AWS Lambda için Chrome bağımlılıklarının doğru kurulması nasıl sağlanır?

Chrome bağımlılıklarının doğru kurulduğundan emin olun, makalede sağlanan .NET versiyonunuza özel talimatlara uygun olarak Dockerfile'ı değiştirin. Bu, Chrome için AWS ortamında gerekli Linux paketlerinin kurulumunu içerir.

AWS Lambda fonksiyonumu etkinleştirmek ve test etmek için Visual Studio kullanabilir miyim?

Evet, AWS Toolkit for Visual Studio'yu kullanarak AWS Lambda fonksiyonunuzu etkinleştirebilir ve test edebilirsiniz, bu doğrudan IDE'den kesintisiz dağıtım ve test yapmanıza olanak tanır.

AWS Lambda'da .NET 5 kapsayıcı şablonunu kullanmanın önemi nedir?

.NET 5 kapsayıcı şablonunun AWS Lambda'da kullanılması önemli bir adımdır çünkü bu, IronPDF gibi bağımlılıklarla birlikte uygulamaların dağıtımını kolaylaştırır ve farklı ortamlar arasında tutarlılık sağlar.

AWS Lambda fonksiyonumda IronPDF kullanarak istisnaları nasıl ele alabilirim?

IronPDF işlemlerinizi bir try-catch bloğu içinde sararak AWS Lambda fonksiyonunuzdaki istisnaları ele alın ve planlama ve hata ayıklama için context.Logger.LogLine kullanarak hataları kaydedin.

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.