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

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

通信をテストする

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

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

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

      ping IP-address

      出力が以下のような場合、コンピュータと AWS IoT Greengrass コア デバイス間の通信は正常です (パケット損失 0%)。

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

      AWS IoT Greengrass を実行している EC2 インスタンスに ping できない場合は、インスタンスのインバウンドセキュリティグループルールが エコーリクエストメッセージの ICMP トラフィックを許可するようにしてください。詳細については、以下を参照してください。 セキュリティグループへのルールの追加Linux インスタンス用 Amazon EC2 ユーザーガイド.

      Windowsホストコンピュータでは、Windows Firewall with Advanced Securityアプリで、インバウンドエコーリクエストを許可するインバウンドルールを有効にする必要があります(たとえば、 ファイルとプリンタの共有(Echo Request - ICMPv4-In))、または作成してください。

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

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

    2. [設定] の [エンドポイント] の値を書き留めます。この値を使用して、AWS_IOT_ENDPOINT プレースホルダをコマンドで選択します。

      
                AWS IoT エンドポイント値。
      注記
  3. コンピュータ (AWS IoT Greengrass コア デバイス) で、2 つの command-line (端末またはコマンドプロンプト) ウィンドウを開きます。1 つのウィンドウは HelloWorld_Publisher デバイスを表し、もう 1 つは HelloWorld_Subscriber デバイスを表します。

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

    注記

    次のコマンドを basicDiscovery.py ファイルを含むフォルダから実行すると、詳細なスクリプト使用情報を取得できます。

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

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

    • 置換 AWS_IOT_ENDPOINT エンドポイントで を使用します。

    • 2 つの を交換する publisher HelloWorld_Publisher デバイスのファイル名にハッシュを含む インスタンス。

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA root-ca-cert.pem --cert publisher.cert.pem --key publisher.private.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 つの を交換する subscriber HelloWorld_Subscriber デバイスのファイル名にハッシュを含む インスタンス。

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA root-ca-cert.pem --cert subscriber.cert.pem --key subscriber.private.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. [Greengrass]、[グループ] の順に選択し、グループを選択します。

  2. [設定] を選択します。

  3. [ローカル接続の検出] で、[接続情報の手動管理]、[特定のエンドポイント情報の Core の表示] の順に選択します。

  4. コアを選択し、[接続] を選択します。

  5. [編集] を選択し、エンドポイントの値が 1 つだけであることを確認します。この値は、AWS IoT Greengrass コア デバイスのポート 8883 のエンドポイントの IP アドレスであることが必要です (192.168.1.4 など)。

  6. [Update] を選択します。