Definir una AWS IoT Events alarma (AWS CLI) - AWS IoT SiteWise

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Definir una AWS IoT Events alarma (AWS CLI)

Puede usar el AWS Command Line Interface (AWS CLI) para definir una AWS IoT Events alarma que supervise la propiedad de un activo. Puede definir una alarma en un modelo de activo nuevo o existente. Después de definir la alarma en el modelo de activos, se crea una alarma AWS IoT Events y se conecta al modelo de activos. En este proceso, hará lo siguiente:

Paso 1: definir una alarma en un modelo de activo

Añada una definición de alarma y las propiedades asociadas a un modelo de activo nuevo o existente.

Para definir una alarma en un modelo de activo (CLI)
  1. Cree un archivo denominado asset-model-payload.json. Siga los pasos de estas otras secciones para añadir los detalles de su modelo de activo al archivo, pero no envíe la solicitud para crear o actualizar el modelo de activo. En esta sección, debe añadir una definición de alarma a los detalles del modelo de activo del archivo asset-model-payload.json.

    nota

    Su modelo de activo debe definir al menos una propiedad de activo, incluida la propiedad del activo que se va a monitorear con la alarma.

  2. Añada un modelo compuesto de alarma (assetModelCompositeModels) al modelo de activo. Un modelo compuesto de AWS IoT Events alarmas especifica el IOT_EVENTS tipo y especifica una propiedad de la fuente de la alarma. La propiedad de la fuente de alarma se añade después de crear el modelo de alarma en AWS IoT Events.

    importante

    El modelo compuesto de alarma debe tener el mismo nombre que el modelo de AWS IoT Events alarma que cree más adelante. Los nombres de modelo de la alarma pueden contener únicamente caracteres alfanuméricos. Especifique un nombre alfanumérico único para poder usar el mismo nombre para el modelo de alarma.

    { ... "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. Añada un atributo de umbral de alarma al modelo de activo. Especifique el valor predeterminado que se utilizará para este umbral. Puede anular este valor predeterminado de cada activo basado en este modelo.

    nota

    El atributo de umbral de alarma debe ser un INTEGER o un DOUBLE.

    { ... "assetModelProperties": [ ... { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } } ] }
  4. (Opcional) Añada atributos de notificaciones de alarma al modelo de activo. Estos atributos especifican el destinatario del IAM Identity Center y otras entradas que se AWS IoT Events utilizan para enviar notificaciones cuando la alarma cambia de estado. Puede anular estos valores predeterminados en cada activo basado en este modelo.

    importante

    Puede enviar notificaciones de alarma a AWS IAM Identity Center los usuarios. Para utilizar esta característica, debe habilitar IAM Identity Center. Solo puede activar el IAM Identity Center en una AWS región a la vez. Esto significa que solo puede definir las notificaciones de alarma en la región en la que habilite IAM Identity Center. Para obtener más información, consulte la Introducción de la Guía del usuario de AWS IAM Identity Center .

    Haga lo siguiente:

    1. Añada un atributo que especifique el ID de su almacén de identidades de IAM Identity Center. Puede utilizar la operación de la ListInstancesAPI del IAM Identity Center para enumerar sus almacenes de identidades. Esta operación solo funciona en la región en la que se habilite IAM Identity Center.

      aws sso-admin list-instances

      A continuación, especifique el ID del almacén de identidades (por ejemplo, d-123EXAMPLE) como valor predeterminado para el atributo.

      { ... "assetModelProperties": [ ... { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } } ] }
    2. Añada un atributo que especifique el ID del usuario de IAM Identity Center que recibe notificaciones. Para definir un destinatario de notificación predeterminado, añada un ID de usuario de IAM Identity Center como valor predeterminado. Realice una de las siguientes acciones para obtener un ID de usuario de IAM Identity Center:

      1. Puede utilizar la ListUsersAPI del IAM Identity Center para obtener el ID de un usuario cuyo nombre de usuario conozca. Reemplace d-123Example por el ID de su almacén de identidades y reemplace Name por el nombre del usuario.

        aws identitystore list-users \ --identity-store-id d-123EXAMPLE \ --filters AttributePath=UserName,AttributeValue=Name
      2. Utilice la consola de IAM Identity Center para explorar los usuarios y buscar un ID de usuario.

      A continuación, especifique el ID de usuario (por ejemplo, 123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE) como valor predeterminado para el atributo o defina el atributo sin un valor predeterminado.

      { ... "assetModelProperties": [ ... { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } } ] }
    3. (Opcional) Añada un atributo que especifique el ID de remitente predeterminado para las notificaciones de mensajes SMS (de texto). El ID del remitente aparece como el remitente del mensaje en los mensajes que envía Amazon Simple Notification Service (Amazon SNS). Para obtener más información, consulte Solicitud de ID de remitente para mensajería SMS con Amazon SNS en Guía para desarrolladores de Amazon Simple Notification Service.

      { ... "assetModelProperties": [ ... { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } } ] }
    4. (Opcional) Añada un atributo que especifique la dirección de correo electrónico predeterminada que se debe utilizar como dirección de origen de en las notificaciones por correo electrónico.

      { ... "assetModelProperties": [ ... { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } } ] }
    5. (Opcional) Añada un atributo que especifique el asunto predeterminado que se debe utilizar en las notificaciones por correo electrónico.

      { ... "assetModelProperties": [ ... { "name": "emailSubject", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature" } } } ] }
    6. (Opcional) Añada un atributo que especifique un mensaje adicional para incluirlo en las notificaciones. De forma predeterminada, los mensajes de la notificación incluyen información sobre la alarma. También puede incluir un mensaje adicional que proporcione al usuario más información.

      { ... "assetModelProperties": [ ... { "name": "additionalMessage", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm." } } } ] }
  5. Cree el modelo de activo o actualice el modelo de activo existente. Realice una de las siguientes acciones siguientes:

    • Ejecute el siguiente comando para crear el modelo de activo.

      aws iotsitewise create-asset-model --cli-input-json file://asset-model-payload.json
    • Ejecute el siguiente comando para actualizar el modelo de activo existente. asset-model-idSustitúyala por la ID del modelo de activos.

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

    Después de ejecutar el comando, anote assetModelId en la respuesta.

El siguiente modelo de activo representa una caldera que informa de los datos de temperatura. Este modelo de activo define una alarma que detecta cuando la caldera se sobrecalienta.

{ "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": {} } } ] } ] }

Paso 2: Definir un modelo AWS IoT Events de alarma

Cree el modelo de alarma en AWS IoT Events. En AWS IoT Events, se utilizan expresiones para especificar valores en los modelos de alarma. Puede utilizar expresiones para especificar los valores desde los AWS IoT SiteWise que evaluar y utilizarlos como entradas para la alarma. Cuando AWS IoT SiteWise envía los valores de las propiedades del activo al modelo de alarma, AWS IoT Events evalúa la expresión para obtener el valor de la propiedad o el identificador del activo. Puede utilizar las siguientes expresiones en el modelo de alarma:

  • Valores de propiedades de activos

    Para obtener el valor de la propiedad de un activo, utilice la siguiente expresión. assetModelIdReemplace por el ID del modelo de activo y reemplace PropertyID por el ID de la propiedad.

    $sitewise.assetModel.`assetModelId`.`propertyId`.propertyValue.value
  • ID de activo

    Para obtener el ID del activo, utilice la siguiente expresión. assetModelIdReemplace por el ID del modelo de activo y reemplace PropertyID por el ID de la propiedad.

    $sitewise.assetModel.`assetModelId`.`propertyId`.assetId
nota

Al crear el modelo de alarma, puede definir literales en lugar de expresiones que se evalúan como valores. AWS IoT SiteWise Esto puede reducir el número de atributos que define en su modelo de activo. Sin embargo, si define un valor como literal, no podrá personalizar ese valor en los activos basados en el modelo de activo. AWS IoT SiteWise Monitor Los usuarios tampoco pueden personalizar la alarma, ya que solo pueden configurar los ajustes de alarma en los activos.

Para crear un modelo AWS IoT Events de alarma (CLI)
  1. Al crear el modelo de alarma en AWS IoT Events, debe especificar el ID de cada propiedad que utilice la alarma, que incluye lo siguiente:

    • La propiedad del estado de alarma en el modelo de activo compuesto

    • La propiedad que monitorea la alarma

    • El atributo de umbral

    • (Opcional) El atributo de ID del almacén de identidades de IAM Identity Center

    • (Opcional) El atributo de ID de usuario de IAM Identity Center

    • (Opcional) El atributo de ID del remitente del SMS

    • (Opcional) El atributo de dirección de origen de del correo electrónico

    • (Opcional) El atributo de asunto del correo electrónico

    • (Opcional) El atributo de mensaje adicional

    Ejecute el siguiente comando para recuperar los ID de estas propiedades en el modelo de activo. asset-model-idSustitúyalo por el ID del modelo de activos del paso anterior.

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

    La operación devuelve una respuesta que contiene los detalles del modelo de activo. Anote el ID de cada propiedad que utiliza la alarma. Estos identificadores se utilizan al crear el modelo de alarma de AWS IoT Events en el siguiente paso.

  2. Cree el modelo de alarma en AWS IoT Events. Haga lo siguiente:

    1. Cree un archivo denominado alarm-model-payload.json.

    2. Copie el objeto JSON siguiente en el archivo.

    3. Escriba un nombre (alarmModelName), la descripción (alarmModelDescription) y gravedad (severity) de su alarma. Para la gravedad, especifique un número entero que refleje los niveles de gravedad de su empresa.

      importante

      El modelo de alarma debe tener el mismo nombre que el modelo compuesto de alarma que definió anteriormente en su modelo de activo.

      Los nombres de modelo de la alarma pueden contener únicamente caracteres alfanuméricos.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3 }
    4. Añada la regla de comparación (alarmRule) a la alarma. Esta regla define la propiedad que se debe monitorear (inputProperty), el valor de umbral que se va a comparar (threshold) y el operador de comparación que se debe usar (comparisonOperator).

      • assetModelIdSustitúyalo por el ID del modelo de activos.

      • alarmPropertyIdSustitúyalo por el ID de la propiedad que monitorea la alarma.

      • thresholdAttributeIdSustitúyalo por el ID de la propiedad del atributo de umbral.

      • Reemplace GREATER por el operador que se debe usar para comparar los valores de propiedades con el umbral. Puede elegir entre las siguientes opciones:

        • 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. Agregar una acción (alarmEventActions) para enviar el estado de alarma al AWS IoT SiteWise cuando la alarma cambie de estado.

      nota

      Para una configuración avanzada, puede definir acciones adicionales que deben realizarse cuando la alarma cambie de estado. Por ejemplo, puede llamar a una función de AWS Lambda o publicar en un tema de MQTT. Para obtener más información, consulte Trabajar con otros AWS servicios en la Guía para AWS IoT Events desarrolladores.

      • assetModelIdSustitúyalo por el ID del modelo de activos.

      • alarmPropertyIdSustitúyalo por el ID de la propiedad que monitorea la alarma.

      • Sustituya alarmStateProperty el identificador por el identificador de la propiedad del estado de alarma en el modelo compuesto de alarmas.

      { "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. (Opcional) Configure las opciones de notificación de alarmas. La acción de notificación de alarmas utiliza una función de Lambda en su cuenta para enviar notificaciones de alarma. Para obtener más información, consulte Requisitos para las notificaciones de alarma. En los ajustes de notificación de alarmas, puede configurar las notificaciones por SMS y correo electrónico para enviarlas a los usuarios del IAM Identity Center. Haga lo siguiente:

      1. Añada la configuración de notificaciones de alarma (alarmNotification) a la carga en alarm-model-payload.json.

        • Sustituya alarmNotificationFunctionArn por el ARN de la función Lambda que gestiona las notificaciones de alarma.

        { "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. (Opcional) Configure las notificaciones por SMS (smsConfigurations) para enviarlas a un usuario de IAM Identity Center cuando la alarma cambie de estado.

        • identityStoreIdAttributeIdSustitúyalo por el ID del atributo que contiene el ID del almacén de identidades del IAM Identity Center.

        • Sustituya el userIdAttributeID por el ID del atributo que contiene el ID del usuario del Centro de Identidad de IAM.

        • Sustituya senderIdAttribute el ID por el ID del atributo que contiene el ID del remitente de Amazon SNS o elimínelo senderId de la carga útil.

        • Sustituya additionalMessageAttribute el ID por el ID del atributo que contiene el mensaje adicional o elimínelo additionalMessage de la carga útil.

        { "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. (Opcional) Configure las notificaciones por correo electrónico (emailConfigurations) para enviarlas a un usuario de IAM Identity Center cuando la alarma cambie de estado.

        • identityStoreIdAttributeIdSustitúyalo por el ID de la propiedad del atributo ID del almacén de identidades del IAM Identity Center.

        • Sustituya el userIdAttributeID por el ID de la propiedad del atributo de ID de usuario del IAM Identity Center.

        • Sustituya el fromAddressAttributeID por el ID de la propiedad del atributo de dirección «de» o elimínelo from de la carga útil.

        • Sustituya el emailSubjectAttributeID por el ID de la propiedad del atributo del asunto del correo electrónico o elimínelo subject de la carga útil.

        • Sustituya el additionalMessageAttributeidentificador por el identificador de la propiedad adicional del atributo del mensaje o elimínelo additionalMessage de la carga útil.

        { "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. (Opcional) Añada las funciones de alarma (alarmCapabilities) a la carga en alarm-model-payload.json. En este objeto, puede especificar si se habilita el flujo de reconocimiento y el estado de activación predeterminado de los activos basados en el modelo de activo. Para obtener más información sobre el flujo de reconocimiento, consulte Estados de alarma.

      { "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. Añada la función de servicio de IAM (roleArn) a la que AWS IoT Events puede enviar datos. AWS IoT SiteWise Este rol requiere el permiso iotsitewise:BatchPutAssetPropertyValue y una relación de confianza que permita a iotevents.amazonaws.com asumir el rol. Para enviar notificaciones, este rol también requiere los permisos lambda:InvokeFunction y sso-directory:DescribeUser. Para obtener más información, consulte Rol de servicio de alarmas en la Guía para desarrolladores de AWS IoT Events .

      • Sustituya el roleArn por el ARN del rol que AWS IoT Events puede asumir para realizar estas acciones.

      { "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. Ejecute el siguiente comando para crear el modelo de AWS IoT Events alarma a partir de la carga útil entrante. alarm-model-payload.json

      aws iotevents create-alarm-model --cli-input-json file://alarm-model-payload.json
    10. La operación devuelve una respuesta que incluye el ARN del modelo de alarma, alarmModelArn. Copie este ARN para configurar en el siguiente paso la definición de la alarma en su modelo de activo.

Paso 3: Habilitar el flujo de datos entre y AWS IoT SiteWiseAWS IoT Events

Después de crear los recursos necesarios en AWS IoT SiteWise y AWS IoT Events, puede habilitar el flujo de datos entre los recursos para activar la alarma. En esta sección, usted actualiza la definición de alarma en el modelo de activo para usar el modelo de alarma que ha creado en el paso anterior.

Para habilitar el flujo de datos entre AWS IoT SiteWise y AWS IoT Events (CLI)
  • Configure el modelo de alarma como origen de la alarma en el modelo de activo. Haga lo siguiente:

    1. Ejecute el siguiente comando para recuperar la definición del modelo de activo existente. asset-model-idSustitúyalo por el ID del modelo de activos.

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

      La operación devuelve una respuesta que contiene los detalles del modelo de activo.

    2. Cree un archivo llamado update-asset-model-payload.json y copie la respuesta del comando anterior en el archivo.

    3. Elimine los siguientes pares de clave-valor del archivo update-asset-model-payload.json:

      • assetModelId

      • assetModelArn

      • assetModelCreationDate

      • assetModelLastUpdateDate

      • assetModelStatus

    4. Añada la propiedad de origen de alarma (AWS/ALARM_SOURCE) al modelo compuesto de alarmas que definió anteriormente. alarmModelArnSustitúyalo por el ARN del modelo de alarma, que establece el valor de la propiedad de la fuente de alarma.

      { ... "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. Ejecute el siguiente comando para actualizar el modelo de activo con la definición almacenada en el archivo update-asset-model-payload.json. asset-model-idSustitúyalo por el ID del modelo de activos.

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

Su modelo de activo ahora define una alarma capaz de detectar en AWS IoT Events. La alarma monitorea la propiedad de destino en todos los activos basados en este modelo de activo. Puede configurar la alarma de cada activo para personalizar propiedades como el umbral o el destinatario de IAM Identity Center para cada activo. Para obtener más información, consulte Configuración de alarmas en los activos.