AWS Lambda中的CustomDeploymentDirectory
當您在AWS Lambda函式中使用Docker執行IronPDF時,您可能會嘗試將/tmp。 這樣做可能會產生誤導性日誌行,關於二進位文件查找失敗,但PDF呈現會正常工作。
Attempting deployment for 'Pdfium' using '/tmp/'
Failed to locate assembly(s) for deployment '/tmp/' at path '/tmp/'
Successfully located 'IronPdfInterop' at '/var/task'
該資訊看起來像是失敗,但只是資訊性質。 IronPDF優先使用已經部署的程式集,僅在需要時才查詢自定義路徑。 在Lambda中,您的Docker容器的工作目錄通常是/var/task,二進位文件已經在那裡,因此IronPDF可以找到並繼續運行。
IronPdf.Native.Chrome.Linux的目錄,以及未在標準位置找到的運行時依賴的替代查找路徑。 由於引擎偏好已經部署的二進位文件,除非您依賴於/tmp路徑。
解決方案
選項1:標準IronPdf.Linux部署
對於大多數使用IronPdf.Linux的Lambda加Docker部署,最簡單和最可靠的設置是完全跳過自定義目錄:
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
禁用自動下載告訴IronPDF本機二進位文件已經打包,且SingleProcess保持引擎在一個進程中,這適合受限的Lambda運行環境。
選項2:IronPdf.Slim部署
如果您使用Docker發送/tmp,它是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
這裡/tmp為它們提供了一個可寫的家。 啟用LinuxAndDockerDependenciesAutoConfig使IronPDF能在第一次運行時設置Linux依賴項。
何時設置
- 當以下情況時保持未設置:您將IronPDF依賴項如
/var/task存取一切。 - 當以下情況時設置為
IronPdf.Native.Chrome.Linux的元件,或需要臨時部署儲存在Lambda的唯一可寫目錄中。

