IronPDF Lambda部署中的缺失依赖项
当部署到AWS Lambda时IronPDF无法初始化,产生类似的错误:
IronPDF failed to start: required native binaries not found at the expected path.
Unable to load shared library or one of its dependencies.
Error: Required IronPDF native dependencies were not found in the deployment package.
Lambda部署中缺失本地依赖项的原因如下:
- 缺少权限:Lambda执行角色或文件系统路径缺少IronPDF所需的读/写/执行权限。
- 本地二进制文件缺失:本地IronPDF库未包含在部署包中。
- 不正确的Dockerfile:Dockerfile未安装用于Lambda基础镜像的正确OS级别依赖项。
解决方案
切换到IronPdf.Slim NuGet包。 与完整的IronPDF包不同,IronPdf.Slim在运行时自动下载检测到的基础映像的正确原生二进制文件,消除了手动捆绑特定于平台的二进制文件的需要:
// NuGet: IronPdf.Slim
// IronPdf.Slim selects and downloads the appropriate native runtime
// for the Lambda execution environment automatically.
IronPdf.License.LicenseKey = Environment.GetEnvironmentVariable("IRONPDF_LICENSE_KEY");
var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Hello from Lambda</h1>");
pdf.SaveAs("/tmp/output.pdf");
// NuGet: IronPdf.Slim
// IronPdf.Slim selects and downloads the appropriate native runtime
// for the Lambda execution environment automatically.
IronPdf.License.LicenseKey = Environment.GetEnvironmentVariable("IRONPDF_LICENSE_KEY");
var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Hello from Lambda</h1>");
pdf.SaveAs("/tmp/output.pdf");
' NuGet: IronPdf.Slim
' IronPdf.Slim selects and downloads the appropriate native runtime
' for the Lambda execution environment automatically.
IronPdf.License.LicenseKey = Environment.GetEnvironmentVariable("IRONPDF_LICENSE_KEY")
Dim renderer As New ChromePdfRenderer()
Dim pdf = Await renderer.RenderHtmlAsPdfAsync("<h1>Hello from Lambda</h1>")
pdf.SaveAs("/tmp/output.pdf")
直接在Lambda中测试:不要依赖本地测试来验证本地依赖项的解析。 在本地运行项目下载的是与Windows兼容或与主机OS兼容的二进制文件,而不是与Lambda兼容的,产生误判。
从AWS检索日志文件以获得诊断详细信息,当切换到IronPdf.Slim后问题仍然存在时。 在第一次IronPDF调用之前启用日志记录:
IronPdf.Logging.Logger.EnableDebugging = true;
IronPdf.Logging.Logger.LogFilePath = "/tmp/ironpdf.log";
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
IronPdf.Logging.Logger.EnableDebugging = true;
IronPdf.Logging.Logger.LogFilePath = "/tmp/ironpdf.log";
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
Imports IronPdf.Logging
Logger.EnableDebugging = True
Logger.LogFilePath = "/tmp/ironpdf.log"
Logger.LoggingMode = Logger.LoggingModes.All
将/tmp/ironpdf.log和Lambda CloudWatch日志输出附加到您的支持请求中。另见:将IronPDF部署到AWS Lambda与Docker 和 如何获取AWS中的IronPDF日志文件。

