Jak uruchomić i wdrożyć IronPDF .NET na AWS Lambda

This article was translated from English: Does it need improvement?
Translated
View the article in English
Amazon Web Services V1 related to Jak uruchomić i wdrożyć IronPDF .NET na AWS Lambda

1. Utwórz AWS Lambda z szablonem kontenera (.NET 5)

Proszę odnieść się do pierwszej części tego oficjalnego dokumentu od AWS: .NET 5 AWS Lambda Support with Container Images.

2. Dodaj zależności pakietu

Te zależności są wymagane dla Chrome w tym środowisku AWS.

Proszę zmodyfikować plik Docker zgodnie z tymi instrukcjami:

AWS Lambda z .NET 5

AWS Lambda z .NET 7

AWS Lambda z .NET 8

3. Dodaj pakiet NuGet IronPDF (Linux)

Install IronPdf.Linux

  1. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy Odwołania, Zarządzaj pakietami NuGet.
  2. Select Browse and search IronPdf.Linux.
  3. Wybierz pakiet i zainstaluj.

4. Zmodyfikuj kod FunctionHandler

This example will create a PDF file from a webpage https://ironpdf.com/ and save it to /tmp. Aby wyświetlić ten plik PDF, musisz go przesłać do innej usługi, na przykład S3.

Konieczne jest skonfigurowanie folderu tymczasowego podczas używania IronPDF na AWS Lambda. Proszę użyć właściwości TempFolderPath i CustomDeploymentDirectory do tego celu.

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. Zwiększ pamięć i limit czasu

IronPDF wymaga więcej czasu i pamięci niż domyślna wartość Lambda. You can configure it in aws-lambda-tools-defaults.json. Proszę dostosować to do swojej funkcji. W tym przykładzie ustawimy go na 512 (MB) i 330 (sekund).

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

Możesz również zaktualizować tę konfigurację za pomocą konsoli Lambda. Przejdź do artykułu Konfigurowanie funkcji AWS Lambda po więcej informacji.

6. Opublikuj

Proszę postępować zgodnie z instrukcjami w drugiej części dokumentu '.NET 5 AWS Lambda Support with Container Images', aby opublikować i przetestować swoją funkcję Lambda.

7. Wypróbuj to!

Możesz aktywować funkcję Lambda za pomocą konsoli Lambda lub przez Visual Studio, korzystając z AWS Toolkit for Visual Studio.

Często Zadawane Pytania

Jak utworzyć plik PDF z adresu URL przy użyciu funkcji .NET AWS Lambda?

Aby utworzyć plik PDF z adresu URL w funkcji .NET AWS Lambda, należy użyć metody ChromePdfRenderer.RenderUrlAsPdf biblioteki IronPDF. Należy upewnić się, że folder tymczasowy jest skonfigurowany przy użyciu właściwości TempFolderPath i CustomDeploymentDirectory.

Jakie kroki należy podjąć, aby skonfigurować IronPDF w AWS Lambda?

Skonfiguruj IronPDF na AWS Lambda, ustawiając ścieżki folderów tymczasowych za pomocą TempFolderPath i CustomDeploymentDirectory, wyłączając GPU za pomocą ChromeGpuModes.Disabłęd oraz włączając automatyczną konfigurację zależności Linux i Docker poprzez ustawienie LinuxAndDockerDependenciesAutoConfig na true.

Dłączego ważne jest dostosowanie ustawień pamięci i limitu czasu dla AWS Lambda?

Dostosowanie ustawień pamięci i limitu czasu dla AWS Lambda ma kluczowe znaczenie, ponieważ IronPDF wymaga większych zasobów niż domyślne ustawienia. Można to skonfigurować w pliku aws-lambda-tools-defaults.json lub za pośrednictwem konsoli AWS Lambda.

Jak upewnić się, że zależności Chrome są poprawnie zainstalowane dla AWS Lambda?

Upewnij się, że zależności Chrome są poprawnie zainstalowane, modyfikując plik Dockerfile zgodnie z instrukcjami dotyczącymi konkretnej wersji .NET, podanymi w artykułe. Obejmuje to instalację niezbędnych pakietów Linux dla Chrome w środowisku AWS.

Czy mogę użyć programu Visual Studio do aktywacji i przetestowania mojej funkcji AWS Lambda?

Tak, możesz użyć programu Visual Studio do aktywacji i testowania funkcji AWS Lambda za pomocą zestawu AWS Toolkit for Visual Studio, który umożliwia płynne wdrażanie i testowanie bezpośrednio z poziomu środowiska IDE.

Jakie znaczenie ma użycie szablonu kontenera dla .NET 5 w AWS Lambda?

Korzystanie z szablonu kontenera dla .NET 5 w AWS Lambda jest istotne, ponieważ ułatwia wdrażanie aplikacji wraz z ich zależnościami, takimi jak IronPDF, zapewniając spójność w różnych środowiskach.

Jak mogę obsługiwać wyjątki w mojej funkcji AWS Lambda przy użyciu IronPDF?

Obsługuj wyjątki w funkcji AWS Lambda, otaczając operacje IronPDF blokiem try-catch oraz rejestrując błędy za pomocą context.Logger.LogLine w celu debugowania i rozwiązywania problemów.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,926,724 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.