Ausführen und Bereitstellen von IronPDF for .NET auf AWS Lambda

This article was translated from English: Does it need improvement?
Translated
View the article in English
Amazon Web Services V1 related to Ausführen und Bereitstellen von IronPDF for .NET auf AWS Lambda

1. Erstellen Sie AWS Lambda mit einer Container-Vorlage (.NET 5)

Bitte beachten Sie den ersten Teil dieses offiziellen Dokuments von AWS: .NET 5 AWS Lambda-Unterstützung mit Container-Bildern.

2. Paketabhängigkeiten hinzufügen

Diese Abhängigkeiten sind in dieser AWS-Umgebung für Chrome erforderlich.

Bitte ändern Sie die Docker-Datei entsprechend dieser Anweisungen:

AWS Lambda mit .NET 5

AWS Lambda mit .NET 7

AWS Lambda mit .NET 8

3. das IronPDF (Linux) NuGet-Paket hinzufügen

Installieren Sie IronPdf.Linux

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Referenzen, NuGet-Pakete verwalten.
  2. Wählen Sie Durchsuchen und suchen Sie nach IronPdf.Linux.
  3. Paket auswählen und installieren.

4. den FunctionHandler-Code ändern

Dieses Beispiel erstellt eine PDF-Datei aus einer Webseite https://ironpdf.com/ und speichert sie in /tmp. Um diese PDF-Datei anzuzeigen, müssen Sie sie auf einen anderen Dienst wie S3 hochladen.

Bei der Verwendung von IronPDF auf AWS Lambda ist es erforderlich, den temporären Ordner zu konfigurieren. Bitte verwenden Sie dazu die Eigenschaften TempFolderPath und CustomDeploymentDirectory.

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. Speicher und Timeout erhöhen

IronPDF benötigt mehr Zeit und Speicher als der Standardwert von Lambda. Sie können sie in aws-lambda-tools-defaults.json konfigurieren. Bitte passen Sie dies an Ihre Funktion an. In diesem Beispiel setzen wir sie auf 512 (MB) und 330 (Sekunden).

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

Sie können diese Konfiguration auch über die Lambda-Konsole aktualisieren. Weitere Informationen finden Sie im Artikel Konfigurieren von AWS Lambda-Funktionen.

6. veröffentlichen

Bitte folgen Sie den Anweisungen im letzten Teil des Dokuments ".NET 5 AWS Lambda Support with Container Images", um Ihre Lambda-Funktion zu veröffentlichen und zu testen.

7. probieren Sie es aus!

Sie können die Lambda-Funktion über die Lambda-Konsole oder über Visual Studio mit dem AWS Toolkit für Visual Studio aktivieren.

Häufig gestellte Fragen

Wie erstelle ich ein PDF aus einer URL mit einer .NET AWS Lambda-Funktion?

Um ein PDF aus einer URL in einer .NET AWS Lambda-Funktion zu erstellen, verwenden Sie die ChromePdfRenderer.RenderUrlAsPdf-Methode von IronPDF. Stellen Sie sicher, dass der temporäre Ordner mit den Eigenschaften TempFolderPath und CustomDeploymentDirectory konfiguriert ist.

Welche Schritte sollte ich unternehmen, um IronPDF auf AWS Lambda zu konfigurieren?

Konfigurieren Sie IronPDF auf AWS Lambda, indem Sie die temporären Ordnerpfade mit TempFolderPath und CustomDeploymentDirectory einrichten, die GPU mit ChromeGpuModes.Disabled deaktivieren und die automatische Konfiguration von Linux- und Docker-Abhängigkeiten mit LinuxAndDockerDependenciesAutoConfig auf true aktivieren.

Warum ist es wichtig, die Speicher- und Timeout-Einstellungen für AWS Lambda anzupassen?

Die Anpassung der Speicher- und Timeout-Einstellungen für AWS Lambda ist wichtig, da IronPDF mehr Ressourcen erfordert als die Standardeinstellungen. Dies kann in aws-lambda-tools-defaults.json oder über die AWS Lambda-Konsole konfiguriert werden.

Wie stelle ich sicher, dass Chrome-Abhängigkeiten für AWS Lambda korrekt installiert sind?

Sorgen Sie dafür, dass Chrome-Abhängigkeiten ordnungsgemäß installiert werden, indem Sie die Dockerfile gemäß den Anweisungen für Ihre .NET-Version ändern, wie sie im Artikel bereitgestellt werden. Dazu gehört die Installation der erforderlichen Linux-Pakete für Chrome in der AWS-Umgebung.

Kann ich Visual Studio verwenden, um meine AWS Lambda-Funktion zu aktivieren und zu testen?

Ja, Sie können Visual Studio verwenden, um Ihre AWS Lambda-Funktion zu aktivieren und zu testen, indem Sie das AWS Toolkit für Visual Studio verwenden, das eine nahtlose Bereitstellung und Tests direkt aus der IDE ermöglicht.

Welche Bedeutung hat die Verwendung einer Container-Vorlage für .NET 5 auf AWS Lambda?

Die Verwendung einer Container-Vorlage für .NET 5 auf AWS Lambda ist bedeutend, da sie das Deployen von Anwendungen mit ihren Abhängigkeiten, wie IronPDF, erleichtert und für Konsistenz zwischen den Umgebungen sorgt.

Wie kann ich Ausnahmen in meiner AWS Lambda-Funktion mit IronPDF handhaben?

Behandeln Sie Ausnahmen in Ihrer AWS Lambda-Funktion, indem Sie Ihre IronPDF-Operationen in einem try-catch-Block einwickeln und Fehler mit context.Logger.LogLine zum Debuggen und zur Fehlerbehebung protokollieren.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 16,685,821 | Version: 2025.12 gerade veröffentlicht