この記事では、テストと開発のためにリモート監視ソリューション アクセラレータをローカル コンピューターにデプロイする方法について説明します。 Visual Studio でマイクロサービスを実行する方法について説明します。 ローカル マイクロサービスのデプロイでは、クラウド内の IoT Hub、Cosmos DB、Azure Streaming Analytics、Azure Time Series Insights サービスのクラウド サービスが使用されます。
ローカル コンピューター上の Docker でリモート監視ソリューション アクセラレータを実行する場合は、「 リモート監視ソリューション アクセラレータをローカルにデプロイする - Docker」を参照してください。
前提条件
リモート監視ソリューション アクセラレータで使用される Azure サービスをデプロイするには、アクティブな Azure サブスクリプションが必要です。
アカウントをお持ちでない場合は、数分で無料試用版アカウントを作成できます。 詳細については、 Azure 無料試用版に関するページを参照してください。
マシンのセットアップ
ローカルデプロイを完了するには、ローカル開発マシンに次のツールがインストールされている必要があります。
- Git
- Docker
- Visual Studio
- Nginx
- Node.js v8 - このソフトウェアは、スクリプトが Azure リソースの作成に使用する PCS CLI の前提条件です。 Node.js v10 を使用しないでください。
注
Visual Studio は Windows と Mac で使用できます。
ソース コードをダウンロードする
リモート監視のソース コード リポジトリには、マイクロサービスの Docker イメージを実行するために必要なソース コードと Docker 構成ファイルが含まれます。
リポジトリのローカル バージョンを複製して作成するには、コマンド ライン環境を使用して、ローカル コンピューター上の適切なフォルダーに移動します。 次に、次のいずれかのコマンド セットを実行して、.NET リポジトリを複製します。
最新バージョンの .NET マイクロサービス実装をダウンロードするには、次を実行します。
git clone --recurse-submodules https://github.com/Azure/azure-iot-pcs-remote-monitoring-dotnet.git
# To retrieve the latest submodules, run the following command:
cd azure-iot-pcs-remote-monitoring-dotnet
git submodule foreach git pull origin master
注
これらのコマンドは、マイクロサービスをローカルで実行するために使用するスクリプトに加えて、すべてのマイクロサービスのソース コードをダウンロードします。 Docker でマイクロサービスを実行するためにソース コードは必要ありませんが、後でソリューション アクセラレータを変更して変更をローカルでテストする場合は、ソース コードが役立ちます。
Azure サービスをデプロイする
この記事ではマイクロサービスをローカルで実行する方法を示しますが、マイクロサービスはクラウドで実行されている Azure サービスに依存します。 次のスクリプトを使用して、Azure サービスをデプロイします。 次のスクリプト例では、Windows マシンで .NET リポジトリを使用していることを前提としています。 別の環境で作業している場合は、パス、ファイル拡張子、およびパス区切り記号を適切に調整します。
新しい Azure リソースを作成する
必要な Azure リソースをまだ作成していない場合は、次の手順に従います。
コマンド ライン環境で、リポジトリの複製コピー内の \services\scripts\local\launch フォルダーに移動します。
次のコマンドを実行して pcs CLI ツールをインストールし、Azure アカウントにサインインします。
npm install -g iot-solutions pcs loginstart.cmd スクリプトを実行します。 このスクリプトでは、次の情報の入力を求められます。
ソリューション名。
使用する Azure サブスクリプション。
使用する Azure データセンターの場所。
このスクリプトは、ソリューション名を使用して Azure にリソース グループを作成します。 このリソース グループには、ソリューション アクセラレータが使用する Azure リソースが含まれています。 このリソース グループは、対応するリソースが不要になったら削除できます。
また、このスクリプトは、PCS プレフィックスを持つ一連の環境変数をローカル コンピューターに追加します。 これらの環境変数は、Azure Key Vault リソースから読み取ることができるリモート監視の詳細を提供します。 この Key Vault リソースは、リモート監視が構成値を読み取る場所です。
ヒント
スクリプトが完了すると、環境変数も <ホーム フォルダー>\.pcs\<ソリューション名>.env という名前のファイルに保存されます。 将来のソリューション アクセラレータのデプロイに使用できます。 docker-compose を実行すると、ローカル コンピューターに設定されたすべての環境変数が services\scripts\local\.env ファイルの値をオーバーライドすることに注意してください。
コマンド ライン環境から終了します。
既存の Azure リソースを使用する
必要な Azure リソースを既に作成している場合は、対応する環境変数をローカル コンピューターに作成します。 次の環境変数を設定します。
- PCS_KEYVAULT_NAME - Azure Key Vault リソースの名前
- PCS_AAD_APPID - AAD アプリケーション ID
- PCS_AAD_APPSECRET - AAD アプリケーション シークレット
構成値は、この Azure Key Vault リソースから読み取られます。 これらの環境変数は、展開の .env <>に保存できます。 docker-compose を実行すると、ローカル コンピューターに設定された環境変数が services\scripts\local\.env ファイルの値をオーバーライドすることに注意してください。
マイクロサービスに必要な構成の一部は、初期デプロイ時に作成された Key Vault のインスタンスに格納されます。 keyvault 内の対応する変数は、必要に応じて変更する必要があります。
マイクロサービスを実行する
このセクションでは、リモート監視マイクロサービスを実行します。 Web UI をネイティブに実行し、Docker でデバイス シミュレーション サービスを実行し、Visual Studio でマイクロサービスを実行します。
デバイス シミュレーション サービスを実行する
新しいコマンド プロンプト ウィンドウを開き、前のセクションの start.cmd スクリプトによって設定された環境変数にアクセスできることを確認します。
次のコマンドを実行して、デバイス シミュレーション サービスの Docker コンテナーを起動します。 このサービスは、リモート監視ソリューションのデバイスをシミュレートします。
<path_to_cloned_repository>\services\device-simulation\scripts\docker\run.cmd
他のすべてのマイクロサービスをローカル コンピューターにデプロイする
次の手順では、Visual Studio でリモート監視マイクロサービスを実行する方法を示します。
- Visual Studio を起動します。
- リポジトリのローカル コピーのサービス フォルダーにある remote-monitoring.sln ソリューションを開きます。
- ソリューション エクスプローラー でソリューションを右クリックし、[プロパティ] をクリックします。
- スタートアップ プロジェクト>共通プロパティを選択します。
-
[複数のスタートアップ プロジェクト] を選択し、次のプロジェクトの [アクション] を [開始] に設定します。
- WebService (asa-manager\WebService)
- WebService (auth\WebService)
- WebService (config\WebService)
- WebService (device-telemetry\WebService)
- WebService (iothub-manager\WebService)
- WebService (ストレージアダプター/WebService)
- [OK] クリックして選択内容を保存します。
- [ デバッグ] > [デバッグの開始 ] をクリックして、ローカル コンピューターで Web サービスをビルドして実行します。
各 Web サービスは、コマンド プロンプトと Web ブラウザー ウィンドウを開きます。 コマンド プロンプトに実行中のサービスからの出力が表示され、ブラウザー ウィンドウで状態を監視できます。 コマンド プロンプトまたは Web ページを閉じないでください。このアクションは Web サービスを停止します。
Stream Analytics ジョブを開始する
Stream Analytics ジョブを開始するには、次の手順に従います。
- Azure portal に移動します。
- ソリューション用に作成 リソース グループに移動します。 リソース グループの名前は、 start.cmd スクリプトの実行時にソリューションに対して選択した名前です。
- リソースの一覧で Stream Analytics ジョブ をクリックします。
- Stream Analytics ジョブの 概要 ページで、[ 開始 ] ボタンをクリックします。 次に、[ 開始 ] をクリックしてジョブを今すぐ開始します。
Web UI を実行する
この手順では、Web UI を開始します。 新しいコマンド プロンプト ウィンドウを開き、 start.cmd スクリプトによって設定された環境変数にアクセスできることを確認します。 リポジトリのローカル コピー内の webui フォルダーに移動し、次のコマンドを実行します。
npm install
npm start
開始が完了すると、ブラウザーに http://localhost:3000/dashboardページが表示されます。 このページのエラーが予想されます。 エラーなしでアプリケーションを表示するには、次の手順を実行します。
NGINX の構成と実行
ローカル コンピューターで実行されている Web アプリケーションとマイクロサービスをリンクするようにリバース プロキシ サーバーを設定します。
- リポジトリのローカル コピーの webui\scripts\localhost フォルダーから nginx\conf インストール ディレクトリに nginx.conf ファイルをコピーします。
- nginx を実行します。
nginx の実行の詳細については、Windows 用の nginx を参照してください。
ダッシュボードに接続する
リモート監視ソリューション ダッシュボードにアクセスするには、ブラウザーで http://localhost:9000 に移動します。
クリーンアップ
不要な料金を回避するために、テストが完了したら、Azure サブスクリプションからクラウド サービスを削除します。 サービスを削除するには、 Azure portal に移動し、 start.cmd スクリプトによって作成されたリソース グループを削除します。
GitHub からソース コードを複製したときに作成されたリモート監視リポジトリのローカル コピーを削除することもできます。
次のステップ
リモート監視ソリューションをデプロイしたので、次の手順は 、ソリューション ダッシュボードの機能を確認することです。