기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS IoT 규칙 생성
연결된 사물로부터 데이터를 라우팅하는 규칙을 구성합니다. 규칙의 구성 요소는 다음과 같습니다.
- 규칙 이름
-
규칙의 이름입니다.
참고
규칙 이름에 개인 식별 정보를 사용하지 않는 것이 좋습니다.
- 설명(선택 사항)
-
규칙에 대한 텍스트 설명입니다.
참고
규칙 설명에 개인 식별 정보를 사용하지 않는 것이 좋습니다.
- SQL 문
-
MQTT 주제에서 수신된 메시지를 필터링하고 데이터를 다른 위치로 푸시하기 위한 간소화된 SQL 구문입니다. 자세한 내용은 AWS IoT SQL 레퍼런스 단원을 참조하세요.
- SQL 버전
-
규칙을 평가할 때 사용할 SQL 규칙의 버전입니다. 이 속성은 선택 사항이지만 SQL 버전을 지정하는 것이 좋습니다. AWS IoT Core 콘솔은 이 속성을
2016-03-23
기본적으로 로 설정합니다. AWS CLI 명령이나 AWS CloudFormation 템플릿에서와 같이 이 속성이 설정되지 않은 경우 사용됩니다.2015-10-08
자세한 설명은 SQL 버전 섹션을 참조하세요. - 하나 이상의 작업
-
이 작업은 규칙을 적용할 때 AWS IoT 수행됩니다. 예를 들어 DynamoDB 테이블에 데이터를 삽입하거나, Amazon S3 버킷에 데이터를 기록하거나, Amazon SNS 주제에 게시하거나, Lambda 함수를 호출할 수 있습니다.
- 오류 작업
-
작업은 규칙의 작업을 수행할 수 없을 때 AWS IoT 수행됩니다.
규칙을 생성할 때 주제에 얼마나 많은 데이터를 게시하는지 알고 있어야 합니다. 와일드카드 주제 패턴을 포함하는 규칙을 만들면 메시지의 많은 부분과 매칭될 수 있습니다. 이 경우 대상 작업에 사용되는 AWS 리소스의 용량을 늘려야 할 수 있습니다. 또한 와일드카드 주제 패턴을 포함하는 재게시 규칙을 생성할 경우 무한 루프를 유발하는 순환 규칙이 발생할 수 있습니다.
참고
규칙 생성 및 업데이트는 관리자 수준 작업입니다. 규칙을 생성 또는 업데이트할 수 있는 권한이 있는 모든 사용자는 규칙이 처리한 데이터에 액세스할 수 있습니다.
규칙(AWS CLI)을 생성하려면
create-topic-rule명령을 사용하여 규칙을 생성합니다.
aws iot create-topic-rule --rule-name
myrule
--topic-rule-payload file://myrule
.json
다음 예제는 iot/test
주제에 전송된 모든 메시지를 지정된 DynamoDB 테이블에 삽입하는 규칙을 포함한 페이로드 파일입니다. SQL 문은 메시지를 필터링하고 역할 ARN은 DynamoDB 테이블에 쓰기 AWS IoT 권한을 부여합니다.
{ "sql": "SELECT * FROM 'iot/test'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "dynamoDB": { "tableName": "my-dynamodb-table", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role", "hashKeyField": "topic", "hashKeyValue": "${topic(2)}", "rangeKeyField": "timestamp", "rangeKeyValue": "${timestamp()}" } }] }
다음 예제는 iot/test
주제에 전송된 모든 메시지를 지정된 S3 버킷에 삽입하는 규칙을 포함한 페이로드 파일입니다. SQL 문은 메시지를 필터링하고, 역할 ARN은 Amazon S3 버킷에 쓸 수 있는 AWS IoT 권한을 부여합니다.
{ "awsIotSqlVersion": "2016-03-23", "sql": "SELECT * FROM 'iot/test'", "ruleDisabled": false, "actions": [ { "s3": { "roleArn": "arn:aws:iam::123456789012:role/aws_iot_s3", "bucketName": "my-bucket", "key": "myS3Key" } } ] }
다음은 Amazon OpenSearch Service로 데이터를 푸시하는 규칙이 포함된 예제 페이로드 파일입니다.
{ "sql":"SELECT *, timestamp() as timestamp FROM 'iot/test'", "ruleDisabled":false, "awsIotSqlVersion": "2016-03-23", "actions":[ { "OpenSearch":{ "roleArn":"arn:aws:iam::123456789012:role/aws_iot_es", "endpoint":"https://my-endpoint", "index":"my-index", "type":"my-type", "id":"${newuuid()}" } } ] }
다음 예제는 Lambda 함수를 호출하는 규칙을 포함한 페이로드 파일입니다.
{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "lambda": { "functionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function" } }] }
다음 예제는 Amazon SNS 주제에 게시하는 규칙을 포함한 페이로드 파일입니다.
{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "sns": { "targetArn": "arn:aws:sns:us-west-2:123456789012:my-sns-topic", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role" } }] }
다음 예제는 다른 MQTT 주제에 재게시하는 규칙을 포함한 페이로드 파일입니다.
{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "republish": { "topic": "my-mqtt-topic", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role" } }] }
다음은 Amazon Data Firehose 스트림으로 데이터를 푸시하는 규칙이 포함된 예제 페이로드 파일입니다.
{ "sql": "SELECT * FROM 'my-topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "firehose": { "roleArn": ""arn:aws:iam::123456789012:role/my-iot-role", "deliveryStreamName": "my-stream-name" } }] }
다음은 MQTT 페이로드의 데이터가 1로 분류되는 경우 Amazon SageMaker machinelearning_predict
함수를 사용하여 주제에 다시 게시하는 규칙이 포함된 예제 페이로드 파일입니다.
{ "sql": "SELECT * FROM 'iot/test' where machinelearning_predict('my-model', 'arn:aws:iam::123456789012:role/my-iot-aml-role', *).predictedLabel=1", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "republish": { "roleArn": "arn:aws:iam::123456789012:role/my-iot-role", "topic": "my-mqtt-topic" } }] }
다음은 Salesforce IoT 클라우드 입력 스트림에 메시지를 게시하는 규칙을 가진 페이로드 파일의 예입니다.
{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "salesforce": { "token": "ABCDEFGHI123456789abcdefghi123456789", "url": "https://ingestion-cluster-id.my-env.sfdcnow.com/streams/stream-id/connection-id/my-event" } }] }
다음 예제는 Step Functions 상태 시스템 실행을 시작하는 규칙을 포함한 페이로드 파일입니다.
{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "stepFunctions": { "stateMachineName": "myCoolStateMachine", "executionNamePrefix": "coolRunning", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role" } }] }