次の方法で共有


新しいシミュレートされたデバイスをデプロイする

リモート監視ソリューション アクセラレータとデバイス シミュレーション ソリューション アクセラレータでは、どちらも独自のシミュレートされたデバイスを定義できます。 この記事では、カスタマイズされた冷却装置デバイスの種類と新しい電球デバイスの種類をリモート監視ソリューション アクセラレータに展開する方法について説明します。

この記事の手順では、 新しいシミュレートされたデバイスの作成とテスト のハウツー ガイドを完了し、カスタマイズされた冷却装置と新しい電球デバイスの種類を定義するファイルがあることを前提としています。

このハウツー ガイドの手順では、次の方法について説明します。

  1. SSH を使用して、リモート監視ソリューション アクセラレータをホストする仮想マシンのファイル システムにアクセスします。

  2. Docker コンテナーの外部の場所からデバイス モデルを読み込むよう Docker を構成します。

  3. カスタム デバイス モデル ファイルを使用してリモート監視ソリューション アクセラレータを実行します。

Azure Cloud Shell

Azure は、ブラウザーから使用できる対話型シェル環境である Azure Cloud Shell をホストします。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 Cloud Shell にプレインストールされているコマンドを使用すると、ローカル環境に何もインストールしなくても、この記事のコードを実行できます。

Azure Cloud Shell を起動するには:

選択肢 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Azure Cloud Shell の [使ってみる] の例を示すスクリーンショット。
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Azure Cloud Shell を起動するボタン。
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Azure portal の [Cloud Shell] ボタンを示すスクリーンショット

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を起動します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows および Linux では Ctrl+Shift+V を選択し、macOS では Cmd+Shift+V を選択して、コードまたはコマンドをクラウドシェルセッションに貼り付けます。

  4. を選択し、 を入力してコードまたはコマンドを実行します。」

このハウツー ガイドの手順を完了するには、アクティブな Azure サブスクリプションが必要です。

Azure サブスクリプションがない場合は、開始する前に無料アカウントを作成してください。

前提条件

このハウツー ガイドに従うには、次のものが必要です。

  • リモート監視ソリューション アクセラレータのデプロイされたインスタンス。
  • コマンドとssh コマンドを実行するローカル scp シェル。 Windows では、 bash を簡単にインストールする方法は git をインストール する方法です
  • カスタム デバイス モデル ファイル (新 しいシミュレートされたデバイスの作成とテストに関するページで説明されているファイルなど)。

仮想マシンにアクセスする

次の手順では、Azure Cloud Shell で Azure CLI を使用します。 必要に応じて、開発用コンピューター に Azure CLI をインストール し、コマンドをローカルで実行できます。

次の手順では、 SSH アクセスを許可するように Azure 仮想マシンを構成する方法を示します。 次の手順では、ソリューション アクセラレータに対して選択した名前が contoso-simulation であることを前提としています。この値をデプロイの名前に置き換えます。

  1. ソリューション アクセラレータ リソースを含むリソース グループの内容を一覧表示します。

    az resource list -g contoso-simulation -o table
    

    仮想マシンの名前、パブリック IP アドレス、およびネットワーク セキュリティ グループを書き留めます。これらの値は後で必要になります。

  2. 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 を有効 場合は、できるだけ早くもう一度無効にする必要

  3. 仮想マシン上の azureuser アカウントのパスワードを、知っているパスワードに更新します。 次のコマンドを実行するときに、独自のパスワードを選択します。

    az vm user update --name vm-vikxv --username azureuser --password YOURSECRETPASSWORD  -g contoso-simulation
    
  4. 仮想マシンのパブリック 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 シェルで、このセクションのコマンドを実行します。

  1. SSH を使用して、ローカル コンピューターから Azure の仮想マシンに接続します。 次のコマンドは、仮想マシン vm-vikxv のパブリック IP アドレスが 104.41.128.108 であることを前提としています。この値を、前のセクションの仮想マシンのパブリック IP アドレスに置き換えます。

     ssh azureuser@104.41.128.108
    

    プロンプトに従って、前のセクションで設定したパスワードを使用して仮想マシンにサインインします。

  2. コンテナーの外部からデバイス モデルを読み込むよう、デバイス シミュレーション サービスを構成します。 まず、Docker 構成ファイルを開きます。

    sudo nano /app/docker-compose.yml
    

    devicesimulation コンテナーの設定を見つけて、次のスニペットに示すようにボリューム設定を編集します。

    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
    

    変更を保存します。

  3. コンテナーから新しい場所に既存のデバイス モデル ファイルをコピーします。 まず、デバイス シミュレーション コンテナーのコンテナー 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 ウィンドウを維持します。

  4. カスタム デバイス モデル ファイルを仮想マシンにコピーします。 このコマンドは、カスタム デバイス モデルを作成したコンピューター上の別の 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
    
  5. デバイス シミュレーション Docker コンテナーを再起動して、新しいデバイス モデルを使用します。 仮想マシンへの SSH セッションを開き、 bash シェルで次のコマンドを実行します。

    sudo /app/start.sh
    

    実行中の Docker コンテナーとそのコンテナー ID の状態を確認するには、次のコマンドを使用します。

    sudo docker ps
    

    デバイス シミュレーション コンテナーからログを表示する場合は、次のコマンドを実行します。 コンテナー ID をデバイス シミュレーション コンテナーの ID に置き換えます。

    sudo docker logs -f 5d3f3e78822e
    

シミュレーションの実行

これで、リモート監視ソリューションでカスタム デバイス モデルを使用できるようになりました。

  1. リモート監視ダッシュボードを起動します。

  2. [ デバイス ] ページを使用して、シミュレートされたデバイスを追加します。 新しいシミュレートされたデバイスを追加すると、新しいデバイス モデルを選択できます。

  3. ダッシュボードを使用して、デバイス テレメトリを表示し、デバイス メソッドを呼び出すことができます。

リソースをクリーンアップする

さらに詳しく調べる場合は、リモート監視ソリューション アクセラレータをデプロイしたままにします。

ソリューション アクセラレータが不要になった場合は、削除します。

次のステップ

このガイドでは、カスタム デバイス モデルをリモート監視ソリューション アクセラレータにデプロイする方法について説明しました。 推奨される次の手順は、 実際のデバイスをリモート監視ソリューションに接続する方法を学習することです