次の方法で共有


マイクロサービスをカスタマイズして再展開する

このチュートリアルでは、リモート監視ソリューションの マイクロサービス の 1 つを編集し、マイクロサービスのイメージを構築し、Docker ハブにイメージをデプロイしてから、リモート監視ソリューションで使用する方法について説明します。 この概念を説明するため、このチュートリアルでは、マイクロサービス API を呼び出して状態メッセージを "Alive and Well" から "New Edits Made Here!" に変更する基本的なシナリオを使います。

リモート監視ソリューションでは、Docker ハブからプルされた Docker イメージを使用して構築されたマイクロサービスを使用します。

このチュートリアルでは、以下の内容を学習します。

  • リモート監視ソリューションでマイクロサービスを編集してビルドします
  • Docker イメージをビルドします
  • Docker イメージを Docker Hub にプッシュします
  • 新しい Docker イメージをプルします
  • 変更を視覚化します

前提条件

このチュートリアルを実行するには、次が必要です。

API を呼び出して応答の状態を表示する

ここでは、既定の IoT ハブ マネージャー マイクロサービス API を呼び出します。 API は、後でマイクロサービスをカスタマイズすることにより変更する状態メッセージを返します。

  1. お使いのコンピューターでリモート監視ソリューションがローカルに実行していることを確認してください。

  2. ダウンロードした Postman を探して開きます。

  3. Postman で、[GET] に「https://localhost:8080/iothubmanager/v1/status」と入力します。

  4. 返される値では、"Status": "OK:Alive and Well" と表示されます。

    Alive and Well Postman Message

状態を変更して、イメージをビルドします。

次に、Iot Hub Manager マイクロサービスのステータス メッセージを "New Edits Made Here!" に変更し、この新しい状態で Docker イメージを再構築します。 ここで問題が発生する場合は、「トラブルシューティング」セクションをご覧ください。

  1. ターミナルが開いていることを確認し、リモート監視ソリューションを複製したディレクトリに移動します。

  2. ディレクトリを、"azure-iot-pcs-remote-monitoring-dotnet/services/iothub-manager/Services" に変更します。

  3. 好みのテキスト エディターまたは IDE で、StatusService.cs を開きます。

  4. 次のコードを見つけます。

    var result = new StatusServiceModel(true, "Alive and well!");
    

    これを次のコードに変更して、保存します。

    var result = new StatusServiceModel(true, "New Edits Made Here!");
    
  5. ターミナルに戻り、今度は "azure-iot-pcs-remote-monitoring-dotnet/services/iothub-manager/scripts/docker" ディレクトリに変更します。

  6. 新しい Docker イメージをビルドするには、次のように入力します。

    sh build
    

    または、Windows では:

    ./build.cmd
    
  7. 新しいイメージが正常に作成されたことを確認するには、次のように入力します。

    docker images 
    

リポジトリは、"azureiotpcs/iothub-manager-dotnet" にする必要があります。

Successful docker image

イメージにタグを付けてプッシュする

新しい Docker イメージを Docker Hub にプッシュする前に、イメージにタグを付ける必要があります。 ここで問題が発生する場合は、「トラブルシューティング」セクションをご覧ください。

  1. 次のように入力して、作成した Docker イメージのイメージ ID を調べます。

    docker images
    
  2. イメージに "testing" というタグを付けるには、次のように入力します。

    docker tag [Image ID] [docker ID]/iothub-manager-dotnet:testing 
    
  3. 新しくタグを付けたイメージを Docker Hub にプッシュするには、次のように入力します。

    docker push [docker ID]/iothub-manager-dotnet:testing
    
  4. インターネット ブラウザーを開き、Docker Hub に移動して、サインインします。

  5. 新しくプッシュした Docker イメージが Docker Hub に表示されます。 Docker image in docker hub

リモート監視ソリューションを更新する

次に、ローカルの docker-compose.yml を更新し、新しい Docker イメージを Docker Hub からプルする必要があります。 ここで問題が発生する場合は、「トラブルシューティング」セクションをご覧ください。

  1. ターミナルに戻り、"azure-iot-pcs-remote-monitoring-dotnet/services/scripts/local" ディレクトリに変更します。

  2. 好みのテキスト エディターまたは IDE で、docker-compose.yml を開きます。

  3. 次のコードを見つけます。

    image: azureiotpcs/iothub-manager-dotnet:testing
    

    これを次の図のように変更して、変更します。

    image: [docker ID]/iothub-manager-dotnet:testing
    

新しい応答状態を表示する

最後に、リモート監視ソリューションのローカル インスタンスを再展開し、Postman で新しい状態応答を表示します。

  1. ターミナルに戻り、"azure-iot-pcs-remote-monitoring-dotnet/scripts/local" ディレクトリに変更します。

  2. ターミナルに次のコマンドを入力して、リモート監視ソリューションのローカル インスタンスを起動します。

    docker-compose up
    
  3. ダウンロードした Postman を探して開きます。

  4. Postman で、[GET] に「https://localhost:8080/iothubmanager/v1/status」という要求を入力します。 今度は、"Status": "OK: New Edits Made Here!" と表示されます。

New Edits Made Here postman message

トラブルシューティング

問題が発生する場合は、ローカル コンピューター上の Docker イメージとコンテナーを削除してみてください。

  1. すべてのコンテナーを削除するには、まず実行中のすべてのコンテナーを停止する必要があります。 ターミナルを開き、次のように入力します。

    docker stop $(docker ps -aq)
    docker rm $(docker ps -aq)
    
  2. すべてのイメージを削除するには、ターミナルを開いて次のように入力します。

    docker rmi $(docker images -q)
    
  3. コンピューター上にコンテナーがあるかどうかは、次のように入力して確認できます。

    docker ps -aq 
    

    すべてのイメージが正常に削除されている場合は、何も表示されません。

  4. コンピューター上にイメージがあるかどうかは、次のように入力して確認できます。

    docker images
    

    すべてのイメージが正常に削除されている場合は、何も表示されません。

次の手順

このチュートリアルで説明する内容は次のとおりです。

  • リモート監視ソリューションでマイクロサービスを編集してビルドします
  • Docker イメージをビルドします
  • Docker イメージを Docker Hub にプッシュします
  • 新しい Docker イメージをプルします
  • 変更を視覚化します

次に、リモート監視ソリューションのデバイス シミュレーター マイクロサービスをカスタマイズしてみてください

リモート監視ソリューションに関する開発者向け情報の詳細については、以下をご覧ください。