AWS Lambda Docker: libnss3 und Chrome Bereitstellungsfehler
Beim Bereitstellen von IronPDF auf AWS Lambda mit einem Docker-Container-Image wirft die Anwendung beim Start einen IronSoftwareDeploymentException-Fehler.
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')
Zwei Probleme verursachen diesen Fehler. Erstens hängt die Chrome-Engine von IronPDF von gemeinsamen Bibliotheken wie libnss3.so ab, die im Lambda-Basisimage fehlen. Zweitens schränkt Lambda den Schreibzugriff auf /var/task/runtimes ein, sodass der eingebettete Bereitstellungsmechanismus von IronPDF dort keine Binärdateien extrahieren kann.
Lösung
Installieren Sie die erforderlichen Linux-Pakete in der Dockerfile, deaktivieren Sie die automatische Konfiguration und leiten Sie das Bereitstellungsverzeichnis von IronPDF auf /tmp um, den einzigen beschreibbaren Pfad in 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" .
IronPDF-Initialisierung
Setzen Sie diese Eigenschaften vor dem ersten Aufruf von 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"
Für die vollständige AWS Lambda Docker-Setup-Referenz siehe den AWS-Bereitstellungsleitfaden.

