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原生二进制已经打包,而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;
这里/tmp赋予它们一个可写的家。 启用LinuxAndDockerDependenciesAutoConfig让IronPDF在首次运行时设置Linux依赖项。
何时设置它
- 不设置变:当您将IronPDF依赖项(如
/var/task访问所有内容时。 -
设置为
IronPdf.Native.Chrome.Linux)或需要将临时部署存储在Lambda中唯一可写的目录中。

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。