게시된 날짜: Jan 12, 2021

이제 AWS IoT SiteWise에서 Uniform Function Call 구문(UFCS)을 통해 공식에서 메서드 사용을 지원합니다.

이전에도 AWS IoT SiteWise에서 중첩된 함수를 사용하여 변환과 지표를 위한 표현식을 정의할 수 있었지만, 오늘부터는 UFCS 기능으로 메서드 호출을 체이닝하는 방법으로도 할 수 있습니다. 이 구문은 AWS IoT SiteWise 자산 모델에서 지표와 변환을 위한 복잡한 공식을 쉽게 읽고 추적할 수 있도록 지원합니다. UFCS는 AWS IoT SiteWise에서 지원되는 기존의 모든 함수 유형(공통, 비교, 조건, 문자열, 집계, 임시 함수)에 사용할 수 있습니다. UFCS는 AWS IoT SiteWise 콘솔 또는 명령줄 인터페이스(CLI)에서 사용할 수 있습니다. UFCS와 함수 유형에 대한 자세한 내용은 AWS IoT SiteWise 공식을 참조하세요. 

UFCS 기능을 사용하는 사용자는 메서드 호출을 사용하여 현재 AWS IoT SiteWise에서 제공되는 함수 f(n)을 n.f()로 참조할 수 있습니다. 일반적으로 사용자는 메서드 체이닝을 위한 구문을 사용하여 함수 f(a,b,c...)를 a.f(b,c..)로 바꿀 수 있습니다. 여기서 ‘a’는 변수이거나 그 자체가 함수(예: a= f1(x))가 될 수 있습니다. 샘플 고객 사용 사례를 말씀드리자면, 사용자가 코사인의 로그 함수 log(cos(a))를 반환하는 지표를 정의하려면 UFCS를 사용하여 cos(a).log()로 표현할 수 있습니다. AWS IoT SiteWise는 UFCS를 사용하여 if-else 함수의 체이닝도 지원하므로, 중첩된 조건 로직을 여러 겹으로 손쉽게 정의하고 추적할 수 있습니다. 일반적으로 문(statement)을 다음과 같이 중첩한 경우:

if(condition1, on_true_1, if(condition2, on_true_2, on_false_2))

UFCS 형식의 if-elif 중첩을 사용하여 작성:

if(condition1, on_true_1). elif(condition2, on_true_2, on_false_2)

예를 들어 재생 에너지 시설 작업자가 태양열 패널의 출력이 특정 범위(1~4kW) 이내인지 테스트하고자 할 경우, 두 가지 방식으로 인코딩할 수 있습니다. 즉, UFCS를 사용하여 efficiency= if(power.lt(1000),0).elif(power.gt(4000),0,1)로 표현하거나 중첩된 함수를 사용하여 if(lt(power, 1000), 0, if(gt(power,4000), 0,1))을 사용합니다. 또한 UFCS는 문자열 연산으로 메서드 체이닝에 사용할 수 있습니다. 예를 들어 사용자가 JSON 메시지에서 장비 상태를 탐지할 경우, 중첩된 함수를 사용하면 status= contains(lower(jp(message, ‘$.status’)),‘fail’)로 표현하고 UFCS 구문을 사용하면 status= message.jp(‘$.status’).lower().contains(‘fail’)로 표현할 수 있습니다. 이렇게 하면 여러 함수를 연산할 때 추적과 문제 해결이 쉽습니다. 

AWS IoT SiteWise는 산업 장비에서 대규모로 데이터를 수집, 저장, 정리 및 모니터링하기 위한 관리형 서비스입니다. 자세한 내용은 AWS IoT SiteWise 웹사이트 또는 개발자 가이드를 참조하세요. AWS IoT SiteWise 지원 리전 목록을 보려면 AWS 리전을 방문하세요.