Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Définition d'une AWS IoT Events alarme (AWS CLI)
Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour définir une AWS IoT Events alarme qui surveille la propriété d'un actif. Vous pouvez définir l'alarme sur un modèle d'actif nouveau ou existant. Après avoir défini l'alarme sur le modèle d'actif, vous créez une alarme AWS IoT Events et vous la connectez au modèle d'actif. Dans ce processus, vous devez effectuer les opérations suivantes :
Étapes
Étape 1 : Définition d'une alarme sur un modèle d'actif
Ajoutez une définition d'alarme et les propriétés associées à un modèle d'actif nouveau ou existant.
Pour définir une alarme sur un modèle d'actif (CLI)
-
Créez un fichier, appelé
asset-model-payload.json
. Suivez les étapes décrites dans ces autres sections pour ajouter les détails de votre modèle d'actif au fichier, mais ne soumettez pas de demande de création ou de mise à jour du modèle d'actif. Dans cette section, vous ajoutez une définition d'alarme aux détails du modèle d'actif dans leasset-model-payload.json
fichier.-
Pour plus d'informations sur la création d'un modèle d'actifs, consultezCréation d'un modèle d'actifs (AWS CLI).
-
Pour plus d'informations sur la mise à jour d'un modèle d'actif existant, consultezMettre à jour un modèle d'actif ou de composant (AWS CLI).
Note
Votre modèle d'actif doit définir au moins une propriété d'actif, y compris la propriété d'actif à surveiller avec l'alarme.
-
-
Ajoutez un modèle composite d'alarme (
assetModelCompositeModels
) au modèle d'actif. Un modèle composite AWS IoT Events d'alarme indique leIOT_EVENTS
type et spécifie une propriété de source d'alarme. Vous ajoutez la propriété source d'alarme après avoir créé le modèle d'alarme dans AWS IoT Events.Important
Le modèle composite d'alarme doit porter le même nom que le modèle AWS IoT Events d'alarme que vous créerez ultérieurement. Les noms des modèles d'alarme ne peuvent contenir que des caractères alphanumériques. Spécifiez un nom alphanumérique unique afin de pouvoir utiliser le même nom pour le modèle d'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": {} } } ] } ] } -
Ajoutez un attribut de seuil d'alarme au modèle d'actif. Spécifiez la valeur par défaut à utiliser pour ce seuil. Vous pouvez remplacer cette valeur par défaut pour chaque actif en fonction de ce modèle.
Note
L'attribut du seuil d'alarme doit être a
INTEGER
ouDOUBLE
a.{
...
"assetModelProperties": [...
{ "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } } ] } -
(Facultatif) Ajoutez des attributs de notification d'alarme au modèle d'actif. Ces attributs indiquent le destinataire du centre d'identité IAM et les autres entrées AWS IoT Events utilisées pour envoyer des notifications lorsque l'alarme change d'état. Vous pouvez remplacer ces valeurs par défaut pour chaque actif en fonction de ce modèle.
Important
Vous pouvez envoyer des notifications d'alarme aux AWS IAM Identity Center utilisateurs. Pour utiliser cette fonctionnalité, vous devez activer IAM Identity Center. Vous ne pouvez activer IAM Identity Center que dans une seule AWS région à la fois. Cela signifie que vous ne pouvez définir des notifications d'alarme que dans la région où vous activez IAM Identity Center. Pour plus d'informations, consultez Démarrer dans le Guide de l'utilisateur AWS IAM Identity Center .
Procédez comme suit :
-
Ajoutez un attribut qui spécifie l'ID de votre banque d'identités IAM Identity Center. Vous pouvez utiliser l'opération d'ListInstancesAPI IAM Identity Center pour répertorier vos magasins d'identités. Cette opération ne fonctionne que dans la région où vous activez IAM Identity Center.
aws sso-admin list-instances
Spécifiez ensuite l'ID du magasin d'identités (par exemple,
d-123EXAMPLE
) comme valeur par défaut pour l'attribut.{
...
"assetModelProperties": [...
{ "name": "identityStoreId
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE
" } } } ] } -
Ajoutez un attribut qui spécifie l'ID de l'utilisateur IAM Identity Center qui reçoit les notifications. Pour définir un destinataire de notification par défaut, ajoutez un ID utilisateur IAM Identity Center comme valeur par défaut. Procédez de l'une des manières suivantes pour obtenir un ID utilisateur IAM Identity Center :
-
Vous pouvez utiliser l'ListUsersAPI IAM Identity Center pour obtenir l'identifiant d'un utilisateur dont vous connaissez le nom d'utilisateur. Remplacez
D-123Example par
l'ID de votre banque d'identités et remplacezName
par le nom d'utilisateur de l'utilisateur.aws identitystore list-users \ --identity-store-id
d-123EXAMPLE
\ --filters AttributePath=UserName,AttributeValue=Name
-
Utilisez la console IAM Identity Center
pour parcourir vos utilisateurs et trouver un ID utilisateur.
Spécifiez ensuite l'ID utilisateur (par exemple,
123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE
) comme valeur par défaut pour l'attribut, ou définissez l'attribut sans valeur par défaut.{
...
"assetModelProperties": [...
{ "name": "userId
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE
" } } } ] } -
-
(Facultatif) Ajoutez un attribut qui spécifie l'ID d'expéditeur par défaut pour les notifications par SMS (texte). L'identifiant de l'expéditeur s'affiche en tant qu'expéditeur des messages envoyés par Amazon Simple Notification Service (Amazon SNS). Pour plus d'informations, consultez la section Demande d'identifiants d'expéditeur pour les messages SMS avec Amazon SNS dans le guide du développeur Amazon Simple Notification Service.
{
...
"assetModelProperties": [...
{ "name": "senderId
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory
" } } } ] } -
(Facultatif) Ajoutez un attribut qui spécifie l'adresse e-mail par défaut à utiliser comme adresse d'expéditeur dans les notifications par e-mail.
{
...
"assetModelProperties": [...
{ "name": "fromAddress
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com
" } } } ] } -
(Facultatif) Ajoutez un attribut qui indique le sujet par défaut à utiliser dans les notifications par e-mail.
{
...
"assetModelProperties": [...
{ "name": "emailSubject
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature
" } } } ] } -
(Facultatif) Ajoutez un attribut qui spécifie un message supplémentaire à inclure dans les notifications. Par défaut, les messages de notification incluent des informations sur l'alarme. Vous pouvez également inclure un message supplémentaire fournissant plus d'informations à l'utilisateur.
{
...
"assetModelProperties": [...
{ "name": "additionalMessage
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm.
" } } } ] }
-
-
Créez le modèle d'actif ou mettez à jour le modèle d'actif existant. Effectuez l’une des actions suivantes :
-
Pour créer le modèle d'actif, exécutez la commande suivante.
aws iotsitewise create-asset-model --cli-input-json file://asset-model-payload.json
-
Pour mettre à jour le modèle d'actif existant, exécutez la commande suivante. Remplacez
asset-model-id
par l'ID du modèle d'actif.aws iotsitewise update-asset-model \ --asset-model-id
asset-model-id
\ --cli-input-json file://asset-model-payload.json
Après avoir exécuté la commande, notez le
assetModelId
dans la réponse. -
Le modèle d'actif suivant représente une chaudière qui fournit des données de température. Ce modèle d'équipement définit une alarme qui détecte la surchauffe de la chaudière.
{ "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": {} } } ] } ] }
Étape 2 : Définition d'un modèle AWS IoT Events d'alarme
Créez le modèle d'alarme dans AWS IoT Events. Dans AWS IoT Events, vous utilisez des expressions pour spécifier des valeurs dans les modèles d'alarme. Vous pouvez utiliser des expressions pour spécifier des valeurs de AWS IoT SiteWise à évaluer et à utiliser comme entrées pour l'alarme. Lorsque les valeurs des propriétés de l'actif sont AWS IoT SiteWise envoyées au modèle d'alarme, il AWS IoT Events évalue l'expression pour obtenir la valeur de la propriété ou l'ID de l'actif. Vous pouvez utiliser les expressions suivantes dans le modèle d'alarme :
-
Valeurs des propriétés des actifs
Pour obtenir la valeur d'une propriété d'actif, utilisez l'expression suivante. Remplacez
assetModelId
par l'ID du modèle d'actif et remplacezPropertyID
par l'ID de la propriété.$sitewise.assetModel.`
assetModelId
`.`propertyId
`.propertyValue.value -
Identifiants des actifs
Pour obtenir l'ID de la ressource, utilisez l'expression suivante. Remplacez
assetModelId
par l'ID du modèle d'actif et remplacezPropertyID
par l'ID de la propriété.$sitewise.assetModel.`
assetModelId
`.`propertyId
`.assetId
Note
Lorsque vous créez le modèle d'alarme, vous pouvez définir des littéraux au lieu d'expressions évaluant des AWS IoT SiteWise valeurs. Cela peut réduire le nombre d'attributs que vous définissez dans votre modèle d'actifs. Toutefois, si vous définissez une valeur au sens littéral, vous ne pouvez pas personnaliser cette valeur sur les actifs en fonction du modèle d'actif. Vos AWS IoT SiteWise Monitor utilisateurs ne peuvent pas non plus personnaliser l'alarme, car ils ne peuvent configurer les paramètres d'alarme que sur les actifs.
Pour créer un modèle AWS IoT Events d'alarme (CLI)
-
Lorsque vous créez le modèle d'alarme dans AWS IoT Events, vous devez spécifier l'ID de chaque propriété utilisée par l'alarme, notamment les éléments suivants :
-
La propriété d'état d'alarme dans le modèle d'actif composite
-
La propriété surveillée par l'alarme
-
L'attribut de seuil
-
(Facultatif) L'attribut ID de la banque d'identités IAM Identity Center
-
(Facultatif) L'attribut d'ID utilisateur IAM Identity Center
-
(Facultatif) L'attribut ID de l'expéditeur du SMS
-
(Facultatif) L'attribut d'adresse e-mail
-
(Facultatif) L'attribut d'objet de l'e-mail
-
(Facultatif) L'attribut de message supplémentaire
Exécutez la commande suivante pour récupérer les identifiants de ces propriétés sur le modèle d'actif. Remplacez
asset-model-id
par l'ID du modèle d'actif de l'étape précédente.aws iotsitewise describe-asset-model --asset-model-id
asset-model-id
L'opération renvoie une réponse qui contient les détails du modèle de ressource. Notez l'ID de chaque propriété utilisée par l'alarme. Vous utiliserez ces identifiants lorsque vous créerez le modèle AWS IoT Events d'alarme à l'étape suivante.
-
-
Créez le modèle d'alarme dans AWS IoT Events. Procédez comme suit :
-
Créez un fichier, appelé
alarm-model-payload.json
. -
Copiez l'objet JSON suivant dans le fichier.
-
Entrez le nom (
alarmModelName
), la description (alarmModelDescription
) et la gravité (severity
) de votre alarme. Pour ce qui est de la gravité, spécifiez un entier qui reflète les niveaux de gravité de votre entreprise.Important
Le modèle d'alarme doit porter le même nom que le modèle composite d'alarme que vous avez défini précédemment dans votre modèle d'équipement.
Les noms des modèles d'alarme ne peuvent contenir que des caractères alphanumériques.
{ "alarmModelName": "
BoilerTemperatureHighAlarm
", "alarmModelDescription": "Detects when the boiler temperature is high.
", "severity":3
} -
Ajoutez la règle de comparaison (
alarmRule
) à l'alarme. Cette règle définit la propriété à surveiller (inputProperty
), la valeur de seuil à comparer (threshold
) et l'opérateur de comparaison à utiliser (comparisonOperator
).-
Remplacez
assetModelId
par l'ID du modèle d'actif. -
Remplacez
alarmPropertyId
par l'identifiant de la propriété surveillée par l'alarme. -
Remplacez
thresholdAttributeId
par l'ID de la propriété de l'attribut threshold. -
Remplacez
GREATER
par l'opérateur à utiliser pour comparer les valeurs des propriétés avec le seuil. Sélectionnez parmi les options suivantes :-
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" } } } -
-
Ajoutez une action (
alarmEventActions
) pour envoyer l'état de l'alarme au AWS IoT SiteWise moment où l'alarme change d'état.Note
Pour une configuration avancée, vous pouvez définir des actions supplémentaires à effectuer lorsque l'alarme change d'état. Par exemple, vous pouvez appeler une AWS Lambda fonction ou publier sur un sujet MQTT. Pour plus d'informations, consultez la section Utilisation d'autres AWS services dans le Guide du AWS IoT Events développeur.
-
Remplacez
assetModelId
par l'ID du modèle d'actif. -
Remplacez
alarmPropertyId
par l'identifiant de la propriété surveillée par l'alarme. -
Remplacez
alarmStatePropertyId
par l'ID de la propriété d'état de l'alarme dans le modèle composite d'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
'" } } ] } } -
-
(Facultatif) Configurez les paramètres de notification d'alarme. L'action de notification d'alarme utilise une fonction Lambda de votre compte pour envoyer des notifications d'alarme. Pour plus d’informations, consultez Exigences relatives aux notifications d'alarme. Dans les paramètres de notification d'alarme, vous pouvez configurer les notifications par SMS et e-mail à envoyer aux utilisateurs d'IAM Identity Center. Procédez comme suit :
-
Ajoutez la configuration de notification d'alarme (
alarmNotification
) à la charge utile dansalarm-model-payload.json
.-
Remplacez
alarmNotificationFunctionArn
par l'ARN de la fonction Lambda qui gère les notifications d'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
" } } } ] } } -
-
(Facultatif) Configurez les notifications par SMS (
smsConfigurations
) à envoyer à un utilisateur du IAM Identity Center lorsque l'alarme change d'état.-
identityStoreIdAttributeId
Remplacez-le par l'ID de l'attribut qui contient l'ID de la banque d'identités IAM Identity Center. -
Remplacez
userIdAttributeId
par l'ID de l'attribut contenant l'ID de l'utilisateur IAM Identity Center. -
Remplacez l'
senderIdAttributeID
par l'ID de l'attribut qui contient l'identifiant de l'expéditeur Amazon SNS, ou supprimez-lesenderId
de la charge utile. -
Remplacez
additionalMessageAttributeId
par l'ID de l'attribut qui contient le message supplémentaire, ou supprimez-leadditionalMessage
de la charge utile.
{ "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" } ] } ] } } -
-
(Facultatif) Configurez les notifications par e-mail (
emailConfigurations
) à envoyer à un utilisateur du IAM Identity Center lorsque l'alarme change d'état.-
identityStoreIdAttributeId
Remplacez-le par l'ID de la propriété d'attribut ID de la banque d'identités IAM Identity Center. -
Remplacez
userIdAttributeId
par l'ID de la propriété d'attribut IAM Identity Center user ID. -
Remplacez
fromAddressAttributeId
par l'ID de la propriété d'attribut d'adresse « from » ou supprimez-lefrom
de la charge utile. -
Remplacez l'
emailSubjectAttributeID
par l'ID de la propriété d'attribut de l'objet de l'e-mail ousubject
supprimez-le de la charge utile. -
Remplacez
additionalMessageAttributeId
par l'ID de la propriété d'attribut de message supplémentaire, ou supprimez-leadditionalMessage
de la charge utile.
{ "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" } } ] } ] } } -
-
-
(Facultatif) Ajoutez les capacités d'alarme (
alarmCapabilities
) à la charge utile.alarm-model-payload.json
Dans cet objet, vous pouvez spécifier si le flux d'accusé de réception est activé et l'état d'activation par défaut pour les actifs en fonction du modèle d'actif. Pour plus d'informations sur le flux d'accusé de réception, consultezÉtats d'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
} } } -
Ajoutez le rôle de service IAM (
roleArn
) qui AWS IoT Events peut assumer d'envoyer des données à AWS IoT SiteWise. Ce rôle nécessite l'iotsitewise:BatchPutAssetPropertyValue
autorisation et une relation de confiance qui permettentiotevents.amazonaws.com
d'assumer le rôle. Pour envoyer des notifications, ce rôle nécessite également lessso-directory:DescribeUser
autorisationslambda:InvokeFunction
et. Pour plus d'informations, consultez la section Rôles du service Alarm dans le guide du AWS IoT Events développeur.-
Remplacez le
roleArn
par l'ARN du rôle qui AWS IoT Events peut assumer ces actions.
{ "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
" } -
-
Exécutez la commande suivante pour créer le modèle AWS IoT Events d'alarme à partir de la charge utile.
alarm-model-payload.json
aws iotevents create-alarm-model --cli-input-json file://alarm-model-payload.json
-
L'opération renvoie une réponse qui inclut l'ARN du modèle d'alarme,
alarmModelArn
. Copiez cet ARN pour définir la définition de l'alarme sur votre modèle d'actif à l'étape suivante.
-
Étape 3 : Activation du flux de données entre AWS IoT SiteWise et AWS IoT Events
Après avoir créé les ressources requises dans AWS IoT SiteWise et AWS IoT Events, vous pouvez activer le flux de données entre les ressources pour activer votre alarme. Dans cette section, vous allez mettre à jour la définition d'alarme dans le modèle d'actif pour utiliser le modèle d'alarme que vous avez créé à l'étape précédente.
Pour activer le flux de données entre AWS IoT SiteWise et AWS IoT Events (CLI)
-
Définissez le modèle d'alarme comme source de l'alarme dans le modèle d'actif. Procédez comme suit :
-
Exécutez la commande suivante pour récupérer la définition de modèle de ressource existante. Remplacez
asset-model-id
par l'ID du modèle d'actif.aws iotsitewise describe-asset-model --asset-model-id
asset-model-id
L'opération renvoie une réponse qui contient les détails du modèle de ressource.
-
Créez un fichier appelé
update-asset-model-payload.json
et copiez la réponse de la commande précédente dans le fichier. -
Supprimez les paires clé-valeur suivantes du
update-asset-model-payload.json
fichier :-
assetModelId
-
assetModelArn
-
assetModelCreationDate
-
assetModelLastUpdateDate
-
assetModelStatus
-
-
Ajoutez la propriété de source d'alarme (
AWS/ALARM_SOURCE
) au modèle composite d'alarme que vous avez défini précédemment.alarmModelArn
Remplacez-le par l'ARN du modèle d'alarme, qui définit la valeur de la propriété de la source d'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
" } } } ] } ] } -
Exécutez la commande suivante pour mettre à jour le modèle d'actif avec la définition stockée dans le
update-asset-model-payload.json
fichier. Remplacezasset-model-id
par l'ID du modèle d'actif.aws iotsitewise update-asset-model \ --asset-model-id
asset-model-id
\ --cli-input-json file://update-asset-model-payload.json
-
Votre modèle d'équipement définit désormais une alarme qui détecte AWS IoT Events. L'alarme surveille la propriété cible dans tous les actifs sur la base de ce modèle d'actif. Vous pouvez configurer l'alarme sur chaque actif afin de personnaliser les propriétés telles que le seuil ou le destinataire du IAM Identity Center pour chaque actif. Pour plus d’informations, consultez Configuration des alarmes sur les actifs.