AWS Lambda中的CustomDeploymentDirectory
当您在Docker下的AWS Lambda函数中运行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)的目录,以及未在标准位置找到的运行时依赖项的备选查找路径。 因为引擎偏爱已经部署的二进制,所以IronPdf.Slim或本地二进制的运行时NuGet下载。
解决方案
选项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中唯一可写的目录中。

