CustomDeploymentDirectory in AWS Lambda
Uruchamiając IronPDF w funkcji AWS Lambda w Dockerze, można spróbować skierować CustomDeploymentDirectory na tymczasową ścieżkę do zapisu, taką jak /tmp. To działanie może wygenerować mylny wiersz dziennika o niepowodzeniu w wyszukiwaniu binarnym, jednak renderowanie PDF nadal działa normalnie.
Attempting deployment for 'Pdfium' using '/tmp/'
Failed to locate assembly(s) for deployment '/tmp/' at path '/tmp/'
Successfully located 'IronPdfInterop' at '/var/task'
Wiadomość wygląda na błąd, ale jest informacyjna. IronPDF woli już wdrożone zestawy i tylko konsultuje własną ścieżkę jako zapasowe rozwiązanie. W Lambda, katalog roboczy kontenera Docker jest zazwyczaj /var/task, gdzie binaria już są, więc IronPDF znajduje je tam i kontynuuje.
CustomDeploymentDirectory pełni dwie role: katalog do pobierania i wdrażania komponentów natywnych, takich jak IronPdf.Native.Chrome.Linux, oraz alternatywną ścieżkę wyszukiwania dla zależności uruchomieniowych, które nie są znalezione w standardowych lokalizacjach. Ponieważ silnik preferuje już wdrożone binaria, ścieżka /tmp jest niepotrzebna, chyba że zależysz od IronPdf.Slim lub pobrań natywnych binariów z NuGet w czasie uruchomienia.
Rozwiązanie
Opcja 1: Standardowe wdrożenie IronPdf.Linux
Dla większości wdrożeń Lambda i Docker za pomocą IronPdf.Linux, najprostsza i najpewniejsza konfiguracja pomija własny katalog w całości:
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
Wyłączając automatyczne pobierania, IronPDF informuje, że natywne binaria są już spakowane, a SingleProcess trzyma silnik w jednym procesie, co pasuje do ograniczonego środowiska Lambda.
Opcja 2: Wdrożenie IronPdf.Slim
Jeśli przesyłasz IronPdf.Slim z Docker, skieruj tymczasowe i wdrożeniowe ścieżki IronPDF do /tmp, jedynego katalogu do zapisu w 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
Tu CustomDeploymentDirectory zdobywa swoje miejsce: pakiet Slim pobiera natywne komponenty w czasie uruchomienia, a /tmp daje im dom do zapisu. Włączenie LinuxAndDockerDependenciesAutoConfig pozwala IronPDF skonfigurować zależności Linuksowe przy pierwszym uruchomieniu.
Kiedy to ustawić
- Pozostaw nieustawione, gdy: paczkujesz zależności IronPDF, takie jak
IronPdf.Linuxz projektem, używasz pełnych wdrożeń bez pobrań w czasie uruchomienia, a funkcja może to wszystko osiągnąć z/var/task. - Ustaw na
/tmp, gdy: używaszIronPdf.Slimbez spakowanych natywnych binariów, polegasz na pobraniach komponentów jakIronPdf.Native.Chrome.Linuxz NuGet w czasie uruchomienia, lub potrzebujesz tymczasowych wdrożeń przechowywanych w jedynym katalogu do zapisu w Lambda.

