AWS Lambda Docker: libnss3 및 Chrome 배포 오류
Docker 컨테이너 이미지를 사용하여 AWS Lambda에 IronPDF를 배포할 때, 애플리케이션이 시작 시 IronSoftwareDeploymentException을(를) 발생시킵니다.
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')
두 가지 문제가 이 오류를 초래합니다. 첫째, IronPDF의 Chrome 엔진은 Lambda 베이스 이미지에 없는 libnss3.so와 같은 공유 라이브러리에 의존합니다. 둘째, Lambda는 /var/task/runtimes에 대한 쓰기 접근을 제한하므로 IronPDF의 내장 배포 메커니즘이 해당 위치에 바이너리를 추출할 수 없습니다.
해결책
Dockerfile에서 필요한 Linux 패키지를 설치하고, 자동 구성을 비활성화하며, Lambda에서 유일한 쓰기 가능한 경로인 /tmp로 IronPDF의 배포 디렉터리를 리디렉션합니다.
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 초기화
첫 번째 ChromePdfRenderer 호출 전에 이 속성을 설정하세요:
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"AWS Lambda Docker 설정에 대한 전체 참조는 AWS 배포 가이드를 참조하세요.

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.