クイック スタート: IoT ハブに接続されたデバイスを制御する

このクイック スタートでは、"ダイレクト メソッド" を使って、IoT Hub に接続されているシミュレートされたデバイスを制御します。 IoT Hub は、クラウドから IoT デバイスを管理し、大量のデバイス テレメトリを格納または処理のためにクラウドに取り込むことができるようにする Azure サービスです。 ダイレクト メソッドを使うと、IoT ハブに接続されたデバイスの動作をリモートで変更できます。

このクイック スタートでは、あらかじめ作成されている次の 2 つの .NET アプリケーションを使います。

  • サービス アプリケーションから呼び出されたダイレクト メソッドに応答するシミュレートされたデバイス アプリケーション。 ダイレクト メソッドの呼び出しを受け取るため、このアプリケーションは IoT Hub 上のデバイス固有のエンドポイントに接続します。

  • シミュレートされたデバイス上でダイレクト メソッドを呼び出すサービス アプリケーション。 デバイスでダイレクト メソッドを呼び出すため、このアプリケーションは IoT Hub 上のサービス側エンドポイントに接続します。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料で作成できます

  • このクイック スタートで実行する 2 つのサンプル アプリケーションは、C# を使って書かれています。 開発用マシン上に .NET Core SDK 3.1 以上が必要です。

    複数のプラットフォームに対応する .NET Core SDK を .NET からダウンロードできます。

    開発コンピューターに現在インストールされている C# のバージョンは、次のコマンドを使って確認できます。

    dotnet --version
    
  • まだ行っていない場合は、https://github.com/Azure-Samples/azure-iot-samples-csharp/archive/main.zip から Azure IoT C# サンプルをダウンロードし、ZIP アーカイブを展開します。

  • ポート 8883 がファイアウォールで開放されていることを確認してください。 このクイックスタートのデバイス サンプルでは、ポート 8883 を介して通信する MQTT プロトコルを使用しています。 このポートは、企業や教育用のネットワーク環境によってはブロックされている場合があります。 この問題の詳細と対処方法については、「IoT Hub への接続 (MQTT)」を参照してください。

  • Azure Cloud Shell で Bash 環境を使用します。

    新しいウィンドウで Cloud Shell を起動する

  • 必要に応じて、Azure CLI をインストールして、CLI リファレンス コマンドを実行します。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

注意

この記事では、azure-iot と呼ばれる、Azure IoT 拡張機能の最新バージョンを使用します。 従来のバージョンは azure-cli-iot-ext と呼ばれます。一度にインストールできるバージョンは 1 つだけです。 コマンド az extension list を使用すると、現在インストールされている拡張機能を確認できます。

拡張機能の従来のバージョンを削除するには、az extension remove --name azure-cli-iot-ext を使用します。

拡張機能の新しいバージョンを追加するには、az extension add --name azure-iot を使用します。

インストール済みの拡張機能を表示するには、az extension list を使用してください。

IoT Hub の作成

前出のデバイスから IoT Hub への利用統計情報の送信に関するクイック スタートを完了した場合は、この手順を省略できます。

ここでは、Azure portal を使用して IoT ハブを作成する方法について説明します。

  1. Azure portal にサインインします。

  2. Azure ホームページから [+ リソースの作成] ボタンを選択し、 [Marketplace を検索] フィールドに「IoT Hub」と入力します。

  3. 検索結果の [IoT Hub] を選択し、 [作成] を選択します。

  4. [基本] タブで、次のように各フィールドに入力します。

    • サブスクリプション:ハブで使用するサブスクリプションを選択します。

    • リソース グループ:リソース グループを選択するか、新しく作成します。 新たに作成するには、 [新規作成] を選択して、使用する名前を入力します。 既存のリソース グループを使用するには、そのリソース グループを選択します。 詳しくは、「Manage Azure Resource Manager resource groups (Azure Resource Manager のリソース グループの管理)」をご覧ください。

    • [リージョン] :ハブを配置するリージョンを選択します。 ユーザーに最も近い場所を選択します。 一部の機能 (IoT Hub デバイス ストリームなど) は、特定のリージョンでのみご利用いただけます。 これらの制限のある機能については、サポート対象のいずれかのリージョンを選択する必要があります。

    • [IoT Hub 名] : ハブの名前を入力します。 この名前は、3 から 50 文字の英数字でグローバルに一意である必要があります。 名前には、ダッシュ ('-') 文字を含めることもできます。

    重要

    IoT ハブは DNS エンドポイントとして公開されるため、名前を付ける際に機密情報や個人を特定できる情報を入力しないように注意してください。

    Azure portal でハブを作成する。

  5. Next:Networking(次へ: ネットワーク) を選択して、ハブの作成を続けます。

    デバイスから IoT Hub に接続するために使用できるエンドポイントを選択します。 既定の設定である [パブリック エンドポイント (すべてのネットワーク)] を選択できるほか、 [Public endpoint (selected IP ranges)](パブリック エンドポイント (選択された IP 範囲)) または [プライベート エンドポイント] を選択できます。 この例では、既定の設定をそのまま使用しています。

    接続できるエンドポイントを選択する。

  6. Next:Management(次へ: 管理) を選択して、ハブの作成を続けます。

    Azure portal を使用して新しいハブのサイズとスケールを設定する。

    ここでは、既定の設定をそのまま使用できます。 必要に応じて、次のフィールドに変更を加えることができます。

    • [価格とスケールティア] : 選択したレベル。 必要な機能およびソリューションで 1 日に送信するメッセージの数に応じて、複数のレベルから適切なものを選びます。 無料レベルは、テストおよび評価用です。 ハブに接続できるデバイスは 500 個で、1 日に許可されるメッセージ数は最大 8,000 件です。 Azure サブスクリプションごとに、Free レベルの IoT ハブを 1 つ作成できます。

      IoT Hub デバイス ストリームのクイックスタートに取り組んでいる場合は、Free レベルを選択してください。

    • [IoT Hub ユニット] : ユニットごとに許可される 1 日あたりのメッセージの数は、ハブの価格レベルによって決まります。 たとえば、ハブで 700,000 件のイングレス メッセージをサポートする場合は、S1 レベルのユニットを 2 つ選択します。 他のレベルのオプションについて詳しくは、適切な IoT Hub レベルの選択に関するページをご覧ください。

    • [Defender for IoT] : IoT およびお使いのデバイスに、脅威に対する保護のレイヤーを別途追加するには、これをオンにします。 このオプションは、Free レベルのハブでは使用できません。 この機能の詳細については、Azure Defender for IoT に関するページを参照してください。

    • [詳細設定] > [Device-to-cloud パーティション] : このプロパティでは、device-to-cloud メッセージがそのメッセージの同時閲覧者数に関連付けられます。 ほとんどのハブでは、4 つのパーティションのみが必要となります。

  7. 次へ:[Next](次へ) を選択して、次の画面に進みます。

    タグは、名前と値の組です。 複数のリソースおよびリソース グループに同じタグを割り当てることで、リソースを分類したり、課金情報を統合したりすることができます。 このドキュメントでは、タグを追加しません。 詳細については、タグを使用した Azure リソースの整理に関するページを参照してください。

    Azure portal を使用してハブにタグを割り当てる。

  8. 次へ:次へ: レビューと作成 をクリックして、選択内容を確認します。 次の画面のようになります。ただし、表示されるのはハブの作成時に選択した値です。

    新しいハブを作成するための情報を確認する。

  9. [作成] を選択して新しいハブのデプロイを開始します。 ハブの作成中、数分間にデプロイが進行中になります。 デプロイが完了したら、 [リソースに移動] を選択し、新しいハブを開きます。

デバイスの登録

前の「クイック スタート: デバイスから IoT Hub への利用統計情報の送信」を完了した場合は、この手順を省略できます。

デバイスを IoT Hub に接続するには、あらかじめ IoT Hub に登録しておく必要があります。 このクイック スタートでは、Azure Cloud Shell を使用して、シミュレートされたデバイスを登録します。

  1. Azure Cloud Shell で次のコマンドを実行してデバイス ID を作成します。

    YourIoTHubName: このプレースホルダーは、実際の IoT Hub に対して選んだ名前に置き換えてください。

    MyDotnetDevice: これは、登録するデバイスの名前です。 示されているように、MyDotnetDevice を使用することをお勧めします。 デバイスに別の名前を選択した場合は、この記事全体でその名前を使用する必要があります。また、サンプル アプリケーションを実行する前に、アプリケーション内のデバイス名を更新してください。

    az iot hub device-identity create \
      --hub-name {YourIoTHubName} --device-id MyDotnetDevice
    
  2. Azure Cloud Shell で次のコマンドを実行して、登録したデバイスの "デバイス接続文字列" を取得します。

    YourIoTHubName: このプレースホルダーは、実際の IoT Hub に対して選んだ名前に置き換えてください。

    az iot hub device-identity connection-string show \
      --hub-name {YourIoTHubName} \
      --device-id MyDotnetDevice \
      --output table
    

    次のようなデバイス接続文字列をメモしておきます。

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

    この値は、このクイック スタートの後の方で使います。

サービス接続文字列を取得する

サービス アプリケーションがHub に接続してメッセージを取得できるようにするには、IoT Hub の "サービス接続文字列" も必要です。 次のコマンドを実行すると、IoT ハブのサービス接続文字列が取得されます。

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

次のようなサービス接続文字列をメモしておきます。

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

この値は、このクイック スタートの後の方で使います。 このサービス接続文字列は、前の手順でメモしたデバイス接続文字列とは異なります。

ダイレクト メソッドの呼び出しをリッスンする

シミュレートされたデバイス アプリケーションは、IoT Hub 上のデバイス固有エンドポイントに接続し、シミュレートされた利用統計情報を送信して、Hub からのダイレクト メソッド呼び出しをリッスンします。 このクイック スタートでは、ハブからのダイレクト メソッド呼び出しは、利用統計情報の送信間隔を変更するようデバイスに指示します。 シミュレートされたデバイスでは、ダイレクト メソッドを実行した後、ハブに受信確認が返送されます。

  1. ローカル ターミナル ウィンドウで、サンプルの C# プロジェクトのルート フォルダーに移動します。 次に、iot-hub\Quickstarts\SimulatedDeviceWithCommand フォルダーに移動します。

  2. ローカル ターミナル ウィンドウで次のコマンドを実行して、シミュレートされたデバイス アプリケーションに必要なパッケージをインストールします。

    dotnet restore
    
  3. ローカル ターミナル ウィンドウで次のコマンドを実行し、シミュレートされたデバイス アプリケーションをビルドして実行します。{DeviceConnectionString} を、前に書き留めておいたデバイス接続文字列に置き換えてください。

    dotnet run -- {DeviceConnectionString}
    

    次のスクリーンショットは、シミュレートされたデバイス アプリケーションが IoT Hub にテレメトリを送信したときの出力を示しています。

    シミュレートされたデバイスを実行する

ダイレクト メソッドを呼び出す

サービス アプリケーションは、IoT Hub 上のサービス側エンドポイントに接続します。 アプリケーションにより、IoT ハブを通してデバイスへのダイレクト メソッド呼び出しが行われた後、受信確認がリッスンされます。 通常、IoT Hub サービス アプリケーションはクラウドで実行されます。

  1. 別のローカル ターミナル ウィンドウで、サンプルの C# プロジェクトのルート フォルダーに移動します。 次に、iot-hub\Quickstarts\InvokeDeviceMethod フォルダーに移動します。

  2. ローカル ターミナル ウィンドウで次のコマンドを実行して、サービス アプリケーションに必要なライブラリをインストールします。

    dotnet restore
    
  3. ローカル ターミナル ウィンドウで次のコマンドを実行し、サービス アプリケーションをビルドして実行します。{ServiceConnectionString} を、前に書き留めておいたサービス接続文字列に置き換えてください。

    dotnet run -- {ServiceConnectionString}
    

    次のスクリーンショットは、アプリケーションによりデバイスに対してダイレクト メソッド呼び出しが行われ、受信確認が受診されたときの出力を示します。

    サービス アプリケーションの実行

    サービス アプリケーションの実行後、シミュレートされたデバイスを実行しているコンソール ウィンドウにメッセージが表示され、メッセージの送信速度が変わります。

    シミュレートされたクライアントでの変更

このクイックスタートでは、2 つの Java アプリケーションを使用します。バックエンド アプリケーションから呼び出されたダイレクト メソッドに応答するシミュレートされたデバイスのアプリケーションと、シミュレートされたデバイスのダイレクト メソッドを呼び出すサービス アプリケーションです。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料で作成できます

  • Java SE Development Kit 8。 「Azure および Azure Stack の Java 長期サポート」の「長期サポート」で「Java 8」を選択します。

    開発コンピューターに現在インストールされている Java のバージョンは、次のコマンドを使って確認できます。

    java -version
    
  • Apache Maven 3

    開発コンピューターに現在インストールされている Maven のバージョンは、次のコマンドを使って確認できます。

    mvn --version
    
  • サンプル Java プロジェクト

  • ファイアウォールでポート 8883 が開放されていること。 このクイックスタートのデバイス サンプルでは、ポート 8883 を介して通信する MQTT プロトコルを使用しています。 このポートは、企業や教育用のネットワーク環境によってはブロックされている場合があります。 この問題の詳細と対処方法については、「IoT Hub への接続 (MQTT)」を参照してください。

  • Azure Cloud Shell で Bash 環境を使用します。

    新しいウィンドウで Cloud Shell を起動する

  • 必要に応じて、Azure CLI をインストールして、CLI リファレンス コマンドを実行します。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

注意

この記事では、azure-iot と呼ばれる、Azure IoT 拡張機能の最新バージョンを使用します。 従来のバージョンは azure-cli-iot-ext と呼ばれます。一度にインストールできるバージョンは 1 つだけです。 コマンド az extension list を使用すると、現在インストールされている拡張機能を確認できます。

拡張機能の従来のバージョンを削除するには、az extension remove --name azure-cli-iot-ext を使用します。

拡張機能の新しいバージョンを追加するには、az extension add --name azure-iot を使用します。

インストール済みの拡張機能を表示するには、az extension list を使用してください。

IoT Hub の作成

前出のデバイスから IoT Hub への利用統計情報の送信に関するクイック スタートを完了した場合は、この手順を省略できます。

ここでは、Azure portal を使用して IoT ハブを作成する方法について説明します。

  1. Azure portal にサインインします。

  2. Azure ホームページから [+ リソースの作成] ボタンを選択し、 [Marketplace を検索] フィールドに「IoT Hub」と入力します。

  3. 検索結果の [IoT Hub] を選択し、 [作成] を選択します。

  4. [基本] タブで、次のように各フィールドに入力します。

    • サブスクリプション:ハブで使用するサブスクリプションを選択します。

    • リソース グループ:リソース グループを選択するか、新しく作成します。 新たに作成するには、 [新規作成] を選択して、使用する名前を入力します。 既存のリソース グループを使用するには、そのリソース グループを選択します。 詳しくは、「Manage Azure Resource Manager resource groups (Azure Resource Manager のリソース グループの管理)」をご覧ください。

    • [リージョン] :ハブを配置するリージョンを選択します。 ユーザーに最も近い場所を選択します。 一部の機能 (IoT Hub デバイス ストリームなど) は、特定のリージョンでのみご利用いただけます。 これらの制限のある機能については、サポート対象のいずれかのリージョンを選択する必要があります。

    • [IoT Hub 名] : ハブの名前を入力します。 この名前は、3 から 50 文字の英数字でグローバルに一意である必要があります。 名前には、ダッシュ ('-') 文字を含めることもできます。

    重要

    IoT ハブは DNS エンドポイントとして公開されるため、名前を付ける際に機密情報や個人を特定できる情報を入力しないように注意してください。

    Azure portal でハブを作成する。

  5. Next:Networking(次へ: ネットワーク) を選択して、ハブの作成を続けます。

    デバイスから IoT Hub に接続するために使用できるエンドポイントを選択します。 既定の設定である [パブリック エンドポイント (すべてのネットワーク)] を選択できるほか、 [Public endpoint (selected IP ranges)](パブリック エンドポイント (選択された IP 範囲)) または [プライベート エンドポイント] を選択できます。 この例では、既定の設定をそのまま使用しています。

    接続できるエンドポイントを選択する。

  6. Next:Management(次へ: 管理) を選択して、ハブの作成を続けます。

    Azure portal を使用して新しいハブのサイズとスケールを設定する。

    ここでは、既定の設定をそのまま使用できます。 必要に応じて、次のフィールドに変更を加えることができます。

    • [価格とスケールティア] : 選択したレベル。 必要な機能およびソリューションで 1 日に送信するメッセージの数に応じて、複数のレベルから適切なものを選びます。 無料レベルは、テストおよび評価用です。 ハブに接続できるデバイスは 500 個で、1 日に許可されるメッセージ数は最大 8,000 件です。 Azure サブスクリプションごとに、Free レベルの IoT ハブを 1 つ作成できます。

      IoT Hub デバイス ストリームのクイックスタートに取り組んでいる場合は、Free レベルを選択してください。

    • [IoT Hub ユニット] : ユニットごとに許可される 1 日あたりのメッセージの数は、ハブの価格レベルによって決まります。 たとえば、ハブで 700,000 件のイングレス メッセージをサポートする場合は、S1 レベルのユニットを 2 つ選択します。 他のレベルのオプションについて詳しくは、適切な IoT Hub レベルの選択に関するページをご覧ください。

    • [Defender for IoT] : IoT およびお使いのデバイスに、脅威に対する保護のレイヤーを別途追加するには、これをオンにします。 このオプションは、Free レベルのハブでは使用できません。 この機能の詳細については、Azure Defender for IoT に関するページを参照してください。

    • [詳細設定] > [Device-to-cloud パーティション] : このプロパティでは、device-to-cloud メッセージがそのメッセージの同時閲覧者数に関連付けられます。 ほとんどのハブでは、4 つのパーティションのみが必要となります。

  7. 次へ:[Next](次へ) を選択して、次の画面に進みます。

    タグは、名前と値の組です。 複数のリソースおよびリソース グループに同じタグを割り当てることで、リソースを分類したり、課金情報を統合したりすることができます。 このドキュメントでは、タグを追加しません。 詳細については、タグを使用した Azure リソースの整理に関するページを参照してください。

    Azure portal を使用してハブにタグを割り当てる。

  8. 次へ:次へ: レビューと作成 をクリックして、選択内容を確認します。 次の画面のようになります。ただし、表示されるのはハブの作成時に選択した値です。

    新しいハブを作成するための情報を確認する。

  9. [作成] を選択して新しいハブのデプロイを開始します。 ハブの作成中、数分間にデプロイが進行中になります。 デプロイが完了したら、 [リソースに移動] を選択し、新しいハブを開きます。

デバイスの登録

前の「クイック スタート: デバイスから IoT Hub への利用統計情報の送信」を完了した場合は、この手順を省略できます。

デバイスを IoT Hub に接続するには、あらかじめ IoT Hub に登録しておく必要があります。 このクイック スタートでは、Azure Cloud Shell を使用して、シミュレートされたデバイスを登録します。

  1. Azure Cloud Shell で次のコマンドを実行してデバイス ID を作成します。

    YourIoTHubName: このプレースホルダーは、実際の IoT Hub に対して選んだ名前に置き換えてください。

    MyJavaDevice: これは、登録するデバイスの名前です。 示されているように、MyJavaDevice を使用することをお勧めします。 デバイスに別の名前を選択した場合は、この記事全体でその名前を使用する必要があります。また、サンプル アプリケーションを実行する前に、アプリケーション内のデバイス名を更新してください。

    az iot hub device-identity create \
      --hub-name {YourIoTHubName} --device-id MyJavaDevice
    
  2. Azure Cloud Shell で次のコマンドを実行して、登録したデバイスの "デバイス接続文字列" を取得します。

    YourIoTHubName: このプレースホルダーは、実際の IoT Hub に対して選んだ名前に置き換えてください。

    az iot hub device-identity connection-string show\
      --hub-name {YourIoTHubName} \
      --device-id MyJavaDevice \
      --output table
    

    次のようなデバイス接続文字列をメモしておきます。

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

    この値は、このクイック スタートの後の方で使います。

サービス接続文字列を取得する

また、バックエンド アプリケーションが IoT ハブに接続してメッセージを取得できるようにするには、"サービス接続文字列" が必要です。 次のコマンドを実行すると、IoT ハブのサービス接続文字列が取得されます。

YourIoTHubName: このプレースホルダーは、実際の IoT Hub に対して選んだ名前に置き換えてください。

az iot hub connection-string show --policy-name service --name {YourIoTHubName} --output table

次のようなサービス接続文字列をメモしておきます。

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

この値は、このクイック スタートの後の方で使います。 このサービス接続文字列は、前の手順でメモしたデバイス接続文字列とは異なります。

ダイレクト メソッドの呼び出しをリッスンする

シミュレートされたデバイス アプリケーションは、IoT Hub 上のデバイス固有エンドポイントに接続し、シミュレートされた利用統計情報を送信して、Hub からのダイレクト メソッド呼び出しをリッスンします。 このクイック スタートでは、Hub からのダイレクト メソッド呼び出しは、利用統計情報の送信間隔を変更するようデバイスに指示します。 シミュレートされたデバイスでは、ダイレクト メソッドを実行した後、ハブに受信確認が返送されます。

  1. ローカル ターミナル ウィンドウで、サンプルの Java プロジェクトのルート フォルダーに移動します。 次に、iot-hub\Quickstarts\simulated-device-2 フォルダーに移動します。

  2. 適当なテキスト エディターで src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java ファイルを開きます。

    connString 変数の値を、前にメモしたデバイス接続文字列に置き換えます。 その後、変更を SimulatedDevice.java に保存します。

  3. ローカル ターミナル ウィンドウで次のコマンドを実行して、必要なライブラリをインストールし、シミュレートされたデバイス アプリケーションをビルドします。

    mvn clean package
    
  4. ローカル ターミナル ウィンドウで次のコマンドを実行して、シミュレートされたデバイス アプリケーションを実行します。

    java -jar target/simulated-device-2-1.0.0-with-deps.jar
    

    次のスクリーンショットは、シミュレートされたデバイス アプリケーションが IoT Hub にテレメトリを送信したときの出力を示しています。

    デバイスによって対象の IoT ハブに送信されたテレメトリからの出力

ダイレクト メソッドを呼び出す

バックエンド アプリケーションは、IoT ハブ上のサービス側エンドポイントに接続します。 アプリケーションにより、IoT ハブを通してデバイスへのダイレクト メソッド呼び出しが行われた後、受信確認がリッスンされます。 通常、IoT Hub のバックエンド アプリケーションはクラウドで実行されます。

  1. 別のローカル ターミナル ウィンドウで、サンプルの Java プロジェクトのルート フォルダーに移動します。 その後、iot-hub\Quickstarts\back-end-application フォルダーに移動します。

  2. 適当なテキスト エディターで src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java ファイルを開きます。

    iotHubConnectionString 変数の値を、前にメモしたサービス接続文字列に置き換えます。 変更を BackEndApplication.java に保存します。

  3. ローカル ターミナル ウィンドウで次のコマンドを実行して、必要なライブラリをインストールし、バックエンド アプリケーションをビルドします。

    mvn clean package
    
  4. ローカル ターミナル ウィンドウで次のコマンドを実行して、バックエンド アプリケーションを実行します。

    java -jar target/back-end-application-1.0.0-with-deps.jar
    

    次のスクリーンショットは、アプリケーションによりデバイスに対してダイレクト メソッド呼び出しが行われ、受信確認が受診されたときの出力を示します。

    アプリケーションが対象の IoT ハブを介してダイレクト メソッド呼び出しを行ったときの出力

    バックエンド アプリケーションを実行した後、シミュレートされたデバイスを実行しているコンソール ウィンドウにメッセージが表示され、メッセージの送信速度が変わります。

    デバイスからのコンソール メッセージに変更された速度が示される

このクイックスタートでは、2 つの Node.js アプリケーションを使用します。バックエンド アプリケーションから呼び出されたダイレクト メソッドに応答するシミュレートされたデバイスのアプリケーションと、シミュレートされたデバイスのダイレクト メソッドを呼び出すバックエンド アプリケーションです。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料で作成できます

  • Node.js 10 以上

    開発コンピューターに現在インストールされている Node.js のバージョンは、次のコマンドを使って確認できます。

    node --version
    
  • サンプル Node.js プロジェクト

  • ファイアウォールでポート 8883 が開放されていること。 このクイックスタートのデバイス サンプルでは、ポート 8883 を介して通信する MQTT プロトコルを使用しています。 このポートは、企業や教育用のネットワーク環境によってはブロックされている場合があります。 この問題の詳細と対処方法については、「IoT Hub への接続 (MQTT)」を参照してください。

  • Azure Cloud Shell で Bash 環境を使用します。

    新しいウィンドウで Cloud Shell を起動する

  • 必要に応じて、Azure CLI をインストールして、CLI リファレンス コマンドを実行します。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

注意

この記事では、azure-iot と呼ばれる、Azure IoT 拡張機能の最新バージョンを使用します。 従来のバージョンは azure-cli-iot-ext と呼ばれます。一度にインストールできるバージョンは 1 つだけです。 コマンド az extension list を使用すると、現在インストールされている拡張機能を確認できます。

拡張機能の従来のバージョンを削除するには、az extension remove --name azure-cli-iot-ext を使用します。

拡張機能の新しいバージョンを追加するには、az extension add --name azure-iot を使用します。

インストール済みの拡張機能を表示するには、az extension list を使用してください。

IoT Hub の作成

前出のデバイスから IoT Hub への利用統計情報の送信に関するクイック スタートを完了した場合は、この手順を省略できます。

ここでは、Azure portal を使用して IoT ハブを作成する方法について説明します。

  1. Azure portal にサインインします。

  2. Azure ホームページから [+ リソースの作成] ボタンを選択し、 [Marketplace を検索] フィールドに「IoT Hub」と入力します。

  3. 検索結果の [IoT Hub] を選択し、 [作成] を選択します。

  4. [基本] タブで、次のように各フィールドに入力します。

    • サブスクリプション:ハブで使用するサブスクリプションを選択します。

    • リソース グループ:リソース グループを選択するか、新しく作成します。 新たに作成するには、 [新規作成] を選択して、使用する名前を入力します。 既存のリソース グループを使用するには、そのリソース グループを選択します。 詳しくは、「Manage Azure Resource Manager resource groups (Azure Resource Manager のリソース グループの管理)」をご覧ください。

    • [リージョン] :ハブを配置するリージョンを選択します。 ユーザーに最も近い場所を選択します。 一部の機能 (IoT Hub デバイス ストリームなど) は、特定のリージョンでのみご利用いただけます。 これらの制限のある機能については、サポート対象のいずれかのリージョンを選択する必要があります。

    • [IoT Hub 名] : ハブの名前を入力します。 この名前は、3 から 50 文字の英数字でグローバルに一意である必要があります。 名前には、ダッシュ ('-') 文字を含めることもできます。

    重要

    IoT ハブは DNS エンドポイントとして公開されるため、名前を付ける際に機密情報や個人を特定できる情報を入力しないように注意してください。

    Azure portal でハブを作成する。

  5. Next:Networking(次へ: ネットワーク) を選択して、ハブの作成を続けます。

    デバイスから IoT Hub に接続するために使用できるエンドポイントを選択します。 既定の設定である [パブリック エンドポイント (すべてのネットワーク)] を選択できるほか、 [Public endpoint (selected IP ranges)](パブリック エンドポイント (選択された IP 範囲)) または [プライベート エンドポイント] を選択できます。 この例では、既定の設定をそのまま使用しています。

    接続できるエンドポイントを選択する。

  6. Next:Management(次へ: 管理) を選択して、ハブの作成を続けます。

    Azure portal を使用して新しいハブのサイズとスケールを設定する。

    ここでは、既定の設定をそのまま使用できます。 必要に応じて、次のフィールドに変更を加えることができます。

    • [価格とスケールティア] : 選択したレベル。 必要な機能およびソリューションで 1 日に送信するメッセージの数に応じて、複数のレベルから適切なものを選びます。 無料レベルは、テストおよび評価用です。 ハブに接続できるデバイスは 500 個で、1 日に許可されるメッセージ数は最大 8,000 件です。 Azure サブスクリプションごとに、Free レベルの IoT ハブを 1 つ作成できます。

      IoT Hub デバイス ストリームのクイックスタートに取り組んでいる場合は、Free レベルを選択してください。

    • [IoT Hub ユニット] : ユニットごとに許可される 1 日あたりのメッセージの数は、ハブの価格レベルによって決まります。 たとえば、ハブで 700,000 件のイングレス メッセージをサポートする場合は、S1 レベルのユニットを 2 つ選択します。 他のレベルのオプションについて詳しくは、適切な IoT Hub レベルの選択に関するページをご覧ください。

    • [Defender for IoT] : IoT およびお使いのデバイスに、脅威に対する保護のレイヤーを別途追加するには、これをオンにします。 このオプションは、Free レベルのハブでは使用できません。 この機能の詳細については、Azure Defender for IoT に関するページを参照してください。

    • [詳細設定] > [Device-to-cloud パーティション] : このプロパティでは、device-to-cloud メッセージがそのメッセージの同時閲覧者数に関連付けられます。 ほとんどのハブでは、4 つのパーティションのみが必要となります。

  7. 次へ:[Next](次へ) を選択して、次の画面に進みます。

    タグは、名前と値の組です。 複数のリソースおよびリソース グループに同じタグを割り当てることで、リソースを分類したり、課金情報を統合したりすることができます。 このドキュメントでは、タグを追加しません。 詳細については、タグを使用した Azure リソースの整理に関するページを参照してください。

    Azure portal を使用してハブにタグを割り当てる。

  8. 次へ:次へ: レビューと作成 をクリックして、選択内容を確認します。 次の画面のようになります。ただし、表示されるのはハブの作成時に選択した値です。

    新しいハブを作成するための情報を確認する。

  9. [作成] を選択して新しいハブのデプロイを開始します。 ハブの作成中、数分間にデプロイが進行中になります。 デプロイが完了したら、 [リソースに移動] を選択し、新しいハブを開きます。

デバイスの登録

前の「クイック スタート: デバイスから IoT Hub への利用統計情報の送信」を完了した場合は、この手順を省略できます。

デバイスを IoT Hub に接続するには、あらかじめ IoT Hub に登録しておく必要があります。 このクイック スタートでは、Azure Cloud Shell を使用して、シミュレートされたデバイスを登録します。

  1. Azure Cloud Shell で次のコマンドを実行してデバイス ID を作成します。

    YourIoTHubName: このプレースホルダーは、実際の IoT Hub に対して選んだ名前に置き換えてください。

    MyNodeDevice: これは、登録するデバイスの名前です。 示されているように、MyNodeDevice を使用することをお勧めします。 デバイスに別の名前を選択した場合は、この記事全体でその名前を使用する必要があります。また、サンプル アプリケーションを実行する前に、アプリケーション内のデバイス名を更新してください。

    az iot hub device-identity create \
      --hub-name {YourIoTHubName} --device-id MyNodeDevice
    
  2. Azure Cloud Shell で次のコマンドを実行して、登録したデバイスの "デバイス接続文字列" を取得します。

    YourIoTHubName: このプレースホルダーは、実際の IoT Hub に対して選んだ名前に置き換えてください。

    az iot hub device-identity connection-string show \
      --hub-name {YourIoTHubName} \
      --device-id MyNodeDevice \
      --output table
    

    次のようなデバイス接続文字列をメモしておきます。

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

    この値は、このクイック スタートの後の方で使います。

  3. また、バックエンド アプリケーションが IoT ハブに接続してメッセージを取得できるようにするには、"サービス接続文字列" が必要です。 次のコマンドを実行すると、IoT ハブのサービス接続文字列が取得されます。

    YourIoTHubName: このプレースホルダーは、実際の IoT Hub に対して選んだ名前に置き換えてください。

    az iot hub connection-string show \
      --policy-name service --name {YourIoTHubName} --output table
    
    

    次のようなサービス接続文字列をメモしておきます。

    HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

    この値は、このクイック スタートの後の方で使います。 このサービス接続文字列は、前の手順でメモしたデバイス接続文字列とは異なります。

ダイレクト メソッドの呼び出しをリッスンする

シミュレートされたデバイス アプリケーションは、IoT Hub 上のデバイス固有エンドポイントに接続し、シミュレートされた利用統計情報を送信して、Hub からのダイレクト メソッド呼び出しをリッスンします。 このクイック スタートでは、Hub からのダイレクト メソッド呼び出しは、利用統計情報の送信間隔を変更するようデバイスに指示します。 シミュレートされたデバイスでは、ダイレクト メソッドを実行した後、ハブに受信確認が返送されます。

  1. ローカル ターミナル ウィンドウで、サンプルの Node.js プロジェクトのルート フォルダーに移動します。 次に、iot-hub\Quickstarts\simulated-device-2 フォルダーに移動します。

  2. 適当なテキスト エディターで SimulatedDevice.js ファイルを開きます。

    connectionString 変数の値を、前にメモしたデバイス接続文字列に置き換えます。 その後、変更を SimulatedDevice.js に保存します。

  3. ローカル ターミナル ウィンドウで次のコマンドを実行して、必要なライブラリをインストールし、シミュレートされたデバイス アプリケーションを実行します。

    npm install
    node SimulatedDevice.js
    

    次のスクリーンショットは、シミュレートされたデバイス アプリケーションが IoT Hub にテレメトリを送信したときの出力を示しています。

    シミュレートされたデバイスを実行する

ダイレクト メソッドを呼び出す

バックエンド アプリケーションは、IoT ハブ上のサービス側エンドポイントに接続します。 アプリケーションにより、IoT ハブを通してデバイスへのダイレクト メソッド呼び出しが行われた後、受信確認がリッスンされます。 通常、IoT Hub のバックエンド アプリケーションはクラウドで実行されます。

  1. 別のローカル ターミナル ウィンドウで、サンプルの Node.js プロジェクトのルート フォルダーに移動します。 その後、iot-hub\Quickstarts\back-end-application フォルダーに移動します。

  2. 適当なテキスト エディターで BackEndApplication.js ファイルを開きます。

    connectionString 変数の値を、前にメモしたサービス接続文字列に置き換えます。 変更を BackEndApplication.js に保存します。

  3. ローカル ターミナル ウィンドウで次のコマンドを実行して、必要なライブラリをインストールし、バックエンド アプリケーションを実行します。

    npm install
    node BackEndApplication.js
    

    次のスクリーンショットは、アプリケーションによりデバイスに対してダイレクト メソッド呼び出しが行われ、受信確認が受診されたときの出力を示します。

    アプリケーションがデバイスに対してダイレクト メソッドの呼び出しを行うときの出力

    バックエンド アプリケーションを実行した後、シミュレートされたデバイスを実行しているコンソール ウィンドウにメッセージが表示され、メッセージの送信速度が変わります。

    シミュレートされたクライアントに変更があったときの出力

このクイックスタートでは、2 つの Python アプリケーションを使用します。バックエンド アプリケーションから呼び出されたダイレクト メソッドに応答するシミュレートされたデバイスのアプリケーションと、シミュレートされたデバイスのダイレクト メソッドを呼び出すバックエンド アプリケーションです。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料で作成できます

  • Python 3.7 以上。 サポートされる他のバージョンの Python については、「Azure IoT デバイスの機能」を参照してください。

  • GitHub のサンプル Python プロジェクト。 GitHub リポジトリの [Code](コード) ボタンを使用して、サンプルをダウンロードまたはクローンします。

  • ファイアウォールでポート 8883 が開放されていること。 このクイックスタートのデバイス サンプルでは、ポート 8883 を介して通信する MQTT プロトコルを使用しています。 このポートは、企業や教育用のネットワーク環境によってはブロックされている場合があります。 この問題の詳細と対処方法については、「IoT Hub への接続 (MQTT)」を参照してください。

  • Azure Cloud Shell で Bash 環境を使用します。

    新しいウィンドウで Cloud Shell を起動する

  • 必要に応じて、Azure CLI をインストールして、CLI リファレンス コマンドを実行します。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

注意

この記事では、azure-iot と呼ばれる、Azure IoT 拡張機能の最新バージョンを使用します。 従来のバージョンは azure-cli-iot-ext と呼ばれます。一度にインストールできるバージョンは 1 つだけです。 コマンド az extension list を使用すると、現在インストールされている拡張機能を確認できます。

拡張機能の従来のバージョンを削除するには、az extension remove --name azure-cli-iot-ext を使用します。

拡張機能の新しいバージョンを追加するには、az extension add --name azure-iot を使用します。

インストール済みの拡張機能を表示するには、az extension list を使用してください。

IoT Hub の作成

前出のデバイスから IoT Hub への利用統計情報の送信に関するクイック スタートを完了した場合は、この手順を省略できます。

ここでは、Azure portal を使用して IoT ハブを作成する方法について説明します。

  1. Azure portal にサインインします。

  2. Azure ホームページから [+ リソースの作成] ボタンを選択し、 [Marketplace を検索] フィールドに「IoT Hub」と入力します。

  3. 検索結果の [IoT Hub] を選択し、 [作成] を選択します。

  4. [基本] タブで、次のように各フィールドに入力します。

    • サブスクリプション:ハブで使用するサブスクリプションを選択します。

    • リソース グループ:リソース グループを選択するか、新しく作成します。 新たに作成するには、 [新規作成] を選択して、使用する名前を入力します。 既存のリソース グループを使用するには、そのリソース グループを選択します。 詳しくは、「Manage Azure Resource Manager resource groups (Azure Resource Manager のリソース グループの管理)」をご覧ください。

    • [リージョン] :ハブを配置するリージョンを選択します。 ユーザーに最も近い場所を選択します。 一部の機能 (IoT Hub デバイス ストリームなど) は、特定のリージョンでのみご利用いただけます。 これらの制限のある機能については、サポート対象のいずれかのリージョンを選択する必要があります。

    • [IoT Hub 名] : ハブの名前を入力します。 この名前は、3 から 50 文字の英数字でグローバルに一意である必要があります。 名前には、ダッシュ ('-') 文字を含めることもできます。

    重要

    IoT ハブは DNS エンドポイントとして公開されるため、名前を付ける際に機密情報や個人を特定できる情報を入力しないように注意してください。

    Azure portal でハブを作成する。

  5. Next:Networking(次へ: ネットワーク) を選択して、ハブの作成を続けます。

    デバイスから IoT Hub に接続するために使用できるエンドポイントを選択します。 既定の設定である [パブリック エンドポイント (すべてのネットワーク)] を選択できるほか、 [Public endpoint (selected IP ranges)](パブリック エンドポイント (選択された IP 範囲)) または [プライベート エンドポイント] を選択できます。 この例では、既定の設定をそのまま使用しています。

    接続できるエンドポイントを選択する。

  6. Next:Management(次へ: 管理) を選択して、ハブの作成を続けます。

    Azure portal を使用して新しいハブのサイズとスケールを設定する。

    ここでは、既定の設定をそのまま使用できます。 必要に応じて、次のフィールドに変更を加えることができます。

    • [価格とスケールティア] : 選択したレベル。 必要な機能およびソリューションで 1 日に送信するメッセージの数に応じて、複数のレベルから適切なものを選びます。 無料レベルは、テストおよび評価用です。 ハブに接続できるデバイスは 500 個で、1 日に許可されるメッセージ数は最大 8,000 件です。 Azure サブスクリプションごとに、Free レベルの IoT ハブを 1 つ作成できます。

      IoT Hub デバイス ストリームのクイックスタートに取り組んでいる場合は、Free レベルを選択してください。

    • [IoT Hub ユニット] : ユニットごとに許可される 1 日あたりのメッセージの数は、ハブの価格レベルによって決まります。 たとえば、ハブで 700,000 件のイングレス メッセージをサポートする場合は、S1 レベルのユニットを 2 つ選択します。 他のレベルのオプションについて詳しくは、適切な IoT Hub レベルの選択に関するページをご覧ください。

    • [Defender for IoT] : IoT およびお使いのデバイスに、脅威に対する保護のレイヤーを別途追加するには、これをオンにします。 このオプションは、Free レベルのハブでは使用できません。 この機能の詳細については、Azure Defender for IoT に関するページを参照してください。

    • [詳細設定] > [Device-to-cloud パーティション] : このプロパティでは、device-to-cloud メッセージがそのメッセージの同時閲覧者数に関連付けられます。 ほとんどのハブでは、4 つのパーティションのみが必要となります。

  7. 次へ:[Next](次へ) を選択して、次の画面に進みます。

    タグは、名前と値の組です。 複数のリソースおよびリソース グループに同じタグを割り当てることで、リソースを分類したり、課金情報を統合したりすることができます。 このドキュメントでは、タグを追加しません。 詳細については、タグを使用した Azure リソースの整理に関するページを参照してください。

    Azure portal を使用してハブにタグを割り当てる。

  8. 次へ:次へ: レビューと作成 をクリックして、選択内容を確認します。 次の画面のようになります。ただし、表示されるのはハブの作成時に選択した値です。

    新しいハブを作成するための情報を確認する。

  9. [作成] を選択して新しいハブのデプロイを開始します。 ハブの作成中、数分間にデプロイが進行中になります。 デプロイが完了したら、 [リソースに移動] を選択し、新しいハブを開きます。

デバイスの登録

前の「クイック スタート: デバイスから IoT Hub への利用統計情報の送信」を完了した場合は、この手順を省略できます。

デバイスを IoT Hub に接続するには、あらかじめ IoT Hub に登録しておく必要があります。 このクイック スタートでは、Azure Cloud Shell を使用して、シミュレートされたデバイスを登録します。

  1. Azure Cloud Shell で次のコマンドを実行してデバイス ID を作成します。

    YourIoTHubName: このプレースホルダーは、実際の IoT Hub に対して選んだ名前に置き換えてください。

    MyPythonDevice: これは、登録するデバイスの名前です。 示されているように、MyPythonDevice を使用することをお勧めします。 デバイスに別の名前を選択した場合は、この記事全体でその名前を使用する必要があります。また、サンプル アプリケーションを実行する前に、アプリケーション内のデバイス名を更新してください。

    az iot hub device-identity create --hub-name {YourIoTHubName} --device-id MyPythonDevice
    
  2. Azure Cloud Shell で次のコマンドを実行して、登録したデバイスの "デバイス接続文字列" を取得します。

    YourIoTHubName: このプレースホルダーは、実際の IoT Hub に対して選んだ名前に置き換えてください。

    az iot hub device-identity connection-string show --hub-name {YourIoTHubName} --device-id MyPythonDevice --output table
    

    次のようなデバイス接続文字列をメモしておきます。

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

    この値は、このクイック スタートの後の方で使います。

  3. また、バックエンド アプリケーションが IoT ハブに接続してメッセージを取得できるようにするには、"サービス接続文字列" が必要です。 次のコマンドを実行すると、IoT ハブのサービス接続文字列が取得されます。

    YourIoTHubName: このプレースホルダーは、実際の IoT ハブに対して選んだ名前に置き換えてください。

    az iot hub connection-string show \
      --policy-name service \
      --hub-name {YourIoTHubName} \
      --output table
    

    次のようなサービス接続文字列をメモしておきます。

    HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

    この値は、このクイック スタートの後の方で使います。 このサービス接続文字列は、前の手順でメモしたデバイス接続文字列とは異なります。

ダイレクト メソッドの呼び出しをリッスンする

シミュレートされたデバイス アプリケーションは、IoT Hub 上のデバイス固有エンドポイントに接続し、シミュレートされた利用統計情報を送信して、Hub からのダイレクト メソッド呼び出しをリッスンします。 このクイック スタートでは、Hub からのダイレクト メソッド呼び出しは、利用統計情報の送信間隔を変更するようデバイスに指示します。 シミュレートされたデバイスでは、ダイレクト メソッドを実行した後、ハブに受信確認が返送されます。

  1. ローカル ターミナル ウィンドウで、サンプルの Python プロジェクトのルート フォルダーに移動します。 次に、iot-hub\Quickstarts\simulated-device-2 フォルダーに移動します。

  2. 適当なテキスト エディターで SimulatedDevice.py ファイルを開きます。

    CONNECTION_STRING 変数の値を、前にメモしたデバイス接続文字列に置き換えます。 その後、変更を SimulatedDevice.py に保存します。

  3. ローカル ターミナル ウィンドウで次のコマンドを実行して、シミュレートされたデバイス アプリケーションに必要なライブラリをインストールします。

    pip install azure-iot-device
    
  4. ローカル ターミナル ウィンドウで次のコマンドを実行して、シミュレートされたデバイス アプリケーションを実行します。

    python SimulatedDevice.py
    

    次のスクリーンショットは、シミュレートされたデバイス アプリケーションが IoT Hub にテレメトリを送信したときの出力を示しています。

    シミュレートされたデバイスを実行する

ダイレクト メソッドを呼び出す

バックエンド アプリケーションは、IoT ハブ上のサービス側エンドポイントに接続します。 アプリケーションにより、IoT ハブを通してデバイスへのダイレクト メソッド呼び出しが行われた後、受信確認がリッスンされます。 通常、IoT Hub のバックエンド アプリケーションはクラウドで実行されます。

  1. 別のローカル ターミナル ウィンドウで、サンプルの Python プロジェクトのルート フォルダーに移動します。 その後、iot-hub\Quickstarts\back-end-application フォルダーに移動します。

  2. 適当なテキスト エディターで BackEndApplication.py ファイルを開きます。

    CONNECTION_STRING 変数の値を、前にメモしたサービス接続文字列に置き換えます。 変更を BackEndApplication.py に保存します。

  3. ローカル ターミナル ウィンドウで次のコマンドを実行して、シミュレートされたデバイス アプリケーションに必要なライブラリをインストールします。

    pip install azure-iot-hub
    
  4. ローカル ターミナル ウィンドウで次のコマンドを実行して、バックエンド アプリケーションを実行します。

    python BackEndApplication.py
    

    次のスクリーンショットは、アプリケーションによりデバイスに対してダイレクト メソッド呼び出しが行われ、受信確認が受診されたときの出力を示します。

    バックエンド アプリケーションを実行する

    バックエンド アプリケーションを実行した後、シミュレートされたデバイスを実行しているコンソール ウィンドウにメッセージが表示され、メッセージの送信速度が変わります。

    シミュレートされたクライアントでの変更

リソースをクリーンアップする

次の推奨記事に進む場合は、既に作成したリソースを維持して、再利用することができます。

それ以外の場合は、課金されないようにするために、この記事で作成した Azure リソースを削除してもかまいません。

重要

リソース グループを削除すると、元に戻すことができません。 リソース グループとそこに含まれるすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 IoT ハブを、保持したいリソースが含まれている既存のリソース グループ内に作成した場合は、リソース グループを削除するのではなく、IoT Hub リソースだけを削除してください。

名前でリソース グループを削除するには、以下の手順を実行します。

  1. Azure portal にサインインし、 [リソース グループ] を選択します。

  2. [名前でフィルター処理してください] テキスト ボックスに、IoT ハブが含まれているリソース グループの名前を入力します。

  3. 結果一覧のリソース グループの右側で、 [...][リソース グループの削除] の順に選択します。

    削除

  4. リソース グループの削除の確認を求めるメッセージが表示されます。 確認のためにもう一度リソース グループの名前を入力し、 [削除] を選択します。 しばらくすると、リソース グループとそこに含まれているすべてのリソースが削除されます。

次のステップ

このクイックスタートでは、サービス アプリケーションからデバイス上のダイレクト メソッドを呼び出し、シミュレートされたデバイス アプリケーションでダイレクト メソッド呼び出しに応答しました。

デバイスからクラウドへのメッセージをクラウド内の異なる宛先にルーティングする方法を学習するには、次のチュートリアルに進んでください。