クイックスタート: IoT Core デバイス レジストリを作成する

IoT Core デバイス レジストリを作成する

このページでは、Google Cloud Console を使用して Cloud IoT Core デバイス レジストリを作成し、デバイスを登録する方法について説明します。サンプルを実行し、端末に接続して端末のテレメトリー イベントを公開する方法についても学びます。


このタスクを Cloud Shell エディタで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


以降のセクションでは、[ガイドを表示] をクリックした場合と同じ手順について説明します。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  4. Cloud IoT and Cloud Pub/Sub API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  7. Cloud IoT and Cloud Pub/Sub API を有効にします。

    API を有効にする

ローカル環境を設定し、前提条件をインストールする

  1. gcloud CLI をインストールして初期化します。Cloud IoT Core を使用するには、gcloud CLI のバージョン 173.0.0 以降が必要です。

  2. Node.js 開発環境を設定します。

    別の方法として、Google Cloud Shell を使用することもできます。gcloud CLI と Node.js には、あらかじめインストールされています。

端末レジストリの作成

  1. Cloud Console で、Google Cloud IoT Core ページに移動します。

    Google Cloud IoT Core ページに移動

  2. [レジストリを作成する] をクリックします。

  3. [レジストリ ID] 用の「my-registry」を入力します。

  4. 米国内の場合は、[リージョン] で us-central1 を選択します。米国以外の場合、希望するリージョンを選択します。

  5. [プロトコル] には、[MQTT] を選択します。

  6. [デフォルトのテレメトリーのトピック] プルダウン リストで、[トピックの作成] を選択します。

  7. [トピックを作成する] ダイアログの [名前] フィールドに「my-device-events」を入力します。

  8. [トピックの作成] ダイアログで、[作成] をクリックします。

  9. [デバイスの状態のトピック] と [証明書の値] は省略可であるため、空白のままにします。

  10. Cloud IoT Core ページで、[作成] をクリックします。

デバイス テレメトリー イベントをパブリッシュするために、Cloud Pub/Sub トピックでデバイス レジストリを作成しました。

認証情報を作成する

デバイスの鍵ペアを生成する

ターミナル ウィンドウを開き、次の複数行のコマンドを実行して、RS256 鍵を作成します。

openssl req -x509 -newkey rsa:2048 -keyout rsa_private.pem -nodes \
    -out rsa_cert.pem -subj "/CN=unused"

ルート認証情報をダウンロードする

Google の CA ルート証明書をダウンロードし、ダウンロードした場所をメモします。以下の Node.js コマンドを実行するときにファイルパスが必要になります。

次のセクションでは、レジストリにデバイスを追加し、公開鍵をデバイスに関連付けます。

レジストリに端末を追加する

  1. [レジストリ] ページで [my-registry] を選択します。

  2. [デバイス] タブを選択し、[デバイスを作成する] をクリックします。

  3. [デバイス ID] に、「my-device」と入力します。

  4. [デバイスの通信] には、[許可] を選択します。

  5. 公開鍵情報を [認証] フィールドに追加します。

    • rsa_cert.pem の内容をクリップボードにコピーします。-----BEGIN CERTIFICATE----------END CERTIFICATE----- という行を必ず含めてください。
    • [公開鍵の形式] には、[RS256_X509] を選択します。
    • 公開鍵を [公開鍵の値] ボックスに貼り付けます。
    • [追加] をクリックして、RS256_X509 鍵をデバイスに関連付けます。
  6. [デバイス メタデータ] フィールドは省略可です。空白のままにします。

  7. [作成] をクリックします。

レジストリに端末が追加されました。デバイスの [デバイスの詳細] ページに RS256_X509 鍵が表示されます。

Node.js サンプルを実行して仮想端末を接続し、テレメトリーを表示する

  1. GitHub から Cloud IoT Core Node.js のサンプルを取得します。Cloud IoT Core のサンプルは iot ディレクトリにあります。

    git clone https://github.com/googleapis/nodejs-iot.git
    
  2. クローン作成されたリポジトリで、iot/mqtt_example ディレクトリに移動します。残りのステップをこのディレクトリで行います。

    cd nodejs-iot/samples/mqtt_example
    
  3. 前のセクションで作成した秘密鍵(rsa_private.pem)を現在のディレクトリ(samples/mqtt_example)にコピーします。

    cp ../../../rsa_private.pem .
    
  4. Node.js 依存関係をインストールします。

    npm install
    
  5. 次のコマンドを実行し、レジストリの Pub/Sub トピックにサブスクリプションを作成します。このとき、ご自分のプロジェクト ID を使用してください。

    gcloud pubsub subscriptions create \
        projects/PROJECT_ID/subscriptions/my-subscription \
        --topic=projects/PROJECT_ID/topics/my-device-events
    
  6. 次のコマンドを実行し、MQTT ブリッジを使用して仮想デバイスを Cloud IoT Core に接続します。このとき、ご自分のプロジェクト ID を使用してください。serverCertFile が Google のルート証明書をダウンロードした場所に設定されていることを確認します。

     node cloudiot_mqtt_example_nodejs.js \
        mqttDeviceDemo \
        --projectId=PROJECT_ID \
        --cloudRegion=REGION \
        --registryId=my-registry \
        --deviceId=my-device \
        --privateKeyFile=rsa_private.pem \
        --serverCertFile=roots.pem \
        --numMessages=25 \
        --algorithm=RS256
    

    出力には、サンプルのデバイスがテレメトリー トピックにメッセージをパブリッシュしていることが示されます。25 個のメッセージが公開されます。

  7. 次のコマンドを実行して、テレメトリー トピックにパブリッシュされたメッセージを読み取ります。

    gcloud pubsub subscriptions pull --auto-ack \
        projects/PROJECT_ID/subscriptions/my-subscription
    
  8. 追加メッセージを表示するには、subscriptions pull コマンドを繰り返します。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. Cloud Console で、Google Cloud Pub/Sub の [トピック] ページに移動します。

    Google Cloud Pub/Sub の [トピック] ページに移動

  2. リスト内のトピックの横にあるチェックボックスをオンにしてから、ページの上部にある [削除] をクリックします。

  3. Cloud Console で、[レジストリ] ページに移動します。

    [レジストリ] ページに移動する

  4. リスト内のレジストリの名前をクリックします。

  5. リスト内のデバイスの名前をクリックします。

  6. [デバイスの詳細] ページの上部にある [削除] をクリックします。削除を確認するために、デバイスの名前を入力します。

    レジストリを削除するには、まずレジストリ内のすべてのデバイスを削除する必要があります。このレジストリに他のデバイスを追加した場合は、それらも削除してください。

  7. Cloud Console で、[レジストリ] ページに移動します。

    [レジストリ] ページに移動する

  8. リスト内のレジストリの名前をクリックします。

  9. [レジストリの詳細] ページの上部にある [削除] をクリックします。

次のステップ