次の方法で共有


サーバーレス開発に 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 を使用してアクセスを認可します。

  1. サンプル リポジトリをローカルに複製します

    git clone https://github.com/Azure/azure-functions-signalrservice-extension.git
    cd azure-functions-signalrservice-extension/samples/bidirectional-chat
    
  2. エミュレーターをインストールする

    dotnet tool install  -g Microsoft.Azure.SignalR.Emulator
    

    または、エミュレーターが既にインストールされている場合は、最新のプレビュー バージョンに更新します

    dotnet tool update -g Microsoft.Azure.SignalR.Emulator
    
  3. エミュレーター asrs-emulator を実行して、使用可能なすべてのコマンドを一覧表示します

    エミュレーターで使用可能なコマンドのスクリーンショット。

  4. 次を使用して、既定のアップストリーム設定を初期化します

    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 に変更できます。 ファイルが変更されると、その変更はエミュレーターにホット ロードされます。

  5. エミュレーターを起動する

    asrs-emulator start
    

    エミュレーターは、正常に起動すると、後で使われる ConnectionString を生成します。

    エミュレーターでは、起動時に高度なオプションも提供されます。たとえば、asrs-emulator start -p 8999 を使って使用するエミュレーターのポートをカスタマイズできます。 asrs-emulator start --help と入力して、使用可能なオプションを確認します。

  6. サブフォルダー csharp に移動し、local.settings.sample.json の名前を local.settings.json に変更します。エミュレーターによって生成された ConnectionString を使用して、local.settings.jsonAzureSignalRConnectionString の値を入力します。 AzureWebJobsStorage には、ストレージ接続文字列を入力します。たとえばストレージ エミュレーターを使用する場合には UseDevelopmentStorage=true と入力します。 ファイルを保存し、サブフォルダー csharp 内で func start を使用して関数を実行します。

    ローカル サーバーレス関数が実行されているスクリーンショット。

  7. ブラウザーで http://localhost:7071/api/index へ移動してデモを試します。

    サーバーレス チャットのデモが実行されているスクリーンショット。

次のステップ

この記事では、アプリケーションで SignalR Service を使用する方法について説明します。 SignalR Service の詳細については、次の記事を参照してください。