IronPDFでAzureファンクションをローカルでデバッグする
ローカルでAzureを実行する際の問題
この問題に遭遇した際によく見られる例外は「IronPdf.Native.Chrome.deployment.json という展開構成ファイルを見つける際のエラー」です。
推奨: .NET Core 3.1 <TargetFramework>netcoreapp3.1</TargetFramework>
をターゲットとするWindowsホストのAzure Function Appsを実行する
必要: Visual Studio で Azure Function を作成する際、デフォルトの"in-process"構成を使用してください。 IronPDFの最新バージョンは、「isolated worker modelでC# Azure Functionsを実行するためのガイド」に記載されているように、Azure Functionsでの「out-of-process」や「isolated process」の実行をサポートしています。しかし、古いバージョンではこれらのタイプのAzure Functionsをサポートしていない可能性があります。
ローカルで Azure Functions を実行する際の依存関係の問題
Azureをローカルで実行する際、Azurite (VS2022) または Azure Storage Emulator (VS2019) を使用すると、Storage Emulatorがデプロイに使用する追加のbinディレクトリが作成されます。 このディレクトリにはDLLファイルのみがコピーされるため、追加ファイルを必要とするソフトウェアは機能せず、上記の例外が発生する可能性があります。
この問題を解決するには、ランタイムディレクトリをストレージエミュレータで使用される別のbinディレクトリにコピーしてください。 これは、ローカルで実行する際にビルド後イベントとして行うことをお勧めします(手順は下記参照)。再コンパイル/ビルドにより bin ディレクトリが元の状態に戻るためです。クラウドにデプロイする際にはこの問題は発生しません。
- 問題: Azure Functionプロジェクトをローカルで実行すると、追加の_bin_フォルダが作成され、そこから関数が実行されます。 しかし、必要なすべてのファイルがその bin フォルダにコピーされるわけではありません。
- 例: C:\code\azure-functions-test のプロジェクトが C:\code\azure-functions-test\bin\Debug\netcoreapp3.1 にビルドされます。
- ソリューション: C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\runtimes ディレクトリをコピーして、C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\bin 内にも存在するようにします。
-
上書きの確認が表示された場合、既存のファイルを上書きしてください。
ビルド後イベント
-
Azure Functions プロジェクトを右クリックし、プロパティを選択
-
スクロールしてイベントセクションまで移動します
-
ポストビルドイベント に
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin/runtimes" /S /E /Y /I /R /D
を入力します