# 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.
```txt
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.
[[i:(As 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:
```csharp
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = false;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.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:
```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;
```
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.
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'
Attempting deployment for 'Pdfium' using '/tmp/'
Failed to locate assembly(s) for deployment '/tmp/' at path '/tmp/'
Successfully located 'IronPdfInterop' at '/var/task'
Text
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.
Observe: As 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:
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:
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 é 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 bem estruturados e visualmente atraentes.