通信をテストする - AWS IoT Greengrass

AWS IoT Greengrass Version 1 は 2023 年 6 月 30 日に延長ライフフェーズに参加しました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き動作し、クラウドに接続します。に移行することを強くお勧めします。 AWS IoT Greengrass Version 2これにより、重要な新機能が追加され、プラットフォーム のサポートが追加されます

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

通信をテストする

  1. コンピュータと AWS IoT Greengrass コアデバイスが、同じネットワークを使用してインターネットに接続されていることを確認します。

    1. AWS IoT Greengrass コアデバイスで、次のコマンドを実行して IP アドレスを検索します。

      hostname -I
    2. コンピュータで、コアの IP アドレスを使用して次のコマンドを実行します。ping コマンドを停止するには、Ctrl + C を使用できます。

      ping IP-address

      次のような出力は、コンピュータと AWS IoT Greengrass コアデバイス間の通信が成功したことを示します (パケット損失 0%)。

      正常な ping コマンドの出力。
      注記

      を実行している EC2 インスタンスに ping を実行できない場合は AWS IoT Greengrass、インスタンスのインバウンドセキュリティグループルールで Echo リクエストメッセージの ICMP トラフィックが許可されていることを確認してください。詳細については、「Amazon EC2 ユーザーガイド」の「セキュリティグループへのルールの追加」を参照してください。 Amazon EC2

      Windows ホストコンピュータのセキュリティが強化された Windows ファイアウォールアプリケーションで、インバウンドエコーリクエストを許可するインバウンドルール ([File and Printer Sharing (Echo Request - ICMPv4-In)] など) を有効にするか、作成する必要もあります。

  2. AWS IoT エンドポイントを取得します。

    1. AWS IoT コンソールのナビゲーションペインから、[Settings] (設定) を選択します。

    2. [Device data endpoint] (デバイスデータエンドポイント) にある[Endpoint] (エンドポイント) の値を書き留めておきます。次の手順では、この値を使用してコマンド内の AWS_IOT_ENDPOINT プレースホルダーを置き換えます。

      注記
  3. コンピュータ ( AWS IoT Greengrass コアデバイスではなく) で、2 つのコマンドライン (ターミナルまたはコマンドプロンプト) ウィンドウを開きます。一方のウィンドウは HelloWorld_Publisher クライアントデバイスを表し、もう一方のウィンドウは HelloWorld_Subscriber クライアントデバイスを表します。

    実行時に、 はエンドポイントの AWS IoT Greengrass コアの場所に関する情報を収集basicDiscovery.pyしようとします。この情報は、クライアントデバイスがコアを検出して正常に接続すると、保存されます。これで、この先のメッセージとオペレーションがローカル (インターネット接続なし) で実行されるようになります。

    注記

    MQTT 接続に使用されるクライアント ID は、クライアントデバイスのモノ名と一致する必要があります。basicDiscovery.py スクリプトによって、MQTT 接続のクライアント ID が、スクリプト実行時に指定したモノ名に設定されます。

    スクリプトの詳しい使用方法を確認するには、basicDiscovery.py ファイルのあるフォルダから次のコマンドを実行してください。

    python basicDiscovery.py --help
  4. HelloWorld_Publisher クライアントデバイスウィンドウから、次のコマンドを実行します。

    • path-to-certs-folder を、証明書、キー、および basicDiscovery.py を含むフォルダへのパスに置き換えます。

    • AWS_IOT_ENDPOINT をエンドポイントに置き換えます。

    • 2 つのパブリッシャーCertIdインスタンスを、 HelloWorld_Publisher クライアントデバイスのファイル名の証明書 ID に置き換えます。

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert publisherCertId-certificate.pem.crt --key publisherCertId-private.pem.key --thingName HelloWorld_Publisher --topic 'hello/world/pubsub' --mode publish --message 'Hello, World! Sent from HelloWorld_Publisher'

    Published topic 'hello/world/pubsub': {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1} のような、エントリを含む出力が表示されるはずです。

    注記

    スクリプトが error: unrecognized arguments メッセージを返した場合は、--topic および --message パラメータの一重引用符を二重引用符に変更して、コマンドを再実行します。

    接続の問題のトラブルシューティングを行うには、手動で IP の検出を試すことができます。

    発行者の出力のスクリーンショット。
  5. HelloWorld_Subscriber クライアントデバイスウィンドウから、次のコマンドを実行します。

    • path-to-certs-folder を、証明書、キー、および basicDiscovery.py を含むフォルダへのパスに置き換えます。

    • AWS_IOT_ENDPOINT をエンドポイントに置き換えます。

    • 2 つのサブスクライバーCertIdインスタンスを、 HelloWorld_Subscriber クライアントデバイスのファイル名の証明書 ID に置き換えます。

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert subscriberCertId-certificate.pem.crt --key subscriberCertId-private.pem.key --thingName HelloWorld_Subscriber --topic 'hello/world/pubsub' --mode subscribe

    Received message on topic hello/world/pubsub: {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1} のような、エントリを含む出力が表示されるはずです。

    受信者の出力のスクリーンショット。

HelloWorld_Publisher ウィンドウを閉じて、メッセージが HelloWorld_Subscriber ウィンドウに表示されないようにします。

企業ネットワークでテストを実行すると、コアへの接続を妨げる可能性があります。回避策として、エンドポイントを手動で入力できます。これにより、basicDiscovery.pyスクリプトは AWS IoT Greengrass コアデバイスの正しい IP アドレスに接続されます。

エンドポイントを手動で入力するには
  1. AWS IoT コンソールナビゲーションペインの「 の管理」で Greengrass デバイス を展開し、「グループ (V1)」を選択します。

  2. [Greengrass groups] (Greengrass グループ) で、対象グループを選択します。

  3. MQTT ブローカーのエンドポイントを手動で管理するようにコアを設定します。以下の操作を実行します。

    1. グループ設定ページで、[Lambda functions] (Lambda 関数) タブを選択します。

    2. [System Lambda functions] (システム Lambda 関数) から、[IP detector] (IP ディテクター)、[Edit] (編集) の順に選択します。

    3. [Edit IP detector settings] (IP ディテクター設定の編集) で、[Manually manage MQTT broker endpoints] (MQTT ブローカーのエンドポイントを手動で管理する)、[Save] (保存) の順に選択します。

  4. コアの MQTT ブローカーエンドポイントを入力します。以下の操作を実行します。

    1. [Overview] (概要) で、 [Greengrass core] (Greengrass コア) を選択します。

    2. [MQTT broker endpoints] (MQTT ブローカーエンドポイント) で、 [Manage endpoints] (エンドポイントの管理) を選択します。

    3. [Add endpoint] (エンドポイントの追加) を選択し、エンドポイントの値が 1 つだけであることを確認します。この値は、 AWS IoT Greengrass コアデバイスのポート 8883 の IP アドレスエンドポイントである必要があります (例: 192.168.1.4)。

    4. [更新] を選択します。