Déploiement Docker AWS Lambda : erreurs libnss3 et Chrome
Lors du déploiement d'IronPDF sur AWS Lambda avec une image de conteneur Docker, l'application génère un IronSoftwareDeploymentException au démarrage.
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')
Deux problèmes provoquent cet échec. Tout d'abord, le moteur Chrome d'IronPDF dépend de bibliothèques partagées comme libnss3.so qui sont absentes de l'image de base Lambda. Ensuite, Lambda restreint l'accès en écriture à /var/task/runtimes, donc le mécanisme de déploiement intégré d'IronPDF ne peut pas extraire ses binaires là-bas.
Solution
Installez les paquets Linux requis dans le Dockerfile, désactivez la configuration automatique, et redirigez le répertoire de déploiement d'IronPDF vers /tmp, le seul chemin accessible en écriture dans 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" .
Initialisation d'IronPDF
Définissez ces propriétés avant le premier appel à 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"
Pour la référence complète de la configuration Docker AWS Lambda, consultez le guide de déploiement AWS.

