リモート監視ソリューション アクセラレータとデバイス シミュレーション ソリューション アクセラレータでは、どちらも独自のシミュレートされたデバイスを定義できます。 この記事では、カスタマイズされた冷却装置デバイスの種類と新しい電球デバイスの種類をリモート監視ソリューション アクセラレータに展開する方法について説明します。
この記事の手順では、 新しいシミュレートされたデバイスの作成とテスト のハウツー ガイドを完了し、カスタマイズされた冷却装置と新しい電球デバイスの種類を定義するファイルがあることを前提としています。
このハウツー ガイドの手順では、次の方法について説明します。
SSH を使用して、リモート監視ソリューション アクセラレータをホストする仮想マシンのファイル システムにアクセスします。
Docker コンテナーの外部の場所からデバイス モデルを読み込むよう Docker を構成します。
カスタム デバイス モデル ファイルを使用してリモート監視ソリューション アクセラレータを実行します。
Azure Cloud Shell
Azure は、ブラウザーから使用できる対話型シェル環境である Azure Cloud Shell をホストします。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 Cloud Shell にプレインストールされているコマンドを使用すると、ローカル環境に何もインストールしなくても、この記事のコードを実行できます。
Azure Cloud Shell を起動するには:
| 選択肢 | 例とリンク |
|---|---|
| コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 |
|
| https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 |
|
| Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
|
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を起動します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows および Linux では Ctrl+Shift+V を選択し、macOS では Cmd+Shift+V を選択して、コードまたはコマンドをクラウドシェルセッションに貼り付けます。
「を選択し、 を入力してコードまたはコマンドを実行します。」
このハウツー ガイドの手順を完了するには、アクティブな Azure サブスクリプションが必要です。
Azure サブスクリプションがない場合は、開始する前に無料アカウントを作成してください。
前提条件
このハウツー ガイドに従うには、次のものが必要です。
- リモート監視ソリューション アクセラレータのデプロイされたインスタンス。
-
コマンドと
sshコマンドを実行するローカルscpシェル。 Windows では、 bash を簡単にインストールする方法は git をインストール する方法です。 - カスタム デバイス モデル ファイル (新 しいシミュレートされたデバイスの作成とテストに関するページで説明されているファイルなど)。
仮想マシンにアクセスする
次の手順では、Azure Cloud Shell で Azure CLI を使用します。 必要に応じて、開発用コンピューター に Azure CLI をインストール し、コマンドをローカルで実行できます。
次の手順では、 SSH アクセスを許可するように Azure 仮想マシンを構成する方法を示します。 次の手順では、ソリューション アクセラレータに対して選択した名前が contoso-simulation であることを前提としています。この値をデプロイの名前に置き換えます。
ソリューション アクセラレータ リソースを含むリソース グループの内容を一覧表示します。
az resource list -g contoso-simulation -o table仮想マシンの名前、パブリック IP アドレス、およびネットワーク セキュリティ グループを書き留めます。これらの値は後で必要になります。
SSH アクセスを許可するようにネットワーク セキュリティ グループを更新します。 次のコマンドは、ネットワーク セキュリティ グループの名前が contoso-simulation-nsg であることを前提としています。この値をネットワーク セキュリティ グループの名前に置き換えます。
az network nsg rule update --name SSH --nsg-name contoso-simulation-nsg -g contoso-simulation --access Allow -o tableテストおよび開発時にのみ SSH アクセスを有効にします。 SSH を有効 場合は、できるだけ早くもう一度無効にする必要。
仮想マシン上の azureuser アカウントのパスワードを、知っているパスワードに更新します。 次のコマンドを実行するときに、独自のパスワードを選択します。
az vm user update --name vm-vikxv --username azureuser --password YOURSECRETPASSWORD -g contoso-simulation仮想マシンのパブリック IP アドレスを見つけます。 次のコマンドは、仮想マシンの名前が vm-vikxv であることを前提としています。この値を、前にメモした仮想マシンの名前に置き換えます。
az vm list-ip-addresses --name vm-vikxv -g contoso-simulation -o table仮想マシンのパブリック IP アドレスを書き留めます。
Docker の構成
このセクションでは、Docker コンテナー内からではなく、仮想マシン内の /tmp/devicemodels フォルダーからデバイス モデル ファイルを読み込むよう Docker を構成します。 ローカル コンピューターの bash シェルで、このセクションのコマンドを実行します。
このセクションでは、Docker コンテナー内からではなく、仮想マシン内の /tmp/devicemodels フォルダーからデバイス モデル ファイルを読み込むよう Docker を構成します。 ローカル コンピューターの bash シェルで、このセクションのコマンドを実行します。
SSH を使用して、ローカル コンピューターから Azure の仮想マシンに接続します。 次のコマンドは、仮想マシン vm-vikxv のパブリック IP アドレスが 104.41.128.108 であることを前提としています。この値を、前のセクションの仮想マシンのパブリック IP アドレスに置き換えます。
ssh azureuser@104.41.128.108プロンプトに従って、前のセクションで設定したパスワードを使用して仮想マシンにサインインします。
コンテナーの外部からデバイス モデルを読み込むよう、デバイス シミュレーション サービスを構成します。 まず、Docker 構成ファイルを開きます。
sudo nano /app/docker-compose.ymldevicesimulation コンテナーの設定を見つけて、次のスニペットに示すようにボリューム設定を編集します。
devicesimulation: image: azureiotpcs/device-simulation-dotnet:1.0.0 networks: - default_net depends_on: - storageadapter environment: - PCS_KEYVAULT_NAME - PCS_AAD_APPID - PCS_AAD_APPSECRET # How one could mount custom device models volumes: - /tmp/devicemodels:/app/webservice/data/devicemodels:ro変更を保存します。
コンテナーから新しい場所に既存のデバイス モデル ファイルをコピーします。 まず、デバイス シミュレーション コンテナーのコンテナー ID を見つけます。
sudo docker ps次に、デバイス モデル ファイルを仮想マシンの tmp フォルダーにコピーします。 次のコマンドは、コンテナー ID が c378d6878407 であることを前提としています。この値をデバイス シミュレーション コンテナー ID に置き換えます。
sudo docker cp c378d6878407:/app/webservice/data/devicemodels /tmp sudo chown -R azureuser /tmp/devicemodels/SSH セッションを開いたまま Bash ウィンドウを維持します。
カスタム デバイス モデル ファイルを仮想マシンにコピーします。 このコマンドは、カスタム デバイス モデルを作成したコンピューター上の別の bash シェルで実行します。 まず、デバイス モデルの JSON ファイルを含むローカル フォルダーに移動します。 次のコマンドは、仮想マシンのパブリック IP アドレスが 104.41.128.108 であることを前提としています。この値を仮想マシンのパブリック IP アドレスに置き換えます。 メッセージが表示されたら、仮想マシンのパスワードを入力します。
scp *json azureuser@104.41.128.108:/tmp/devicemodels cd scripts scp *js azureuser@104.41.128.108:/tmp/devicemodels/scriptsデバイス シミュレーション Docker コンテナーを再起動して、新しいデバイス モデルを使用します。 仮想マシンへの SSH セッションを開き、 bash シェルで次のコマンドを実行します。
sudo /app/start.sh実行中の Docker コンテナーとそのコンテナー ID の状態を確認するには、次のコマンドを使用します。
sudo docker psデバイス シミュレーション コンテナーからログを表示する場合は、次のコマンドを実行します。 コンテナー ID をデバイス シミュレーション コンテナーの ID に置き換えます。
sudo docker logs -f 5d3f3e78822e
シミュレーションの実行
これで、リモート監視ソリューションでカスタム デバイス モデルを使用できるようになりました。
リモート監視ダッシュボードを起動します。
[ デバイス ] ページを使用して、シミュレートされたデバイスを追加します。 新しいシミュレートされたデバイスを追加すると、新しいデバイス モデルを選択できます。
ダッシュボードを使用して、デバイス テレメトリを表示し、デバイス メソッドを呼び出すことができます。
リソースをクリーンアップする
さらに詳しく調べる場合は、リモート監視ソリューション アクセラレータをデプロイしたままにします。
ソリューション アクセラレータが不要になった場合は、削除します。
次のステップ
このガイドでは、カスタム デバイス モデルをリモート監視ソリューション アクセラレータにデプロイする方法について説明しました。 推奨される次の手順は、 実際のデバイスをリモート監視ソリューションに接続する方法を学習することです。