D'autres exemples de AWS SDK sont disponibles dans le référentiel AWS Doc SDK Examples
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.
AWS IoT Events exemples utilisant AWS CLI
Les exemples de code suivants vous montrent comment effectuer des actions et implémenter des scénarios courants à l'aide du AWS Command Line Interface with AWS IoT Events.
Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.
Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la façon de configurer et d'exécuter le code en contexte.
Rubriques
Actions
L'exemple de code suivant montre comment utiliserbatch-put-message.
- AWS CLI
-
Pour envoyer des messages (entrées) à AWS IoT Events
L'
batch-put-messageexemple suivant envoie un ensemble de messages au système AWS IoT Events. Chaque charge utile de message est transformée en entrée que vous spécifiez (inputName) et ingérée dans tous les détecteurs qui surveillent cette entrée. Si plusieurs messages sont envoyés, l'ordre dans lequel ils sont traités n'est pas garanti. Pour garantir la commande, vous devez envoyer les messages un par un et attendre une réponse positive.aws iotevents-data batch-put-message \ --cli-input-jsonfile://highPressureMessage.jsonContenu de
highPressureMessage.json:{ "messages": [ { "messageId": "00001", "inputName": "PressureInput", "payload": "{\"motorid\": \"Fulton-A32\", \"sensorData\": {\"pressure\": 80, \"temperature\": 39} }" } ] }Sortie :
{ "BatchPutMessageErrorEntries": [] }Pour plus d'informations, consultez BatchPutMessagele manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous BatchPutMessage
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserbatch-update-detector.
- AWS CLI
-
Pour mettre à jour un détecteur (instance)
L'
batch-update-detectorexemple suivant met à jour l'état, les valeurs des variables et les paramètres de temporisation d'un ou de plusieurs détecteurs (instances) d'un modèle de détecteur spécifié.aws iotevents-data batch-update-detector \ --cli-input-jsonfile://budFulton-A32.jsonContenu de
budFulton-A32.json:{ "detectors": [ { "messageId": "00001", "detectorModelName": "motorDetectorModel", "keyValue": "Fulton-A32", "state": { "stateName": "Normal", "variables": [ { "name": "pressureThresholdBreached", "value": "0" } ], "timers": [ ] } } ] }Sortie :
{ "batchUpdateDetectorErrorEntries": [] }Pour plus d'informations, consultez BatchUpdateDetectorle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous BatchUpdateDetector
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisercreate-detector-model.
- AWS CLI
-
Pour créer un modèle de détecteur
L'
create-detector-modelexemple suivant crée un modèle de détecteur dont la configuration est spécifiée par un fichier de paramètres.aws iotevents create-detector-model \ --cli-input-jsonfile://motorDetectorModel.jsonContenu de
motorDetectorModel.json:{ "detectorModelName": "motorDetectorModel", "detectorModelDefinition": { "states": [ { "stateName": "Normal", "onEnter": { "events": [ { "eventName": "init", "condition": "true", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "0" } } ] } ] }, "onInput": { "transitionEvents": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached + 3" } } ], "nextState": "Dangerous" } ] } }, { "stateName": "Dangerous", "onEnter": { "events": [ { "eventName": "Pressure Threshold Breached", "condition": "$variable.pressureThresholdBreached > 1", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" } } ] } ] }, "onInput": { "events": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "3" } } ] }, { "eventName": "Pressure Okay", "condition": "$input.PressureInput.sensorData.pressure <= 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ] } ], "transitionEvents": [ { "eventName": "BackToNormal", "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ] }, "onExit": { "events": [ { "eventName": "Normal Pressure Restored", "condition": "true", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" } } ] } ] } } ], "initialStateName": "Normal" }, "key": "motorid", "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" }Sortie :
{ "detectorModelConfiguration": { "status": "ACTIVATING", "lastUpdateTime": 1560796816.077, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560796816.077, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "key": "motorid", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } }Pour plus d'informations, consultez CreateDetectorModelle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous CreateDetectorModel
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisercreate-input.
- AWS CLI
-
Pour créer une entrée
L'
create-inputexemple suivant crée une entrée.aws iotevents create-input \ --cli-input-jsonfile://pressureInput.jsonContenu de
pressureInput.json:{ "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor", "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } }Sortie :
{ "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1560795312.542, "creationTime": 1560795312.542, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" } }Pour plus d'informations, consultez CreateInputle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous CreateInput
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdelete-detector-model.
- AWS CLI
-
Pour supprimer un modèle de détecteur
L'
delete-detector-modelexemple suivant supprime le modèle de détecteur spécifié. Toutes les instances actives du modèle de détecteur sont également supprimées.aws iotevents delete-detector-model \ --detector-model-namemotorDetectorModelCette commande ne produit aucun résultat.
Pour plus d'informations, consultez DeleteDetectorModelle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous DeleteDetectorModel
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdelete-input.
- AWS CLI
-
Pour supprimer une entrée
L'
delete-inputexemple suivant supprime l'entrée spécifiée.aws iotevents delete-input \ --input-namePressureInputCette commande ne produit aucun résultat.
Pour plus d'informations, consultez DeleteInputle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous DeleteInput
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdescribe-detector-model.
- AWS CLI
-
Pour obtenir des informations sur un modèle de détecteur
L'
describe-detector-modelexemple suivant affiche les détails du modèle de détecteur spécifié. Comme leversionparamètre n'est pas spécifié, les informations relatives à la dernière version sont renvoyées.aws iotevents describe-detector-model \ --detector-model-namemotorDetectorModelSortie :
{ "detectorModel": { "detectorModelConfiguration": { "status": "ACTIVE", "lastUpdateTime": 1560796816.077, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560796816.077, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "key": "motorid", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" }, "detectorModelDefinition": { "states": [ { "onInput": { "transitionEvents": [ { "eventName": "Overpressurized", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached + 3" } } ], "condition": "$input.PressureInput.sensorData.pressure > 70", "nextState": "Dangerous" } ], "events": [] }, "stateName": "Normal", "onEnter": { "events": [ { "eventName": "init", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "0" } } ], "condition": "true" } ] }, "onExit": { "events": [] } }, { "onInput": { "transitionEvents": [ { "eventName": "BackToNormal", "actions": [], "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ], "events": [ { "eventName": "Overpressurized", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "3" } } ], "condition": "$input.PressureInput.sensorData.pressure > 70" }, { "eventName": "Pressure Okay", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ], "condition": "$input.PressureInput.sensorData.pressure <= 70" } ] }, "stateName": "Dangerous", "onEnter": { "events": [ { "eventName": "Pressure Threshold Breached", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" } } ], "condition": "$variable.pressureThresholdBreached > 1" } ] }, "onExit": { "events": [ { "eventName": "Normal Pressure Restored", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" } } ], "condition": "true" } ] } } ], "initialStateName": "Normal" } } }Pour plus d'informations, consultez DescribeDetectorModelle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous DescribeDetectorModel
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdescribe-detector.
- AWS CLI
-
Pour obtenir des informations sur un détecteur (instance).
L'
describe-detectorexemple suivant affiche les détails du détecteur spécifié (instance).aws iotevents-data describe-detector \ --detector-model-namemotorDetectorModel\ --key-value"Fulton-A32"Sortie :
{ "detector": { "lastUpdateTime": 1560797852.776, "creationTime": 1560797852.775, "state": { "variables": [ { "name": "pressureThresholdBreached", "value": "3" } ], "stateName": "Dangerous", "timers": [] }, "keyValue": "Fulton-A32", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } }Pour plus d'informations, consultez DescribeDetectorle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous DescribeDetector
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdescribe-input.
- AWS CLI
-
Pour obtenir des informations sur une entrée
L'
describe-inputexemple suivant affiche les détails de l'entrée spécifiée.aws iotevents describe-input \ --input-namePressureInputSortie :
{ "input": { "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1560795312.542, "creationTime": 1560795312.542, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" }, "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } } }Pour plus d'informations, consultez DescribeInputle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous DescribeInput
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdescribe-logging-options.
- AWS CLI
-
Pour obtenir des informations sur les paramètres de journalisation
L'
describe-logging-optionsexemple suivant récupère les paramètres actuels des options de journalisation des événements AWS IoT.aws iotevents describe-logging-optionsSortie :
{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "enabled": false, "level": "ERROR" } }Pour plus d'informations, consultez DescribeLoggingOptionsle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous DescribeLoggingOptions
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-detector-model-versions.
- AWS CLI
-
Pour obtenir des informations sur les versions d'un modèle de détecteur
L'
list-detector-model-versionsexemple suivant répertorie toutes les versions d'un modèle de détecteur. Seules les métadonnées associées à chaque version du modèle de détecteur sont renvoyées.aws iotevents list-detector-model-versions \ --detector-model-namemotorDetectorModelSortie :
{ "detectorModelVersionSummaries": [ { "status": "ACTIVE", "lastUpdateTime": 1560796816.077, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560796816.077, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } ] }Pour plus d'informations, consultez ListDetectorModelVersionsle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous ListDetectorModelVersions
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-detector-models.
- AWS CLI
-
Pour obtenir la liste de vos modèles de détecteurs
L'
list-detector-modelsexemple suivant répertorie les modèles de détecteurs que vous avez créés. Seules les métadonnées associées à chaque modèle de détecteur sont renvoyées.aws iotevents list-detector-modelsSortie :
{ "detectorModelSummaries": [ { "detectorModelName": "motorDetectorModel", "creationTime": 1552072424.212 "detectorModelDescription": "Detect overpressure in a motor." } ] }Pour plus d'informations, consultez ListDetectorModelsle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous ListDetectorModels
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-detectors.
- AWS CLI
-
Pour obtenir la liste des détecteurs pour un modèle de détecteur
L'
list-detectorsexemple suivant répertorie les détecteurs (les instances d'un modèle de détecteur) de votre compte.aws iotevents-data list-detectors \ --detector-model-namemotorDetectorModelSortie :
{ "detectorSummaries": [ { "lastUpdateTime": 1558129925.2, "creationTime": 1552073155.527, "state": { "stateName": "Normal" }, "keyValue": "Fulton-A32", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } ] }Pour plus d'informations, consultez ListDetectorsle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous ListDetectors
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-inputs.
- AWS CLI
-
Pour répertorier les entrées
L'
list-inputsexemple suivant répertorie les entrées que vous avez créées dans votre compte.aws iotevents list-inputsCette commande ne produit aucun résultat. Sortie :
{ { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1551742986.768, "creationTime": 1551742986.768, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" } }Pour plus d'informations, consultez ListInputsle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous ListInputs
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-tags-for-resource.
- AWS CLI
-
Pour répertorier les balises attribuées à une ressource.
L'
list-tags-for-resourceexemple suivant répertorie les noms et valeurs des clés de balise que vous avez attribués à la ressource.aws iotevents list-tags-for-resource \ --resource-arn"arn:aws:iotevents:us-west-2:123456789012:input/PressureInput"Sortie :
{ "tags": [ { "value": "motor", "key": "deviceType" } ] }Pour plus d'informations, consultez ListTagsForResourcele manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous ListTagsForResource
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserput-logging-options.
- AWS CLI
-
Pour définir les options de journalisation
L'
put-logging-optionsexemple suivant définit ou met à jour les options de journalisation d' AWS IoT Events. Si vous mettez à jour la valeur d'unloggingOptions` field, it can take up to one minute for the change to take effect. Also, if you change the policy attached to the role you specified in the ``roleArnchamp (par exemple, pour corriger une politique non valide), la prise en compte de cette modification peut prendre jusqu'à cinq minutes.aws iotevents put-logging-options \ --cli-input-jsonfile://logging-options.jsonContenu de
logging-options.json:{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "level": "DEBUG", "enabled": true, "detectorDebugOptions": [ { "detectorModelName": "motorDetectorModel", "keyValue": "Fulton-A32" } ] } }Cette commande ne produit aucun résultat.
Pour plus d'informations, consultez PutLoggingOptionsle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous PutLoggingOptions
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisertag-resource.
- AWS CLI
-
Pour ajouter des balises à une ressource
L'
tag-resourceexemple suivant ajoute ou modifie (si la clé existedeviceTypedéjà) la balise attachée à la ressource spécifiée.aws iotevents tag-resource \ --cli-input-jsonfile://pressureInput.tag.jsonContenu de
pressureInput.tag.json:{ "resourceArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "tags": [ { "key": "deviceType", "value": "motor" } ] }Cette commande ne produit aucun résultat.
Pour plus d'informations, consultez TagResourcele manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous TagResource
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliseruntag-resource.
- AWS CLI
-
Pour supprimer des balises d'une ressource
L'
untag-resourceexemple suivant supprime la balise portant le nom de clé spécifié de la ressource spécifiée.aws iotevents untag-resource \ --resource-arnarn:aws:iotevents:us-west-2:123456789012:input/PressureInput\ --tagkeysdeviceTypeCette commande ne produit aucun résultat.
Pour plus d'informations, consultez UntagResourcele manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous UntagResource
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserupdate-detector-model.
- AWS CLI
-
Pour mettre à jour un modèle de détecteur
L'
update-detector-modelexemple suivant met à jour le modèle de détecteur spécifié. Les détecteurs (instances) générés par la version précédente sont supprimés puis recréés à mesure que de nouvelles entrées arrivent.aws iotevents update-detector-model \ --cli-input-jsonfile://motorDetectorModel.update.jsonContenu de
motorDetectorModel.update.json:{ "detectorModelName": "motorDetectorModel", "detectorModelDefinition": { "states": [ { "stateName": "Normal", "onEnter": { "events": [ { "eventName": "init", "condition": "true", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "0" } } ] } ] }, "onInput": { "transitionEvents": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached + 3" } } ], "nextState": "Dangerous" } ] } }, { "stateName": "Dangerous", "onEnter": { "events": [ { "eventName": "Pressure Threshold Breached", "condition": "$variable.pressureThresholdBreached > 1", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" } } ] } ] }, "onInput": { "events": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "3" } } ] }, { "eventName": "Pressure Okay", "condition": "$input.PressureInput.sensorData.pressure <= 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ] } ], "transitionEvents": [ { "eventName": "BackToNormal", "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ] }, "onExit": { "events": [ { "eventName": "Normal Pressure Restored", "condition": "true", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" } } ] } ] } } ], "initialStateName": "Normal" }, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" }Sortie :
{ "detectorModelConfiguration": { "status": "ACTIVATING", "lastUpdateTime": 1560799387.719, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560799387.719, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "key": "motorid", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "2" } }Pour plus d'informations, consultez UpdateDetectorModelle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous UpdateDetectorModel
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserupdate-input.
- AWS CLI
-
Pour mettre à jour une entrée
L'
update-inputexemple suivant met à jour l'entrée spécifiée avec une nouvelle description et une nouvelle définition.aws iotevents update-input \ --cli-input-jsonfile://pressureInput.jsonContenu de
pressureInput.json:{ "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor", "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } }Sortie :
{ "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1560795976.458, "creationTime": 1560795312.542, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" } }Pour plus d'informations, consultez UpdateInputle manuel AWS IoT Events API Reference.
-
Pour plus de détails sur l'API, reportez-vous UpdateInput
à la section Référence des AWS CLI commandes.
-