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 = true;
Imports IronPdf
Installation.AutomaticallyDownloadNativeBinaries = False
Installation.LinuxAndDockerDependenciesAutoConfig = False
Installation.ChromeGpuMode = Engines.Chrome.ChromeGpuModes.Disabled
Installation.SingleProcess = True
Das 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:
var awsTmpPath = @"/tmp/"; // AWS temporary storage path
// Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.DefaultRenderingEngine = IronPdf.Rendering.PdfRenderingEngine.Chrome;
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process);
IronPdf.Installation.TempFolderPath = awsTmpPath;
IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
var awsTmpPath = @"/tmp/"; // AWS temporary storage path
// Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.DefaultRenderingEngine = IronPdf.Rendering.PdfRenderingEngine.Chrome;
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 IronPdf
Dim awsTmpPath As String = "/tmp/" ' AWS temporary storage path
' Configuration for IronPDF rendering
Installation.ChromeGpuMode = Engines.Chrome.ChromeGpuModes.Disabled
Installation.DefaultRenderingEngine = Rendering.PdfRenderingEngine.Chrome
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process)
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process)
Installation.TempFolderPath = awsTmpPath
Installation.CustomDeploymentDirectory = awsTmpPath
Installation.LinuxAndDockerDependenciesAutoConfig = True
Hier 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.

