AWS Lambda中的CustomDeploymentDirectory

This article was translated from English: Does it need improvement?
Translated
View the article in English

当您在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
$vbLabelText   $csharpLabel

禁用自动下载告诉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
$vbLabelText   $csharpLabel

这里/tmp赋予它们一个可写的家。 启用LinuxAndDockerDependenciesAutoConfig让IronPDF在首次运行时设置Linux依赖项。

何时设置它

  • 不设置变:当您将IronPDF依赖项(如/var/task访问所有内容时。
  • 设置为IronPdf.Native.Chrome.Linux)或需要将临时部署存储在Lambda中唯一可写的目录中。
Curtis Chau
技术作家

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

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 20,296,129 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。