Directorio de implementación personalizada en AWS Lambda
Cuando ejecuta IronPDF en una función Lambda de AWS bajo Docker, puede intentar apuntar CustomDeploymentDirectory a una ruta temporal escribible como /tmp. Hacerlo puede producir una línea de registro engañosa sobre una búsqueda de binarios fallida, pero el renderizado de PDF sigue 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'
El mensaje parece un fallo, pero es informativo. IronPDF prefiere ensamblados ya implementados y solo consulta la ruta personalizada como una alternativa. En Lambda, el directorio de trabajo de su contenedor Docker suele ser /var/task, donde los binarios ya viven, por lo que IronPDF los encuentra allí y procede.
CustomDeploymentDirectory sirve dos papeles: un directorio para descargar e implementar componentes nativos como IronPdf.Native.Chrome.Linux, y una ruta de búsqueda alternativa para dependencias de tiempo de ejecución que no se encuentran en las ubicaciones estándar. Debido a que el motor favorece los binarios ya desplegados, la ruta /tmp es innecesaria a menos que dependa de IronPdf.Slim o de descargas de tiempo de ejecución de NuGet de los binarios nativos.
Solución
Opción 1: Despliegue estándar de IronPdf.Linux
Para la mayoría de los despliegues de Lambda más Docker usando IronPdf.Linux, la configuración más simple y confiable omite completamente el directorio personalizado:
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 = TrueIronPdf.Installation.AutomaticallyDownloadNativeBinaries = False
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = False
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
IronPdf.Installation.SingleProcess = TrueDesactivar las descargas automáticas le dice a IronPDF que los binarios nativos ya están empaquetados, y SingleProcess mantiene el motor en un proceso, lo cual se adapta al tiempo de ejecución limitado de Lambda.
Opción 2: Despliegue IronPdf.Slim
Si envía IronPdf.Slim con Docker, dirija los caminos temporales y de despliegue de IronPDF a /tmp, el único directorio escribible en Lambda:
using System;
var awsTmpPath = @"/tmp/"; // AWS temporary storage path
// Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process);
IronPdf.Installation.TempFolderPath = awsTmpPath;
IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;using System;
var awsTmpPath = @"/tmp/"; // AWS temporary storage path
// Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
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 System
Dim awsTmpPath = "/tmp/" ' AWS temporary storage path
' Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process)
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process)
IronPdf.Installation.TempFolderPath = awsTmpPath
IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = TrueImports System
Dim awsTmpPath = "/tmp/" ' AWS temporary storage path
' Configuration for IronPDF rendering
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
Environment.SetEnvironmentVariable("TEMP", awsTmpPath, EnvironmentVariableTarget.Process)
Environment.SetEnvironmentVariable("TMP", awsTmpPath, EnvironmentVariableTarget.Process)
IronPdf.Installation.TempFolderPath = awsTmpPath
IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = TrueAquí CustomDeploymentDirectory gana su lugar: el paquete Slim descarga componentes nativos en tiempo de ejecución, y /tmp les da un hogar escribible. Activar LinuxAndDockerDependenciesAutoConfig permite que IronPDF configure las dependencias de Linux en la primera ejecución.
Cuándo Configurarlo
- Déjelo sin configurar cuando: envasa dependencias de IronPDF como
IronPdf.Linuxcon su proyecto, utiliza despliegues completos sin descargas de tiempo de ejecución, y la función puede alcanzar todo desde/var/task. - Configúrelo a
/tmpcuando: usaIronPdf.Slimsin binarios nativos incluidos, confía en descargas de tiempo de ejecución de NuGet para componentes comoIronPdf.Native.Chrome.Linux, o necesita despliegues temporales almacenados en el único directorio escribible de Lambda.
Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.