Azure Sphereの22.07新機能を見ていたところ、気になるものがありました。
5.Device REST APIs公開
— matsujirushi (@matsujirushi12) 2022年7月27日
we have published the Device REST APIs (enabling bypassing the CLI to communicate directly with the device's REST API) with both C# and Python support, example applications, and tests.
早速、どんな感じに動くか試してみました。
Microsoft.Azure.Sphere.DeviceAPIとは?
開発PCとAzure Sphereデバイスは(通常は)USBで接続しますが、論理的にはTCP/IPネットワークが張られて通信します。ネットワーク接続のところに表示される、これですね。
azsphereコマンドは(一部を除き)この通信路でAzure Sphereデバイスとやりとりしますが、今回、この部分が「Microsoft Azure Sphere Device REST APIs」という名称で情報公開されました。
さらに、このMicrosoft Azure Sphere Device REST APIsを呼び出すnugetパッケージも公開されました。このnugetパッケージが「Microsoft.Azure.Sphere.DeviceAPI」です。
つまり、nugetパッケージ「Microsoft.Azure.Sphere.DeviceAPI」は、マイC#コードから、開発PCに接続したAzure Sphereデバイスを確認したり設定できるというものです。
さあ、やってみよう!
.NET6のコンソールプロジェクトを新規作成して、
nugetパッケージ「Microsoft.Azure.Sphere.DeviceAPI」を追加します。
コードはこんな感じ。
using Microsoft.Azure.Sphere.DeviceAPI; var attachedDevices = Devices.GetAttachedDevices(); Console.WriteLine(attachedDevices); Console.WriteLine(); var deviceSecurityState = Device.GetDeviceSecurityState(); Console.WriteLine(deviceSecurityState);
実行すると、JSON形式の文字列で返ってくるようです。
[{"IpAddress":"192.168.35.2","DeviceConnectionPath":"21123"}] {"securityState":"SECURE","deviceIdentifier":"961b0f3af5c4ea9581512975f8e21a81dfed93bef7a73854d802c8bdeff7f5a8516639b653e6f082009f5c660c9b96bb1b16f49a56d7de51a089ac01ae3376ec","deviceIdentityPublicKey":"961b0f3af5c4ea9581512975f8e21a81dfed93bef7a73854d802c8bdeff7f5a8516639b653e6f082009f5c660c9b96bb1b16f49a56d7de51a089ac01ae3376ec"}
まとめ
これは便利だ。
azsphereコマンドをいちいち叩くのが面倒なので、GUIツール作ろうかな。