この記事では、テストと開発のためにリモート監視ソリューション アクセラレータをローカル コンピューターにデプロイする方法について説明します。 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 を使用しない
注
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 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 リソースから読み取られます。 これらの環境変数は、展開により <あなたのホームフォルダー>\.pcs\<ソリューション名>.env ファイルに保存される可能性があります。 docker-compose を実行すると、ローカル コンピューターで設定された環境変数によって、services\scripts\local\.env ファイル値がオーバーライドされることに注意してください。
マイクロサービスに必要な構成の一部は、初期デプロイ時に作成 Key Vault のインスタンスに格納されます。 keyvault 内の対応する変数は、必要に応じて変更する必要があります。
マイクロサービスを実行する
このセクションでは、リモート監視マイクロサービスを実行します。 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 フォルダーを 開きます。
- azure-iot-pcs-remote-monitoring-dotnet フォルダーに .vscode という名前の新しいフォルダーを作成します。
- services\scripts\local\launch\idesettings\vscode から launch.json ファイルと tasks.json ファイルを、新しく作成した .vscode フォルダーにコピーします。
- VS Code で [デバッグ] パネル を開き、[ すべてのマイクロサービスの実行 ] 構成を実行します。 この構成では、Docker でデバイス シミュレーション マイクロサービスを実行し、デバッガーで他のマイクロサービスを実行します。
デバッグ コンソールで Run All microsoervices を実行した場合の出力は、次のようになります。
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 の実行に関する詳細情報は、「Windows での nginx」を参照してください。
ダッシュボードに接続する
リモート監視ソリューション ダッシュボードにアクセスするには、ブラウザーで http://localhost:9000 に移動します。
クリーンアップ
不要な料金を回避するために、テストが完了したら、Azure サブスクリプションからクラウド サービスを削除します。 サービスを削除するには、Azure portal に移動し、start.cmd スクリプトによって作成されたリソース グループを削除します。
GitHub からソース コードを複製したときに作成されたリモート監視リポジトリのローカル コピーを削除することもできます。
次のステップ
リモート監視ソリューションをデプロイしたので、次の手順では、ソリューション ダッシュボード の機能を探索します。