Creación de un flujo con dispositivos y un servicio utilizando la CLI - AWS IoT Things Graph

AWS IoT Things Graphse está interrumpiendo. Puede seguir utilizando elConsola de AWS IoT Things Graphsolo si estás en la lista de permitidos para ello.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de un flujo con dispositivos y un servicio utilizando la CLI

Este tema contiene los comandos de AWS CLI que crean el flujo en Creación de un flujo con dispositivos y un servicio. Las instrucciones de configuración para este ejemplo son idénticas a las de ese tema. Antes de comenzar con este ejemplo, siga todas las instrucciones indicadas en ese tema hasta Creación e implementación del flujo y, a continuación, vuelva a este tema.

Instalar la CLI

Para instalar la AWS CLI, siga las instrucciones que se indican en Instalación de la AWS CLI.

Cree el flujo utilizando la AWS CLI

Los siguientes pasos describen cómo crear e implementar el flujo utilizando la AWS CLI

  1. El siguiente código de AWS IoT Things Graph Data Model (TDM) contiene la definición del flujo que se ha utilizado en este ejemplo. Copie este código en un archivo. Sustituya los marcadores REGION y ACCOUNT ID por su región e identificador de cuenta de AWS.

    { query RekognitionFlow($cameraRkgnExample: string!, $screen: string!) @workflowType(id: \"urn:tdm:REGION/ACCOUNT ID/default:Workflow:RekognitionFlow\") { variables { cameraRkgnExampleResult @property(id: \"urn:tdm:aws/examples:property:CameraStatePropertyRkgnExample\") rekognitionResult @property(id: \"urn:tdm:aws:Property:Json\") } steps { step(name: \"CameraRkgnExample\", outEvent: [\"cameraStepDone\"]) { DeviceActivity(deviceModel: \"urn:tdm:aws/examples:deviceModel:CameraRkgnExample\", out: \"cameraRkgnExampleResult\", deviceId: \"${cameraRkgnExample}\") { capture } } step(name: \"Rekognition\", inEvent: [\"cameraStepDone\"], outEvent: [\"rekognitionStepDone\"]) { WebserviceActivity(webservice: \"urn:tdm:aws/examples:service:Rekognition\", out: \"rekognitionResult\") { detectFaces(bucketName: \"${cameraRkgnExampleResult.s3BucketName}\", itemName: \"${cameraRkgnExampleResult.s3ItemName}\") } } step(name: \"Screen\", inEvent: [\"rekognitionStepDone\"]) { DeviceActivity(deviceModel: \"urn:tdm:aws/examples:deviceModel:Screen\", deviceId: \"${screen}\") { display(imageUrl: \"${cameraRkgnExampleResult.lastClickedImage}\") } } } } }
  2. Introduzca el siguiente comando para crear el flujo. Este comando asume que está trabajando en un entorno Linux o Unix. Para otros entornos, utilice el equivalente a la utilidad cat.

    aws iotthingsgraph create-flow-template --definition language=GRAPHQL,text='"'"$(cat PATH TO TDM FILE)"'"'
  3. El siguiente código de TDM contiene la definición del sistema que se ha utilizado en este ejemplo. La consola crea este sistema para usted.

    Copie este código en un archivo. Sustituya los marcadores REGION y ACCOUNT ID por su región e identificador de cuenta de AWS.

    { type RekognitionFlow @systemType(id: \"urn:tdm:REGION/ACCOUNT ID/default:System:RekognitionFlow\") { motionSensor: Device @thing(id: \"urn:tdm:aws/examples:deviceModel:MotionSensor\") cameraRkgnExample: Device @thing(id: \"urn:tdm:aws/examples:deviceModel:CameraRkgnExample\") screen: Device @thing(id: \"urn:tdm:aws/examples:deviceModel:Screen\") RekognitionFlow: Flow @workflow(id: \"urn:tdm:REGION/ACCOUNT ID/default:Workflow:RekognitionFlow\") } }
  4. Introduzca el siguiente comando para crear el sistema.

    aws iotthingsgraph create-system-template --definition language=GRAPHQL,text='"'"$(cat PATH TO TDM FILE)"'"'
  5. Introduzca los siguientes comandos para asociar los objetos que ha creado en su registro a los modelos de dispositivo que ha utilizado en el flujo.

    Sustituya los marcadores de posición MotionSensorName, CameraName y ScreenName por los nombres de los objetos que ha creado anteriormente.

    aws iotthingsgraph associate-entity-to-thing --thing-name "MotionSensorName" --entity-id "urn:tdm:aws/examples:Device:HCSR501MotionSensor" aws iotthingsgraph associate-entity-to-thing --thing-name "CameraName" --entity-id "urn:tdm:aws/examples:Device:RaspberryPiCameraRkgnExample" aws iotthingsgraph associate-entity-to-thing --thing-name "ScreenName" --entity-id "urn:tdm:aws/examples:Device:RaspberryPiScreen"
  6. El siguiente código de TDM contiene la definición de la configuración de flujo que se ha utilizado en este ejemplo. La definición de TDM se encuentra en el objeto definition. Para obtener más información, consulte Creación de configuraciones de flujo.

    Copie este código en un archivo. Sustituya los marcadores REGION y ACCOUNT ID por su región e identificador de cuenta de AWS. Sustituya los marcadores de posición MotionSensorName, ScreenName y CameraName por los nombres de los objetos que ha creado anteriormente.

    { query Lobby @deployment(id: \"urn:tdm:REGION/ACCOUNT ID/default:Deployment:Lobby\", systemId: \"urn:tdm:REGION/ACCOUNT ID/default:System:RekognitionFlow\") { motionSensor(deviceId: \"MotionSensorName\") screen(deviceId: \"ScreenName\") cameraRkgnExample(deviceId: \"CameraName\") triggers { MotionEventTrigger(description: \"a trigger\") { condition(expr: \"devices[name == 'motionSensor'].events[name == 'StateChanged'].lastEvent\") action(expr: \"ThingsGraph.startFlow('RekognitionFlow', bindings[name == 'cameraRkgnExample'].deviceId, bindings[name == 'screen'].deviceId)\") } } } }
  7. Introduzca el siguiente comando para crear la configuración de flujo. Reemplace elGRUPO DE GREENGRASSyS3 BUCKET (BUCKET DE S3)con los nombres de suAWS IoT GreengrassGroup y bucket de Amazon S3.

    aws iotthingsgraph create-system-instance --definition language=GRAPHQL,text='"'"$(cat PATH TO TDM FILE)"'"' \ --target GREENGRASS --greengrass-group-name GREENGRASS GROUP --s3-bucket-name S3 BUCKET

    Una vez que se complete la operación, la AWS CLI devuelve el siguiente resumen de implementación como un objeto JSON. Utilice el valor de id en el bloque summary como el URN de TDM de la configuración de flujo.

    { "summary": { "status": "PENDING_DEPLOYMENT", "greengrassGroupName": "ThingsGraphGrnGr", "target": "GREENGRASS", "arn": "arn:aws:iotthingsgraph:REGION:ACCOUNT ID:default#Deployment#Lobby", "updatedAt": 1555022871.418, "id": "urn:tdm:REGION/ACCOUNT ID/default:Deployment:Lobby", "createdAt": 1555022871.418 } }
  8. Introduzca el siguiente comando para implementar la configuración de flujo en su grupo de AWS IoT Greengrass. Utilice el valor URN de TDM que se ha devuelto en el paso anterior como valor del parámetro id.

    aws iotthingsgraph deploy-system-instance --id SYSTEM INSTANCE URN

Eliminar el flujo y su configuración (opcional)

Para obtener instrucciones sobre cómo anular la implementación de una configuración de flujo y eliminar tanto la configuración como el flujo que ha creado, consulte Eliminación de configuraciones de flujo y Eliminación de sistemas, flujos y espacios de nombres en Administración del ciclo de vida de entidades, flujos, sistemas e implementaciones de AWS IoT Things Graph.