

サポート終了通知: 2026 年 10 月 7 日、 AWS はサポートを終了します AWS IoT Greengrass Version 1。2026 年 10 月 7 日以降、 AWS IoT Greengrass V1 リソースにアクセスできなくなります。詳細については、[「 からの移行 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)」を参照してください。

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

# 通信をテストする
<a name="test-comms"></a>

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

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

      ```
      hostname -I
      ```

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

      ```
      ping IP-address
      ```

      次のような出力は、コンピュータと AWS IoT Greengrass コアデバイス間の通信が成功したことを示します (パケット損失 0%)。  
![\[正常な ping コマンドの出力。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/gg-get-started-075.5.png)
**注記**  
実行中の EC2 インスタンスに ping を実行できない場合は AWS IoT Greengrass、インスタンスのインバウンドセキュリティグループルールで [Echo リクエスト](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-ping)メッセージの ICMP トラフィックが許可されていることを確認してください。詳細については、「*Amazon EC2 ユーザーガイド*」の「[セキュリティグループへのルールの追加](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule)」を参照してください。  
Windows ホストコンピュータでは、セキュリティが強化された Windows ファイアウォールアプリケーションで、インバウンドエコーリクエストを許可するインバウンドルール ([**File and Printer Sharing (Echo Request - ICMPv4-In)**] など) を有効にするか作成することが必要になる場合もあります。

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

   1. <a name="iot-settings"></a>[AWS IoT コンソール](https://console.aws.amazon.com/iot/)のナビゲーションペインから、**[Settings]** (設定) を選択します。

   1. <a name="iot-settings-endpoint"></a>**[Device data endpoint]** (デバイスデータエンドポイント) にある**[Endpoint]** (エンドポイント) の値を書き留めておきます。次の手順では、この値を使用してコマンド内の *AWS\$1IOT\$1ENDPOINT* プレースホルダーを置き換えます。
**注記**  
[エンドポイントが証明書タイプに対応している](gg-core.md#certificate-endpoints)ことを確認してください。

1. コンピュータ ( AWS IoT Greengrass コアデバイスではない) で、2 [つのコマンドライン](https://en.wikipedia.org/wiki/Command-line_interface) (ターミナルまたはコマンドプロンプト) ウィンドウを開きます。1 つのウィンドウは HelloWorld\$1Publisher クライアントデバイスを、もう 1 つは HelloWorld\$1Subscriber クライアントデバイスを表します。

   実行時に、 はエンドポイントの AWS IoT Greengrass コアの場所に関する情報を収集`basicDiscovery.py`しようとします。この情報は、クライアントデバイスがコアを検出して正常に接続すると、保存されます。これで、この先のメッセージとオペレーションがローカル (インターネット接続なし) で実行されるようになります。
**注記**  
MQTT 接続に使用されるクライアント ID は、クライアントデバイスのモノ名と一致する必要があります。`basicDiscovery.py` スクリプトによって、MQTT 接続のクライアント ID が、スクリプト実行時に指定したモノ名に設定されます。  
スクリプトの詳しい使用方法を確認するには、`basicDiscovery.py` ファイルのあるフォルダから次のコマンドを実行してください。  

   ```
   python basicDiscovery.py --help
   ```

1. HelloWorld\$1Publisher クライアントデバイスのウィンドウから、次のコマンドを実行します。
   + *path-to-certs-folder* を、証明書、キー、および `basicDiscovery.py` を含むフォルダへのパスに置き換えます。
   + *AWS\$1IOT\$1ENDPOINT* をエンドポイントに置き換えます。
   + 2 つの *publisherCertId* インスタンスを、HelloWorld\$1Publisher クライアントデバイスのファイル名に含まれるクライアント 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 の検出](#corp-network-manual-detection)を試すことができます。  
![\[発行者の出力のスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/gg-get-started-076.png)

1. HelloWorld\$1Subscriber クライアントデバイスのウィンドウから、次のコマンドを実行します。
   + *path-to-certs-folder* を、証明書、キー、および `basicDiscovery.py` を含むフォルダへのパスに置き換えます。
   + *AWS\$1IOT\$1ENDPOINT* をエンドポイントに置き換えます。
   + 2 つの *subscriberCertId* インスタンスを、HelloWorld\$1Subscriber クライアントデバイスのファイル名に含まれるクライアント 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}` のような、エントリを含む出力が表示されるはずです。  
![\[受信者の出力のスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/gg-get-started-077.png)

HelloWorld\$1Publisher ウィンドウを閉じて、メッセージが HelloWorld\$1Subscriber ウィンドウに表示されないようにします。

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

**エンドポイントを手動で入力するには**

1. <a name="console-gg-groups"></a> AWS IoT コンソールナビゲーションペインの**「管理**」で **Greengrass デバイス**を展開し、**「グループ (V1)**」を選択します。

1. **[Greengrass グループ]** で、目的のグループを選択します。

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

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

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

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

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

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

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

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

   1. **[Update]** (更新) を選択します。