本日は Azure と HoloLens2 の技術調査枠です。
Azure の SignalRService を使ってサーバから HoloLens2 にデータを送信する方法を試したので作業記録を記事にします。
前回記事の続きです。
bluebirdofoz.hatenablog.com
Azure Functionの関数作成
今回は Azure Function の関数作成に VisualStudio2019 のテンプレートを利用します。
テンプレート利用のため、予め VisualStudioInstoller から[Azureの開発]をインストールしておきます。
プロジェクトの作成
VisualStudio2019 を起動し、[新しいプロジェクトの作成]から[Azure Function]を選択します。
プロジェクト名と作成ディレクトリを指定し、[作成]をクリックします。
テンプレートの選択ダイアログが表示されるので[SignalR]を選択します。
今回は参照の記事に合わせて[Authorization level]に[Anonymous]、[Hub name]に[sample]を指定します。
Tips
[Authorization level]に[Anonymous]を指定した場合、その関数はファンクションキー無しに URL へのアクセスのみで利用可能になるので取り扱いに注意が必要です。
docs.microsoft.com
[作成]ボタンをクリックすると、プロジェクトが作成されます。
SignalR Service への接続先を問い合わせるための negotiate 関数が自動で生成されています。
次に SignalR Service に通知を投げる関数を実装します。
参照の記事と同様に broadcast 関数を追加しました。
以下、参照記事からの抜粋です。
[FunctionName("broadcast")] // 任意 public static async Task BroadcastAsync ( [HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequest request, // POST で投げることにする [SignalR(HubName = "sample")] IAsyncCollector<SignalRMessage> messages ) { var data = await request.ReadAsStringAsync(); // 受け取ったデータを取り出す await messages.AddAsync(new SignalRMessage // 出力バインディングを使って SignalR Service に投げ込む { Target = "Receive", // 配信先の 'Receive' を呼び出す Arguments = new[] { data }, // Push 配信するデータ }); }
関数の発行
次に作成した関数を Azure Function に発行します。
メニューから[ビルド -> (プロジェクト名)の発行]を選択します。
公開先の選択ダイアログが表示されます。
[ターゲット]には[Azure]を選択します。
[特定のターゲット]には[Azure Function App(Windows)]を選択します。
[Functions インスタンス]には先ほど作成した Azure Function のインスタンスを選択して[完了]をクリックします。
これで関数のビルドが実行されます。
[公開]タブが開くので、[発行]ボタンをクリックします。
これで関数の発行が完了します。
Azure Function のページで[関数]タブを確認すると、作成した関数を確認できます。
[概要]タブから Azure Function の[URL]をアクセス先として取得しておきます。
長くなったので分けます。
次はクライアントアプリの作成です。
bluebirdofoz.hatenablog.com