AWS CLI를 사용한 AWS IoT Events-Data 예시
다음 코드 예시는 AWS IoT Events-Data와 함께 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.
각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.
주제
작업
다음 코드 예시에서는 batch-put-message
의 사용 방법을 보여줍니다.
- AWS CLI
-
AWS IoT Events로 메시지(입력) 전송
다음
batch-put-message
예시에서는 AWS IoT Events 시스템으로 메시지 세트를 전송합니다. 각 메시지 페이로드는 지정한 입력(inputName
)으로 변환되고 해당 입력을 모니터링하는 모든 탐지기로 수집됩니다. 메시지가 여러 개 전송되는 경우 메시지가 처리되는 순서가 보장되지 않습니다. 순서를 보장하려면 메시지를 한 번에 하나씩 보내고 응답이 성공할 때까지 기다려야 합니다.aws iotevents-data batch-put-message \ --cli-binary-format
raw-in-base64-out
\ --cli-input-jsonfile://highPressureMessage.json
highPressureMessage.json
의 콘텐츠:{ "messages": [ { "messageId": "00001", "inputName": "PressureInput", "payload": "{\"motorid\": \"Fulton-A32\", \"sensorData\": {\"pressure\": 80, \"temperature\": 39} }" } ] }
출력:
{ "BatchPutMessageErrorEntries": [] }
자세한 내용은 AWS IoT Events 개발자 안내서*의 BatchPutMessage를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 BatchPutMessage
를 참조하세요.
-
다음 코드 예시에서는 batch-update-detector
의 사용 방법을 보여줍니다.
- AWS CLI
-
탐지기(인스턴스) 업데이트
다음
batch-update-detector
예시에서는 지정된 탐지기 모델의 하나 이상의 탐지기(인스턴스)의 상태, 변숫값 및 타이머 설정을 업데이트합니다.aws iotevents-data batch-update-detector \ --cli-input-json
file://budFulton-A32.json
budFulton-A32.json
의 콘텐츠:{ "detectors": [ { "messageId": "00001", "detectorModelName": "motorDetectorModel", "keyValue": "Fulton-A32", "state": { "stateName": "Normal", "variables": [ { "name": "pressureThresholdBreached", "value": "0" } ], "timers": [ ] } } ] }
출력:
{ "batchUpdateDetectorErrorEntries": [] }
자세한 내용은 AWS IoT Events 개발자 안내서*의 BatchUpdateDetector를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 BatchUpdateDetector
를 참조하세요.
-
다음 코드 예시에서는 create-detector-model
의 사용 방법을 보여줍니다.
- AWS CLI
-
탐지기 모델 생성
다음
create-detector-model
예시에서는 탐지기 모델을 생성합니다.aws iotevents create-detector-model \ --cli-input-json
file://motorDetectorModel.json
motorDetectorModel.json
의 콘텐츠:{ "detectorModelName": "motorDetectorModel", "detectorModelDefinition": { "states": [ { "stateName": "Normal", "onEnter": { "events": [ { "eventName": "init", "condition": "true", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "0" } } ] } ] }, "onInput": { "transitionEvents": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached + 3" } } ], "nextState": "Dangerous" } ] } }, { "stateName": "Dangerous", "onEnter": { "events": [ { "eventName": "Pressure Threshold Breached", "condition": "$variable.pressureThresholdBreached > 1", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" } } ] } ] }, "onInput": { "events": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "3" } } ] }, { "eventName": "Pressure Okay", "condition": "$input.PressureInput.sensorData.pressure <= 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ] } ], "transitionEvents": [ { "eventName": "BackToNormal", "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ] }, "onExit": { "events": [ { "eventName": "Normal Pressure Restored", "condition": "true", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" } } ] } ] } } ], "initialStateName": "Normal" }, "key": "motorid", "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" }
출력:
{ "detectorModelConfiguration": { "status": "ACTIVATING", "lastUpdateTime": 1560796816.077, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560796816.077, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "key": "motorid", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } }
자세한 내용은 AWS IoT Events 개발자 안내서*의 CreateDetectorModel을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateDetectorModel
을 참조하세요.
-
다음 코드 예시에서는 create-input
의 사용 방법을 보여줍니다.
- AWS CLI
-
입력 생성
다음
create-input
예시에서는 입력을 생성합니다.aws iotevents create-input \ --cli-input-json
file://pressureInput.json
pressureInput.json
의 콘텐츠:{ "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor", "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } }
출력:
{ "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1560795312.542, "creationTime": 1560795312.542, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" } }
자세한 내용은 AWS IoT Events 개발자 안내서*의 CreateInput을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateInput
을 참조하세요.
-
다음 코드 예시에서는 delete-detector-model
의 사용 방법을 보여줍니다.
- AWS CLI
-
탐지기 모델 삭제
다음
delete-detector-model
예시에서는 탐지기 모델을 삭제합니다. 탐지기 모델의 모든 활성 인스턴스도 삭제됩니다.aws iotevents delete-detector-model \ --detector-model-name
motorDetectorModel*
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS IoT Events 개발자 안내서*의 DeleteDetectorModel을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteDetectorModel
을 참조하세요.
-
다음 코드 예시에서는 delete-input
의 사용 방법을 보여줍니다.
- AWS CLI
-
입력 삭제
다음
delete-input
예시에서는 입력을 삭제합니다.aws iotevents delete-input \ --input-name
PressureInput
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS IoT Events 개발자 안내서*의 DeleteInput을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteInput
을 참조하세요.
-
다음 코드 예시에서는 describe-detector-model
의 사용 방법을 보여줍니다.
- AWS CLI
-
탐지기 모델 정보 가져오기
다음
describe-detector-model
예시에서는 탐지기 모델을 설명합니다.version
파라미터가 지정되지 않은 경우 명령은 최신 버전의 정보를 반환합니다.aws iotevents describe-detector-model \ --detector-model-name
motorDetectorModel
출력:
{ "detectorModel": { "detectorModelConfiguration": { "status": "ACTIVE", "lastUpdateTime": 1560796816.077, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560796816.077, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "key": "motorid", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" }, "detectorModelDefinition": { "states": [ { "onInput": { "transitionEvents": [ { "eventName": "Overpressurized", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached + 3" } } ], "condition": "$input.PressureInput.sensorData.pressure > 70", "nextState": "Dangerous" } ], "events": [] }, "stateName": "Normal", "onEnter": { "events": [ { "eventName": "init", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "0" } } ], "condition": "true" } ] }, "onExit": { "events": [] } }, { "onInput": { "transitionEvents": [ { "eventName": "BackToNormal", "actions": [], "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ], "events": [ { "eventName": "Overpressurized", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "3" } } ], "condition": "$input.PressureInput.sensorData.pressure > 70" }, { "eventName": "Pressure Okay", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ], "condition": "$input.PressureInput.sensorData.pressure <= 70" } ] }, "stateName": "Dangerous", "onEnter": { "events": [ { "eventName": "Pressure Threshold Breached", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" } } ], "condition": "$variable.pressureThresholdBreached > 1" } ] }, "onExit": { "events": [ { "eventName": "Normal Pressure Restored", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" } } ], "condition": "true" } ] } } ], "initialStateName": "Normal" } } }
자세한 내용은 AWS IoT Events 개발자 안내서*의 DescribeDetectorModel을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeDetectorModel
을 참조하세요.
-
다음 코드 예시에서는 describe-detector
의 사용 방법을 보여줍니다.
- AWS CLI
-
탐지기(인스턴스) 정보 가져오기
다음
describe-detector
예시에서는 지정된 탐지기(인스턴스)의 정보를 반환합니다.aws iotevents-data describe-detector \ --detector-model-name
motorDetectorModel
\ --key-value"Fulton-A32"
출력:
{ "detector": { "lastUpdateTime": 1560797852.776, "creationTime": 1560797852.775, "state": { "variables": [ { "name": "pressureThresholdBreached", "value": "3" } ], "stateName": "Dangerous", "timers": [] }, "keyValue": "Fulton-A32", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } }
자세한 내용은 AWS IoT Events 개발자 안내서*의 DescribeDetector를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeDetector
를 참조하세요.
-
다음 코드 예시에서는 describe-input
의 사용 방법을 보여줍니다.
- AWS CLI
-
입력 정보 가져오기
다음
describe-input
예시에서는 입력 세부 정보를 가져옵니다.aws iotevents describe-input \ --input-name
PressureInput
출력:
{ "input": { "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1560795312.542, "creationTime": 1560795312.542, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" }, "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } } }
자세한 내용은 AWS IoT Events 개발자 안내서*의 DescribeInput을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeInput
을 참조하세요.
-
다음 코드 예시에서는 describe-logging-options
의 사용 방법을 보여줍니다.
- AWS CLI
-
로깅 설정 정보 가져오기
다음
describe-logging-options
예시에서는 현재 AWS IoT Events의 로깅 옵션을 가져옵니다.aws iotevents describe-logging-options
출력:
{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "enabled": false, "level": "ERROR" } }
자세한 내용은 AWS IoT Events 개발자 안내서*의 DescribeLoggingOptions를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeLoggingOptions
를 참조하세요.
-
다음 코드 예시에서는 list-detector-model-versions
의 사용 방법을 보여줍니다.
- AWS CLI
-
탐지기 모델 버전 정보 가져오기
다음
list-detector-model-versions
예시에서는 탐지기 모델의 모든 버전을 나열합니다. 각 탐지기 모델 버전과 연결된 메타데이터만 반환됩니다.aws iotevents list-detector-model-versions \ --detector-model-name
motorDetectorModel
출력:
{ "detectorModelVersionSummaries": [ { "status": "ACTIVE", "lastUpdateTime": 1560796816.077, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560796816.077, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } ] }
자세한 내용은 AWS IoT Events 개발자 안내서*의 ListDetectorModelVersions를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListDetectorModelVersions
를 참조하세요.
-
다음 코드 예시에서는 list-detector-models
의 사용 방법을 보여줍니다.
- AWS CLI
-
탐지기 모델 목록 가져오기
다음
list-detector-models
예시에서는 생성한 탐지기 모델을 나열합니다. 각 탐지기 모델과 연결된 메타데이터만 반환됩니다.aws iotevents list-detector-models
출력:
{ "detectorModelSummaries": [ { "detectorModelName": "motorDetectorModel", "creationTime": 1552072424.212 "detectorModelDescription": "Detect overpressure in a motor." } ] }
자세한 내용은 AWS IoT Events 개발자 안내서*의 ListDetectorModels를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListDetectorModels
를 참조하세요.
-
다음 코드 예시에서는 list-detectors
의 사용 방법을 보여줍니다.
- AWS CLI
-
탐지기 모델의 탐지기 목록 가져오기
다음
list-detectors
예시에서는 탐지기(탐지기 모델의 인스턴스)를 나열합니다.aws iotevents-data list-detectors \ --detector-model-name
motorDetectorModel
출력:
{ "detectorSummaries": [ { "lastUpdateTime": 1558129925.2, "creationTime": 1552073155.527, "state": { "stateName": "Normal" }, "keyValue": "Fulton-A32", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } ] }
자세한 내용은 AWS IoT Events 개발자 안내서*의 ListDetectors를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListDetectors
를 참조하세요.
-
다음 코드 예시에서는 list-inputs
의 사용 방법을 보여줍니다.
- AWS CLI
-
입력 나열
다음
list-inputs
예시에서는 생성한 입력을 나열합니다.aws iotevents list-inputs
출력:
{ "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1551742986.768, "creationTime": 1551742986.768, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" }
자세한 내용은 AWS IoT Events 개발자 안내서*의 ListInputs를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListInputs
를 참조하세요.
-
다음 코드 예시에서는 list-tags-for-resource
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스에 할당된 태그 나열
다음
list-tags-for-resource
예시에서는 리소스에 할당한 태그(메타데이터)를 나열합니다.aws iotevents list-tags-for-resource \ --resource-arn
"arn:aws:iotevents:us-west-2:123456789012:input/PressureInput"
출력:
{ "tags": [ { "value": "motor", "key": "deviceType" } ] }
자세한 내용은 AWS IoT Events 개발자 안내서*의 ListTagsForResource를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListTagsForResource
를 참조하세요.
-
다음 코드 예시에서는 put-logging-options
의 사용 방법을 보여줍니다.
- AWS CLI
-
로깅 옵션 설정
다음
list-tags-for-resource
예시에서는 AWS IoT Events의 로깅 옵션을 설정하거나 업데이트합니다.loggingOptions
필드 값을 업데이트한 경우 변경 사항이 적용되기까지 최대 1분이 소요될 수 있습니다. 또한roleArn
필드에서 지정한 역할에 연결된 정책을 변경하는 경우(예: 잘못된 정책 수정), 변경 사항이 적용되기까지 최대 5분이 소요될 수 있습니다.aws iotevents put-logging-options \ --cli-input-json
file://logging-options.json
logging-options.json
의 콘텐츠:{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "level": "DEBUG", "enabled": true, "detectorDebugOptions": [ { "detectorModelName": "motorDetectorModel", "keyValue": "Fulton-A32" } ] } }
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS IoT Events 개발자 안내서*의 PutLoggingOptions를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 PutLoggingOptions
를 참조하세요.
-
다음 코드 예시에서는 tag-resource
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스에 태그 추가
다음
tag-resource
예시에서는 지정된 리소스의 태그를 추가하거나 수정합니다. 태그는 리소스 관리에 사용할 수 있는 메타데이터입니다.aws iotevents tag-resource \ --cli-input-json
file://pressureInput.tag.json
pressureInput.tag.json
의 콘텐츠:{ "resourceArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "tags": [ { "key": "deviceType", "value": "motor" } ] }
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS IoT Events 개발자 안내서*의 TagResource를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 TagResource
를 참조하세요.
-
다음 코드 예시에서는 untag-resource
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스에서 태그 제거
다음
untag-resource
예시에서는 리소스에서 지정된 태그를 제거합니다.aws iotevents untag-resource \ --cli-input-json
file://pressureInput.untag.json
pressureInput.untag.json
의 콘텐츠:{ "resourceArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "tagKeys": [ "deviceType" ] }
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS IoT Events 개발자 안내서*의 UntagResource를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UntagResource
를 참조하세요.
-
다음 코드 예시에서는 update-detector-model
의 사용 방법을 보여줍니다.
- AWS CLI
-
탐지기 모델 업데이트
다음
update-detector-model
예시에서는 탐지기 모델을 업데이트합니다. 이전 버전에서 생성된 탐지기(인스턴스)는 삭제된 다음 새 입력이 도착하면 다시 생성됩니다.aws iotevents update-detector-model \ --cli-input-json
file://motorDetectorModel.update.json
motorDetectorModel.update.json의 콘텐츠:
{ "detectorModelName": "motorDetectorModel", "detectorModelDefinition": { "states": [ { "stateName": "Normal", "onEnter": { "events": [ { "eventName": "init", "condition": "true", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "0" } } ] } ] }, "onInput": { "transitionEvents": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached + 3" } } ], "nextState": "Dangerous" } ] } }, { "stateName": "Dangerous", "onEnter": { "events": [ { "eventName": "Pressure Threshold Breached", "condition": "$variable.pressureThresholdBreached > 1", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" } } ] } ] }, "onInput": { "events": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "3" } } ] }, { "eventName": "Pressure Okay", "condition": "$input.PressureInput.sensorData.pressure <= 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ] } ], "transitionEvents": [ { "eventName": "BackToNormal", "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ] }, "onExit": { "events": [ { "eventName": "Normal Pressure Restored", "condition": "true", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" } } ] } ] } } ], "initialStateName": "Normal" }, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" }
출력:
{ "detectorModelConfiguration": { "status": "ACTIVATING", "lastUpdateTime": 1560799387.719, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560799387.719, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "key": "motorid", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "2" } }
자세한 내용은 AWS IoT Events 개발자 안내서*의 UpdateDetectorModel을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateDetectorModel
을 참조하세요.
-
다음 코드 예시에서는 update-input
의 사용 방법을 보여줍니다.
- AWS CLI
-
입력 업데이트
다음
update-input
예시에서는 입력을 업데이트합니다.aws iotevents update-input \ --cli-input-json
file://pressureInput.json
pressureInput.json
의 콘텐츠:{ "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor", "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } }
출력:
{ "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1560795976.458, "creationTime": 1560795312.542, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" } }
자세한 내용은 AWS IoT Events 개발자 안내서*의 UpdateInput을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateInput
을 참조하세요.
-