Soracom

Users

ドキュメント
Home ドキュメント SORACOM Beam Microsoft Azure に送信する

Azure IoT Hub と接続する

Beam の MQTT エントリポイント を利用して、Azure IoT Hub (以下、IoT Hub) にデバイスからデータを送信したり、デバイスで IoT Hub からのデータを受信したりできます。

X.509 CA 証明書を使用するには

Beam では、X.509 CA 証明書を利用した認証にも対応しています。詳しくは、Azure IoT Hub と X.509 証明書で認証した接続をする を参照してください。

操作を始める前に準備が必要です (クリックして確認してください)

(1) SORACOM のアカウントを作成して IoT SIM を申し込む / デバイスを購入する

MQTT を使用できるデバイスと、そのデバイスで利用できる IoT SIM を用意します。

例:

SORACOM アカウントの作成方法、IoT SIM の申し込み方法、およびデバイスの購入方法について詳しくは、SORACOM の利用を始める を参照してください。

(2) Microsoft Azure アカウントを用意する

Microsoft Azure Portal にアクセスして、Microsoft Azure アカウントを作成します。

準備完了

ステップ 1: IoT Hub を準備してデバイスを作成する

IoT Hub を準備して、IoT Device を作成します。

IoT Hub を作成する

Microsoft Azure Portal にアクセスして、IoT Hub を作成します。詳しくは、Azure Portal を使用して IoT Hub を作成する を参照してください。

IoT Hub に接続するデバイスを作成する

IoT Hub にデバイスを作成します。

  1. Microsoft Azure Portal にアクセスし、IoT Hub を作成する で作成した IoT Hub の設定画面で [デバイス管理][デバイス] をクリックします。

  2. [+デバイスの追加] をクリックします。

  3. 以下の項目を設定します。

    項目説明
    [デバイス ID]IoT Hub でデバイスを区別するための識別子を入力します。1 つの IoT Hub に複数のデバイスを作成する場合は、prefix (例: myDevice-) とデバイスで利用する IoT SIM の IMSI (例: 295012345678901) を連結します (例: myDevice-295012345678901)。なお、IMSI は SIM 管理画面の 一覧表示 で確認できます。
    [認証の種類]「対称キー」を選択します。
    [このデバイスを IoT ハブに接続する]「有効化」を選択します。

  4. [保存][最新の情報に更新] の順にクリックします。

認証情報を確認する

SORACOM プラットフォームの認証情報ストアに登録する情報を、IoT Hub で確認します。

認証情報としては、以下のいずれかを使用できます。

認証情報説明
共有アクセスポリシーを利用する認証情報ストアに、共有アクセスポリシーの認証情報を 1 つだけ登録して、すべてのデバイスで共有する方法です。
デバイスごとに発行される認証情報を利用する認証情報ストアに、デバイスの数だけ認証情報を登録する方法です。デバイスごとの認証情報を使用したほうが、認証情報が漏洩したときの影響を小さくできます。
認証情報ストアに登録できるキーの個数の上限は緩和できます

認証情報ストアに登録できるキーの個数の上限 を超えた数のデバイスで Beam を利用する場合は、SORACOM サポートに上限緩和を申請してください。

共有アクセスポリシーを利用する

認証情報ストアに、共有アクセスポリシーの認証情報を 1 つだけ登録して、すべてのデバイスで共有する方法です。デバイス数が多い場合には、共有アクセスポリシーを利用できます。

  1. Microsoft Azure Portal にアクセスし、IoT Hub を作成する で作成した IoT Hub の設定画面で [セキュリティ設定][共有アクセスポリシー] をクリックします。

  2. 使用するポリシーを選択します。

    ここでは、デフォルトで作成されている [device] をクリックします。

  3. [プライマリキー] または [セカンダリキー][] をクリックします。

    プライマリキーまたはセカンダリキーが、クリップボードにコピーされます。

  4. 手順 3 でコピーした内容を、SORACOM ユーザーコンソールに登録します。

    具体的には、認証情報ストアの「認証情報を登録」画面で以下のように登録します。この画面の表示方法については、認証情報を登録する を参照してください。

    項目説明
    [認証情報 ID]認証情報を識別するために任意の文字列を入力します。ほかの認証情報と同じ名前は入力できません。また、登録後は変更できません。例: Shared-Access-Key
    [種別]「Azure IoT 認証情報」を選択します。
    [Access policy name]共有アクセスポリシー名 (例: device) を入力します。
    [Shared access key]手順 3 でコピーした共有アクセスポリシーのプライマリキーまたはセカンダリキーを入力します。

デバイスごとに発行される認証情報を利用する

認証情報ストアに、デバイスの数だけ認証情報を登録する方法です。以下の手順を 1 回行うと、1 個のデバイスの認証情報が登録されます。

  1. Microsoft Azure Portal にアクセスし、IoT Hub を作成する で作成した IoT Hub の設定画面で [デバイス管理][デバイス] をクリックします。

  2. デバイス ID をクリックします。

  3. [主キー] または [セカンダリキー][] をクリックして、クリップボードにコピーします。

  4. 手順 3 でコピーした内容を、SORACOM ユーザーコンソールに登録します。

    具体的には、認証情報ストアの「認証情報を登録」画面で以下のように登録します。この画面の表示方法については、認証情報を登録する を参照してください。

    項目説明
    [認証情報 ID]IoT Hub に接続するデバイスを作成する で指定したデバイス ID を入力します。それ以外の文字列を入力するとデータを送受信できません。例: myDevice-295012345678901
    [種別]「Azure IoT 認証情報」を選択します。
    [Access policy name]空欄のままにします。
    [Shared access key]手順 3 でコピーしたデバイスの主キーまたはセカンダリキーを入力します。

ステップ 2: SORACOM Beam を有効にして MQTT エントリポイントを設定する

ここでは、デバイスごとに発行される認証情報を利用する で登録した認証情報を利用する場合の設定例を説明します。

Beam の設定はグループに対して行います

ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。

  1. SIM グループ画面で [SORACOM Beam 設定] をクリックします。

    SIM グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。

  2. [+設定を追加する][MQTT エントリポイント] の順にクリックします。

  3. 以下の項目を設定します。

    項目説明
    [設定名]MQTT エントリポイントを識別するために任意の文字列を入力します。
    [種別]「Azure IoT Hub」を選択します。
    [ホスト名]IoT Hub のホスト名を入力します。ホスト名は、Microsoft Azure Portal にアクセスし、IoT Hub を作成する で作成した IoT Hub の設定画面にアクセスし、[概要] をクリックすると確認できます。例: {iot_hub_name}.azure-devices.net (*1)
    [認証情報]
    [IMSI 付与]トピックの末尾に IMSI を付与する場合は、オンにします。
    • (*1) {iot_hub_name} は、IoT Hub を作成する で作成した IoT Hub の名前を入力します。一方、プレースホルダー (#{imsi}) はそのまま入力します。IMSI を入力しないでください。

  4. [保存] をクリックします。

  5. IoT SIM が所属するグループを切り替えます。

    IoT SIM の Beam の設定が完了しました。

ステップ 3: デバイスでデータを Publish する (送信)

実際に Beam の MQTT エントリポイントを利用するデバイスで、データを Publish (送信) してみましょう。

送信データをモニターする (受信)

データを送信する前に、Azure IoT Hub に送信したデータをモニターします。操作手順について詳しくは、Azure IoT Hub に送信したデータをモニターする を参照してください。

なお、Azure CLI でデータをモニターする場合は、以下のように設定します。

項目説明
${resource_group_name}IoT Hub を作成する で作成した IoT Hub のリソースグループの名前を入力します。
${iot_hub_name}IoT Hub を作成する で作成した IoT Hub の名前を入力します。

デバイスでデータを Publish する (送信)

Beam の MQTT エントリポイントを利用するデバイスで、データを Publish (送信) してみましょう。

  1. Beam を有効化した SIM グループ に所属する IoT SIM を利用するデバイスで、以下の設定でデータを Publish します。

    項目説明
    ホスト名beam.soracom.io
    クライアント ID${device_id}。例: myDevice-295012345678901
    トピック名devices/${device_id}/messages/events/。例: devices/myDevice-295012345678901/messages/events/
    データ{"message": "Hello from SORACOM Beam!"}

    たとえば、デバイスが Raspberry Pi の場合は、mosquitto_pub を使用してデータを Publish できます。mosquitto_pub の具体的な操作については、mosquitto_pub でトピックにデータを Publish する (送信) を参照してください。

    データを Publish すると、モニターするツールにデータが出力されます。

    • Azure CLI でデータをモニターする場合は、以下のように出力されます。

      {
        "event": {
          "origin": "myDevice-295012345678901",
          "module": "",
          "interface": "",
          "component": "",
          "properties": {
            "application": {
              "imsi": "295012345678901"
            }
          },
          "payload": "{\"message\": \"Hello from SORACOM Beam!\"}"
        }
      }
      
    • Azure IoT エクスプローラーでデータをモニターする場合は、以下のように出力されます。この場合は、properties の下に application が出力されないことを確認しています (2022-06-27 現在)。

      {
        "body": {
          "message": "Hello from SORACOM Beam!"
        },
        "enqueuedTime": "Fri Jun 24 2022 10:00:00 GMT+0900 (Japan Standard Time)",
        "properties": {
          "imsi": "295012345678901"
        }
      }
      

ステップ 4: デバイスでトピックを Subscribe する (受信)

Beam の MQTT エントリポイントを利用するデバイスで、トピックを Subscribe (受信) してみましょう。ここでは、Azure IoT Hub の設定画面でデータを Publish (送信) します。

  1. Beam を有効化した SIM グループ に所属する IoT SIM を利用するデバイスで、以下の設定でトピックを Subscribe します。

    項目説明
    ホスト名beam.soracom.io
    クライアント ID${device_id}。例: myDevice-295012345678901
    トピック名devices/${device_id}/messages/devicebound/。例: devices/myDevice-295012345678901/messages/devicebound/

    たとえば、デバイスが Raspberry Pi の場合は、mosquitto_sub を使用してトピックを Subscribe できます。mosquitto_sub の具体的な操作については、mosquitto_sub でトピックを Subscribe する (受信) を参照してください。

    次に、IoT Hub の設定画面でデータを Publish (送信) します。

  2. Microsoft Azure Portal にアクセスし、IoT Hub を作成する で作成した IoT Hub の設定画面で [デバイス管理][デバイス] をクリックします。

  3. デバイス ID をクリックして、[デバイスへのメッセージ] をクリックします。

  4. [メッセージの本文] に「Hello from Azure Portal!」を入力して、[メッセージの送信] をクリックします。

    データを Publish すると、デバイスにデータが届きます。

    mosquitto_sub を利用した場合は、以下のように表示されます。

    Client myDevice-295012345678901 received PUBLISH (d0, q0, r0, m0, 'devices/myDevice-295012345678901/messages/devicebound/%24.to=%2Fdevices%2FmyDevice-295012345678901%2Fmessages%2FdeviceBound&%24.ct=text%2Fplain%3B%20charset%3DUTF-8&%24.ce=utf-8', ... (24 bytes))
    Hello from Azure Portal!