# CustomDeploymentDirectory in AWS Lambda
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.
```txt
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.
[[i:(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:
```csharp
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = false;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.SingleProcess = true;
```
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:
```csharp
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;
```
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.
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'
Attempting deployment for 'Pdfium' using '/tmp/'
Failed to locate assembly(s) for deployment '/tmp/' at path '/tmp/'
Successfully located 'IronPdfInterop' at '/var/task'
Text
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:
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:
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 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ęczników.