로컬 상태 확인 API 직접 호출 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 2023년 6월 30일에 수명 연장 단계에 들어갔습니다. AWS IoT Greengrass V1 관리형 정책에 대한 자세한 정보는 섹션을 참조하세요. 이 날짜 이후에는 기능, 개선 사항, 버그 수정 또는 보안 패치를 제공하는 업데이트가 AWS IoT Greengrass V1 릴리스되지 않습니다. 에서 실행되는 기기는 AWS IoT Greengrass V1 중단되지 않으며 계속 작동하고 클라우드에 연결됩니다. 새로운 기능이 크게 추가되고 추가 플랫폼에 대한 지원이 추가되는 으로 마이그레이션하는 AWS IoT Greengrass Version 2 것이 좋습니다.

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

로컬 상태 확인 API 직접 호출

AWS IoT Greengrass에는 AWS IoT Greengrass에서 시작된 로컬 작업자 프로세스의 현재 상태를 스냅샷으로 제공하는 로컬 HTTP API가 포함되어 있습니다. 이 스냅샷에는 사용자 정의 Lambda 함수와 시스템 Lambda 함수가 포함되어 있습니다. 시스템 Lambda 함수는 AWS IoT Greengrass 코어 소프트웨어의 구성 요소입니다. 코어 디바이스에서 로컬 작업자 프로세스로 실행되며 메시지 라우팅, 로컬 섀도 동기화, 자동 IP 주소 감지와 같은 작업을 관리합니다.

상태 확인 API는 다음 요청을 지원합니다.

요청은 디바이스에서 로컬로 전송되며 인터넷 연결이 필요하지 않습니다.

모든 작업자의 상태 정보를 확인하세요.

GET 요청을 보내 실행 중인 모든 작업자의 상태 정보를 받아보세요.

  • 포트를 IPC의 포트 번호로 바꾸십시오.

GET http://localhost:port/2016-11-01/health/workers
port

IPC의 포트 번호입니다.

값은 1024에서 65535 사이입니다. 기본값은 8000입니다.

이 포트 번호를 변경하려면 config.json 파일에서 ggDaemonPort 속성을 업데이트하면 됩니다. 자세한 내용은 AWS IoT Greengrass 코어 구성 파일 섹션을 참조하세요.

요청 예제

다음 예제 curl 요청은 모든 작업자의 상태 정보를 가져옵니다.

curl http://localhost:8000/2016-11-01/health/workers

JSON 응답

이 요청은 작업자 상태 정보 개체 배열을 반환합니다.

응답의 예

다음 예제 응답에는 AWS IoT Greengrass에서 시작한 모든 작업자 프로세스의 상태 정보 개체가 나열되어 있습니다.

[ { "FuncArn": "arn:aws:lambda:::function:GGShadowService:1", "WorkerId" : "65515053-2f70-43dc-7cc0-1712bEXAMPLE", "ProcessId": "1234", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:::function:GGSecretManager:1", "WorkerId": "a9916cc2-1b4d-4f0e-4b12-b1872EXAMPLE", "ProcessId": "9798", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3", "WorkerId": "2e6f785e-66a5-42c9-67df-42073EXAMPLE", "ProcessId": "11837", "WorkerState": "Waiting" }, ... ]

지정된 작업자에 대한 상태 정보를 얻으십시오.

POST 요청을 보내 지정된 작업자의 상태 정보를 받아보세요. 포트를 IPC의 포트 번호로 바꾸십시오. 기본값은 8000입니다.

POST http://localhost:port/2016-11-01/health/workers

요청 예제

다음 예제 curl 요청은 지정된 작업자의 상태 정보를 가져옵니다.

curl --data "@body.json" http://localhost:8000/2016-11-01/health/workers

다음은 body.json 요청 본문의 예제입니다.

{ "FuncArns": [ "arn:aws:lambda:::function:GGShadowService:1", "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3" ] }

요청 본문에는 FuncArns 배열이 들어 있습니다.

FuncArns

대상 작업자를 나타내는 Lambda 함수에 대한 Amazon 리소스 이름(ARN) 목록입니다.

  • 사용자 정의 Lambda 함수의 경우 현재 배포된 버전의 ARN을 지정합니다. 별칭 ARN을 사용하여 그룹에 Lambda 함수를 추가한 경우, GET 요청을 사용하여 모든 작업자를 가져온 다음 쿼리하려는 ARN을 선택할 수 있습니다.

  • 시스템 Lambda 함수의 경우 해당 Lambda 함수의 ARN을 지정합니다. 자세한 내용은 시스템 Lambda 함수 섹션을 참조하세요.

형식: 문자열 배열

최소 길이: 1

최대 길이: 코어 디바이스의 AWS IoT Greengrass에서 시작한 총 작업자의 수입니다.

JSON 응답

이 요청은 Workers 배열과 InvalidArns 배열을 반환합니다.

Workers

지정된 작업자의 상태 정보 개체 목록.

유형: 상태 정보 개체의 배열

InvalidArns

연결된 작업자가 없는 함수 ARN을 포함한 유효하지 않은 함수 ARN 목록.

형식: 문자열 배열

응답의 예

다음 예제 응답에는 지정된 작업자의 상태 정보 개체가 나열되어 있습니다.

{ "Workers": [ { "FuncArn": "arn:aws:lambda:::function:GGShadowService:1", "WorkerId" : "65515053-2f70-43dc-7cc0-1712bEXAMPLE", "ProcessId": "1234", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3", "WorkerId": "2e6f785e-66a5-42c9-67df-42073ESAMPLE", "ProcessId": "11837", "WorkerState": "Waiting" } ], "InvalidArns" : [ "some-malformed-arn", "arn:aws:lambda:us-west-2:123456789012:function:some-unknown-function:1" ] }

이 요청은 다음 오류를 반환합니다.

400 잘못된 요청

요청 본문이 잘못되었습니다. 이 문제를 해결하려면 다음 형식을 사용하여 요청을 다시 전송하시기 바랍니다.

{"FuncArns":["function-1-arn","function-2-arn"]}
400 요청이 최대 작업자 수를 초과했습니다.

FuncArns 배열에 지정된 ARN 수가 작업자 수를 초과합니다.

작업자 상태 정보

정상 정보 객체는 다음 속성을 포함하고 있습니다.

FuncArn

작업자를 나타내는 시스템 Lambda 함수의 ARN입니다.

형식: string

WorkerId

작업자의 ID입니다. 이 속성은 디버깅에 유용합니다. runtime.log 파일 및 Lambda 함수 로그에는 작업자 ID가 포함되어 있으므로 이 속성은 여러 인스턴스를 구동하는 온디맨드 Lambda 함수를 디버깅하는 데 특히 유용할 수 있습니다.

형식: string

ProcessId

작업자 프로세스의 프로세스 ID(PID)

형식: int

WorkerState

작업자의 상태.

형식: string

가능한 작업 상태 표시는 다음과 같습니다.

Working

메시지 처리 중.

Waiting

메시지 대기 중. 대몬(daemon) 또는 독립형 프로세스로 실행되는 수명이 긴 Lambda 함수에 적용됩니다.

Starting

스핀업, 시작합니다.

FailedInitialization

초기화에 실패했습니다.

Terminated

Greengrass 대몬(daemon)에 의해 중지되었습니다.

NotStarted

시작에 실패하여 다시 시작을 시도합니다.

Initialized

성공적으로 초기화되었습니다.

시스템 Lambda 함수

다음 시스템 Lambda 함수에 대한 상태 정보를 요청할 수 있습니다.

GGCloudSpooler

AWS IoT Core이(가) 소스 또는 대상으로 있는 MQTT 메시지의 대기열을 관리합니다.

ARN: arn:aws:lambda:::function:GGCloudSpooler:1

GGConnManager

Greengrass 코어와 클라이언트 디바이스 간에 MQTT 메시지를 라우팅합니다.

ARN: arn:aws:lambda:::function:GGConnManager

GGDeviceCertificateManager

코어 IP 엔드포인트의 변경 사항에 대해 AWS IoT 섀도우를 수신하고 GGConnManager에서 상호 인증에 사용하는 서버 측 인증서를 생성합니다.

ARN: arn:aws:lambda:::function:GGDeviceCertificateManager

GGIPDetector

디바이스에서 Greengrass 코어 디바이스를 검색할 수 있도록 지원하는 자동 IP 주소 관리 IP 주소를 수동으로 제공하는 경우에는 이 서비스를 적용할 수 없습니다.

ARN: arn:aws:lambda:::function:GGIPDetector:1

GGSecretManager

사용자 정의 Lambda 및 커넥터를 통해 로컬 비밀의 안전한 저장과 액세스를 관리합니다.

ARN: arn:aws:lambda:::function:GGSecretManager:1

GGShadowService

클라이언트 디바이스의 로컬 섀도우를 관리합니다.

ARN: arn:aws:lambda:::function:GGShadowService

GGShadowSyncManager

디바이스의 syncShadow 속성이 true(으)로 설정된 경우 로컬 섀도우를 코어 디바이스 및 클라이언트 디바이스의 AWS 클라우드와(과) 동기화합니다.

ARN: arn:aws:lambda:::function:GGShadowSyncManager

GGStreamManager

데이터 스트림을 로컬에서 처리하고 AWS 클라우드(으)로 자동 내보내기를 수행합니다.

ARN: arn:aws:lambda:::function:GGStreamManager:1

GGTES

로컬 코드가 AWS 서비스에 액세스하는 데 사용하는 Greengrass 그룹 역할에 정의된 IAM 보안 인증을 검색하는 로컬 토큰 교환 서비스입니다.

ARN: arn:aws:lambda:::function:GGTES