Debugging Azure Functions Locally with IronPDF

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

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の最新バージョンは、<"a href="隔離ワーカー" target="_blank">https://docs.microsoft.com/en-us/azure/azure-functions/dotnet-isolated-process-guide#differences-with-net-class-library-functions">隔離ワーカー モデルでC# Azure Functions を実行するためのガイド"で説明されているように、'アウトオブプロセス'または'隔離プロセス'で動作するAzure Functionsをサポートしています。しかし、古いバージョンはこれらのタイプのAzure Functionsをサポートしていないかもしれません。

Azure Functionの図

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でのビルド後イベントの設定手順に従ってください。

  1. Azure Functionsプロジェクトを右クリックし、プロパティを選択。
  2. イベントセクションまでスクロールします。
  3. 以下に示すようにビルド後イベントを入力します。
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /D
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /D
SHELL

このコマンドは次のことを行います:

  • _runtimes_ディレクトリの内容を_bin/runtimes_ディレクトリにコピーします。
  • /S/Eスイッチは、すべてのサブディレクトリと空のディレクトリが含まれることを保証します。
  • /Yスイッチは、既存の宛先ファイルの上書きを確認するプロンプトを抑制します。
  • /Iスイッチは、宛先が存在しない場合にディレクトリであると仮定します。
  • /Rスイッチは、読み取り専用ファイルを上書きします。
  • /Dスイッチは、指定された日付以降に変更されたファイルをコピーします。

ビルド後イベントの設定

Curtis Chau
テクニカルライター

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

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

準備はいいですか?
Nuget ダウンロード 16,154,058 | バージョン: 2025.11 ただ今リリースされました