AWS Lambdaでのセグメンテーションフォルト
LinuxコンテナでAWS Lambdaを使用し、レンダーメソッドを同時に何度も呼び出すと、以下の例外が発生することがあります。 もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。
例外:
エラー: ランタイムはエラーで終了しました: シグナル: セグメンテーションフォルト ランタイム.ExitError もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。
ソリューション
ソリューションは、PDFドキュメントがレンダリングされた後に GC.Collect
メソッドを呼び出すことです。 この問題は他のクラウドプラットフォームでは発生していません。 これは最近のバージョンでのみ発生し始めました。 .NET 6を使用したAmazon Linux 2の古いものはまだ動作しています。
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument document = renderer.RenderHtmlAsPdf(htmlString);
GC.Collect();
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument document = renderer.RenderHtmlAsPdf(htmlString);
GC.Collect();
Dim renderer As New ChromePdfRenderer()
Dim document As PdfDocument = renderer.RenderHtmlAsPdf(htmlString)
GC.Collect()