Defina las alarmas AWS IoT Events - 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.

Defina las alarmas AWS IoT Events

Al crear una AWS IoT Events alarma, AWS IoT SiteWise envía los valores de las propiedades de los activos AWS IoT Events para evaluar el estado de la alarma. AWS IoT Events las definiciones de alarma dependen del modelo de alarma en el que se defina AWS IoT Events. Para definir una AWS IoT Events alarma en un modelo de activos, defina un modelo compuesto de alarmas que especifique el modelo de AWS IoT Events alarma como su propiedad de origen de alarma.

AWS IoT Events las alarmas dependen de entradas como los umbrales de alarma y la configuración de las notificaciones de alarmas. Estas entradas se definen como atributos en el modelo de activo. A continuación, puede personalizar estas entradas en cada activo basado en el modelo. La AWS IoT SiteWise consola puede crear estos atributos por usted. Si define las alarmas con la AWS CLI tecla oAPI, debe definir estos atributos manualmente en el modelo de activos.

También puede definir otras acciones, como las acciones de notificación de alarma personalizadas, que deben producirse cuando la alarma detecte algo. Por ejemplo, puedes configurar una acción que envíe una notificación push a un SNS tema de Amazon. Para obtener más información sobre las acciones que puede definir, consulte Trabajar con otros AWS servicios en la Guía para AWS IoT Events desarrolladores.

Al actualizar o eliminar un modelo de activos, AWS IoT SiteWise puede comprobar si un modelo de alarma AWS IoT Events monitorea una propiedad de activo asociada a este modelo de activos. Esto le impide eliminar una propiedad de activo que una AWS IoT Events alarma esté utilizando actualmente. Para activar esta función AWS IoT SiteWise, debe tener el iotevents:ListInputRoutings permiso. Este permiso permite AWS IoT SiteWise realizar llamadas a la ListInputRoutingsAPIoperación admitida por AWS IoT Events. Para obtener más información, consulte ListInputRoutings Permiso (opcional).

nota

La característica de notificaciones de alarma no está disponible en la región de China (Pekín).

Definir una AWS IoT Events alarma (AWS IoT SiteWise consola)

Puede utilizar la AWS IoT SiteWise consola para definir una AWS IoT Events alarma en un modelo de activos existente. Para definir una AWS IoT Events alarma en un nuevo modelo de activos, cree el modelo de activos y, a continuación, complete estos pasos. Para obtener más información, consulte Cree modelos de activos.

importante

Cada alarma requiere un atributo que especifique el valor de umbral con el que comparar la alarma. Debe definir el atributo de valor de umbral en el modelo de activo antes de poder definir una alarma.

Considere un ejemplo en el que desee definir una alarma que detecte cuando una turbina eólica supere su índice de velocidad máxima del viento de 80 km/h. Antes de definir la alarma, debe definir un atributo (Velocidad máxima del viento) con un valor predeterminado de 50.

Para definir una AWS IoT Events alarma en un modelo de activos
  1. Vaya a la consola de AWS IoT SiteWise.

  2. En el panel de navegación, elija Models (Modelos).

  3. Elija el modelo de activo para el que desee definir una alarma.

  4. Seleccione la pestaña Alarma.

  5. Seleccione Añadir alarma.

  6. En la sección Opciones de tipos de alarma, seleccione Alarma de AWS IoT Events .

  7. En la sección Detalles de regla haga lo siguiente:

    1. Escriba un nombre para la alarma.

    2. (Opcional) Ingrese una descripción para su alarma.

  8. En la sección Definiciones de umbral se define cuándo debe detectar algo la alarma y la gravedad de la alarma. Haga lo siguiente:

    1. Seleccione la Propiedad sobre la que debe detectar la alarma. Cada vez que esta propiedad recibe un nuevo valor, AWS IoT SiteWise envía el valor AWS IoT Events a para evaluar el estado de la alarma.

    2. Seleccione el Operador que se utilizará para comparar la propiedad con el valor de umbral. Puede elegir entre las siguientes opciones:

      • < Menor que

      • <= Menor que o igual a

      • == (igual)

      • != Distinto de

      • >= Mayor que o igual a

      • > Mayor que

    3. En Valor, seleccione la propiedad del atributo que desee utilizar como valor de umbral. AWS IoT Events compara el valor de la propiedad con el valor de este atributo.

    4. Introduzca la Gravedad de la alarma. Use un número que pueda comprender su equipo para reflejar la gravedad de esta alarma.

  9. (Opcional) En la sección Configuración de notificaciones: opcional, haga lo siguiente:

    1. Elija Activar.

      nota

      Si elige Inactivo, ni usted ni su equipo recibirán ninguna notificación de alarma.

    2. En Destinatario, elija el destinatario.

      importante

      Puede enviar notificaciones de alarma a AWS IAM Identity Center los usuarios. Para usar esta función, debe habilitar IAM Identity Center. Solo puede activar 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 .

    3. En Protocolo elija una de las siguientes opciones:

      • Correo electrónico y mensaje de texto: la alarma notifica a los usuarios de IAM Identity Center con un SMS mensaje y un mensaje de correo electrónico.

      • Correo electrónico: la alarma notifica a los usuarios de IAM Identity Center con un mensaje de correo electrónico.

      • Texto: la alarma notifica a los usuarios de IAM Identity Center con un SMS mensaje.

    4. En Remitente, elija el remitente.

      importante

      Debe verificar la dirección de correo electrónico del remitente en Amazon Simple Email Service (AmazonSES). Para obtener más información, consulte Verificación de direcciones de correo electrónico en Amazon SES, en la Guía para desarrolladores de Amazon Simple Email Service.

  10. En la sección Estado predeterminado del activo, puede establecer el estado predeterminado para las alarmas creadas a partir de este modelo de activo.

    nota

    Podrá activar o desactivar esta alarma para los activos que cree a partir de este modelo de activo en un paso posterior.

  11. En la sección Configuración avanzada, puede configurar los permisos, los ajustes de notificación adicionales, las acciones del estado de alarma, el modelo de alarma en SiteWise Monitor y el flujo de confirmación.

    nota

    AWS IoT Events las alarmas requieren las siguientes funciones de servicio:

    • Una función que se AWS IoT Events supone que debe enviar los valores del estado de alarma a AWS IoT SiteWise.

    • Una función que AWS IoT Events asume el envío de datos a Lambda. Solo necesita esta función si su alarma envía notificaciones.

    En la sección Permisos, haga lo siguiente:

    1. En Rol de AWS IoT Events , utilice un rol existente o cree uno con los permisos necesarios. Este rol requiere el permiso iotsitewise:BatchPutAssetPropertyValue y una relación de confianza que permita a iotevents.amazonaws.com asumir ese rol.

    2. Para el AWS IoT Events rol de Lambda, utilice un rol existente o cree un rol con los permisos necesarios. Este rol requiere los permisos lambda:InvokeFunction y sso-directory:DescribeUser y una relación de confianza que permita a iotevents.amazonaws.com asumir ese rol.

  12. (Opcional) En la sección Configuración de notificación adicional, haga lo siguiente:

    1. En Atributo del destinatario, defina un atributo cuyo valor especifique el destinatario de la notificación. Puede elegir a los usuarios IAM de Identity Center como destinatarios.

      Puede crear un atributo o utilizar uno existente en el modelo de activo.

      • Si elige Crear un nuevo atributo de destinatario, especifique el Nombre del atributo de destinatario y el Valor predeterminado del destinatario: opcional para el atributo.

      • Si elige Usar un atributo de destinatario existente, elija el atributo en Nombre del atributo del destinatario. La alarma utiliza el valor predeterminado del atributo que elija.

      Puede anular el valor predeterminado de cada activo que cree desde este modelo de activo.

    2. En Atributo del mensaje personalizado, defina un atributo cuyo valor especifique el mensaje personalizado que se debe enviar además del mensaje de cambio de estado predeterminado. Por ejemplo, puede especificar un mensaje que ayude a su equipo a entender cómo abordar esta alarma.

      Puede optar por crear un atributo o utilizar uno existente en el modelo de activo.

      • Si opta por Crear un nuevo atributo de mensaje personalizado, especifique el Nombre de atributo del mensaje personalizado y el Valor predeterminado del mensaje personalizado: opcional para el atributo.

      • Si opta por Usar un atributo de mensaje personalizado existente, elija el atributo en Nombre de atributo del mensaje personalizado. La alarma utiliza el valor predeterminado del atributo que elija.

      Puede anular el valor predeterminado de cada activo que cree desde este modelo de activo.

    3. En Gestionar su función de Lambda, realice alguna de las siguientes operaciones:

      • Para AWS IoT SiteWise crear una nueva función Lambda, elija Crear una nueva lambda a partir de una AWS plantilla gestionada.

      • Para usar una función de Lambda existente, elija Usar una Lambda existente y elija el nombre de la función.

      Para obtener más información, consulte Administración de notificaciones de alarma en la Guía para desarrolladores de AWS IoT Events .

  13. (Opcional) En la sección Configurar acción de estado, haga lo siguiente:

    1. Elija Editar acción.

    2. En Agregar acciones del estado de la alarma, añada acciones y, a continuación, seleccione Guardar.

      Puede agregar hasta 10 acciones.

    AWS IoT Events puede realizar acciones cuando la alarma está activa. Puede definir acciones integradas para usar un temporizador o establecer una variable, o enviar datos a otros AWS recursos. Para obtener más información, consulte Acciones admitidas en la Guía para desarrolladores de AWS IoT Events .

  14. (Opcional) En Administrar el modelo de alarma en el SiteWise monitor (opcional), seleccione Activo o Inactivo.

    Utilice esta opción para actualizar el modelo de alarma en SiteWise Monitorss. Esta opción está habilitada de forma predeterminada.

  15. En Flujo de reconocimiento, seleccione Activo o Inactivo. Para obtener más información sobre el flujo de reconocimiento, consulte Estados de alarma.

  16. Seleccione Añadir alarma.

    nota

    La AWS IoT SiteWise consola realiza varias API solicitudes para añadir la alarma al modelo de activos. Al seleccionar Añadir alarma, la consola abre un cuadro de diálogo que muestra el progreso de estas API solicitudes. Permanezca en esta página hasta que todas API las solicitudes se realicen correctamente o hasta que una API solicitud falle. Si se produce un error en una solicitud, cierre el cuadro de diálogo, corrija el problema y seleccione Agregar alarma para volver a intentarlo.

Defina una AWS IoT Events alarma (AWS IoT Events consola)

Puede utilizar la AWS IoT Events consola para definir una AWS IoT Events alarma en un modelo de activos existente. Para definir una AWS IoT Events alarma en un nuevo modelo de activos, cree el modelo de activos y, a continuación, complete estos pasos. Para obtener más información, consulte Cree modelos de activos.

importante

Cada alarma requiere un atributo que especifique el valor de umbral con el que comparar la alarma. Debe definir el atributo de valor de umbral en el modelo de activo antes de poder definir una alarma.

Considere un ejemplo en el que desee definir una alarma que detecte cuando una turbina eólica supere su índice de velocidad máxima del viento de 80 km/h. Antes de definir la alarma, debe definir un atributo (Velocidad máxima del viento) con un valor predeterminado de 50.

Para definir una AWS IoT Events alarma en un modelo de activos
  1. Vaya a la consola de AWS IoT Events.

  2. En el panel de navegación, elija Modelos de alarmas.

  3. Elija Crear modelo de alarma.

  4. Escriba un nombre para la alarma.

  5. (Opcional) Ingrese una descripción para su alarma.

  6. En la sección Destino de la alarma, haga lo siguiente:

    1. En Opciones de destino, elija la propiedad del activo de AWS IoT SiteWise .

    2. Elija el ,modelo de activo para el que desea añadir una alarma.

  7. En la sección Definiciones de umbral se define cuándo debe detectar algo la alarma y la gravedad de la alarma. Haga lo siguiente:

    1. Seleccione la Propiedad sobre la que debe detectar la alarma. Cada vez que esta propiedad recibe un nuevo valor, AWS IoT SiteWise envía el valor AWS IoT Events a para evaluar el estado de la alarma.

    2. Seleccione el Operador que se utilizará para comparar la propiedad con el valor de umbral. Puede elegir entre las siguientes opciones:

      • < Menor que

      • <= Menor que o igual a

      • == (igual)

      • != Distinto de

      • >= Mayor que o igual a

      • > Mayor que

    3. En Valor, seleccione la propiedad del atributo que desee utilizar como valor de umbral. AWS IoT Events compara el valor de la propiedad con el valor de este atributo.

    4. Introduzca la Gravedad de la alarma. Use un número que pueda comprender su equipo para reflejar la gravedad de esta alarma.

  8. (Opcional) En la sección Configuración de notificaciones: opcional, haga lo siguiente:

    1. En Protocolo elija una de las siguientes opciones:

      • Correo electrónico y texto: la alarma notifica a los usuarios de IAM Identity Center con un SMS mensaje y un mensaje de correo electrónico.

      • Correo electrónico: la alarma notifica a los usuarios de IAM Identity Center con un mensaje de correo electrónico.

      • Texto: la alarma notifica a los usuarios de IAM Identity Center con un SMS mensaje.

    2. En Remitente, elija el remitente.

      importante

      Debe verificar la dirección de correo electrónico del remitente en Amazon Simple Email Service (AmazonSES). Para obtener más información, consulte Verificación de direcciones de correo electrónico en Amazon SES, en la Guía para desarrolladores de Amazon Simple Email Service.

    3. Elija el atributo en Atributo del destinatario: (opcional). La alarma utiliza el valor predeterminado del atributo que elija.

    4. Elija el atributo en Atributo del mensaje personalizado: (opcional). La alarma utiliza el valor predeterminado del atributo que elija.

  9. En la sección Instancia, especifique el Estado predeterminado de esta alarma. Podrá activar o desactivar esta alarma para todos los activos que cree a partir de este modelo de activo en un paso posterior.

  10. En los ajustes avanzados, puede configurar los permisos, los ajustes de notificación adicionales, las acciones del estado de alarma, el modelo de alarma en SiteWise Monitor y el flujo de confirmación.

    nota

    AWS IoT Events las alarmas requieren las siguientes funciones de servicio:

    • Una función que se AWS IoT Events supone que debe enviar los valores del estado de alarma a AWS IoT SiteWise.

    • Una función que AWS IoT Events asume el envío de datos a Lambda. Solo necesita esta función si su alarma envía notificaciones.

    1. En la sección Flujo de reconocimiento, elija Habilitado o Deshabilitado. Para obtener más información sobre el flujo de reconocimiento, consulte Estados de alarma.

    2. En la sección Permisos, haga lo siguiente:

      1. En Rol de AWS IoT Events , utilice un rol existente o cree uno con los permisos necesarios. Este rol requiere el permiso iotsitewise:BatchPutAssetPropertyValue y una relación de confianza que permita a iotevents.amazonaws.com asumir ese rol.

      2. Para el rol de Lambda, utilice un rol existente o cree un rol con los permisos necesarios. Este rol requiere los permisos lambda:InvokeFunction y sso-directory:DescribeUser y una relación de confianza que permita a iotevents.amazonaws.com asumir ese rol.

    3. (Opcional) En el panel de Configuración de notificación adicional, haga lo siguiente:

      1. En Gestionar su Función de Lambda, realice alguna de las siguientes operaciones:

        • Para AWS IoT Events crear una nueva función Lambda, elija Crear una nueva función Lambda.

        • Para usar una función de Lambda existente, elija Usar una función de Lambda existente y elija el nombre de la función.

        Para obtener más información, consulte Administración de notificaciones de alarma en la Guía para desarrolladores de AWS IoT Events .

    4. (Opcional) En la sección Establecer acción de estado: opcional, haga lo siguiente:

      1. En Acciones de estado de alarma, añada acciones y, a continuación, seleccione Guardar.

        Puede agregar hasta 10 acciones.

      AWS IoT Events puede realizar acciones cuando la alarma está activa. Puede definir acciones integradas para usar un temporizador o establecer una variable, o enviar datos a otros AWS recursos. Para obtener más información, consulte Acciones admitidas en la Guía para desarrolladores de AWS IoT Events .

  11. Seleccione Crear.

    nota

    La AWS IoT Events consola realiza varias API solicitudes para añadir la alarma al modelo de activos. Al seleccionar Añadir alarma, la consola abre un cuadro de diálogo que muestra el progreso de estas API solicitudes. Permanezca en esta página hasta que todas API las solicitudes se realicen correctamente o hasta que una API solicitud falle. Si se produce un error en una solicitud, cierre el cuadro de diálogo, corrija el problema y seleccione Agregar alarma para volver a intentarlo.

Defina 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: Defina una alarma en un modelo de activos

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 activos (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 fuente de 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 usar esta función, debe habilitar IAM Identity Center. Solo puede activar 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. Agregue un atributo que especifique el ID del almacén de IAM identidades de Identity Center. Puede utilizar la ListInstancesAPIoperación IAM Identity Center para enumerar sus almacenes de identidades. Esta operación solo funciona en la región en la que se habilita 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. Agregue un atributo que especifique el ID del usuario de IAM Identity Center que recibe las 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 usar el Centro de IAM identidades ListUsersAPIpara obtener el ID de un usuario cuyo nombre de usuario conoce. Reemplazar d-123EXAMPLE con el ID de su almacén de identidades y sustitúyalo Name con el nombre de usuario 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 seudónimo.

      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) Agregue un atributo que especifique el ID de remitente predeterminado para las notificaciones de mensajes SMS (de texto). El ID del remitente aparece como remitente del mensaje en los mensajes que envía Amazon Simple Notification Service (AmazonSNS). Para obtener más información, consulta Cómo solicitar un remitente IDs para SMS enviar mensajes a Amazon SNS en la 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. Reemplazar asset-model-id con el 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: Defina 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. Reemplazar assetModelId por el ID del modelo de activos y sustitúyalo propertyId con el ID de la propiedad.

    $sitewise.assetModel.`assetModelId`.`propertyId`.propertyValue.value
  • Activo IDs

    Para obtener el ID del activo, utilice la siguiente expresión. Reemplazar assetModelId con el ID del modelo de activo y sustitúyalo propertyId con 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 AWS IoT SiteWise valores. 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 IAM identidades del Centro de Identidad

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

    • (Opcional) El atributo de ID del SMS remitente

    • (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 estas propiedades en el modelo de activos. IDs Reemplazar asset-model-id con 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. Los usará IDs cuando cree el modelo de AWS IoT Events alarma 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 siguiente JSON objeto 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).

      • Reemplazar assetModelId con el ID del modelo de activos.

      • Reemplazar alarmPropertyId con el identificador de la propiedad que monitorea la alarma.

      • Reemplazar thresholdAttributeId con el ID de la propiedad del atributo de umbral.

      • Reemplazar GREATER con el operador que se utilizará para comparar los valores de las 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 AWS Lambda función o publicar en un MQTT tema. Para obtener más información, consulte Trabajar con otros AWS servicios en la Guía para AWS IoT Events desarrolladores.

      • Reemplazar assetModelId con el ID del modelo de activos.

      • Reemplazar alarmPropertyId con el identificador de la propiedad que monitorea la alarma.

      • Reemplazar alarmStatePropertyId con el ID 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 la configuración de notificaciones de alarma, puede configurar SMS y enviar notificaciones por correo electrónico a los usuarios de 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.

        • Reemplazar alarmNotificationFunctionArn con ARN 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 SMS notificaciones (smsConfigurations) para enviarlas a un usuario de IAM Identity Center cuando la alarma cambie de estado.

        • Reemplazar identityStoreIdAttributeId con el ID del atributo que contiene el ID del almacén de IAM identidades de Identity Center.

        • Reemplazar userIdAttributeId con el ID del atributo que contiene el ID del usuario del IAM Identity Center.

        • Reemplazar senderIdAttributeId con el ID del atributo que contiene el ID del SNS remitente de Amazon, o elimínalo senderId de la carga útil.

        • Reemplazar additionalMessageAttributeId con 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.

        • Reemplazar identityStoreIdAttributeId con el ID de la propiedad del IAM atributo ID del almacén de identidades de Identity Center.

        • Reemplazar userIdAttributeId con el ID de la propiedad del atributo de ID de usuario de IAM Identity Center.

        • Reemplazar fromAddressAttributeId con el ID de la propiedad del atributo de dirección «de», o elimínelo from de la carga útil.

        • Reemplazar emailSubjectAttributeId con el ID de la propiedad del atributo del asunto del correo electrónico, o elimínelo subject de la carga útil.

        • Reemplazar additionalMessageAttributeId con el ID de la propiedad de atributo de mensaje adicional, o elimínala 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 IAM servicio (roleArn) a la que AWS IoT Events se pueden enviar AWS IoT SiteWise los datos. 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 .

      • ARNSustitúyalo por el rol que AWS IoT Events puede asumir al realizar estas acciones. roleArn

      { "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 la ARN del modelo de alarma,alarmModelArn. Cópielo ARN para establecer la definición de alarma en su modelo de activos en el siguiente paso.

Paso 3: Habilite el flujo de datos entre AWS IoT SiteWise y AWS 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. Reemplazar asset-model-id con 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. Reemplazar alarmModelArn con el modelo ARN 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. Reemplazar asset-model-id con 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 del IAM Identity Center para cada activo. Para obtener más información, consulte Configure las alarmas en los activos.