AWS IoT Events 알람 정의 (AWS CLI) - AWS IoT SiteWise

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

AWS IoT Events 알람 정의 (AWS CLI)

AWS Command Line Interface (AWS CLI) 를 사용하여 자산 속성을 모니터링하는 AWS IoT Events 경보를 정의할 수 있습니다. 새 자산 모델이나 기존 자산 모델에서 경보를 정의할 수 있습니다. 자산 모델에 경보를 정의한 후에는 경보를 생성하고 자산 모델에 연결합니다. AWS IoT Events 이 프로세스에서는 다음을 수행합니다.

1단계: 자산 모델에서 경보 정의

새 자산 모델 또는 기존 자산 모델에 경보 정의 및 연결된 속성을 추가합니다.

자산 모델(CLI)에서 경보를 정의하려면
  1. asset-model-payload.json이라는 파일을 생성합니다. 다른 섹션의 단계에 따라 자산 모델의 세부 정보를 파일에 추가하되, 자산 모델을 만들거나 업데이트하라는 요청을 제출하지 마세요. 이 섹션에서는 asset-model-payload.json 파일의 자산 모델 세부 정보에 경보 정의를 추가합니다.

    참고

    자산 모델은 경보로 모니터링할 자산 속성을 포함하여 하나 이상의 자산 속성을 정의해야 합니다.

  2. 경보 복합 모델(assetModelCompositeModels)을 자산 모델에 추가합니다. AWS IoT Events 알람 복합 모델은 IOT_EVENTS 유형을 지정하고 알람 소스 속성을 지정합니다. 에서 알람 모델을 생성한 후 알람 소스 속성을 추가합니다 AWS IoT Events.

    중요

    알람 복합 모델은 나중에 생성하는 AWS IoT Events 알람 모델과 이름이 같아야 합니다. 경보 모델 이름에는 영숫자만 사용할 수 있습니다. 경보 모델에 동일한 이름을 사용할 수 있도록 고유한 영숫자 이름을 지정합니다.

    { ... "assetModelCompositeModels": [ { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } } ] } ] }
  3. 자산 모델에 경보 임계값 속성(attribute)을 추가합니다. 이 임계값에 사용할 기본값을 지정합니다. 이 모델을 기반으로 각 자산에서 이 기본값을 재정의할 수 있습니다.

    참고

    경보 임계값 속성(attribute)은 INTEGER 또는 DOUBLE여야 합니다.

    { ... "assetModelProperties": [ ... { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } } ] }
  4. (선택 사항) 자산 모델에 경보 알림 속성(attribute)을 추가합니다. 이러한 속성은 경보 상태가 변경될 때 알림을 보내는 데 AWS IoT Events 사용하는 IAM Identity Center 수신자 및 기타 입력을 지정합니다. 이 모델을 기반으로 각 자산에서 이러한 기본값을 재정의할 수 있습니다.

    중요

    AWS IAM Identity Center 사용자에게 경보 알림을 보낼 수 있습니다. 이 기능을 사용하려면 IAM Identity Center를 활성화해야 합니다. IAM ID 센터는 한 번에 한 AWS 지역에서만 활성화할 수 있습니다. 즉, IAM Identity Center를 활성화한 리전에서만 경보 알림을 정의할 수 있습니다. 자세한 내용은AWS IAM Identity Center 사용 설명서에서 시작하기를 참조하세요.

    다음을 따릅니다.

    1. IAM Identity Center 아이덴티티 스토어의 ID를 지정하는 속성(attribute)을 추가합니다. IAM ID 센터 ListInstancesAPI 작업을 사용하여 ID 저장소를 나열할 수 있습니다. 이 작업은 IAM Identity Center를 활성화한 리전에서만 작동합니다.

      aws sso-admin list-instances

      그런 다음 아이덴티티 스토어 ID(예:d-123EXAMPLE)를 속성(attribute)의 기본값으로 지정합니다.

      { ... "assetModelProperties": [ ... { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } } ] }
    2. 알림을 받는 IAM Identity Center 사용자의 ID를 지정하는 속성(attribute)을 추가합니다. 기본 알림 수신자를 정의하려면 IAM Identity Center 사용자 ID를 기본값으로 추가합니다. IAM Identity Center 사용자 ID를 가져오려면 다음 중 하나를 수행합니다.

      1. IAM ID 센터 ListUsersAPI를 사용하여 사용자 이름을 알고 있는 사용자의 ID를 가져올 수 있습니다. d-123EXAMPLE을 아이덴티티 스토어의 ID로 바꾸고, Name을 사용자의 사용자 이름으로 바꿉니다.

        aws identitystore list-users \ --identity-store-id d-123EXAMPLE \ --filters AttributePath=UserName,AttributeValue=Name
      2. IAM Identity Center 콘솔을 사용하여 사용자를 검색하고 사용자 ID를 찾습니다.

      그런 다음 사용자 ID(예: 123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE)를 속성(attribute)의 기본값으로 지정하거나 기본값 없이 속성(attribute)을 정의합니다.

      { ... "assetModelProperties": [ ... { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } } ] }
    3. (선택 사항) SMS(텍스트) 메시지 알림의 기본 발신자 ID를 지정하는 속성(attribute)을 추가합니다. 발신자 ID는 Amazon Simple Notification Service(SNS)가 보내는 메시지에 메시지 발신자로 표시됩니다. 자세한 내용은 Amazon Simple Notification Service 개발자 안내서Amazon SNS로 SMS 메시징을 위한 발신자 ID 요청을 참조하세요.

      { ... "assetModelProperties": [ ... { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } } ] }
    4. (선택 사항) 이메일 알림에서 발신 주소로 사용할 기본 이메일 주소를 지정하는 속성(attribute)을 추가합니다.

      { ... "assetModelProperties": [ ... { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } } ] }
    5. (선택 사항) 이메일 알림에 사용할 기본 제목을 지정하는 속성(attribute)을 추가합니다.

      { ... "assetModelProperties": [ ... { "name": "emailSubject", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature" } } } ] }
    6. (선택 사항) 알림에 포함할 추가 메시지를 지정하는 속성(attribute)을 추가합니다. 기본적으로 알림 메시지에는 경보에 대한 정보가 포함됩니다. 사용자에게 자세한 정보를 제공하는 추가 메시지를 포함할 수도 있습니다.

      { ... "assetModelProperties": [ ... { "name": "additionalMessage", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm." } } } ] }
  5. 자산 모델을 만들거나 기존 자산 모델을 업데이트합니다. 다음 중 하나를 수행하십시오.

    • 다음 명령을 실행하여 자산 모델을 생성합니다.

      aws iotsitewise create-asset-model --cli-input-json file://asset-model-payload.json
    • 다음 명령을 실행하여 기존 자산 모델을 업데이트합니다. 자산 모델의 asset-model-idID로 바꾸십시오.

      aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --cli-input-json file://asset-model-payload.json

    명령을 실행한 후 응답에서 assetModelId를 기록합니다.

다음 자산 모델은 온도 데이터를 보고하는 보일러를 나타냅니다. 이 자산 모델은 보일러 과열을 감지하는 경보를 정의합니다.

{ "assetModelName": "Boiler Model", "assetModelDescription": "Represents a boiler.", "assetModelProperties": [ { "name": "Temperature", "dataType": "DOUBLE", "unit": "C", "type": { "measurement": {} } }, { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } }, { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } }, { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } }, { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } }, { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } }, { "name": "emailSubject", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature" } } }, { "name": "additionalMessage", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm." } } } ], "assetModelHierarchies": [ ], "assetModelCompositeModels": [ { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } } ] } ] }

2단계: AWS IoT Events 알람 모델 정의

에서 알람 모델을 생성합니다 AWS IoT Events. AWS IoT Events에서는 표현식을 사용하여 알람 모델의 값을 지정합니다. 표현식을 사용하여 평가할 값을 지정하고 AWS IoT SiteWise 경보에 대한 입력으로 사용할 수 있습니다. 자산 속성 값을 경보 모델로 AWS IoT SiteWise 보낼 때 표현식을 AWS IoT Events 평가하여 속성 값 또는 자산 ID를 가져옵니다. 경보 모델에서는 다음 표현식을 사용할 수 있습니다.

  • 자산 속성 값

    자산 속성의 값을 가져오려면 다음 표현식을 사용합니다. 자산 모델의 assetModelIdID로 바꾸고 PropertyID를 속성의 ID로 바꾸십시오.

    $sitewise.assetModel.`assetModelId`.`propertyId`.propertyValue.value
  • 자산 ID

    자산의 ID를 가져오려면 다음 표현식을 사용합니다. 자산 모델의 assetModelIdID로 바꾸고 PropertyID를 속성의 ID로 바꾸십시오.

    $sitewise.assetModel.`assetModelId`.`propertyId`.assetId
참고

알람 모델을 만들 때 값으로 평가되는 표현식 대신 리터럴을 정의할 수 있습니다. AWS IoT SiteWise 이렇게 하면 자산 모델에 정의하는 속성(attribute)의 수를 줄일 수 있습니다. 하지만 값을 리터럴로 정의하면 자산 모델을 기반으로 자산의 해당 값을 사용자 지정할 수 없습니다. 또한 AWS IoT SiteWise Monitor 사용자는 자산에 대해서만 경보 설정을 구성할 수 있으므로 경보를 사용자 지정할 수 없습니다.

AWS IoT Events 알람 모델 (CLI) 을 만들려면
  1. 에서 AWS IoT Events알람 모델을 생성할 때는 다음을 포함하여 경보가 사용하는 각 속성의 ID를 지정해야 합니다.

    • 복합 자산 모델의 경보 상태 속성

    • 경보가 모니터링하는 속성

    • 임계값 속성(attribute)

    • (선택 사항) IAM Identity Center 아이덴티티 스토어 ID 속성(attribute)

    • (선택 사항) IAM Identity Center 사용자 ID 속성(attribute)

    • (선택 사항) SMS 발신자 ID 속성(attribute)

    • (선택 사항) 이메일 발신 주소 속성(attribute)

    • (선택 사항) 이메일 제목 속성(attribute)

    • (선택 사항) 추가 메시지 속성(attribute)

    다음 명령을 실행하여 자산 모델에서 이러한 속성의 ID를 검색합니다. 이전 단계의 자산 모델 asset-model-idID로 바꾸십시오.

    aws iotsitewise describe-asset-model --asset-model-id asset-model-id

    이 작업은 자산 모델의 세부 사항이 포함된 응답을 반환합니다. 경보가 사용하는 각 속성의 ID를 기록해 둡니다. 다음 단계에서 AWS IoT Events 경보 모델을 생성할 때 이러한 ID를 사용합니다.

  2. 에서 알람 모델을 생성합니다 AWS IoT Events. 다음을 따릅니다.

    1. alarm-model-payload.json이라는 파일을 생성합니다.

    2. 다음 JSON 객체를 파일에 복사합니다.

    3. 경보의 이름(alarmModelName), 설명(alarmModelDescription), 그리고 심각도(severity)를 입력합니다. 심각도에서는 회사의 심각도 수준을 반영하는 정수를 지정합니다.

      중요

      경보 모델은 이전에 자산 모델에서 정의한 경보 복합 모델과 이름이 같아야 합니다.

      경보 모델 이름에는 영숫자만 사용할 수 있습니다.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3 }
    4. 비교 규칙(alarmRule)을 경보에 추가합니다. 이 규칙은 모니터링할 속성(inputProperty), 비교할 임계값(threshold), 사용할 비교 연산자(comparisonOperator)를 정의합니다.

      • 자산 모델의 assetModelIdID로 바꾸십시오.

      • 알람이 모니터링하는 속성의 alarmPropertyIdID로 바꾸십시오.

      • 임계값 속성 속성의 thresholdAttributeIdID로 바꾸십시오.

      • GREATER를 속성 값을 임계값과 비교하는 데 사용할 연산로 바꿉니다. 다음 옵션 중 하나를 선택합니다.

        • LESS

        • LESS_OR_EQUAL

        • EQUAL

        • NOT_EQUAL

        • GREATER_OR_EQUAL

        • GREATER

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } } }
    5. 경보 상태가 변경될 때 경보 상태를 AWS IoT SiteWise 로 보내는 작업(alarmEventActions)을 추가합니다.

      참고

      고급 구성에서 경보 상태가 변경될 때 수행할 추가 작업을 정의할 수 있습니다. 예를 들어 AWS Lambda 함수를 호출하거나 MQTT 주제에 게시할 수 있습니다. 자세한 내용은 AWS IoT Events 개발자 안내서의 다른 AWS 서비스 사용을 참조하십시오.

      • 에셋 모델의 assetModelIdID로 바꾸십시오.

      • 알람이 모니터링하는 속성의 alarmPropertyIdID로 바꾸십시오.

      • alarmStatePropertyId를 알람 복합 모델의 알람 상태 속성 ID로 대체합니다.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] } }
    6. (선택 사항) 경보 알림 설정을 구성합니다. 경보 알림 작업은 계정의 Lambda 함수를 사용하여 경보 알림을 전송합니다. 자세한 정보는 경보 알림 요구 사항을 참조하세요. 경보 알림 설정에서 IAM Identity Center 사용자에게 전송하도록 SMS 및 이메일 알림을 구성할 수 있습니다. 다음을 따릅니다.

      1. alarm-model-payload.json의 페이로드에 경보 알림 구성(alarmNotification)을 추가합니다.

        • alarmNotificationFunctionArn을 알람 알림을 처리하는 Lambda 함수의 ARN으로 대체하십시오.

        { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } } } ] } }
      2. (선택 사항) 경보 상태가 변경될 때 IAM Identity Center 사용자에게 전송하도록 SMS 알림(smsConfigurations)을 구성합니다.

        • IAM ID 센터 ID 저장소의 ID가 포함된 속성의 ID로 identityStoreIdAttributeId대체하십시오.

        • userIdAttributeId를 IAM ID 센터 사용자의 ID가 포함된 속성의 ID로 바꾸십시오.

        • senderIdAttributeId를 Amazon SNS 발신자 ID가 포함된 속성의 ID로 바꾸거나 senderId 페이로드에서 제거합니다.

        • additionalMessageAttributeId를 추가 메시지가 포함된 속성의 ID로 바꾸거나 additionalMessage 페이로드에서 제거하십시오.

        { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ] } ] } }
      3. (선택 사항) 경보 상태가 변경될 때 IAM Identity Center 사용자에게 전송하도록 이메일 알림(emailConfigurations)을 구성합니다.

        • IAM ID 센터 ID 스토어 ID 속성 속성의 identityStoreIdAttributeIdID로 바꾸십시오.

        • userIdAttributeId를 IAM ID 센터 사용자 ID 속성 속성의 ID로 바꾸십시오.

        • Id를 “from” 주소 속성 속성의 fromAddressAttributeID로 바꾸거나 from 페이로드에서 제거하십시오.

        • Id를 이메일 제목 속성 속성의 emailSubjectAttributeID로 바꾸거나 subject 페이로드에서 제거합니다.

        • Id를 추가 메시지 속성 속성의 additionalMessageAttributeID로 바꾸거나 additionalMessage 페이로드에서 제거합니다.

        { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId`.`fromAddressAttributeId`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId`.`emailSubjectAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } } ] } ] } }
    7. (선택 사항) 경보 기능(alarmCapabilities)을 alarm-model-payload.json의 페이로드에 추가합니다. 이 객체에서 자산 모델을 기반으로 확인 흐름의 활성화 여부와 자산의 기본 활성화 상태를 지정할 수 있습니다. 확인 흐름에 대한 자세한 내용은 경보 상태 섹션을 참조합니다.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId`.`fromAddressAttributeId`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId`.`emailSubjectAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } } ] } ] }, "alarmCapabilities": { "initializationConfiguration": { "disabledOnInitialization": false }, "acknowledgeFlow": { "enabled": true } } }
    8. 데이터 전송을 AWS IoT Events 위임할 수 있는 IAM 서비스 역할 (roleArn) 을 추가합니다. AWS IoT SiteWise이 역할에는 iotevents.amazonaws.com가 역할을 맡을 수 있도록 허용하는 iotsitewise:BatchPutAssetPropertyValue 권한과 신뢰 관계가 필요합니다. 알림을 보내려면 이 역할에도 lambda:InvokeFunctionsso-directory:DescribeUser 권한이 필요합니다. 자세한 정보는 AWS IoT Events 개발자 안내서에서 경보 서비스 역할을 참조하세요.

      • roleArn 이러한 작업을 수행할 AWS IoT Events 수 있는 역할의 ARN으로 대체하십시오.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId`.`fromAddressAttributeId`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId`.`emailSubjectAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } } ] } ] }, "alarmCapabilities": { "initializationConfiguration": { "disabledOnInitialization": false }, "acknowledgeFlow": { "enabled": false } }, "roleArn": "arn:aws:iam::123456789012:role/MyIoTEventsAlarmRole" }
    9. 다음 명령을 실행하여 페이로드로부터 AWS IoT Events 경보 모델을 생성합니다. alarm-model-payload.json

      aws iotevents create-alarm-model --cli-input-json file://alarm-model-payload.json
    10. 이 작업은 경보 모델(alarmModelArn)의 ARN이 포함된 응답을 반환합니다. 이 ARN을 복사하여 다음 단계에서 자산 모델의 경보 정의에 설정합니다.

3단계: ~ 사이의 AWS IoT SiteWise 데이터 흐름 활성화 AWS IoT Events

AWS IoT SiteWise 및 AWS IoT Events에서 필요한 리소스를 생성한 후 리소스 간 데이터 흐름을 활성화하여 경보를 활성화할 수 있습니다. 이 섹션에서는 이전 단계에서 만든 경보 모델을 사용하도록 자산 모델의 경보 정의를 업데이트합니다.

AWS IoT SiteWise 와 AWS IoT Events (CLI) 사이의 데이터 흐름을 활성화하려면
  • 경보 모델을 자산 모델에서 경보 소스로 설정합니다. 다음을 따릅니다.

    1. 다음 명령을 실행하여 기존 자산 모델 정의를 검색합니다. 자산 모델의 asset-model-idID로 바꾸십시오.

      aws iotsitewise describe-asset-model --asset-model-id asset-model-id

      이 작업은 자산 모델의 세부 사항이 포함된 응답을 반환합니다.

    2. update-asset-model-payload.json이라는 파일을 만들고 이전 명령의 응답을 파일에 복사합니다.

    3. update-asset-model-payload.json 파일에서 다음 키-값 페어를 제거합니다.

      • assetModelId

      • assetModelArn

      • assetModelCreationDate

      • assetModelLastUpdateDate

      • assetModelStatus

    4. 이전에 정의한 경보 복합 모델에 경보 소스 속성(AWS/ALARM_SOURCE)을 추가합니다. 알람 소스 속성의 값을 설정하는 알람 모델의 alarmModelArnARN으로 대체합니다.

      { ... "assetModelCompositeModels": [ ... { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "id": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "id": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } }, { "name": "AWS/ALARM_SOURCE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "alarmModelArn" } } } ] } ] }
    5. 다음 명령을 실행하여 update-asset-model-payload.json 파일에 저장된 정의로 자산 모델을 업데이트합니다. 자산 모델의 asset-model-idID로 바꾸십시오.

      aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --cli-input-json file://update-asset-model-payload.json

이제 자산 모델이 AWS IoT Events에서 이를 감지하는 경보를 정의합니다. 경보는 이 자산 모델을 기반으로 모든 자산의 대상 자산을 모니터링합니다. 각 자산에 대한 경보를 구성하여 각 자산의 임계값 또는 IAM Identity Center 수신자와 같은 속성을 사용자 지정할 수 있습니다. 자세한 정보는 자산에 대한 경보 구성을 참조하세요.