CustomDeploymentDirectory in AWS Lambda

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

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.

ObserveAs linhas de log de fallback são informativas, não erros. Se a renderização for bem-sucedida, nenhuma ação é necessária.

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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.Linux com seu projeto, usa implantações completas sem downloads de runtime, e a função pode acessar tudo a partir de /var/task.
  • Defina para /tmp quando: você usa IronPdf.Slim sem binários nativos agrupados, depende de downloads de runtime do NuGet para componentes como IronPdf.Native.Chrome.Linux, ou precisa de implantações temporárias armazenadas no único diretório gravável do Lambda.
Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 20,296,129 | Versão: 2026.7 recém-lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.