Errores de implementación de Chrome y libnss3 en AWS Lambda Docker
Al implementar IronPDF en AWS Lambda con una imagen de contenedor Docker, la aplicación lanza un IronSoftwareDeploymentException al iniciar.
IronSoftwareDeploymentException: Multiple issues occurred while trying to deploy Chrome (libnss3.so: cannot open shared object file: No such file or directory)... (Read-only file system: '/var/task/runtimes')
Dos problemas causan esta falla. Primero, el motor de Chrome de IronPDF depende de bibliotecas compartidas como libnss3.so que están ausentes en la imagen base de Lambda. Segundo, Lambda restringe el acceso de escritura a /var/task/runtimes, por lo que el mecanismo de implementación incorporado de IronPDF no puede extraer sus binarios allí.
Solución
Instala los paquetes Linux requeridos en el Dockerfile, desactiva la configuración automática y redirige el directorio de implementación de IronPDF a /tmp, la única ruta escribible en Lambda.
Dockerfile
FROM public.ecr.aws/lambda/dotnet:8
WORKDIR /var/task
RUN dnf update -y \
&& dnf install -y gcc-c++ pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 dbus-glib-devel \
&& dnf install -y libXdamage.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 \
&& dnf install -y libXrandr.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi \
&& dnf install -y xorg-x11-fonts-75dpi xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc \
&& dnf install -y mesa-libgbm.x86_64 \
&& dnf install -y nss-3.90.0-3.amzn2023.0.4.x86_64
COPY "bin/Release/lambda-publish" .
Inicialización de IronPDF
Establece estas propiedades antes de la primera llamada a ChromePdfRenderer:
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = false;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
IronPdf.Installation.CustomDeploymentDirectory = "/tmp/ironpdf";
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = false;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
IronPdf.Installation.CustomDeploymentDirectory = "/tmp/ironpdf";
Imports IronPdf
Installation.AutomaticallyDownloadNativeBinaries = False
Installation.ChromeGpuMode = Engines.Chrome.ChromeGpuModes.Disabled
Installation.LinuxAndDockerDependenciesAutoConfig = False
Installation.CustomDeploymentDirectory = "/tmp/ironpdf"
Para la referencia completa de configuración de AWS Lambda Docker, consulta la guía de implementación de AWS.

