Há mais AWS SDK exemplos disponíveis no GitHub repositório AWS Doc SDK Examples
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á.
AWS IoT Events exemplos usando AWS CLI
Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Command Line Interface with AWS IoT Events.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar funções de serviço individuais, é possível ver as ações no contexto em seus cenários relacionados.
Cada exemplo inclui um link para o código-fonte completo, onde você pode encontrar instruções sobre como configurar e executar o código no contexto.
Tópicos
Ações
O código de exemplo a seguir mostra como usar batch-put-message
.
- AWS CLI
-
Para enviar mensagens (entradas) para AWS IoT Events
O
batch-put-message
exemplo a seguir envia um conjunto de mensagens para o sistema AWS IoT Events. Cada carga útil de mensagem é transformada na entrada que você especifica (inputName
) e ingerida em qualquer detector que monitore essa entrada. Se várias mensagens forem enviadas, a ordem em que as mensagens são processadas não é garantida. Para garantir o pedido, você deve enviar mensagens uma de cada vez e aguardar uma resposta bem-sucedida.aws iotevents-data batch-put-message \ --cli-input-json
file://highPressureMessage.json
Conteú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 a BatchPutMessageReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte BatchPutMessage
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar batch-update-detector
.
- AWS CLI
-
Para atualizar um detector (instância)
O
batch-update-detector
exemplo a seguir atualiza o estado, os valores das variáveis e as configurações do cronômetro de um ou mais detectores (instâncias) de um modelo de detector especificado.aws iotevents-data batch-update-detector \ --cli-input-json
file://budFulton-A32.json
Conteú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 a BatchUpdateDetectorReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte BatchUpdateDetector
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar create-detector-model
.
- AWS CLI
-
Para criar um modelo de detector
O
create-detector-model
exemplo a seguir cria um modelo de detector com sua configuração especificada por um arquivo de parâmetros.aws iotevents create-detector-model \ --cli-input-json
file://motorDetectorModel.json
Conteú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 a CreateDetectorModelReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte CreateDetectorModel
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar create-input
.
- AWS CLI
-
Para criar uma entrada
O
create-input
exemplo a seguir cria uma entrada.aws iotevents create-input \ --cli-input-json
file://pressureInput.json
Conteú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 a CreateInputReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte CreateInput
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar delete-detector-model
.
- AWS CLI
-
Para excluir um modelo de detector
O
delete-detector-model
exemplo a seguir exclui o modelo de detector especificado. Todas as instâncias ativas do modelo do detector também são excluídas.aws iotevents delete-detector-model \ --detector-model-name
motorDetectorModel
Este comando não produz saída.
Para obter mais informações, consulte a DeleteDetectorModelReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte DeleteDetectorModel
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar delete-input
.
- AWS CLI
-
Para excluir uma entrada
O
delete-input
exemplo a seguir exclui a entrada especificada.aws iotevents delete-input \ --input-name
PressureInput
Este comando não produz saída.
Para obter mais informações, consulte a DeleteInputReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte DeleteInput
na Referência de AWS CLI Comandos.
-
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
describe-detector-model
exemplo a seguir exibe detalhes do modelo de detector especificado. Como oversion
parâmetro não foi especificado, as informações sobre a versão mais recente são retornadas.aws iotevents describe-detector-model \ --detector-model-name
motorDetectorModel
Saí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 a DescribeDetectorModelReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte DescribeDetectorModel
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar describe-detector
.
- AWS CLI
-
Para obter informações sobre um detector (instância).
O
describe-detector
exemplo a seguir exibe detalhes do detector especificado (instância).aws iotevents-data describe-detector \ --detector-model-name
motorDetectorModel
\ --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 a DescribeDetectorReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte DescribeDetector
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar describe-input
.
- AWS CLI
-
Para obter informações sobre uma entrada
O
describe-input
exemplo a seguir exibe detalhes da entrada especificada.aws iotevents describe-input \ --input-name
PressureInput
Saí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 a DescribeInputReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte DescribeInput
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar describe-logging-options
.
- AWS CLI
-
Para obter informações sobre as configurações de registro
O
describe-logging-options
exemplo a seguir recupera as configurações atuais das opções de registro do AWS IoT Events.aws iotevents describe-logging-options
Saída:
{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "enabled": false, "level": "ERROR" } }
Para obter mais informações, consulte a DescribeLoggingOptionsReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte DescribeLoggingOptions
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar list-detector-model-versions
.
- AWS CLI
-
Para obter informações sobre as versões de um modelo de detector
O
list-detector-model-versions
exemplo a 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-name
motorDetectorModel
Saí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 a ListDetectorModelVersionsReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte ListDetectorModelVersions
na Referência de AWS CLI Comandos.
-
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
list-detector-models
exemplo a seguir lista os modelos de detectores que você criou. Somente os metadados associados a cada modelo de detector são retornados.aws iotevents list-detector-models
Saída:
{ "detectorModelSummaries": [ { "detectorModelName": "motorDetectorModel", "creationTime": 1552072424.212 "detectorModelDescription": "Detect overpressure in a motor." } ] }
Para obter mais informações, consulte a ListDetectorModelsReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte ListDetectorModels
na Referência de AWS CLI Comandos.
-
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
list-detectors
exemplo a seguir lista os detectores (as instâncias de um modelo de detector) em sua conta.aws iotevents-data list-detectors \ --detector-model-name
motorDetectorModel
Saída:
{ "detectorSummaries": [ { "lastUpdateTime": 1558129925.2, "creationTime": 1552073155.527, "state": { "stateName": "Normal" }, "keyValue": "Fulton-A32", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } ] }
Para obter mais informações, consulte a ListDetectorsReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte ListDetectors
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar list-inputs
.
- AWS CLI
-
Para listar as entradas
O
list-inputs
exemplo a seguir lista as entradas que você criou em sua conta.aws iotevents list-inputs
Este comando não produz saída. Saí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 a ListInputsReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte ListInputs
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar list-tags-for-resource
.
- AWS CLI
-
Para listar as tags atribuídas a um recurso.
O
list-tags-for-resource
exemplo a seguir lista os nomes e valores das chaves de tag que você atribuiu 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 a ListTagsForResourceReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte ListTagsForResource
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar put-logging-options
.
- AWS CLI
-
Para definir as opções de registro
O
put-logging-options
exemplo a seguir define ou atualiza as opções de registro de eventos do AWS IoT. Se você atualizar o valor de qualquerloggingOptions` 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 ``roleArn
campo (por exemplo, para corrigir uma política inválida), pode levar até cinco minutos para que a alteração entre em vigor.aws iotevents put-logging-options \ --cli-input-json
file://logging-options.json
Conteú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 a PutLoggingOptionsReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte PutLoggingOptions
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar tag-resource
.
- AWS CLI
-
Para adicionar tags a um recurso
O
tag-resource
exemplo a seguir adiciona ou modifica (se a chavedeviceType
já existir) a tag anexada ao recurso especificado.aws iotevents tag-resource \ --cli-input-json
file://pressureInput.tag.json
Conteú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 a TagResourceReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte TagResource
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar untag-resource
.
- AWS CLI
-
Como remover as tags de um recurso
O
untag-resource
exemplo a seguir remove a tag com o nome de chave especificado do recurso especificado.aws iotevents untag-resource \ --resource-arn
arn:aws:iotevents:us-west-2:123456789012:input/PressureInput
\ --tagkeysdeviceType
Este comando não produz saída.
Para obter mais informações, consulte a UntagResourceReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte UntagResource
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar update-detector-model
.
- AWS CLI
-
Para atualizar um modelo de detector
O
update-detector-model
exemplo a seguir atualiza o modelo de detector especificado. 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-json
file://motorDetectorModel.update.json
Conteú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 a UpdateDetectorModelReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte UpdateDetectorModel
na Referência de AWS CLI Comandos.
-
O código de exemplo a seguir mostra como usar update-input
.
- AWS CLI
-
Para atualizar uma entrada
O
update-input
exemplo a seguir atualiza a entrada especificada com uma nova descrição e definição.aws iotevents update-input \ --cli-input-json
file://pressureInput.json
Conteú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 a UpdateInputReferência de APIEventos de AWS IoT.
-
Para API obter detalhes, consulte UpdateInput
na Referência de AWS CLI Comandos.
-