サーバーレス開発に Azure SignalR ローカル エミュレーターを使用する
サーバーレス アプリケーションを開発する場合は、ローカルでの開発と統合を容易にする Azure SignalR ローカル エミュレーターが提供されています。 エミュレーターはサーバーレス シナリオでのみ機能し、Azure SignalR Service がプロキシとして機能する既定モードでは、セルフホスト SignalR を直接使用してローカル開発を行うことができます。 また、エミュレーターは一時的トランスポート (既定の種類) でのみ機能し、永続的トランスポートはサポートされません。
使用できる機能
- 認証
- 最新の Rest API のサポート
- 上流
重要
この記事に示す生の接続文字列は、デモンストレーションのみを目的としています。
接続文字列には、アプリケーションが Azure SignalR Service にアクセスするために必要な認可情報が含まれています。 接続文字列内のアクセス キーは、サービスのルート パスワードに似ています。 運用環境では、常にアクセス キーを保護してください。 Azure Key Vault を使用してキーの管理とローテーションを安全に行い、Microsoft Entra ID を使用して接続文字列をセキュリティで保護し、Microsoft Entra ID を使用してアクセスを認可します。
アクセス キーを他のユーザーに配布したり、ハードコーディングしたり、他のユーザーがアクセスできるプレーンテキストで保存したりしないでください。 キーが侵害された可能性があると思われる場合は、キーをローテーションしてください。
チュートリアル
このサーバーレス サンプルを使用して、エミュレーターの使用方法を示します。
この記事では、デモ目的でのみ生の接続文字列が表示されます。 運用環境では、常にアクセス キーを保護してください。 Azure Key Vault を使用してキーの管理とローテーションを安全に行い、Microsoft Entra ID を使用して接続文字列をセキュリティで保護し、Microsoft Entra ID を使用してアクセスを認可します。
サンプル リポジトリをローカルに複製します
git clone https://github.com/Azure/azure-functions-signalrservice-extension.git cd azure-functions-signalrservice-extension/samples/bidirectional-chat
エミュレーターをインストールする
dotnet tool install -g Microsoft.Azure.SignalR.Emulator
または、エミュレーターが既にインストールされている場合は、最新のプレビュー バージョンに更新します
dotnet tool update -g Microsoft.Azure.SignalR.Emulator
エミュレーター
asrs-emulator
を実行して、使用可能なすべてのコマンドを一覧表示します次を使用して、既定のアップストリーム設定を初期化します
asrs-emulator upstream init
現在のフォルダーに既定の
settings.json
が作成されます。ここで既定のアップストリームUrlTemplate
は SignalR のローカル関数トリガーの URL であるhttp://localhost:7071/runtime/webhooks/signalr
になります。{ "UpstreamSettings": { "Templates": [ { "UrlTemplate": "http://localhost:7071/runtime/webhooks/signalr", "EventPattern": "*", "HubPattern": "*", "CategoryPattern": "*" } ] } }
ファイルを編集して、パターンをより制限することができます。たとえば、
HubPattern
を*
からchat
に変更できます。 ファイルが変更されると、その変更はエミュレーターにホット ロードされます。エミュレーターを起動する
asrs-emulator start
エミュレーターは、正常に起動すると、後で使われる ConnectionString を生成します。
エミュレーターでは、起動時に高度なオプションも提供されます。たとえば、
asrs-emulator start -p 8999
を使って使用するエミュレーターのポートをカスタマイズできます。asrs-emulator start --help
と入力して、使用可能なオプションを確認します。サブフォルダー
csharp
に移動し、local.settings.sample.json
の名前をlocal.settings.json
に変更します。エミュレーターによって生成された ConnectionString を使用して、local.settings.json の AzureSignalRConnectionString の値を入力します。AzureWebJobsStorage
には、ストレージ接続文字列を入力します。たとえばストレージ エミュレーターを使用する場合にはUseDevelopmentStorage=true
と入力します。 ファイルを保存し、サブフォルダーcsharp
内でfunc start
を使用して関数を実行します。ブラウザーで
http://localhost:7071/api/index
へ移動してデモを試します。
次のステップ
この記事では、アプリケーションで SignalR Service を使用する方法について説明します。 SignalR Service の詳細については、次の記事を参照してください。