Exemplos do AWS IoT Events-Data usando oAWS CLI
Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Command Line Interface com o AWS IoT Events-Data.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.
Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.
Tópicos
Ações
O código de exemplo a seguir mostra como usar batch-put-message.
- AWS CLI
-
Como enviar mensagens (entradas) para o AWS IoT Events
O exemplo
batch-put-messagea seguir envia um conjunto de mensagens para o sistema do AWS IoT Events. A carga útil de cada mensagem é transformada na entrada especificada (inputName) e ingerida em qualquer detector que monitore essa entrada. Por padrão, a ordem em que as mensagens são processadas é garantida quando várias mensagens são enviadas. Para garantir a ordem do processamento, deve-se enviar uma mensagem de cada vez e aguardar uma resposta bem-sucedida.aws iotevents-data batch-put-message \ --cli-binary-formatraw-in-base64-out\ --cli-input-jsonfile://highPressureMessage.jsonConteúdo de
highPressureMessage.json:{ "messages": [ { "messageId": "00001", "inputName": "PressureInput", "payload": "{\"motorid\": \"Fulton-A32\", \"sensorData\": {\"pressure\": 80, \"temperature\": 39} }" } ] }Saída:
{ "BatchPutMessageErrorEntries": [] }Para obter mais informações, consulte BatchPutMessage no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte BatchPutMessage
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar batch-update-detector.
- AWS CLI
-
Para atualizar um detector (instância)
O exemplo
batch-update-detectora seguir atualiza o estado, os valores das variáveis e as configurações do temporizador de um ou mais detectores (instâncias) de um modelo de detector especificado.aws iotevents-data batch-update-detector \ --cli-input-jsonfile://budFulton-A32.jsonConteúdo de
budFulton-A32.json:{ "detectors": [ { "messageId": "00001", "detectorModelName": "motorDetectorModel", "keyValue": "Fulton-A32", "state": { "stateName": "Normal", "variables": [ { "name": "pressureThresholdBreached", "value": "0" } ], "timers": [ ] } } ] }Saída:
{ "batchUpdateDetectorErrorEntries": [] }Para obter mais informações, consulte BatchUpdateDetector no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte BatchUpdateDetector
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-detector-model.
- AWS CLI
-
Para criar um modelo de detector
O exemplo
create-detector-modela seguir cria um modelo de detector.aws iotevents create-detector-model \ --cli-input-jsonfile://motorDetectorModel.jsonConteúdo 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" }Saída:
{ "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" } }Para obter mais informações, consulte CreateDetectorModel no AWSGuia do desenvolvedor do IoT Events*.
-
Para ver detalhes da API, consulte CreateDetectorModel
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-input.
- AWS CLI
-
Para criar uma entrada
O exemplo
create-inputa seguir cria uma entrada.aws iotevents create-input \ --cli-input-jsonfile://pressureInput.jsonConteúdo de
pressureInput.json:{ "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor", "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } }Saída:
{ "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" } }Para obter mais informações, consulte CreateInput no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte CreateInput
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar delete-detector-model.
- AWS CLI
-
Para excluir um modelo de detector
O exemplo
delete-detector-modela seguir exclui um modelo de detector. Todas as instâncias ativas do modelo do detector também são excluídas.aws iotevents delete-detector-model \ --detector-model-namemotorDetectorModel*Este comando não produz saída.
Para obter mais informações, consulte DeleteDetectorModel no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte DeleteDetectorModel
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar delete-input.
- AWS CLI
-
Para excluir uma entrada
O exemplo
delete-inputa seguir exclui uma entrada.aws iotevents delete-input \ --input-namePressureInputEste comando não produz saída.
Para obter mais informações, consulte DeleteInput no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte DeleteInput
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-detector-model.
- AWS CLI
-
Para obter informações sobre um modelo de detector
O exemplo
describe-detector-modela seguir descreve um modelo de detector. Se o parâmetroversionnão for especificado, o comando retornará informações sobre a versão mais recente.aws iotevents describe-detector-model \ --detector-model-namemotorDetectorModelSaída:
{ "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" } } }Para obter mais informações, consulte DescribeDetectorModel no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte DescribeDetectorModel
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-detector.
- AWS CLI
-
Para obter informações sobre um detector (instância)
O exemplo
describe-detectora seguir retorna informações sobre o detector especificado (instância).aws iotevents-data describe-detector \ --detector-model-namemotorDetectorModel\ --key-value"Fulton-A32"Saída:
{ "detector": { "lastUpdateTime": 1560797852.776, "creationTime": 1560797852.775, "state": { "variables": [ { "name": "pressureThresholdBreached", "value": "3" } ], "stateName": "Dangerous", "timers": [] }, "keyValue": "Fulton-A32", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } }Para obter mais informações, consulte DescribeDetector no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte DescribeDetector
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-input.
- AWS CLI
-
Para obter informações sobre uma entrada
O exemplo
describe-inputa seguir recupera os detalhes de uma entrada.aws iotevents describe-input \ --input-namePressureInputSaída:
{ "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" } ] } } }Para obter mais informações, consulte DescribeInput no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte DescribeInput
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-logging-options.
- AWS CLI
-
Para obter informações sobre as configurações de log
O exemplo
describe-logging-optionsa seguir recupera as opções atuais de registro do AWS IoT Events.aws iotevents describe-logging-optionsSaída:
{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "enabled": false, "level": "ERROR" } }Para obter mais informações, consulte DescribeLoggingOptions no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte DescribeLoggingOptions
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-detector-model-versions.
- AWS CLI
-
Para obter informações sobre versões de um modelo de detector
O exemplo
list-detector-model-versionsa seguir lista todas as versões de um modelo de detector. Somente os metadados associados a cada versão de modelo de detector são retornados.aws iotevents list-detector-model-versions \ --detector-model-namemotorDetectorModelSaída:
{ "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" } ] }Para obter mais informações, consulte ListDetectorModelVersions no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte ListDetectorModelVersions
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-detector-models.
- AWS CLI
-
Para obter uma lista de seus modelos de detectores
O exemplo
list-detector-modelsa seguir lista os modelos de detectores criados. Somente os metadados associados a cada modelo de detector são retornados.aws iotevents list-detector-modelsSaída:
{ "detectorModelSummaries": [ { "detectorModelName": "motorDetectorModel", "creationTime": 1552072424.212 "detectorModelDescription": "Detect overpressure in a motor." } ] }Para obter mais informações, consulte ListDetectorModels no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte ListDetectorModels
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-detectors.
- AWS CLI
-
Para obter uma lista de detectores para um modelo de detector
O exemplo
list-detectorsa seguir lista detectores (as instâncias de um modelo de detector).aws iotevents-data list-detectors \ --detector-model-namemotorDetectorModelSaída:
{ "detectorSummaries": [ { "lastUpdateTime": 1558129925.2, "creationTime": 1552073155.527, "state": { "stateName": "Normal" }, "keyValue": "Fulton-A32", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } ] }Para obter mais informações, consulte ListDetectors no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte ListDetectors
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-inputs.
- AWS CLI
-
Para listar entradas
O exemplo
list-inputsa seguir lista as entradas criadas.aws iotevents list-inputsSaída:
{ "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" }Para obter mais informações, consulte ListInputs no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte ListInputs
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-tags-for-resource.
- AWS CLI
-
Para listar tags atribuídas a um recurso
O exemplo
list-tags-for-resourcea seguir lista as tags (metadados) atribuídas ao recurso.aws iotevents list-tags-for-resource \ --resource-arn"arn:aws:iotevents:us-west-2:123456789012:input/PressureInput"Saída:
{ "tags": [ { "value": "motor", "key": "deviceType" } ] }Para obter mais informações, consulte ListTagsForResource no Guia do desenvolvedor do AWS IoT Events*.
-
Para obter detalhes sobre a API, consulte ListTagsForResource
na AWS CLI Command Reference.
-
O código de exemplo a seguir mostra como usar put-logging-options.
- AWS CLI
-
Para definir as opções de log
O exemplo
list-tags-for-resourcea seguir recupera as opções atuais de log do AWS IoT Events. Se você atualizar o valor de qualquer campologgingOptions, levará até um minuto para ver a mudança entrar em vigor. Além disso, se for alterada a política anexada à função especificada no camporoleArn(por exemplo, para corrigir uma política inválida) levará até 5 minutos para que a mudança entre em vigor.aws iotevents put-logging-options \ --cli-input-jsonfile://logging-options.jsonConteúdo de
logging-options.json:{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "level": "DEBUG", "enabled": true, "detectorDebugOptions": [ { "detectorModelName": "motorDetectorModel", "keyValue": "Fulton-A32" } ] } }Este comando não produz saída.
Para obter mais informações, consulte PutLoggingOptions no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte PutLoggingOptions
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar tag-resource.
- AWS CLI
-
Para adicionar tags a um recurso
O exemplo
tag-resourcea seguir adiciona ou modifica as tags do recurso determinado. Tags são metadados que podem ser usados para gerenciar um recurso.aws iotevents tag-resource \ --cli-input-jsonfile://pressureInput.tag.jsonConteúdo de
pressureInput.tag.json:{ "resourceArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "tags": [ { "key": "deviceType", "value": "motor" } ] }Este comando não produz saída.
Para obter mais informações, consulte TagResource no Guia do desenvolvedor do AWS IoT Events*.
-
Para obter detalhes da API, consulte TagResource
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar untag-resource.
- AWS CLI
-
Como remover as tags de um recurso
O exemplo
untag-resourcea seguir remove as tags especificadas do recurso.aws iotevents untag-resource \ --cli-input-jsonfile://pressureInput.untag.jsonConteúdo de
pressureInput.untag.json:{ "resourceArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "tagKeys": [ "deviceType" ] }Este comando não produz saída.
Para obter mais informações, consulte UntagResource no Guia do desenvolvedor do AWS IoT Events*.
-
Para obter detalhes sobre a API, consulte UntagResource
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-detector-model.
- AWS CLI
-
Para atualizar um modelo de detector
O exemplo
update-detector-modela seguir atualiza um modelo de detector. Os detectores (instâncias) gerados pela versão anterior são excluídos e recriados à medida que novas entradas chegam.aws iotevents update-detector-model \ --cli-input-jsonfile://motorDetectorModel.update.jsonConteúdo 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" }Saída:
{ "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" } }Para obter mais informações, consulte UpdateDetectorModel no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte UpdateDetectorModel
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-input.
- AWS CLI
-
Para atualizar uma entrada
O seguinte exemplo de
update-inputatualiza uma entrada.aws iotevents update-input \ --cli-input-jsonfile://pressureInput.jsonConteúdo de
pressureInput.json:{ "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor", "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } }Saída:
{ "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" } }Para obter mais informações, consulte UpdateInput no Guia do desenvolvedor do AWS IoT Events*.
-
Para ver detalhes da API, consulte UpdateInput
na Referência de comandos da AWS CLI.
-