AWS Lambda에서 CustomDeploymentDirectory

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

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

자동 다운로드를 비활성화하여 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
$vbLabelText   $csharpLabel

여기서 CustomDeploymentDirectory는 Slim 패키지가 런타임 시 네이티브 구성 요소를 다운로드하는 경로로서 그 역할을 하지 않습니다. /tmp는 그들이 기록 가능한 장소를 가질 수 있도록 합니다. LinuxAndDockerDependenciesAutoConfig를 활성화하여 IronPDF가 처음 실행 시 Linux 의존성을 설정할 수 있도록 합니다.

설정해야 할 때

  • 설정하지 마세요: IronPDF 의존성(예: IronPdf.Linux)을 프로젝트와 함께 패키징하고, 런타임 다운로드 없이 전체 배포를 사용하며, 함수가 /var/task의 모든 것에 접근할 수 있습니다.
  • /tmp로 설정하세요: IronPdf.Slim을 번들 네이티브 바이너리 없이 사용할 경우, IronPdf.Native.Chrome.Linux와 같은 구성 요소의 런타임 NuGet 다운로드에 의존하는 경우, 또는 임시 배포를 Lambda에서 유일하게 기록 가능한 디렉토리에 저장해야 하는 경우입니다.
Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
Nuget 다운로드 20,296,129 | 버전: 2026.7 방금 출시
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronPdf
샘플을 실행하세요 HTML이 PDF로 변환되는 것을 지켜보세요.