AWS Lambda Docker: libnss3 ve Chrome Dağıtım Hataları
IronPDF'i bir Docker konteyner imajı ile AWS Lambda üzerinde dağıtırken, uygulama başlangıçta IronSoftwareDeploymentException hatası veriyor.
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')
Bu hataya iki sorun neden olur. Öncelikle, IronPDF'in Chrome motoru, Lambda taban görüntüsünde bulunmayan libnss3.so gibi paylaşılan kütüphanelere bağımlıdır. İkincisi, Lambda /var/task/runtimes üzerinde yazma erişimini kısıtlar, bu nedenle IronPDF'in gömülü dağıtım mekanizması, ikili dosyalarını oraya çıkaramaz.
Çözüm
Gerekli Linux paketlerini Dockerfile'da yükleyin, otomatik yapılandırmayı devre dışı bırakın ve IronPDF'in dağıtım dizinini Lambda'daki tek yazılabilir yol olan /tmp'ye yönlendirin.
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 başlatma
İlk ChromePdfRenderer çağrısından önce bu özellikleri ayarlayın:
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"
Tam AWS Lambda Docker kurulumu referansı için, AWS dağıtım kılavuzu'na bakın.

