MRが楽しい

MRやVRについて学習したことを書き残す

HoloLens2でAzure Digital Twinのラーニングパスを試す その2

本日は HoloLens2 の技術調査枠です。
HoloLens2でAzure Digital Twinのラーニングパスを試して実施記録を記事にします。
f:id:bluebirdofoz:20210610231419j:plain

前提条件

前回記事の続きです。
bluebirdofoz.hatenablog.com

Azureリソースのアクセス設定

本項では Azure CLI を用いて Azure リソースのアクセス設定を行います。
Azure CLI のインストール手順は以下を参照ください。
bluebirdofoz.hatenablog.com

VisualStudioソリューションとARMテンプレートのダウンロード

ARMテンプレートはその1で取得した以下のプロジェクトに含まれています。
github.com

Azure CLI を使用して Azure にログインする

1. azuredeploy.bicep ファイルが含まれる以下のフォルダを開きます。

mslearn-mr-adt-in-unity-main\ARM-Template

f:id:bluebirdofoz:20210610231559j:plain

2. フォルダの位置で WindowsPowerShell を起動します。
フォルダ上で Shift + 右クリックから[PowerShellウィンドウをここで開く]をクリックするか以下のコマンドで移動します。

cd (移動フォルダ)

f:id:bluebirdofoz:20210610231613j:plain

3. Shellウィンドウで以下の az コマンドを実行して Azure にログインします。
本コマンドを実行するとブラウザウィンドウが生成され、認証を求めるメッセージが表示されます。

az login

f:id:bluebirdofoz:20210610231628j:plain

PowerShellで変数を設定する

初めに projectname 変数を設定します。最大 14 文字までで全て小文字にし、特殊文字は使用できません。
この演習で作成される Azure リソースのベースとなる名前になります。

$projectname="myproj"

f:id:bluebirdofoz:20210610231650j:plain

次にアプリ登録名を 14 文字以内で設定します。
これは HoloLens アプリのアプリケーション登録の名前になります。

$appreg="myappreg"

f:id:bluebirdofoz:20210610231703j:plain

アプリ登録を作成する

次のコマンドを実行して、サービスプリンシパルを作成し、Azure リソースへのアクセスを構成します。

az ad sp create-for-rbac --name ${appreg} --skip-assignment > AppCredentials.txt

f:id:bluebirdofoz:20210610231718j:plain

このコマンドからの出力は az スクリプトの実行ディレクトリ内の AppCredentials.txt テキストファイルに保存されます。
テレメトリシミュレーターを構成するには本ファイルを開いて資格情報を取得する必要があります。
このファイルには資格情報が含まれるため、長期間ファイルシステム上にこのファイルを残さないようにしてください。

サービスプリンシパルとは

Azure AD のサービスプリンシパルサブスクリプション内の Azure リソースへのアクセスを提供します。
サービスプリンシパルはサービスのユーザー ID と考えることができます。

指定したリソースのみをスコープとするアクセス権を持つサービスプリンシパルを構成できます。
docs.microsoft.com

az ad sp create-for-rbacコマンド

サービスプリンシパルを作成し、Azure リソースへのアクセスを構成します。
出力には保護する必要がある資格情報が含まれています。
docs.microsoft.com

・--skip-assignmentオプション

既定の割り当ての作成をスキップします。
これにより、サービスプリンシパルは現在のサブスクリプションのリソースにアクセスできるようになります。

アプリ登録の ObjectID を取得する

次のコマンドを入力することでサービスプリンシパルから ObjectID の変数を作成して設定します。
実行後、echo コマンドを使用して変数に GUID が含まれていることを確認します。

$objectid=$(az ad sp list --display-name ${appreg} --query [0].objectId --output tsv)
echo $objectid

f:id:bluebirdofoz:20210610231802j:plain

az ad sp listコマンド

サービスプリンシパルを一覧表示します。
docs.microsoft.com

・--display-nameオプション

オブジェクトの表示名またはそのプレフィックスを表示します。

・--queryオプション

JMESPath クエリ文字列。
詳細と例については、http://jmespath.org/ を参照してください。

・--output -oオプション

出力形式を指定します。

アプリ登録の UserID を取得する

次に UserID の変数を作成して設定します。
実行後、echo コマンドを使用して変数に GUID が含まれていることを確認します。

$userid=$(az ad signed-in-user show --query objectId -o tsv)
echo $userid

f:id:bluebirdofoz:20210610231827j:plain

az ad signed-in-user showコマンド

現在ログインしているユーザーの詳細を取得します。
docs.microsoft.com

・--queryオプション

JMESPath クエリ文字列。
詳細と例については、http://jmespath.org/ を参照してください。

・--output -oオプション

出力形式を指定します。

記事が長くなったので分けます。
次は Azure リソースの環境構築を行います。
bluebirdofoz.hatenablog.com