Azure Functions で SignalR Service バインドを使用したリアルタイムのサーバーレス アプリケーション

2019年3月6日 に投稿済み

Principal Program Manager, Azure SignalR Service

Microsoft Ignite 2018 でパブリック プレビューが発表されてから、毎月何千人にもなる世界中の開発者が、サーバーレス アプリケーションにリアルタイムの機能を追加するため、Azure Functions 用の Azure SignalR Service バインドを活用してきました。本日、Azure SignalR Service が利用可能なすべてのグローバル リージョンで、これらのバインドの一般提供が開始されたことを発表いたします。

SignalR Service はフル マネージドの Azure サービスであり、リアルタイムの Web 機能を HTTP 経由でアプリケーションに追加するプロセスを簡略化します。このリアルタイム機能を使用すると、サービスは WebSocket などのテクノロジを利用して、メッセージやコンテンツの更新を接続されているクライアントにプッシュできます。その結果、クライアントは、更新情報を求めてサーバーをポーリングしたり新しい HTTP 要求を送信したりしなくても更新されます。

20190306-real-time-app-gif

Azure Functions では、開発期間の短縮と、イベント ドリブン アプリケーションのサーバーレス ホスティングを実現するために、トリガーやバインディングに基づく生産的なプログラミング モデルを提供しています。これにより、開発者は好みのプログラミング言語とツールを使ってアプリをビルドし、ローカルでのビルドとデバッグからクラウドでのデプロイと監視まで、エンド ツー エンドの開発者エクスペリエンスが得られます。これらのバインドを使用して Azure SignalR Service と Azure Functions を組み合わせることにより、わずか数行のコードだけで、アプリケーションの UI の更新を簡単にプッシュできます。更新プログラムのソースは、別の Azure サービスからのデータでも、HTTP 経由で通信可能な任意のサービスのデータでも構いません。これは、イベントに応答してスクリプトの実行を開始する、Azure Functions でサポートされているトリガーによって可能になっています。

特筆に値する一般的なシナリオとして、データベースに加えられた変更に基づくアプリケーションの UI の更新があります。Cosmos DB 変更フィード、Azure Functions、SignalR Service を組み合わせて使用することにより、これらの更新を受信するクライアントの登録と更新自体のプッシュを行うわずか数行のコードを記述するだけで、リアルタイムな UI の更新を自動化できます。フル マネージドなこのエクスペリエンスは、イベント駆動型のシナリオに最適なもので、リアルタイム機能を備えたサーバーレス バックエンドやアプリケーションの作成を可能にし、開発時間と操作のオーバーヘッドを削減します。

20190306-real-time-app-graphic

Azure Functions で Azure SignalR Service バインドを使用することにより、次の処理を実現できます。

  • どんなアプリケーション サーバーにも依存せずに SignalR Service を使用して、フル マネージドのサーバーレス エクスペリエンスを実現する。
  • JavaScript、C#、Java など、Azure Functions で一般提供されている言語すべてを利用して、サーバーレスのリアルタイム アプリケーションを構築する。
  • SignalR Service バインドを、Azure Functions でサポートされているすべてのイベント トリガーと組み合わせて使用して、接続されているクライアントにメッセージをリアルタイムにプッシュする。
  • App Service 認証を SignalR Service や Azure Functions と組み合わせて使用して、セキュリティの向上と、すぐに使用できるフル マネージドの認証を実現する。

次の手順

フィードバックやコメントをお寄せください。GitHub リポジトリメールで、製品チームにご連絡いただけます。