AWS Lambda에서 CustomDeploymentDirectory
Docker에서 AWS Lambda 함수로 IronPDF를 실행할 때, CustomDeploymentDirectory를 /tmp 같은 기록 가능한 임시 경로로 유도할 수 있습니다. 이렇게 하면 바이너리 조회 실패에 대한 오도된 로그 줄을 생성할 수 있지만, PDF 렌더링은 정상적으로 계속 작동합니다.
Attempting deployment for 'Pdfium' using '/tmp/'
Failed to locate assembly(s) for deployment '/tmp/' at path '/tmp/'
Successfully located 'IronPdfInterop' at '/var/task'
메시지는 실패처럼 보일 수 있지만 정보 제공입니다. IronPDF는 이미 배포된 어셈블리를 선호하며, 사용자 지정 경로는 보충책으로만 참조합니다. Lambda에서는 Docker 컨테이너의 작업 디렉토리가 일반적으로 /var/task이며, 그곳에는 이미 바이너리가 존재하므로 IronPDF가 해당 경로에서 찾아 작동을 계속 진행합니다.
CustomDeploymentDirectory는 두 가지 역할을 합니다: IronPdf.Native.Chrome.Linux 같은 네이티브 구성 요소를 다운로드하고 배포할 디렉토리가 되며, 표준 위치에서 찾을 수 없는 런타임 종속성에 대한 대체 조회 경로 역할을 합니다. 엔진이 이미 배포된 바이너리를 선호하기 때문에, IronPdf.Slim에 의존하는 것이 아니라면 /tmp 경로는 불필요합니다.
해결책
옵션 1: 일반 IronPdf.Linux 배포
대부분의 Lambda와 Docker 배포를 사용하여 IronPdf.Linux를 사용할 때 가장 간단하고 신뢰할 수 있는 설정은 사용자 지정 디렉토리를 완전히 생략합니다:
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
자동 다운로드를 비활성화하여 IronPDF에 네이티브 바이너리가 이미 패키지되어 있음을 알리고, SingleProcess은 제한된 Lambda 런타임에 적합하게 엔진을 하나의 프로세스에 유지합니다.
옵션 2: IronPdf.Slim 배포
Docker로 IronPdf.Slim를 배포할 경우, IronPDF의 임시 및 배포 경로를 Lambda에서 유일하게 기록 가능한 디렉토리 /tmp로 경로 지정하십시오:
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
여기서 CustomDeploymentDirectory는 Slim 패키지가 런타임 시 네이티브 구성 요소를 다운로드하는 경로로서 그 역할을 하지 않습니다. /tmp는 그들이 기록 가능한 장소를 가질 수 있도록 합니다. LinuxAndDockerDependenciesAutoConfig를 활성화하여 IronPDF가 처음 실행 시 Linux 의존성을 설정할 수 있도록 합니다.
설정해야 할 때
- 설정하지 마세요: IronPDF 의존성(예:
IronPdf.Linux)을 프로젝트와 함께 패키징하고, 런타임 다운로드 없이 전체 배포를 사용하며, 함수가/var/task의 모든 것에 접근할 수 있습니다. /tmp로 설정하세요:IronPdf.Slim을 번들 네이티브 바이너리 없이 사용할 경우,IronPdf.Native.Chrome.Linux와 같은 구성 요소의 런타임 NuGet 다운로드에 의존하는 경우, 또는 임시 배포를 Lambda에서 유일하게 기록 가능한 디렉토리에 저장해야 하는 경우입니다.

