Definindo um AWS IoT Events alarme (AWS CLI) - AWS IoT SiteWise

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Definindo um AWS IoT Events alarme (AWS CLI)

Você pode usar o AWS Command Line Interface (AWS CLI) para definir um AWS IoT Events alarme que monitora uma propriedade do ativo. Você pode definir o alarme em um modelo de ativo novo ou existente. Depois de definir o alarme no modelo de ativo, você cria um alarme AWS IoT Events e o conecta ao modelo de ativo. Neste processo, você faz o seguinte:

Etapa 1: definir um alarme em um modelo de ativo

Adicione uma definição de alarme e as propriedades associadas a um modelo de ativo novo ou existente.

Para definir um alarme em um modelo de ativo (CLI)
  1. Crie um arquivo chamado asset-model-payload.json. Siga as etapas nessas outras seções para adicionar os detalhes do seu modelo de ativo para o arquivo, mas não envie a solicitação para criar ou atualizar o modelo de ativo. Nesta seção, você adiciona uma definição de alarme aos detalhes do modelo de ativo no arquivo asset-model-payload.json.

    nota

    Seu modelo de ativo deve definir pelo menos uma propriedade do ativo, incluindo a propriedade do ativo a ser monitorada com o alarme.

  2. Adicione um modelo de alarme composto (assetModelCompositeModels) para o modelo do ativo. Um modelo composto de AWS IoT Events alarme especifica o IOT_EVENTS tipo e especifica uma propriedade da fonte de alarme. Você adiciona a propriedade da fonte de alarme depois de criar o modelo de alarme em AWS IoT Events.

    Importante

    O modelo composto de alarme deve ter o mesmo nome do modelo de AWS IoT Events alarme que você criar posteriormente. Nomes de modelo de alarme podem conter apenas caracteres alfanuméricos. Especifique um nome alfanumérico exclusivo para que você possa usar o mesmo nome para o modelo de alarme.

    { ... "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. Adicione um atributo de limite de alarme ao modelo de ativo. Especifique o valor padrão a ser usado para esse limite. Você pode substituir esse valor padrão em cada ativo com base nesse modelo.

    nota

    O atributo de limite de alarme deve ser um INTEGER ou um DOUBLE.

    { ... "assetModelProperties": [ ... { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } } ] }
  4. (Opcional) Adicione atributos de notificação de alarme ao modelo de ativo. Esses atributos especificam o destinatário do IAM Identity Center e outras entradas AWS IoT Events usadas para enviar notificações quando o alarme muda de estado. Você pode substituir esses padrões em cada ativo com base nesse modelo.

    Importante

    Você pode enviar notificações de alarme aos AWS IAM Identity Center usuários. Para usar esse recurso, você deve habilitar o Centro de identidade do IAM. Você só pode ativar o IAM Identity Center em uma AWS região por vez. Isso significa que você pode definir notificações de alarme somente na região em que você habilita o Centro de identidade do IAM. Para obter mais informações, consulte Conceitos básicos no Guia do usuário do AWS IAM Identity Center .

    Faça o seguinte:

    1. Adicionar um atributo que especifique o ID do seu repositório de identidades do Centro de identidade do IAM. Você pode usar a operação da ListInstancesAPI do IAM Identity Center para listar seus repositórios de identidade. Essa operação funciona somente na região em que você habilita o Centro de identidade do IAM.

      aws sso-admin list-instances

      Em seguida, especifique a ID do repositório de identidade (por exemplo, d-123EXAMPLE) como o valor padrão para o atributo.

      { ... "assetModelProperties": [ ... { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } } ] }
    2. Adicionar um atributo que especifique a ID do usuário do Centro de identidade do IAM que recebe notificações. Para definir um destinatário padrão da notificação, adicione uma ID de usuário do Centro de identidade do IAM como valor padrão. Faça o seguinte para obter uma ID de usuário do Centro de identidade do IAM:

      1. Você pode usar a ListUsersAPI do IAM Identity Center para obter o ID de um usuário cujo nome de usuário você conhece. Substitua o D-123Example pela ID do seu repositório de identidade e substitua Nome pelo nome de usuário do usuário.

        aws identitystore list-users \ --identity-store-id d-123EXAMPLE \ --filters AttributePath=UserName,AttributeValue=Name
      2. Use o console do Centro de identidade do IAM para procurar seus usuários e encontrar uma ID de usuário.

      Em seguida, especifique a ID do usuário (por exemplo, 123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE) como o valor padrão para o atributo ou defina o atributo sem um valor padrão.

      { ... "assetModelProperties": [ ... { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } } ] }
    3. (Opcional) Adicione um atributo que especifique a ID do remetente padrão para notificações por mensagens SMS (texto). A ID do remetente é exibida como o remetente da mensagem em mensagens enviadas pelo Amazon Simple Notification Service (Amazon SNS). Para obter mais informações, consulte Solicitar IDs do remetente para mensagens SMS com o Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.

      { ... "assetModelProperties": [ ... { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } } ] }
    4. (Opcional) Adicione um atributo que especifique o endereço de e-mail padrão a ser usado como endereço De nas notificações por e-mail.

      { ... "assetModelProperties": [ ... { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } } ] }
    5. (Opcional) Adicione um atributo que especifique o assunto padrão a ser usado nas notificações por e-mail.

      { ... "assetModelProperties": [ ... { "name": "emailSubject", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature" } } } ] }
    6. (Opcional) Adicione um atributo que especifique uma mensagem adicional a ser incluída nas notificações. Por padrão, as mensagens de notificação incluem informações sobre o alarme. Você também pode incluir uma mensagem adicional que forneça mais informações ao usuário.

      { ... "assetModelProperties": [ ... { "name": "additionalMessage", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm." } } } ] }
  5. Crie o modelo de ativo ou atualize o modelo de ativo existente. Execute um destes procedimentos:

    • Para criar o modelo de ativo, execute o comando a seguir.

      aws iotsitewise create-asset-model --cli-input-json file://asset-model-payload.json
    • Para atualizar o modelo de ativo existente, execute o comando a seguir. asset-model-idSubstitua pelo ID do modelo de ativo.

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

    Depois de executar o comando, observe o assetModelId na resposta.

O modelo de ativo a seguir representa uma caldeira que relata dados de temperatura. Esse modelo de ativos define um alarme que detecta quando a caldeira superaquece.

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

Etapa 2: Definindo um modelo AWS IoT Events de alarme

Crie o modelo de alarme em AWS IoT Events. Em AWS IoT Events, você usa expressões para especificar valores em modelos de alarme. Você pode usar expressões para especificar valores AWS IoT SiteWise para avaliar e usar como entradas para o alarme. Ao AWS IoT SiteWise enviar valores da propriedade do ativo para o modelo de alarme, AWS IoT Events avalia a expressão para obter o valor da propriedade ou o ID do ativo. Você pode usar as expressões a seguir no modelo de alarme:

  • Valores de propriedade de ativos

    Para obter o valor de uma propriedade de ativos, use a expressão a seguir. assetModelIdSubstitua pelo ID do modelo de ativo e substitua propertyID pelo ID da propriedade.

    $sitewise.assetModel.`assetModelId`.`propertyId`.propertyValue.value
  • IDs de ativo

    Para obter a ID do ativo, use a expressão a seguir. assetModelIdSubstitua pelo ID do modelo de ativo e substitua propertyID pelo ID da propriedade.

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

Ao criar o modelo de alarme, você pode definir literais em vez de expressões que são avaliadas como AWS IoT SiteWise valores. Isso pode reduzir o número de atributos que você define em seu modelo de ativo. No entanto, se você definir um valor como substantivo, não poderá personalizar esse valor nos ativos com base no modelo do ativo. Seus AWS IoT SiteWise Monitor usuários também não podem personalizar o alarme, pois podem definir as configurações de alarme somente nos ativos.

Para criar um modelo AWS IoT Events de alarme (CLI)
  1. Ao criar o modelo de alarme em AWS IoT Events, você deve especificar o ID de cada propriedade que o alarme usa, o que inclui o seguinte:

    • A propriedade do estado do alarme no modelo de ativo composto

    • A propriedade que o alarme monitora

    • O atributo limite

    • (Opcional) O atributo de ID do repositório de identidades do Centro de identidade do IAM

    • (Opcional) O atributo de ID de usuário do Centro de identidade do IAM

    • (Opcional) O atributo de ID de remetente de SMS

    • (Opcional) O atributo e-mail do endereço De

    • (Opcional) O atributo do assunto do e-mail

    • (Opcional) O atributo adicional de mensagem

    Execute o comando a seguir para recuperar as IDs dessas propriedades no modelo de ativo. asset-model-idSubstitua pelo ID do modelo de ativo da etapa anterior.

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

    A operação retorna uma resposta que contém os detalhes do modelo de ativo. Anote a ID de cada propriedade que o alarme usa. Você usa essas IDs quando cria o modelo de alarme do AWS IoT Events na próxima etapa.

  2. Crie o modelo de alarme em AWS IoT Events. Faça o seguinte:

    1. Crie um arquivo chamado alarm-model-payload.json.

    2. Copie o JSON a seguir no arquivo.

    3. Insira um nome(alarmModelName), uma descrição (alarmModelDescription) e a gravidade (severity) para o alarme. Para gravidade, especifique um número inteiro que reflita os níveis de gravidade da sua empresa.

      Importante

      O modelo de alarme deve ter o mesmo nome do modelo de alarme composto que você definiu em seu modelo de ativo anteriormente.

      Nomes de modelo de alarme podem conter apenas caracteres alfanuméricos.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3 }
    4. Adicione a regra de comparação (alarmRule) para o alarme. Essa regra define a propriedade a ser monitorada (inputProperty), o valor limite a ser comparado (threshold) e o operador de comparação a ser usado (comparisonOperator).

      • assetModelIdSubstitua pelo ID do modelo de ativo.

      • alarmPropertyIdSubstitua pela ID da propriedade que o alarme monitora.

      • thresholdAttributeIdSubstitua pelo ID da propriedade do atributo de limite.

      • Substitua MAIOR pelo operador a ser usado para comparar a propriedade com o valor limite. Escolha uma das seguintes opções:

        • 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. Adicione uma ação (alarmEventActions) para enviar o estado do alarme para AWS IoT SiteWise quando o alarme muda de estado.

      nota

      Para configuração avançada, você pode definir ações adicionais a serem realizadas quando o alarme mudar de estado. Por exemplo, você pode chamar uma função AWS Lambda ou publicar em um tópico do MQTT. Para obter mais informações, consulte Trabalhando com outros AWS serviços no Guia do AWS IoT Events desenvolvedor.

      • assetModelIdSubstitua pelo ID do modelo de ativo.

      • alarmPropertyIdSubstitua pela ID da propriedade que o alarme monitora.

      • Substitua alarmStatePropertyId pela ID da propriedade do estado do alarme no modelo composto do alarme.

      { "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) Definir configurações de notificação de alarmes. A ação de notificação de alarme usa uma função do Lambda em sua conta para enviar notificações de alarme. Para ter mais informações, consulte Requisitos para notificações de alarmes. Nas configurações de notificação de alarme, você pode configurar notificações por SMS e e-mail para enviar aos usuários do Centro de identidade do IAM. Faça o seguinte:

      1. Adicione a configuração de notificação de alarme (alarmNotification) à carga útil em alarm-model-payload.json.

        • Substitua alarmNotificationFunctionArn pelo ARN da função Lambda que manipula as notificações de alarme.

        { "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 as notificações por SMS (smsConfigurations) para enviar a um usuário do Centro de identidade do IAM quando o alarme mudar de estado.

        • identityStoreIdAttributeIdSubstitua pelo ID do atributo que contém o ID do repositório de identidades do IAM Identity Center.

        • Substitua userIdAttributeId pela ID do atributo que contém a ID do usuário do IAM Identity Center.

        • senderIdAttributeSubstitua o ID pelo ID do atributo que contém o ID do remetente do Amazon SNS ou remova-o senderId da carga.

        • additionalMessageAttributeSubstitua Id pela ID do atributo que contém a mensagem adicional ou remova additionalMessage da 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 as notificações por e-mail (emailConfigurations) para enviar a um usuário do Centro de identidade do IAM quando o alarme mudar de estado.

        • identityStoreIdAttributeIdSubstitua pelo ID da propriedade do atributo ID do repositório de identidades do IAM Identity Center.

        • Substitua userIdAttributeId pela ID da propriedade do atributo ID do usuário do IAM Identity Center.

        • Substitua fromAddressAttributeId pela ID da propriedade do atributo de endereço “de” ou remova from da carga útil.

        • Substitua emailSubjectAttributeId pela ID da propriedade do atributo do assunto do e-mail ou remova subject da carga.

        • additionalMessageAttributeSubstitua Id pela ID da propriedade adicional do atributo da mensagem ou remova additionalMessage da carga.

        { "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) Adicione as funcionalidades de alarme (alarmCapabilities) à carga útil em alarm-model-payload.json. Nesse objeto, você pode especificar se o fluxo de reconhecimento está habilitado e o estado de habilitação padrão para ativos com base no modelo do ativo. Para obter mais informações sobre o fluxo de reconhecimento, consulte Estados de alarme.

      { "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. Adicione a função de serviço do IAM (roleArn) que AWS IoT Events pode assumir o envio de dados para AWS IoT SiteWise. Esse perfil requer a permissão iotsitewise:BatchPutAssetPropertyValue e um relacionamento de confiança que permita que iotevents.amazonaws.com assuma o perfil. Para enviar notificações, esse perfil também requer as permissões lambda:InvokeFunction e sso-directory:DescribeUser. Para obter mais informações, consulte Perfis de serviço de alarme no Guia do desenvolvedor do AWS IoT Events .

      • roleArnSubstitua o pelo ARN da função que AWS IoT Events pode assumir para realizar essas ações.

      { "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. Execute o comando a seguir para criar o modelo de AWS IoT Events alarme a partir da carga emalarm-model-payload.json.

      aws iotevents create-alarm-model --cli-input-json file://alarm-model-payload.json
    10. A operação retorna uma resposta que inclui o ARN do modelo de alarme, alarmModelArn Copie esse ARN para configurar a definição de alarme em seu modelo de ativo na próxima etapa.

Etapa 3: Habilitando o fluxo de dados entre AWS IoT SiteWise e AWS IoT Events

Depois de criar os recursos necessários em AWS IoT SiteWise e AWS IoT Events, você pode ativar o fluxo de dados entre os recursos para ativar seu alarme. Nesta seção, você atualiza a definição de alarme no modelo de ativo para usar o modelo de alarme criado na etapa anterior.

Para habilitar o fluxo de dados entre AWS IoT SiteWise e AWS IoT Events (CLI)
  • Defina o modelo de alarme como a fonte do alarme no modelo de ativo. Faça o seguinte:

    1. Execute o seguinte comando para recuperar a definição do modelo de ativo existente. asset-model-idSubstitua pelo ID do modelo de ativo.

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

      A operação retorna uma resposta que contém os detalhes do modelo de ativo.

    2. Crie um arquivo chamado update-asset-model-payload.json e copie a resposta do comando anterior no arquivo.

    3. Remova os seguintes pares de chave-valor do arquivo update-asset-model-payload.json:

      • assetModelId

      • assetModelArn

      • assetModelCreationDate

      • assetModelLastUpdateDate

      • assetModelStatus

    4. Adicione a propriedade da fonte de alarme (AWS/ALARM_SOURCE) ao modelo de alarme composto que você definiu anteriormente. alarmModelArnSubstitua pelo ARN do modelo de alarme, que define o valor da propriedade da fonte de alarme.

      { ... "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. Execute o seguinte comando para atualizar o modelo de ativo com a definição armazenada no arquivo update-asset-model-payload.json. asset-model-idSubstitua pelo ID do modelo de ativo.

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

Seu modelo de ativo agora define um alarme que detecta em AWS IoT Events. O alarme monitora a propriedade de destino em todos os ativos com base nesse modelo de ativo. Você pode configurar o alarme em cada ativo para personalizar propriedades como o limite ou o destinatário do Centro de identidade do IAM para cada ativo. Para ter mais informações, consulte Configurar alarmes em ativos.