

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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 Discovery](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__greengrass__discovery_8h.html) 라이브러리는 마이크로 컨트롤러 디바이스가 네트워크에서 Greengrass 코어를 검색하는 데 사용됩니다. AWS IoT Greengrass Discovery 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 코어 연결 파라미터가 포함된 AWS IoT JSON 파일에서를 요청하여 검색 프로세스를 시작합니다. JSON 파일에서 Greengrass 코어 연결 파라미터를 검색하는 두 가지 방법이 있습니다.
+ 자동 선택에서는 JSON 파일에 나열된 모든 Greengrass 코어를 반복한 후 사용 가능한 첫 번째 코어에 연결합니다.
+ 수동 선택에서는 `aws_ggd_config.h`의 정보를 사용하여 지정된 Greengrass 코어에 연결합니다.

### Greengrass API를 사용하는 방법
<a name="freertos-lib-gg-api"></a>

Greengrass API에 대한 모든 기본 구성 옵션은 `aws_ggd_config_defaults.h`에 정의되어 있습니다.

Greengrass 코어가 하나만 존재하는 경우 `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 데이터를 가져옵니다. AWS IoT에서 JSON 데이터를 수신하려면 `GGD_JSONRequestStart`, `GGD_SecureConnect_Send`, `GGD_JSONRequestGetSize`를 호출해야 합니다.

**`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입니다.