AWS LambdaでのCustomDeploymentDirectory

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

Docker上でAWS Lambda関数内でIronPDFを実行する際、/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はそこでバイナリを見つけて続行します。

IronPdf.Native.Chrome.Linux)をダウンロードして展開するためのディレクトリ、および標準の場所で見つからないランタイム依存関係のための代替検索パス。 エンジンは既にデプロイされたバイナリを優先するため、/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はエンジンを1つのプロセスに保ち、制約のあるLambdaランタイムに適しています。

オプション2:IronPdf.Slimデプロイメント

Dockerと一緒に/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

ここで、/tmpがそれらに書き込み可能な場所を提供します。 LinuxAndDockerDependenciesAutoConfigを有効にすると、初回実行時にIronPDFがLinuxの依存関係を設定できるようになります。

いつ設定するか

  • 設定しないでください:プロジェクトとともに/var/taskからすべてにアクセスできる場合。
  • IronPdf.Native.Chrome.LinuxのようなコンポーネントのランタイムNuGetダウンロードに依存する場合、またはLambdaの唯一書き込み可能なディレクトリに一時デプロイを保存する必要がある場合。
Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 20,296,129 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。