

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

# AWS IoT Greengrass 検出ライブラリ
<a name="freertos-lib-gg-connectivity"></a>

**注記**  <a name="out-of-date-message"></a>
このページのコンテンツは最新ではない可能性があります。最新の更新については、[FreeRTOS.org ライブラリのページ](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries)を参照してください。

## 概要
<a name="freertos-gg-overview"></a>

[AWS IoT Greengrass 検出](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__greengrass__discovery_8h.html)ライブラリは、お使いのマイクロコントローラーデバイスで、ネットワーク上の Greengrass コアを検出するために使用されます。AWS IoT Greengrass 検出 API を使用して、デバイスは、コアのエンドポイントを見つけた後、Greengrass コアにメッセージを送信できます。

## 依存関係と要件
<a name="freertos-gg-dependencies"></a>

Greengrass Discovery ライブラリ を使用するには AWS IoT で証明書とポリシーを含むモノを作成する必要があります。詳細については、「[AWS IoT の使用開始](https://docs.aws.amazon.com/iot/latest/developerguide/iot-gs.html)」を参照してください。

`freertos/demos/include/aws_clientcredential.h` ファイルで、以下の定数の値を設定する必要があります。

**`clientcredentialMQTT_BROKER_ENDPOINT`**  
AWS IoT エンドポイント。

**`clientcredentialIOT_THING_NAME`**  
IoT モノの名前。

**`clientcredentialWIFI_SSID`**  
Wi-Fi ネットワークの SSID。

**`clientcredentialWIFI_PASSWORD`**  
Wi-Fi のパスワード。

**`clientcredentialWIFI_SECURITY`**  
Wi-Fi ネットワークで使用されるセキュリティの種類。

`freertos/demos/include/aws_clientcredential_keys.h` ファイルで、以下の定数の値も設定する必要があります。

**`keyCLIENT_CERTIFICATE_PEM`**  
モノに関連付けられた PEM 証明書。

**`keyCLIENT_PRIVATE_KEY_PEM`**  
モノに関連付けられているプライベートキー PEM。

コンソールに Greengrass グループとコアデバイスを設定する必要があります。詳細については、「[AWS IoT Greengrass の開始方法](https://docs.aws.amazon.com/greengrass/latest/developerguide/)」を参照してください。

coreMQTT ライブラリは Greengrass 接続には必要ありませんが、インストールすることを強くお勧めします。このライブラリは、検出された後、Greengrass コアと通信するために使用できます。

## API リファレンス
<a name="freertos-gg-api"></a>

完全な API リファレンスについては、[Greengrass API リファレンス](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__greengrass__discovery_8h.html)を参照してください。

## 使用例
<a name="freertos-gg-example"></a>

### Greengrass ワークフロー
<a name="freertos-lib-gg-workflow"></a>

MCU デバイスは、Greengrass コア接続パラメータを含む JSON ファイルを AWS IoT に要求することによって、検出プロセスを開始します。JSON ファイルから Greengrass コア接続パラメータを取得する方法は 2 つあります。
+ 自動選択は、JSON ファイルにリストされているすべての Greengrass コアを反復処理し、使用可能な最初のコアに接続します。
+ 手動選択では、`aws_ggd_config.h` の情報を使用して指定された Greengrass コアに接続します。

### Greengrass API の使用方法
<a name="freertos-lib-gg-api"></a>

Greengrass API のすべてのデフォルト設定オプションは `aws_ggd_config_defaults.h` で定義されています。

Greengrass のコアが 1 つだけの場合、`GGD_GetGGCIPandCertificate` を呼び出して、Greengrass コア接続情報で JSON ファイルを要求します。`GGD_GetGGCIPandCertificate` が返されると、`pcBuffer` パラメータに JSON ファイルのテキストが格納されます。`pxHostAddressData` パラメータには、接続可能な Greengrass コアの IP アドレスとポートが含まれます。

動的に証明書を割り当てるなどのカスタマイズオプションを追加するには、次の API を呼び出す必要があります。

**`GGD_JSONRequestStart`**  
Greengrass コアを検出するための検出要求を開始するために、AWS IoT に対して HTTP GET 要求を行います。`GD_SecureConnect_Send` は AWS IoT に要求を送信するために使用されます。

**`GGD_JSONRequestGetSize`**  
HTTP レスポンスから JSON ファイルのサイズを取得します。

**`GGD_JSONRequestGetFile`**  
JSON オブジェクト文字列を取得します。`GGD_JSONRequestGetSize` と `GGD_JSONRequestGetFile` は `GGD_SecureConnect_Read` を使用してソケットから JSON データを取得します。`GGD_JSONRequestStart` から JSON データを受け取るには、 `GGD_SecureConnect_Send`、`GGD_JSONRequestGetSize`、AWS IoT を呼び出す必要があります。

**`GGD_GetIPandCertificateFromJSON`**  
JSON データから IP アドレスと Greengrass コア証明書を抽出します。`xAutoSelectFlag` を `True` に設定すると、自動選択をオンにすることができます。自動選択は、FreeRTOS デバイスが接続できる最初のコアデバイスを検出します。Greengrass コアに接続するには、`GGD_SecureConnect_Connect` 関数を呼び出し、コアデバイスの IP アドレス、ポート、および証明書を渡します。手動選択を使用するには、`HostParameters_t` パラメータの次のフィールドを設定します。    
**`pcGroupName`**  
コアが属する Greengrass グループの ID。`aws greengrass list-groups` CLI コマンドを使用して、Greengrass グループの ID を見つけることができます。  
**`pcCoreAddress`**  
接続している Greengrass コアの ARN。