IronPDF w AWS Lambda .NET 8: Brakujące błędy binariów Chromium
Podczas uruchamiania IronPDF wewnątrz obrazu kontenera AWS Lambda .NET 8, aplikacja kończy się wyjątkiem wskazującym, że wbudowane binarium Chromium nie zostało znalezione.
IronSoftware.Exceptions.IronSoftwareEmbeddedDeploymentMissingException:
Failed to find embedded resource 'Chrome.linux-x64.zip'
Pełny stos wyjątków może wyglądać następująco:
Unhandled exception. System.Exception: Error while convert DOCX document to HTML:
IronSoftware.Exceptions.IronSoftwareEmbeddedDeploymentMissingException: Failed to find embedded resource 'Chrome.linux-x64.zip'
at IronSoftware.Deployment.AssetManager.GetEmbededResourceStream(...)
at IronSoftware.Deployment.EmbeddedResourceDeployment.Deploy()
at IronPdf.Engines.Chrome.LocalChromeClient.Initialize()
Trzy warunki powodują ten błąd. Po pierwsze, jeśli AWS Lambda Mock Test Tool uruchamia funkcję na Windows, podczas gdy Dockerfile celuje w Linux, platforma zasobu osadzonego nie zgadza się ze środowiskiem wykonawczym. Po drugie, IronPdf.Slim jest pakietem tylko dla Linux i zawodzi, gdy środowisko wykonawcze to Windows. Po trzecie, obraz bazowy kontenera może nie spełniać wymagań platformy IronPDF.
Rozwiązanie
Krok 1: Testowanie na właściwym środowisku wykonawczym Linux
Nie testuj funkcji Lambda używając narzędzia Mock Test Tool na Windows. Użyj Dockera lokalnie, aby odtworzyć środowisko Lambda:
docker build -t my-lambda-test .
docker run --rm my-lambda-test
docker build -t my-lambda-test .
docker run --rm my-lambda-test
Krok 2: Użyj pełnego pakietu IronPDF dla wsparcia międzyplatformowego
Jeśli musisz działać zarówno na Windows, jak i Linux, użyj IronPdf zamiast IronPdf.Slim:
Install-Package IronPdf
IronPdf.Slim jest tylko dla Linux. IronPdf zawiera osadzone binaria dla obu platform.
Krok 3: Zainstaluj zależności Linux w pliku Dockerfile
FROM public.ecr.aws/lambda/dotnet:8
RUN yum install -y \
pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 \
libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 \
libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 \
atk.x86_64 gtk3.x86_64 ipa-gothic-fonts \
xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi \
xorg-x11-utils xorg-x11-fonts-cyrillic \
xorg-x11-fonts-Type1 xorg-x11-fonts-misc \
glibc-devel.x86_64 at-spi2-atk.x86_64 mesa-libgbm.x86_64
Dla pełnej konfiguracji Dockera AWS Lambda, zobacz przewodnik dotyczący wdrażania w AWS.

