표현식에 사용할 함수 - AWS IoT Events

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

표현식에 사용할 함수

기본 제공 함수
timeout("timer-name")

지정된 타이머가 경과했는지 여부를 true 평가합니다. 바꾸기”타이머 이름“는 사용자가 정의한 타이머 이름을 따옴표로 묶습니다. 이벤트 작업에서 타이머를 정의한 다음 타이머를 시작하거나, 재설정하거나, 이전에 정의한 타이머를 지울 수 있습니다. 필드 detectorModelDefinition.states.onInput|onEnter|onExit.events.actions.setTimer.timerName을 참조하십시오.

한 상태에서 설정된 타이머를 다른 상태에서 참조할 수 있습니다. 타이머가 참조되는 상태를 입력하기 전에 타이머를 만든 상태를 방문해야 합니다.

예를 들어, 검출기 모델에는 두 개의 상태 TemperatureCheckedRecordUpdated 가 있습니다. TemperatureChecked상태에서 타이머를 생성했습니다. TemperatureChecked주에서 타이머를 사용하려면 먼저 주를 방문해야 합니다. RecordUpdated

정확성을 보장하기 위해 타이머를 설정해야 하는 시간은 최소 60초입니다.

참고

실제 타이머 만료 후 처음 확인할 때만 timeout()true로 반환되고 그 이후에는 false로 반환됩니다.

convert(type, expression)

지정된 유형으로 변환된 표현식의 값으로 평가합니다. The type 값은 StringBoolean, 또는 이어야 Decimal 합니다. 다음 키워드 중 하나를 사용하거나 키워드가 포함된 문자열로 평가되는 표현식을 사용하십시오. 다음 변환만 성공하여 유효한 값을 반환합니다.

  • 부울 -> 문자열

    문자열 "true" 또는 "false"를 반환합니다.

  • 10진수 -> 문자열

  • 문자열 -> 부울

  • 문자열 -> 10진수

    지정된 문자열은 유효한 10진수 표현이어야 하며, 그렇지 않으면 convert()는 실패합니다.

convert()가 유효한 값을 반환하지 않으면 해당 값이 속한 표현식도 유효하지 않습니다. 이 결과는 false와 동일하며 표현식이 발생한 이벤트의 일부로 nextState 지정된 이벤트와 actions으로 전환을 트리거하지 않습니다.

isNull(expression)

표현식이 NULL로 반환되면 true로 평가됩니다. 예를 들어, 입력 MyInput이 메시지 { "a": null }을 수신하면 다음은 true로 평가되지만 isUndefined($input.MyInput.a)false로 평가됩니다.

isNull($input.MyInput.a)
isUndefined(expression)

표현식이 정의되지 않았다면 true로 평가됩니다. 예를 들어, 입력 MyInput이 메시지 { "a": null }을 수신하면 다음은 false로 평가되지만 isNull($input.MyInput.a)true로 평가됩니다.

isUndefined($input.MyInput.a)
triggerType("type")

The type 값은 "Message" 또는 일 수 "Timer" 있습니다. 다음 예제와 같이 타이머가 만료되어 해당 이벤트가 나타나는 이벤트 조건을 평가 중이라면 true로 평가됩니다.

triggerType("Timer")

또는 입력 메시지가 수신되었습니다.

triggerType("Message")
currentInput("input")

지정된 입력 메시지를 받았기 때문에 해당 메시지가 나타나는 이벤트 조건을 평가 중이라면 true로 평가됩니다. 예를 들어, 입력 Command가 메시지 { "value": "Abort" }를 수신하면 다음은 true로 평가됩니다.

currentInput("Command")

이 함수를 사용하여 다음 표현식에서처럼 특정 입력이 수신되었고 타이머가 만료되지 않았으므로 조건이 평가되고 있는지 확인할 수 있습니다.

currentInput("Command") && $input.Command.value == "Abort"
문자열 일치 함수
startsWith(expression1, expression2)

첫 번째 문자열 표현식이 두 번째 문자열 표현식으로 시작한다면 true로 평가합니다. 예를 들어, 입력 MyInput이 메시지 { "status": "offline"}을 수신하면 다음은 true로 평가됩니다.

startsWith($input.MyInput.status, "off")

두 표현식 모두 문자열 값으로 평가되어야 합니다. 두 표현식 중 하나라도 문자열 값으로 평가되지 않으면 함수의 결과가 정의되지 않습니다. 변환은 수행되지 않습니다.

endsWith(expression1, expression2)

첫 번째 문자열 표현식이 두 번째 문자열 표현식으로 끝난다면 true로 평가합니다. 예를 들어, 입력 MyInput이 메시지 { "status": "offline" }을 수신하면 다음은 true로 평가됩니다.

endsWith($input.MyInput.status, "line")

두 표현식 모두 문자열 값으로 평가되어야 합니다. 두 표현식 중 하나라도 문자열 값으로 평가되지 않으면 함수의 결과가 정의되지 않습니다. 변환은 수행되지 않습니다.

contains(expression1, expression2)

첫 번째 문자열 표현식에 두 번째 문자열 표현식이 포함되어 있다면 true로 평가합니다. 예를 들어, 입력 MyInput이 메시지 { "status": "offline" }을 수신하면 다음은 true로 평가됩니다.

contains($input.MyInput.value, "fli")

두 표현식 모두 문자열 값으로 평가되어야 합니다. 두 표현식 중 하나라도 문자열 값으로 평가되지 않으면 함수의 결과가 정의되지 않습니다. 변환은 수행되지 않습니다.

비트별 정수 조작 함수
bitor(expression1, expression2)

정수 표현식의 비트별 OR을 평가합니다(이항 OR 연산은 정수의 대응하는 비트에 대해 수행됨). 예를 들어, 입력 MyInput이 메시지 { "value1": 13, "value2": 5 }를 수신하면 다음은 13으로 평가됩니다.

bitor($input.MyInput.value1, $input.MyInput.value2)

두 표현식 모두 정수 값으로 평가되어야 합니다. 두 표현식 중 하나가 정수 값으로 평가되지 않으면 함수의 결과가 정의되지 않습니다. 변환은 수행되지 않습니다.

bitand(expression1, expression2)

정수 표현식의 비트별 AND 값을 평가합니다 (이항 AND 연산은 정수의 대응하는 비트에 대해 수행됨). 예를 들어, 입력 MyInput이 메시지 { "value1": 13, "value2": 5 }을 수신하면 다음은 5로 평가됩니다.

bitand($input.MyInput.value1, $input.MyInput.value2)

두 표현식 모두 정수 값으로 평가되어야 합니다. 두 표현식 중 하나가 정수 값으로 평가되지 않으면 함수의 결과가 정의되지 않습니다. 변환은 수행되지 않습니다.

bitxor(expression1, expression2)

정수 표현식의 비트별 XOR 값을 평가합니다. 이항 XOR 연산은 정수의 대응되는 비트에 대해 수행됩니다. 예를 들어, 입력 MyInput이 메시지 { "value1": 13, "value2": 5 }을 수신하면 다음은 8로 평가됩니다.

bitxor($input.MyInput.value1, $input.MyInput.value2)

두 표현식 모두 정수 값으로 평가되어야 합니다. 두 표현식 중 하나가 정수 값으로 평가되지 않으면 함수의 결과가 정의되지 않습니다. 변환은 수행되지 않습니다.

bitnot(expression)

정수 표현식의 비트별 NOT 값을 평가합니다 (이항 NOT 연산은 정수 비트에 대해 수행됨). 예를 들어, 입력 MyInput이 메시지 { "value": 13 }을 수신하면 다음은 -14로 평가됩니다.

bitnot($input.MyInput.value)

두 표현식 모두 정수 값으로 평가되어야 합니다. 두 표현식 중 하나가 정수 값으로 평가되지 않으면 함수의 결과가 정의되지 않습니다. 변환은 수행되지 않습니다.