HTTP 브리지를 통해 게이트웨이 사용

HTTP 브리지로 게이트웨이를 사용하는 경우 기기를 게이트웨이에 결합해야 합니다. 시작하기 전에 Cloud IoT Core에서 HTTP 브리지를 사용하는 방법에 대한 일반적인 내용은 HTTP 브리지 사용을 참조하세요.

HTTP 브리지로 게이트웨이를 사용하려면 다음 안내를 따르세요.

  1. 아직 게이트웨이를 만들고 구성하지 않았으면 지금 수행합니다.
  2. 아직 기기를 만들지 않았으면 지금 만듭니다.
  3. 기기를 게이트웨이에 결합합니다.
  4. 게이트웨이를 사용하여 원격 분석 이벤트를 게시하고 기기 구성을 업데이트합니다.

게이트웨이를 통해 기기의 원격 분석 이벤트 게시

기기를 게이트웨이에 결합한 후에는 publishEvent 메서드를 사용해서 기기 대신 원격 분석 이벤트를 Cloud IoT Core에 게시합니다. 바이너리 페이로드 데이터는 base64로 인코딩되어야 합니다.

추가 보안을 위해서는 게이트웨이의 JWT 대신 기기의 JWT를 사용해서 메시지를 전송합니다. 어떤 JWT를 제공하더라도 요청의 기기 경로와 일치해야 합니다.

게이트웨이의 JWT 사용:

curl -X POST -H 'authorization: Bearer GATEWAY_JWT' -H 'content-type: application/json' --data '{"binary_data": "DATA", "gateway_info": {"delegated_device_id: "device-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{gateway-id}:publishEvent'

기기의 JWT 사용:

curl -X POST -H 'authorization: Bearer DEVICE_JWT' -H 'content-type: application/json' --data '{"binary_data": "DATA", "gateway_info": {"gateway_id: "gateway-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{device-id}:publishEvent'

원격 분석 이벤트는 Cloud Console에 지정된 대로 또는 기기 레지스트리 리소스의 eventNotificationConfigs[i].pubsubTopicName 필드를 사용해서 Cloud Pub/Sub 주제로 전달됩니다. publishEvent 메서드는 원격 분석 이벤트 분류를 위해 선택적인 subFolder 필드를 제공합니다. 하위 폴더에서 개별 Pub/Sub 주제로 데이터를 게시하는 방법은 HTTP 브리지 사용을 참조하세요.

게이트웨이를 통해 기기 구성 업데이트

게이트웨이는 HTTP 브리지를 사용할 때 연결된 기기에 대해 새 구성을 명시적으로 요청해야 합니다.

Cloud IoT Core에서 현재 제공되는 기기 구성을 가져오려면 getConfig 요청을 사용합니다. 승인 Bearer 헤더에 게이트웨이 또는 기기의 JWT를 포함할 수 있습니다.

게이트웨이의 JWT 사용:

curl -X POST -H 'authorization: Bearer GATEWAY_JWT' -H 'content-type: application/json' --data '{"binary_data": "DATA", "gateway_info": {"delegated_device_id: "device-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{gateway-id}/config?local_version=0'

기기의 JWT 사용:

curl -X POST -H 'authorization: Bearer DEVICE_JWT' -H 'content-type: application/json' --data '{"binary_data": "DATA", "gateway_info": {"gateway_id: "gateway-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{device-id}/config?local_version=0'

게이트웨이를 통해 기기 상태 설정

setState 요청을 사용하여 기기 상태를 Cloud IoT Core에 보고합니다. 상태 데이터는 base64로 인코딩되어야 합니다. 승인 Bearer 헤더에 게이트웨이 또는 기기의 JWT를 포함할 수 있습니다.

게이트웨이의 JWT 사용:

curl -X POST -H 'authorization: Bearer GATEWAY_JWT' -H 'content-type: application/json' --data '{"state": {"binary_data": "DATA"}, "gateway_info": {"delegated_device_id: "device-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{gateway-id}:setState'

기기의 JWT 사용:

curl -X POST -H 'authorization: Bearer DEVICE_JWT' -H 'content-type: application/json' --data '{"state": {"binary_data": "DATA"}, "gateway_info": {"gateway_id: "gateway-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{device-id}:setState'

기기 상태 데이터 가져오기

기기 상태 데이터를 검색하려면 Cloud Console에서 기기 세부정보를 확인하거나 API를 사용합니다. 자세한 내용은 기기 상태 데이터 가져오기를 참조하세요.