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これにより、重要な新機能が追加され、プラットフォーム のサポートが追加されます。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
通信をテストする
-
コンピュータと AWS IoT Greengrass コアデバイスが、同じネットワークを使用してインターネットに接続されていることを確認します。
-
AWS IoT Greengrass コアデバイスで、次のコマンドを実行して IP アドレスを検索します。
hostname -I
-
コンピュータで、コアの IP アドレスを使用して次のコマンドを実行します。ping コマンドを停止するには、Ctrl + C を使用できます。
ping
IP-address
次のような出力は、コンピュータと AWS IoT Greengrass コアデバイス間の通信が成功したことを示します (パケット損失 0%)。
注記
を実行している EC2 インスタンスに ping を実行できない場合は AWS IoT Greengrass、インスタンスのインバウンドセキュリティグループルールで Echo リクエストメッセージの ICMP トラフィックが許可されていることを確認してください。詳細については、「Amazon EC2 ユーザーガイド」の「セキュリティグループへのルールの追加」を参照してください。 Amazon EC2
Windows ホストコンピュータのセキュリティが強化された Windows ファイアウォールアプリケーションで、インバウンドエコーリクエストを許可するインバウンドルール ([File and Printer Sharing (Echo Request - ICMPv4-In)] など) を有効にするか、作成する必要もあります。
-
-
AWS IoT エンドポイントを取得します。
-
AWS IoT コンソール
のナビゲーションペインから、[Settings] (設定) を選択します。 -
[Device data endpoint] (デバイスデータエンドポイント) にある[Endpoint] (エンドポイント) の値を書き留めておきます。次の手順では、この値を使用してコマンド内の
AWS_IOT_ENDPOINT
プレースホルダーを置き換えます。注記
エンドポイントが証明書タイプに対応していることを確認してください。
-
-
コンピュータ ( 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
-
HelloWorld_Publisher クライアントデバイスウィンドウから、次のコマンドを実行します。
-
path-to-certs-folder
を、証明書、キー、およびbasicDiscovery.py
を含むフォルダへのパスに置き換えます。 -
AWS_IOT_ENDPOINT
をエンドポイントに置き換えます。 -
2 つの
パブリッシャーCertId
インスタンスを、 HelloWorld_Publisher クライアントデバイスのファイル名の証明書 ID に置き換えます。
cd
path-to-certs-folder
python basicDiscovery.py --endpointAWS_IOT_ENDPOINT
--rootCA AmazonRootCA1.pem --certpublisherCertId
-certificate.pem.crt --keypublisherCertId
-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 の検出を試すことができます。
-
-
HelloWorld_Subscriber クライアントデバイスウィンドウから、次のコマンドを実行します。
-
path-to-certs-folder
を、証明書、キー、およびbasicDiscovery.py
を含むフォルダへのパスに置き換えます。 -
AWS_IOT_ENDPOINT
をエンドポイントに置き換えます。 -
2 つの
サブスクライバーCertId
インスタンスを、 HelloWorld_Subscriber クライアントデバイスのファイル名の証明書 ID に置き換えます。
cd
path-to-certs-folder
python basicDiscovery.py --endpointAWS_IOT_ENDPOINT
--rootCA AmazonRootCA1.pem --certsubscriberCertId
-certificate.pem.crt --keysubscriberCertId
-private.pem.key --thingName HelloWorld_Subscriber --topic 'hello/world/pubsub' --mode subscribeReceived 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 アドレスに接続されます。
エンドポイントを手動で入力するには
AWS IoT コンソールナビゲーションペインの「 の管理」で Greengrass デバイス を展開し、「グループ (V1)」を選択します。
-
[Greengrass groups] (Greengrass グループ) で、対象グループを選択します。
-
MQTT ブローカーのエンドポイントを手動で管理するようにコアを設定します。以下の操作を実行します。
-
グループ設定ページで、[Lambda functions] (Lambda 関数) タブを選択します。
-
[System Lambda functions] (システム Lambda 関数) から、[IP detector] (IP ディテクター)、[Edit] (編集) の順に選択します。
-
[Edit IP detector settings] (IP ディテクター設定の編集) で、[Manually manage MQTT broker endpoints] (MQTT ブローカーのエンドポイントを手動で管理する)、[Save] (保存) の順に選択します。
-
-
コアの MQTT ブローカーエンドポイントを入力します。以下の操作を実行します。
-
[Overview] (概要) で、 [Greengrass core] (Greengrass コア) を選択します。
-
[MQTT broker endpoints] (MQTT ブローカーエンドポイント) で、 [Manage endpoints] (エンドポイントの管理) を選択します。
-
[Add endpoint] (エンドポイントの追加) を選択し、エンドポイントの値が 1 つだけであることを確認します。この値は、 AWS IoT Greengrass コアデバイスのポート 8883 の IP アドレスエンドポイントである必要があります (例:
192.168.1.4
)。 -
[更新] を選択します。
-