CustomDeploymentDirectory in AWS Lambda
Wenn Sie IronPDF in einer AWS Lambda-Funktion unter Docker ausführen, können Sie versuchen, CustomDeploymentDirectory auf einen beschreibbaren temporären Pfad wie /tmp zu verweisen. Dadurch kann eine irreführende Protokollzeile zu einem fehlgeschlagenen binären Lookup erzeugt werden, dennoch funktioniert das PDF-Rendering weiterhin normal.
Attempting deployment for 'Pdfium' using '/tmp/'
Failed to locate assembly(s) for deployment '/tmp/' at path '/tmp/'
Successfully located 'IronPdfInterop' at '/var/task'
Die Nachricht sieht aus wie ein Fehler, ist aber informativ. IronPDF bevorzugt bereits bereitgestellte Assemblies und greift nur im Notfall auf den benutzerdefinierten Pfad zurück. In Lambda befindet sich das Arbeitsverzeichnis Ihres Docker-Containers normalerweise bei /var/task, wo die Binärdateien bereits leben, sodass IronPDF sie dort findet und fortfährt.
CustomDeploymentDirectory erfüllt zwei Rollen: ein Verzeichnis zum Herunterladen und Bereitstellen nativer Komponenten wie IronPdf.Native.Chrome.Linux und ein alternativer Suchpfad für Laufzeitabhängigkeiten, die nicht an den Standardorten gefunden werden. Da die Engine bereits bereitgestellte Binärdateien bevorzugt, ist der /tmp-Pfad unnötig, es sei denn, Sie sind auf IronPdf.Slim angewiesen oder auf Laufzeit-NuGet-Downloads der nativen Binärdateien.
Lösung
Option 1: Standard IronPdf.Linux Bereitstellung
Für die meisten Lambda plus Docker-Bereitstellungen mit IronPdf.Linux überspringt die einfachste und zuverlässigste Konfiguration das benutzerdefinierte Verzeichnis vollständig:
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = false;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.SingleProcess = true;IronPdf.Installation.AutomaticallyDownloadNativeBinaries = False
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = False
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
IronPdf.Installation.SingleProcess = TrueIronPdf.Installation.AutomaticallyDownloadNativeBinaries = False
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = False
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
IronPdf.Installation.SingleProcess = TrueDas Deaktivieren der automatischen Downloads zeigt IronPDF an, dass die nativen Binärdateien bereits gepackt sind, und SingleProcess hält die Engine in einem Prozess, was der eingeschränkten Lambda-Laufzeit entspricht.
Option 2: IronPdf.Slim Bereitstellung
Wenn Sie IronPdf.Slim mit Docker ausliefern, leiten Sie die temporären und Bereitstellungs-Pfade von IronPDF zu /tmp, das einzige beschreibbare Verzeichnis in Lambda:
using System;
var awsTmpPath = @"/tmp/"; // AWS temporary storage path
// Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process);
IronPdf.Installation.TempFolderPath = awsTmpPath;
IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;using System;
var awsTmpPath = @"/tmp/"; // AWS temporary storage path
// Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process);
IronPdf.Installation.TempFolderPath = awsTmpPath;
IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;Imports System
Dim awsTmpPath = "/tmp/" ' AWS temporary storage path
' Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process)
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process)
IronPdf.Installation.TempFolderPath = awsTmpPath
IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = TrueImports System
Dim awsTmpPath = "/tmp/" ' AWS temporary storage path
' Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process)
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process)
IronPdf.Installation.TempFolderPath = awsTmpPath
IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = TrueHier verdient CustomDeploymentDirectory seinen Platz: das Slim-Paket lädt zur Laufzeit native Komponenten herunter, und /tmp bietet ihnen ein beschreibbares Zuhause. Die Aktivierung von LinuxAndDockerDependenciesAutoConfig ermöglichte IronPDF die Einrichtung der Linux-Abhängigkeiten bei der ersten Ausführung.
Wann es eingestellt werden sollte
- Lassen Sie es unausgesetzt, wenn: Sie IronPDF-Abhängigkeiten wie
IronPdf.Linuxmit Ihrem Projekt paketieren, vollständige Bereitstellungen ohne Laufzeit-Downloads verwenden, und die Funktion kann alles von/var/taskerreichen. - Legen Sie es auf
/tmpfest, wenn: SieIronPdf.Slimohne gebündelte native Binärdateien verwenden, auf Laufzeit-NuGet-Downloads für Komponenten wieIronPdf.Native.Chrome.Linuxangewiesen sind oder temporäre Bereitstellungen in Lambdas einzig beschreibbarem Verzeichnis gespeichert werden müssen.
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 Handbücher.