CustomDeploymentDirectory in AWS Lambda
Quando você executa o IronPDF em uma função AWS Lambda sob Docker, você pode tentar apontar CustomDeploymentDirectory para um caminho temporário gravável como /tmp. Fazer isso pode produzir uma linha de log enganosa sobre uma busca binária falhada, mas a renderização de PDF continua funcionando normalmente.
Attempting deployment for 'Pdfium' using '/tmp/'
Failed to locate assembly(s) for deployment '/tmp/' at path '/tmp/'
Successfully located 'IronPdfInterop' at '/var/task'
A mensagem parece uma falha, mas é informativa. O IronPDF prefere assemblies que já estão implantados e só consulta o caminho personalizado como alternativa. No Lambda, o diretório de trabalho do seu contêiner Docker é geralmente /var/task, onde os binários já vivem, então o IronPDF os encontra lá e continua.
CustomDeploymentDirectory serve para dois papéis: um diretório para baixar e implantar componentes nativos como IronPdf.Native.Chrome.Linux, e um caminho de busca alternativa para dependências de runtime que não são encontradas nos locais padrão. Porque o mecanismo favorece binários já implantados, o caminho /tmp é desnecessário, a menos que você dependa de IronPdf.Slim ou de downloads de runtime do NuGet dos binários nativos.
Solução
Opção 1: Implantação padrão IronPdf.Linux
Para a maioria das implantações Lambda mais Docker usando IronPdf.Linux, a configuração mais simples e confiável pula o diretório personalizado completamente:
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
Desativar os downloads automáticos informa ao IronPDF que os binários nativos já estão empacotados e SingleProcess mantém o motor em um processo, o que se encaixa no ambiente restrito do Lambda.
Opção 2: Implantação IronPdf.Slim
Se você enviar IronPdf.Slim com Docker, redirecione os caminhos temporários e de implantação do IronPDF para /tmp, o único diretório gravável no 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
Aqui CustomDeploymentDirectory ganha seu lugar: o pacote Slim baixa componentes nativos em tempo de execução, e /tmp lhes dá uma casa gravável. Ativar LinuxAndDockerDependenciesAutoConfig permite que o IronPDF configure as dependências do Linux na primeira execução.
Quando definir
- Deixe desconfigurado quando: você empacotou dependências do IronPDF como
IronPdf.Linuxcom seu projeto, usa implantações completas sem downloads de runtime, e a função pode acessar tudo a partir de/var/task. - Defina para
/tmpquando: você usaIronPdf.Slimsem binários nativos agrupados, depende de downloads de runtime do NuGet para componentes comoIronPdf.Native.Chrome.Linux, ou precisa de implantações temporárias armazenadas no único diretório gravável do Lambda.

