

지원 종료 공지: 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)을 참조하세요.

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

# Greengrass Discovery RESTful API
<a name="gg-discover-api"></a>

 AWS IoT Greengrass 코어와 통신하는 모든 클라이언트 디바이스는 Greengrass 그룹의 멤버여야 합니다. 각 그룹에는 Greengrass 코어가 있어야 합니다. Discovery API를 사용하면 각 클라이언트 장치는 같은 Greengrass 그룹에 속한 Greengrass 코어에 연결하는 데 필요한 정보를 검색할 수 있습니다. 클라이언트 장치가 먼저 온라인 상태가 되면 AWS IoT Greengrass 서비스에 연결할 수 있으며 Discovery API를 사용하여 다음 사항들을 찾을 수도 있습니다.
+ 장치가 속한 그룹. 한 클라이언트 장치는 최대 10개 그룹의 멤버일 수 있습니다.
+ 해당 그룹 내 Greengrass 코어에 대한 IP 주소 및 포트.
+ Greengrass 코어 장치를 인증하는 데 사용할 수 있는 해당 그룹 CA 인증서.

**참고**  
클라이언트 디바이스는 AWS IoT 디바이스 SDKs를 사용하여 Greengrass 코어의 연결 정보를 검색할 수도 있습니다. 자세한 내용은 [AWS IoT 디바이스 SDK](what-is-gg.md#iot-device-sdk) 단원을 참조하십시오.

이 API를 사용하려면 Discovery API 엔드포인트에 HTTP 요청을 전송합니다. 예제:

```
https://greengrass-ats.iot.{{region}}.amazonaws.com:{{port}}/greengrass/discover/thing/{{thing-name}}
```

 AWS IoT Greengrass Discovery API에 대해 지원되는 Amazon Web Services 리전 및 엔드포인트 목록은의 [AWS IoT Greengrass 엔드포인트 및 할당량을 참조하세요](https://docs.aws.amazon.com/general/latest/gr/greengrass.html)*AWS 일반 참조*. 이것은 데이터 영역 전용 API입니다. 그룹 관리 및 AWS IoT Core 작업을 위한 엔드포인트는 Discovery API 엔드포인트와 다릅니다.

## 요청
<a name="gg-discover-request"></a>

다음 예제와 같이 요청은 표준 HTTP 헤더를 포함하고 있으며, Greengrass Discovery 엔드포인트로 전송됩니다.

포트 번호는 코어가 포트 8443 또는 포트 443을 통해 HTTPS 트래픽을 보내도록 구성되었는지 여부에 따라 다릅니다. 자세한 내용은 [포트 443에서 또는 네트워크 프록시를 통해 연결](gg-core.md#alpn-network-proxy) 단원을 참조하십시오.

포트 8443  

```
HTTP GET https://greengrass-ats.iot.{{region}}.amazonaws.com:8443/greengrass/discover/thing/{{thing-name}}
```

포트 443  

```
HTTP GET https://greengrass-ats.iot.{{region}}.amazonaws.com:443/greengrass/discover/thing/{{thing-name}}
```
포트 443에서 연결하는 클라이언트는 [ALPN(Application Layer Protocol Negotiation)](https://tools.ietf.org/html/rfc7301) TLS 확장을 구현하고 `ProtocolNameList`에 `x-amzn-http-ca`를 `ProtocolName`으로 전달해야 합니다. 자세한 정보는 *AWS IoT 개발자 안내서*의 [프로토콜](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)을 참조하세요.  
이 예제에서는 ATS 루트 CA 인증서에 사용되는 Amazon Trust Services(ATS) 엔드포인트를 사용합니다(권장). 엔드포인트는 CA 인증서 유형과 일치해야 합니다 자세한 내용은 [서비스 엔드포인트는 루트 CA 인증서 유형과 일치해야 합니다](gg-core.md#certificate-endpoints) 단원을 참조하십시오.

## 응답
<a name="gg-discover-response"></a>

성공 시, 응답은 표준 HTTP 헤더와 다음 코드 및 본문을 포함합니다.

```
HTTP 200
BODY: response document
```

자세한 내용은 [검색 응답 문서 예제](#gg-discover-response-doc) 단원을 참조하십시오.

## 검색 권한
<a name="gg-discover-auth"></a>

연결 정보를 검색하려면 호출자가 `greengrass:Discover` 작업을 수행할 수 있도록 허용하는 정책이 필요합니다. 클라이언트 인증서와의 TLS 상호 인증은 유일하게 허용된 인증 형식입니다. 다음은 호출자가 이러한 작업을 수행할 수 있도록 허용하는 정책 예제입니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": "greengrass:Discover",
        "Resource": ["arn:aws:iot:us-west-2:123456789012:thing/MyThingName"]
     }]
}
```

------

## 검색 응답 문서 예제
<a name="gg-discover-response-doc"></a>

다음 문서는 Greengrass 코어 엔드포인트 및 그룹 CA 인증서를 각각 하나씩 포함하는 그룹의 멤버에 속한 클라이언트 장치에 대한 응답을 보여줍니다.

```
{
  "GGGroups": [
    {
      "GGGroupId": "{{gg-group-01-id}}",
      "Cores": [
        {
          "thingArn": "{{core-01-thing-arn}}",
          "Connectivity": [
            {
              "id": "{{core-01-connection-id}}",
              "hostAddress": "{{core-01-address}}",
              "portNumber": {{core-01-port}},
              "metadata": "{{core-01-description}}"
            }
          ]
        }
      ],
      "CAs": [
        "-----BEGIN CERTIFICATE-----{{cert-contents}}-----END CERTIFICATE-----"
      ]
    }
  ]
}
```

다음 문서는 1개의 Greengrass 코어와 다수의 엔드포인트 및 그룹 CA 인증서를 포함하는 두 그룹의 멤버에 속한 클라이언트 장치에 대한 응답을 보여줍니다.

```
{
  "GGGroups": [
    {
      "GGGroupId": "{{gg-group-01-id}}",
      "Cores": [
        {
          "thingArn": "{{core-01-thing-arn}}",
          "Connectivity": [
            {
              "id": "{{core-01-connection-id}}",
              "hostAddress": "{{core-01-address}}",
              "portNumber": {{core-01-port}},
              "metadata": "{{core-01-connection-1-description}}"
            },
            {
              "id": "{{core-01-connection-id-2}}",
              "hostAddress": "{{core-01-address-2}}",
              "portNumber": {{core-01-port-2}},
              "metadata": "{{core-01-connection-2-description}}"
            }
          ]
        }
      ],
      "CAs": [
        "-----BEGIN CERTIFICATE-----{{cert-contents}}-----END CERTIFICATE-----",
        "-----BEGIN CERTIFICATE-----{{cert-contents}}-----END CERTIFICATE-----",
        "-----BEGIN CERTIFICATE-----{{cert-contents}}-----END CERTIFICATE-----"
      ]
    },
    {
      "GGGroupId": "{{gg-group-02-id}}",
      "Cores": [
         {
            "thingArn":"{{core-02-thing-arn}}",
            "Connectivity" : [
            {
              "id": "{{core-02-connection-id}}",
              "hostAddress": "{{core-02-address}}",
              "portNumber": {{core-02-port}},
              "metadata": "{{core-02-connection-1-description}}"
            }
            ],
            "CAs": [
                "-----BEGIN CERTIFICATE-----{{cert-contents}}-----END CERTIFICATE-----",
                "-----BEGIN CERTIFICATE-----{{cert-contents}}-----END CERTIFICATE-----",
                "-----BEGIN CERTIFICATE-----{{cert-contents}}-----END CERTIFICATE-----"
            ]
        }
    ]
    }
}
```

**참고**  
Greengrass 그룹에는 각각 정확히 1개의 Greengrass 코어가 정의되어야 합니다. Greengrass 코어 목록이 포함된 AWS IoT Greengrass 서비스의 모든 응답에는 Greengrass 코어가 하나만 포함됩니다.

`cURL`을 설치했을 경우 검색 요청을 테스트할 수 있습니다. 예제:

```
$ curl --cert 1a23bc4d56.cert.pem --key 1a23bc4d56.private.key https://greengrass-ats.iot.us-west-2.amazonaws.com:8443/greengrass/discover/thing/MyDevice
{"GGGroups":[{"GGGroupId":"1234a5b6-78cd-901e-2fgh-3i45j6k1789","Cores":[{"thingArn":"arn:aws:iot:us-west-2:1234567
89012:thing/MyFirstGroup_Core","Connectivity":[{"Id":"AUTOIP_192.168.1.4_1","HostAddress":"192.168.1.5","PortNumber
":8883,"Metadata":""}]}],"CAs":["-----BEGIN CERTIFICATE-----\n{{cert-contents}}\n-----END CERTIFICATE-----\n"]}]}
```