次の方法で共有


リモート監視ソリューション アクセラレータをローカルにデプロイする - Docker

この記事では、テストと開発のためにリモート監視ソリューション アクセラレータをローカル コンピューターにデプロイする方法について説明します。 マイクロサービスをローカル Docker コンテナーにデプロイする方法について説明します。 ローカル マイクロサービスのデプロイでは、クラウド内の IoT Hub、Cosmos DB、Azure Streaming Analytics、Azure Time Series Insights サービスのクラウド サービスが使用されます。

ローカル コンピューター上の IDE でリモート監視ソリューション アクセラレータを実行する場合は、「リモート監視ソリューション アクセラレータをローカルにデプロイする - Visual Studio」を参照してください。

前提条件

リモート監視ソリューション アクセラレータで使用される Azure サービスをデプロイするには、アクティブな Azure サブスクリプションが必要です。

アカウントをお持ちでない場合は、数分で無料試用版アカウントを作成できます。 詳細については、「Azure の無料試用版サイト」を参照してください。

マシンのセットアップ

ローカルデプロイを完了するには、ローカル開発マシンに次のツールがインストールされている必要があります。

  • Git
  • Docker
  • Visual Studio - マイクロサービスに変更を加える予定がある場合。
  • Node.js v8 - このソフトウェアは、スクリプトが Azure リソースの作成に使用する PCS CLI の前提条件です。 Node.js v10 を使用しないでください。

これらのツールは、Windows、Linux、iOS など、多くのプラットフォームで使用できます。

ソース コードをダウンロードする

リモート監視のソース コード リポジトリには、マイクロサービスの 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 リソースをまだ作成していない場合は、次の手順に従います。

  1. コマンド ライン環境で、リポジトリの複製されたコピー内の \services\scripts\local\launch フォルダーに移動します。

  2. 次のコマンドを実行して、pcs CLI ツールをインストールし、Azure アカウントにサインインします。

    npm install -g iot-solutions
    pcs login
    
  3. start.cmd スクリプトを実行します。 このスクリプトでは、次の情報の入力を求められます。

    • ソリューション名。

    • 使用する Azure サブスクリプション。

    • 使用する Azure データセンターの場所。

      このスクリプトは、ソリューション名を使用して Azure にリソース グループを作成します。 このリソース グループには、ソリューション アクセラレータが使用する Azure リソースが含まれています。 このリソース グループは、対応するリソースが不要になったら削除できます。

      また、このスクリプトは、PCS プレフィックスを持つ一連の環境変数をローカル コンピューターに追加します。 これらの環境変数は、Azure Key Vault リソースから読み取ることができるリモート監視の詳細を提供します。 この Key Vault リソースは、リモート監視が構成値を読み取る場所です。

      ヒント

      スクリプトが正常に実行された後、環境変数は、<ホームフォルダー>\.pcs\<ソリューション名>.envというファイルに保存されます。 将来のソリューション アクセラレータのデプロイに使用できます。 docker-compose を実行すると、ローカル コンピューターに設定されたすべての環境変数によって、services\scripts\local\.env ファイル値がオーバーライドされることに注意してください。

  4. コマンド ライン環境から終了します。

既存の 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 内の対応する変数は、必要に応じて変更する必要があります。

Docker でマイクロサービスを実行する

新しいコマンド プロンプトを開き、start.cmd スクリプトによって設定された環境変数に確実にアクセスできるようにします。 Windows では、次のコマンドを実行して、環境変数が設定されていることを確認できます。

set PCS

このコマンドは、start.cmd スクリプトによって設定されたすべての環境変数を表示します。

Docker がローカル コンピューターで実行されていることを確認します。

Docker が Windows 実行されている場合は、 Linux コンテナーを実行している必要があります。

ローカル Docker コンテナーで実行されているマイクロサービスは、Azure クラウド サービスにアクセスする必要があります。 Docker 環境のインターネット接続をテストするには、次のコマンドを使用して、コンテナー内からインターネット アドレスに ping を実行します。

docker run --rm -ti library/alpine ping google.com

ソリューション アクセラレータを実行するには、コマンド ライン環境の services\scripts\local フォルダーに移動し、次のコマンドを実行します。

docker-compose up

ローカル ドライブを Docker と共有してからdocker-compose upを実行してください。

このコマンドを初めて実行すると、Docker によって Docker ハブからマイクロサービス イメージがダウンロードされ、コンテナーがローカルにビルドされます。 次の実行では、Docker によってコンテナーが直ちに実行されます。

ヒント

Microsoft では、新しい機能を使用して新しい Docker イメージを頻繁に発行しています。 最新のものをプルする前に、次の一連のコマンドを使用して、ローカルの Docker コンテナーと対応するイメージをクリーンアップできます。

docker list
docker rm <list_of_containers>
docker rmi <list_of_images>

別のシェルを使用して、コンテナーのログを表示できます。 最初に、docker ps コマンドを使用してコンテナー ID を見つけます。 次に、docker logs {container-id} --tail 1000 を使用して、指定したコンテナーの最後の 1000 エントリを表示します。

Stream Analytics ジョブを開始する

Stream Analytics ジョブを開始するには、次の手順に従います。

  1. Azure ポータルに移動します。
  2. ソリューション用に作成 リソース グループに移動します。 リソース グループの名前は、start.cmd スクリプトの実行時にソリューションに対して選択した名前です。
  3. リソースの一覧で Stream Analytics ジョブ をクリックします。
  4. [Stream Analytics ジョブ 概要] ページで、[開始] ボタンをクリックします。 次に、[開始] をクリックして、今すぐジョブを開始します。

ダッシュボードに接続する

リモート監視ソリューション ダッシュボードにアクセスするには、ブラウザーで https://localhost:8080 に移動します。 Web UI とローカル マイクロサービスを使用できるようになりました。

クリーンアップ

不要な料金を回避するために、テストが完了したら、Azure サブスクリプションからクラウド サービスを削除します。 サービスを削除するには、Azure portal に移動し、start.cmd スクリプトによって作成されたリソース グループを削除します。

docker-compose down --rmi all コマンドを使用して、Docker イメージを削除し、ローカル コンピューター上の領域を解放します。 GitHub からソース コードを複製したときに作成されたリモート監視リポジトリのローカル コピーを削除することもできます。

次のステップ

リモート監視ソリューションをデプロイしたので、次の手順では、ソリューション ダッシュボード の機能を探索します。