CustomDeploymentDirectory in AWS Lambda

This article was translated from English: Does it need improvement?
Translated
View the article in English

Uruchamiając IronPDF w funkcji AWS Lambda w Dockerze, można spróbować skierować CustomDeploymentDirectory na tymczasową ścieżkę do zapisu, taką jak /tmp. To działanie może wygenerować mylny wiersz dziennika o niepowodzeniu w wyszukiwaniu binarnym, jednak renderowanie PDF nadal działa normalnie.

Attempting deployment for 'Pdfium' using '/tmp/'
Failed to locate assembly(s) for deployment '/tmp/' at path '/tmp/'
Successfully located 'IronPdfInterop' at '/var/task'

Wiadomość wygląda na błąd, ale jest informacyjna. IronPDF woli już wdrożone zestawy i tylko konsultuje własną ścieżkę jako zapasowe rozwiązanie. W Lambda, katalog roboczy kontenera Docker jest zazwyczaj /var/task, gdzie binaria już są, więc IronPDF znajduje je tam i kontynuuje.

CustomDeploymentDirectory pełni dwie role: katalog do pobierania i wdrażania komponentów natywnych, takich jak IronPdf.Native.Chrome.Linux, oraz alternatywną ścieżkę wyszukiwania dla zależności uruchomieniowych, które nie są znalezione w standardowych lokalizacjach. Ponieważ silnik preferuje już wdrożone binaria, ścieżka /tmp jest niepotrzebna, chyba że zależysz od IronPdf.Slim lub pobrań natywnych binariów z NuGet w czasie uruchomienia.

Zwróć uwagęWiersze dziennika zapasowego są informacyjne, a nie błędami. Jeśli renderowanie zakończy się sukcesem, nie ma potrzeby podejmowania działań.

Rozwiązanie

Opcja 1: Standardowe wdrożenie IronPdf.Linux

Dla większości wdrożeń Lambda i Docker za pomocą IronPdf.Linux, najprostsza i najpewniejsza konfiguracja pomija własny katalog w całości:

IronPdf.Installation.AutomaticallyDownloadNativeBinaries = false;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = false;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.SingleProcess = true;
Imports IronPdf

Installation.AutomaticallyDownloadNativeBinaries = False
Installation.LinuxAndDockerDependenciesAutoConfig = False
Installation.ChromeGpuMode = Engines.Chrome.ChromeGpuModes.Disabled
Installation.SingleProcess = True
$vbLabelText   $csharpLabel

Wyłączając automatyczne pobierania, IronPDF informuje, że natywne binaria są już spakowane, a SingleProcess trzyma silnik w jednym procesie, co pasuje do ograniczonego środowiska Lambda.

Opcja 2: Wdrożenie IronPdf.Slim

Jeśli przesyłasz IronPdf.Slim z Docker, skieruj tymczasowe i wdrożeniowe ścieżki IronPDF do /tmp, jedynego katalogu do zapisu w Lambda:

var awsTmpPath = @"/tmp/"; // AWS temporary storage path
// Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.DefaultRenderingEngine = IronPdf.Rendering.PdfRenderingEngine.Chrome;
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process);
IronPdf.Installation.TempFolderPath = awsTmpPath;
IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
var awsTmpPath = @"/tmp/"; // AWS temporary storage path
// Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.DefaultRenderingEngine = IronPdf.Rendering.PdfRenderingEngine.Chrome;
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process);
IronPdf.Installation.TempFolderPath = awsTmpPath;
IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
Imports IronPdf

Dim awsTmpPath As String = "/tmp/" ' AWS temporary storage path
' Configuration for IronPDF rendering
Installation.ChromeGpuMode = Engines.Chrome.ChromeGpuModes.Disabled
Installation.DefaultRenderingEngine = Rendering.PdfRenderingEngine.Chrome
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process)
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process)
Installation.TempFolderPath = awsTmpPath
Installation.CustomDeploymentDirectory = awsTmpPath
Installation.LinuxAndDockerDependenciesAutoConfig = True
$vbLabelText   $csharpLabel

Tu CustomDeploymentDirectory zdobywa swoje miejsce: pakiet Slim pobiera natywne komponenty w czasie uruchomienia, a /tmp daje im dom do zapisu. Włączenie LinuxAndDockerDependenciesAutoConfig pozwala IronPDF skonfigurować zależności Linuksowe przy pierwszym uruchomieniu.

Kiedy to ustawić

  • Pozostaw nieustawione, gdy: paczkujesz zależności IronPDF, takie jak IronPdf.Linux z projektem, używasz pełnych wdrożeń bez pobrań w czasie uruchomienia, a funkcja może to wszystko osiągnąć z /var/task.
  • Ustaw na /tmp, gdy: używasz IronPdf.Slim bez spakowanych natywnych binariów, polegasz na pobraniach komponentów jak IronPdf.Native.Chrome.Linux z NuGet w czasie uruchomienia, lub potrzebujesz tymczasowych wdrożeń przechowywanych w jedynym katalogu do zapisu w Lambda.
Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 20,296,129 | Wersja: 2026.7 właśnie wydany
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.