リモート監視ソリューション アクセラレータをローカルでデプロイする - Visual Studio Code
この記事では、リモート監視ソリューション アクセラレータをテストおよび開発のためにローカル コンピューターにデプロイする方法を示します。 また、Visual Studio Code でマイクロ サービスを実行する方法も示します。 ローカル マイクロサービスのデプロイでは、IoT Hub、Cosmos DB、Azure Streaming Analytics、およびAzure Time Series Insightsのクラウド サービスが使用されます。
前提条件
リモート監視ソリューション アクセラレータによって使用される Azure サービスをデプロイするには、アクティブな Azure サブスクリプションが必要です。
アカウントがない場合は、無料試用版のアカウントを数分で作成することができます。 詳細については、「Azure の無料試用版サイト」を参照してください。
コンピューターのセットアップ
ローカル デプロイを完了するには、ローカル開発マシンにインストールされた次のツールが必要です。
- Git
- .NET Core
- Docker
- Nginx
- Visual Studio Code
- VS Code の C# 拡張機能
- Node.js v8 - このソフトウェアは、スクリプトが Azure リソースを作成するために使用する PCS CLI の前提条件です。 Node.js v10 は使用しないでください。
Note
Visual Studio Code は、Windows、Mac、Ubuntu で利用できます。
ソース コードをダウンロードする
リモート監視ソース コード リポジトリには、マイクロサービスの 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 login
start.cmd スクリプトを実行します。 このスクリプトでは、次の情報を入力するよう求められます。
ソリューション名。
使用する Azure サブスクリプション。
使用する Azure データセンターの場所。
スクリプトで、指定したソリューション名のリソース グループが Azure に作成されます。 このリソース グループには、ソリューション アクセラレータが使用する Azure リソースが含まれます。 該当するリソースが不要になった場合は、このリソース グループを削除できます。
また、このスクリプトは、プレフィックス PCS を持つ一連の環境変数をローカル コンピューターに追加します。 これらの環境変数では、リモート監視で Azure Key Vault リソースから読み取れるようにするための詳細が提供されます。 リモート監視では、この Key Vault リソースからその構成値が読み取られます。
ヒント
スクリプトが完了すると、環境変数もホーム フォルダー>\.pcs\<solution name.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 リソースから読み取られます。 これらの環境変数は、デプロイの<ホーム フォルダー>\.pcs\<solution name.env> ファイルに保存できます。 docker-compose を実行すると、ローカル コンピューターに設定された環境変数が services\scripts\local\.env ファイルの値をオーバーライドすることに注意してください。
マイクロサービスで必要な構成の一部は、初期デプロイ上に作成された Key Vault インスタンスに格納されます。 必要に応じて、Key Vault 内の対応する変数を変更する必要があります。
マイクロサービスを実行する
このセクションでは、リモート監視マイクロサービスを実行します。 Web UI をネイティブで実行し、Docker でデバイス シミュレーション サービスを実行し、Visual Studio Code でマイクロサービスを実行します。
コードのビルド
コマンド プロンプトで azure-iot-pcs-remote-monitoring-dotnet\services に移動し、次のコマンドを実行してコードをビルドします。
dotnet restore
dotnet build -c Release
ローカル コンピューター上のその他すべてのマイクロサービスをデプロイする
次の手順では、Visual Studio Code のリモート監視マイクロサービスを実行する方法を示します。
- Visual Studio Code を起動します。
- VS Code で、azure-iot-pcs-remote-monitoring-dotnet フォルダーを開きます。
- .vscode という新しいフォルダーを azure-iot-pcs-remote-monitoring-dotnet フォルダー内に作成します。
- services\scripts\local\launch\idesettings\vscode から、作成したばかりの .vscode フォルダーに、launch.json ファイルと tasks.json ファイルをコピーします。
- VS Code で [デバッグ] パネルを開き、[Run all microservices] (すべてのマイクロサービスを実行) 構成を実行します。 この構成は、デバイス シミュレーション マイクロサービスを Docker で実行し、他のマイクロサービスをデバッガーで実行します。
デバッグ コンソールでの [Run All microservices] (すべてのマイクロサービスを実行) を実行した出力は次のようになります。
Web UI を実行する
この手順では、Web UI を開始します。 ローカル コピーの azure-iot-pcs-remote-monitoring-dotnet\webui フォルダーに移動し、次のコマンドを実行します。
npm install
npm start
起動が完了すると、ブラウザーに http://localhost:3000/dashboard ページが表示されます。 このページには、エラーが存在する可能性があります。 エラーがない状態でアプリケーションを表示するには、次の手順を実行してください。
NGINX を構成および実行する
ローカル コンピューターで実行されているマイクロサービスと Web アプリケーションをリンクするリバース プロキシ サーバーを設定します。
- webui\scripts\localhost フォルダーから nginx.conf ファイルを nginx\conf インストール ディレクトリにコピーします。
- nginx を実行します。
nginx の実行の詳細については、「nginx for Windows」を参照してください。
ダッシュボードに接続する
リモート監視ソリューションのダッシュボードにアクセスするには、ブラウザーで http://localhost:9000 に移動します。
クリーンアップ
不必要な課金を避けるために、テストを完了したら、Azure サブスクリプションからクラウド サービスを削除します。 サービスを削除するには、Azure portal に移動し、start.cmd スクリプトが作成したリソース グループを削除します。
また、GitHub からソース コードを複製するときに作成されたリモート監視リポジトリのローカル コピーを削除することもできます。
次のステップ
これで、リモート監視ソリューションのデプロイが完了しました。次の手順はソリューション ダッシュボードの機能を確認することです。