すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:MQTT ゲートウェイの作成

最終更新日:Apr 29, 2025

MQTT (Message Queuing Telemetry Transport) ゲートウェイを使用してデバイスを IoT Platform に接続する場合、最初に MQTT ゲートウェイを作成する必要があります。このトピックでは、MQTT ゲートウェイを作成する方法について説明します。

前提条件

排他的 Enterprise Edition インスタンスが購入済みであること。インスタンスの購入方法については、「Enterprise Edition インスタンスを購入する」をご参照ください。

背景情報

ゲートウェイの使用方法については、「MQTT ゲートウェイ」をご参照ください。

ゲートウェイの作成

  1. IoT Platform コンソール にログインします。

  2. [概要] タブで、管理する排他的 Enterprise Edition インスタンスをクリックします。

  3. 左側のナビゲーションウィンドウで、[デバイス] > [ゲートウェイ] を選択します。表示されたページで、[ゲートウェイを追加] をクリックします。

  4. [基本情報] ステップで、パラメーターを設定し、[次へ] をクリックします。次の表にパラメーターを示します。

    パラメーター

    説明

    ゲートウェイ名

    ゲートウェイの名前。名前はインスタンス内で一意である必要があります。名前は 4 ~ 30 文字で、文字、数字、およびアンダースコア(_)を含めることができます。

    プロトコル

    [MQTT] を選択します。

    カスタムポート番号

    有効値:1024 ~ 65535。デフォルト値:1883。

    データ解析を有効にする

    ゲートウェイデバイスのデータ解析機能を有効にするかどうかを指定します。

    IoT Platform はゲートウェイデバイスのデータを通過させます。ビジネス要件に基づいてデータ解析機能を有効にすることができます。データ解析スクリプトで transformPayload() メソッドを実装して、デバイスから送信された生データを標準 JSON 形式のデータ、または TSL (Thing Specification Language) モデルの Alink プロトコルで定義されたデータ形式に変換できます。データ解析機能の詳細については、「メッセージの解析」をご参照ください。

    認証タイプ

    一方検証

    このオプションを選択した場合、デバイスの検証情報を IoT Platform にインポートする必要があります。検証情報には、デバイスのユーザー名、パスワード、およびシリアル番号 (SN) が含まれます。IoT Platform は、検証情報に基づいてデバイスを検証します。

    サードパーティ認証

    このオプションを選択した場合、使用するサードパーティ検証サービスを指定する必要があります。Alibaba Cloud Function Compute または HTTPS ベースのデバイス検証サービスを選択できます。Alibaba Cloud Function Compute の詳細については、「Function Compute とは」をご参照ください。

    • [alibaba Cloud Function Compute]: このオプションを選択した場合、[デバイス検証済み FC サービス][デバイス検証済み FC 関数]、および [承認] パラメーターを設定する必要があります。デバイス検証のために既存の Function Compute 関数を選択するか、新しい関数を作成できます。作成する関数の入力パラメーターと出力パラメーターは有効である必要があります。カスタム関数名を指定できます。デバイス検証関数の入力パラメーターと出力パラメーターの要件については、「デバイス検証用 Function Compute 関数のパラメーター」をご参照ください。

      • [サービスの作成] をクリックして Function Compute コンソールに移動し、サービスを作成します。Function Compute サービスの詳細については、「サービスの管理」をご参照ください。

      • [関数の作成] をクリックして Function Compute コンソールに移動し、関数を作成します。Function Compute 関数の詳細については、「関数の管理」をご参照ください。

      • AliyunIOTAccessingFCRole ロールが使用できない場合は、[RAM ロールの作成] をクリックして RAM コンソールに移動し、ロールを作成します。RAM ロールの作成方法とロールへの権限の付与方法については、「RAM ロールの作成」をご参照ください。

    • [外部 HTTPS]: このオプションを選択した場合、[デバイス検証用 HTTPS URL] パラメーターを設定する必要があります。[カスタムデバイス検証パラメーター] はオプションです。

      • デバイス検証の URL は https:// で始まる必要があります。IoT Platform は HTTPS リクエストを送信してカスタムデバイス検証サービスを呼び出します。HTTP リクエストの入力パラメーターと出力パラメーターは有効である必要があります。パラメーターの要件については、「デバイス検証用 HTTPS リクエストのパラメーター」をご参照ください。

      • キーと値のペア形式で最大 10 個のカスタムデバイス検証パラメーターを設定できます。

        • [パラメーターキー]: 最大 64 文字のパラメーター名。

        • [パラメーター値]: 最大 64 文字のパラメーター値。${変数名} 形式で [パラメーター値] フィールドを変数に設定できます。以下の変数がサポートされています。

          • ${username}: MQTT 接続を確立するためにデバイスから送信されたユーザー名。

          • ${password}: MQTT 接続を確立するためにデバイスから送信されたパスワード。

          • ${clientId}: MQTT 接続を確立するためにデバイスから送信されたクライアント ID。

          • ${cert.***}: デバイス証明書。*** は、cnserial、または issuer にすることができます。

          • ${userProperties.***}: CONNECT パケットのカスタム UserProperty データ。*** はカスタムフィールドです。

    X.509 証明書ベースのデバイス検証を有効にする

    X.509 証明書ベースのデバイス検証を有効にする

    [OCSP を有効にする] パラメーターの有効値:

    • [無効]

    • [サーバー証明書の OCSP 検証]

    • [クライアント証明書の OCSP 検証]

    • [クライアントとサーバー側の OCSP 検証]

    説明
    • OCSP (Online Certificate Status Protocol) は、認証局 (CA) が証明書の失効ステータスを確認するために使用するインターネットプロトコルです。

    • クライアントがサーバーにメッセージを送信すると、サーバーはクライアント証明書に対して OCSP 検証を実行します。クライアント証明書が失効している場合、サーバーは接続を閉じます。

    • キャッシュされた OCSP 情報のデフォルトの生存時間 (TTL) は 5 分から 1 時間です。キャッシュされた OCSP 情報の有効期限が切れると、サーバー側の OCSP ステープリングは、OCSP 情報が再取得されるまで有効になりません。

    X.509 証明書ベースのデバイス検証を無効にする

    [OCSP を有効にする] パラメーターの有効値:

    • [無効]

    • [サーバー証明書の OCSP 検証]

    説明
    • OCSP (Online Certificate Status Protocol) は、認証局 (CA) が証明書の失効ステータスを確認するために使用するインターネットプロトコルです。

    • クライアントがサーバーにメッセージを送信すると、サーバーはクライアント証明書に対して OCSP 検証を実行します。クライアント証明書が失効している場合、サーバーは接続を閉じます。

    • キャッシュされた OCSP 情報のデフォルトの生存時間 (TTL) は 5 分から 1 時間です。キャッシュされた OCSP 情報の有効期限が切れると、サーバー側の OCSP ステープリングは、OCSP 情報が再取得されるまで有効になりません。

    表 1 デバイス検証用 Function Compute 関数のパラメーター

    タイプ

    パラメーター

    データ型

    必須

    説明

    リクエストパラメーター

    userName

    String

    はい

    MQTT 経由でデバイスを IoT Platform に接続するために必要なユーザー名。

    ユーザー名は 4 ~ 32 文字で、文字、数字、ハイフン (-)、アンダースコア (_)、アットマーク (@)、ピリオド (.)、およびコロン (:) を含めることができます。ユーザー名はプロダクト内で一意である必要があります。

    password

    String

    はい

    MQTT 経由でデバイスを IoT Platform に接続するために必要なパスワード。

    パスワードは 1 ~ 32 文字で、文字、数字、ハイフン (-)、アンダースコア (_)、アットマーク (@)、ピリオド (.)、およびコロン (:) を含めることができます。

    clientId

    String

    はい

    MQTT 経由でデバイスを IoT Platform に接続するために必要なクライアント ID。

    certificateCommonName

    String

    いいえ

    X.509 証明書仕様の commonName フィールド。X.509 証明書を使用してデバイスの ID を検証する場合は、このパラメーターを設定する必要があります。

    レスポンスパラメーター

    result

    String

    はい

    検証結果。値 true は検証が成功したことを示します。値 false は検証が失敗したことを示します。

    message

    String

    いいえ

    検証に失敗した場合に返されるエラーメッセージ。

    deviceName

    String

    いいえ

    検証が成功した場合に返されるユーザー名に対応する DeviceName。

    デバイスを IoT Platform に初めて接続すると、IoT Platform は deviceName パラメーターの戻り値に基づいてデバイスを作成します。

    デバイス検証用 Function Compute 関数のサンプルレスポンス:

    {
        "result":"true",
        "deviceName":"device_TH", // デバイス名
        "message":"" // メッセージ
    }

    表 2 デバイス検証用 HTTPS リクエストのパラメーター

    タイプ

    パラメーター

    データ型

    必須

    説明

    リクエストメソッド

    メソッド

    String

    はい

    値を POST に設定します。

    POST
    Content-Type: application/json // データエンコード形式
    body:{
        "username": "UN001", // ユーザー名
        "password": "PW001", // パスワード
        "certificateCommonName": "CN001" // 証明書の共通名
    }

    ヘッダー

    Content-Type

    String

    はい

    HTTPS ヘッダーで定義されているデータエンコード形式。application/json のみ有効です。

    別のエンコード形式が指定されている場合、エラーが発生します。

    リクエスト本文

    username

    String

    はい

    MQTT 経由でデバイスを IoT Platform に接続するために必要なユーザー名。

    ユーザー名は 4 ~ 32 文字で、文字、数字、ハイフン (-)、アンダースコア (_)、アットマーク (@)、ピリオド (.)、およびコロン (:) を含めることができます。デバイスのユーザー名はプロダクト内で一意である必要があります。

    password

    String

    はい

    MQTT 経由でデバイスを IoT Platform に接続するために必要なパスワード。

    パスワードは 1 ~ 32 文字で、文字、数字、ハイフン (-)、アンダースコア (_)、アットマーク (@)、ピリオド (.)、およびコロン (:) を含めることができます。

    certificateCommonName

    String

    いいえ

    X.509 証明書仕様の commonName フィールド。X.509 証明書を使用してデバイスの ID を検証する場合は、このパラメーターを設定する必要があります。

    レスポンス本文

    deviceName

    String

    はい

    検証が成功した場合に返されるユーザー名に対応する DeviceName。

    デバイスを IoT Platform に初めて接続すると、IoT Platform は deviceName パラメーターの戻り値に基づいてデバイスを作成します。

    body:{
        "deviceName": "device_TH" // デバイス名
    }
  5. [証明書の設定] ステップを完了し、[OK] をクリックします。

    証明書の設定

    説明

    このステップで設定する証明書は PEM 形式です。

    • [サーバー証明書][サーバー証明書の秘密鍵] パラメーターを設定する必要があります。

      MQTT ゲートウェイを使用して IoT Platform に接続されたデバイスは、TLS (Transport Layer Security) のみサポートしています。ビジネスセキュリティを確保するために、デバイスが接続されている元のサーバーの CA 証明書と秘密鍵を指定する必要があります。

      たとえば、証明書チェーンに、サーバールート証明書、サーバー中間証明書、サーバー証明書の順にソートされた証明書が含まれているとします。サーバー中間証明書には、中間証明書 A や中間証明書 B など、複数レベルの中間証明書を含めることができます。この場合、このステップのパラメーターは次の手順に基づいて設定する必要があります。

      • [サーバー証明書]: 証明書チェーンの証明書を逆の順序で指定します。最初にサーバー証明書を指定し、次にサーバー中間証明書 (中間証明書 B と中間証明書 A) を指定します。

      • [サーバー証明書の秘密鍵]: サーバー証明書の秘密鍵を指定します。

    • X.509 証明書ベースのデバイス検証を有効にした場合は、[デバイスルート証明書] パラメーターを設定する必要があります。

      たとえば、証明書チェーンに、デバイスルート証明書、デバイス中間証明書、デバイス証明書の順にソートされた証明書が含まれているとします。デバイス中間証明書には、中間証明書 A や中間証明書 B など、複数レベルの中間証明書を含めることができます。この場合、このステップのパラメーターは次の手順に基づいて設定する必要があります。

      [デバイスルート証明書]: 証明書チェーンの証明書を逆の順序で指定します。最初にデバイス中間証明書 (中間証明書 B と中間証明書 A) を指定し、次にデバイスルート証明書を指定します。

    • 前のステップで [サーバー証明書の OCSP 検証] または [クライアントとサーバー側の OCSP 検証][信頼済み証明書] パラメーターを設定した場合は、このステップでサーバーのルート証明書に設定する必要があります。

  6. ゲートウェイページで、作成したゲートウェイの情報 (名前、ID、ゲートウェイ URL、ステータス、関連付けられているプロダクトなど) を確認します。

    重要

    ゲートウェイ URL を保存する必要があります。MQTT 経由でデバイスを IoT Platform に接続する場合は、MQTT エンドポイントをゲートウェイ URL に置き換える必要があります。MQTT エンドポイントとしてゲートウェイ URL を指定するか、CNAME レコードを設定して MQTT エンドポイントをゲートウェイ URL に解決できます。

    云网关列表

(オプション) ゲートウェイの変更

ゲートウェイを作成した後、ゲートウェイページでゲートウェイを見つけ、[アクション] 列の [編集] をクリックします。ゲートウェイの名前、証明書情報、および Function Compute 関数を変更できます。

编辑云网关

結果

ゲートウェイを作成すると、IoT Platform はプロダクトを作成し、ゲートウェイに関連付けます。プロダクト名は Gateway+${ゲートウェイ ID} 形式です。新しいプロダクトを表示するには、[デバイス] > [プロダクト] を選択します。新しいプロダクトは [プロダクト] ページに表示されます。

プロダクトの [アクション] 列の [表示] をクリックします。次の図に示すように、[プロダクトの詳細] ページでプロダクトの詳細を表示できます。

产品详情

次のステップ

  • [認証タイプ] パラメーターが [サードパーティ認証] に設定されているゲートウェイを作成し、そのゲートウェイを使用してデバイスを初めて IoT Platform に接続すると、IoT Platform は deviceName パラメーターの戻り値をデバイス名として使用してデバイスを自動的に作成します。

    MQTT.fx を使用してデバイスをシミュレートし、ゲートウェイを使用してデバイスを IoT Platform に接続して通信を有効にすることができます。詳細については、「MQTT.fx を使用してデバイスを接続する (デバイス検証用 Function Compute)」をご参照ください。

  • [認証タイプ] パラメーターが [一方検証] に設定されているゲートウェイを作成した後、デバイスの検証情報をインポートして、デバイスを関連するゲートウェイプロダクトに追加する必要があります。 詳細については、「複数のデバイスを追加する」をご参照ください。