IronPDFでAzure Functionsをローカルでデバッグする
Azureをローカルで実行する際の問題
この問題に関連して一般的に見られる例外は、"Error while locating deployment configuration file IronPdf.Native.Chrome.deployment.json."です。
推奨:WindowsでホストされたAzure Function Appsを実行し、.NET Core 3.1 <TargetFramework>netcoreapp3.1</TargetFramework> をターゲットに設定します。
必須: Visual StudioでAzure Functionを作成する際は、デフォルトの"インプロセス"の構成を使用する。 IronPDFの最新バージョンは、"隔離ワーカー モデルでC# Azure Functions を実行するためのガイド"で説明されているように、'アウトオブプロセス'または'隔離プロセス'で動作するAzure Functionsをサポートしています。しかし、古いバージョンはこれらのタイプのAzure Functionsをサポートしていないかもしれません。

Azure Functionsをローカルで実行する際に発生する依存関係の問題
Azureをローカルで実行する際、Azurite (VS2022) やAzure Storage Emulator (VS2019)を使用すると、Storage Emulatorがデプロイに使用する追加のbinディレクトリが作成されます。 このディレクトリにはDLLファイルのみがコピーされるため、追加のファイルを必要とするソフトウェアは動作しないか、上記の例外をスローする可能性があります。
Storage Emulatorが使用する個別の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 Function binディレクトリに必要なファイルを自動的にコピーするプロセスを自動化するためには、Visual Studioでのビルド後イベントの設定手順に従ってください。
- Azure Functionsプロジェクトを右クリックし、プロパティを選択。
- イベントセクションまでスクロールします。
- 以下に示すようにビルド後イベントを入力します。
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /D
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /D
このコマンドは次のことを行います:
- _runtimes_ディレクトリの内容を_bin/runtimes_ディレクトリにコピーします。
/Sと/Eスイッチにより、すべてのサブディレクトリと空のディレクトリが含まれます。/Yスイッチは、既存の宛先ファイルを上書きするか確認するプロンプトを抑制します。/Iスイッチは、宛先が存在しない場合に宛先がディレクトリであると仮定します。/Rスイッチは読み取り専用ファイルを上書きします。/Dスイッチは指定された日付以降に変更されたファイルをコピーします。


