AWS Lambda'da CustomDeploymentDirectory
Docker altında bir AWS Lambda fonksiyonu içinde IronPDF'yi çalıştırdığınızda, CustomDeploymentDirectory bir /tmp gibi yazılabilir geçici bir yola yönlendirmeyi deneyebilirsiniz. Bunu yapmak, başarısız bir ikili arama hakkında yanıltıcı bir günlük satırı üretebilir, ama PDF işleme normal şekilde devam eder.
Attempting deployment for 'Pdfium' using '/tmp/'
Failed to locate assembly(s) for deployment '/tmp/' at path '/tmp/'
Successfully located 'IronPdfInterop' at '/var/task'
Mesaj bir hata gibi görünür, ama bilgilendiricidir. IronPDF, zaten dağıtılmış olan montajları tercih eder ve yalnızca özel yolu bir yedek olarak danışır. Lambda'da, Docker konteynerinizin çalışma dizini genellikle /var/task olur; burada zaten binary'ler bulunduğu için IronPDF onları burada bulur ve devam eder.
CustomDeploymentDirectory iki rol oynar: IronPdf.Native.Chrome.Linux gibi yerel bileşenleri indirmek ve dağıtmak için bir dizin ve standart yerlerde bulunmayan çalışma zamanı bağımlılıkları için bir alternatif sorgu yolu. Motor, zaten dağıtılmış olan ikililere öncelik verdiği için, /tmp yolu, IronPdf.Slim veya yerel binary'lerin NuGet üzerinden çalışma zamanı indirmelerine bağımlı olmadıkça gereksizdir.
Çözüm
Seçenek 1: Standart IronPdf.Linux Dağıtımı
IronPdf.Linux kullanan çoğu Lambda ve Docker dağıtımı için, en basit ve en güvenilir yapılandırma, özel dizini tamamen atlar:
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
Otomatik indirmeleri devre dışı bırakmak, IronPDF'ye, yerel binary'lerin zaten paketlendiğini söyler ve SingleProcess, motoru tek bir süreçte tutar ve bu da kısıtlı Lambda çalışma zamanına uygundur.
Seçenek 2: IronPdf.Slim Dağıtımı
Docker ile birlikte IronPdf.Slim gönderirseniz, IronPDF'nin geçici ve dağıtım yollarını Lambda'daki tek yazılabilir dizin olan /tmp'ye yönlendirin:
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
Burada, CustomDeploymentDirectory yerini edinir: Slim paket, yerel bileşenleri çalışma zamanında indirir ve /tmp onlara yazılabilir bir yuva sağlar. LinuxAndDockerDependenciesAutoConfig'yı etkinleştirmek, IronPDF'nin ilk çalışmadaki Linux bağımlılıklarını kurmasına olanak sağlar.
Ne Zaman Ayarlamalı
- Ayarlamayın: IronPDF bağımlılıklarını, örneğin
IronPdf.Linux, projenizle paketlerseniz, çalışma zamanı indirmeleri olmadan tam dağıtımlar kullanırsanız ve işlev, her şeye/var/taskdışından erişebilirse. /tmpolarak ayarlayın: yerel binary'ler içermeyenIronPdf.Slimkullanıyorsanız, bileşenler için çalışma zamanı NuGet indirmelerine, örneğinIronPdf.Native.Chrome.Linux, güveniyorsanız veya Lambda'nın tek yazılabilir dizininde geçici dağıtımların saklanması gerekiyorsa.

