Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Tutorial: Uso de AWS Lambda con MQTT

Modo de enfoque
Tutorial: Uso de AWS Lambda con MQTT - Amazon Location Service

Para crear una conexión entre AWS IoT y Amazon Location, necesita una función de Lambda para procesar los mensajes reenviados por los eventos de CloudWatch de EventBridge. Esta función extraerá todos los datos posicionales, los formateará para Amazon Location y los enviará a través de la API de de Amazon Location Tracker.

En el siguiente procedimiento, se muestra cómo crear esta función a través de la consola de Lambda:

  1. Abra la consola de .

  2. En el panel de navegación izquierdo, elija Funciones.

  3. A continuación, elija Crear función y asegúrese de que esté seleccionada la opción Autor desde cero.

  4. Proporcione un Nombre de función y, en la opción Tiempo de ejecución, elija Node.js 16.x.

  5. Elija Crear función.

  6. Abra la pestaña Código para acceder al editor.

  7. Sobrescriba el código del marcador de posición en el archivo index.js con lo siguiente:

    const AWS = require('aws-sdk') const iot = new AWS.Iot(); exports.handler =  function(event) {   console.log("event===>>>", JSON.stringify(event));   var param = {     endpointType: "iot:Data-ATS"   };   iot.describeEndpoint(param, function(err, data) {     if (err) {       console.log("error===>>>", err, err.stack); // an error occurred     } else {       var endp = data['endpointAddress'];       const iotdata = new AWS.IotData({endpoint: endp});           const trackerEvent = event["detail"]["EventType"];       const src = event["source"];       const time = event["time"];       const gfId = event["detail"]["GeofenceId"];       const resources = event["resources"][0];         const splitResources = resources.split(".");         const geofenceCollection = splitResources[splitResources.length - 1];       const coordinates = event["detail"]["Position"];                                     const deviceId = event["detail"]["DeviceId"];       console.log("deviceId===>>>", deviceId);       const msg =  {           "trackerEventType" : trackerEvent,           "source" : src,           "eventTime" : time,           "geofenceId" : gfId,           "coordinates": coordinates,           "geofenceCollection": geofenceCollection         };       const params = {         topic: `${deviceId}/tracker`,         payload: JSON.stringify(msg),         qos: 0       };       iotdata.publish(params, function(err, data) {           if (err) {             console.log("error===>>>", err, err.stack); // an error occurred           } else {             console.log("Ladmbda triggered===>>>", trackerEvent);  // successful response           }       });     }   }); }
  8. Seleccione Implementar para guardar la función actualizada.

  9. Haga clic en la pestaña Configuración.

  10. En la sección Desencadenadores, pulse el botón Agregar desencadenador.

  11. Seleccione EventBridge (CloudWatch Events) en el campo Origen.

  12. Seleccione la opción Reglas existentes.

  13. Introduzca el nombre de la regla, por ejemplo AmazonLocationMonitor-GEOFENCECOLLECTION_NAME.

  14. Pulse el botón Agregar.

  15. Esto también adjuntará las declaraciones de política basadas en los recursos en la pestaña de permisos.

Ahora configurará el cliente de pruebas MQTT usando AWS IoT con el siguiente procedimiento:

  1. Abra https://console.aws.amazon.com/iot/.

  2. En el panel de navegación principal, seleccione el cliente de pruebas MQTT.

  3. Verá una sección titulada Cliente de prueba MQTT en la que puede configurar su conexión MQTT.

  4. Después de configurar los ajustes necesarios, haga clic en el botón Conectar para establecer una conexión con el intermediario MQTT utilizando los parámetros proporcionados.

  5. Registre el punto de conexión, puesto que se utilizará más adelante en el tutorial.

    Una vez conectado al cliente de pruebas, puede suscribirse a los temas de MQTT o publicar mensajes sobre los temas utilizando los campos de entrada correspondientes que se proporcionan en la interfaz del cliente de pruebas de MQTT. A continuación, creará una política de AWS IoT.

  6. En el menú de la izquierda, en Administrar, expanda la opción Seguridad y haga clic en Políticas.

  7. Haga clic en el botón Crear política.

  8. Escriba un nombre para la política.

  9. En el documento de política, seleccione la pestaña JSON.

  10. Copie y pegue la política que se muestra a continuación, pero asegúrese de actualizar todos los elementos con su REGION y ACCOUNT_ID:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive" ], "Resource": [ "arn:aws:iot:REGION:ACCOUNT_ID:client/${cognito-identity.amazonaws.com:sub}", "arn:aws:iot:REGION:ACCOUNT_ID:topic/${cognito-identity.amazonaws.com:sub}", "arn:aws:iot:REGION:ACCOUNT_ID:topicfilter/${cognito-identity.amazonaws.com:sub}/*", "arn:aws:iot:REGION:ACCOUNT_ID:topic/${cognito-identity.amazonaws.com:sub}/tracker" ], "Effect": "Allow" } ] }
  11. Seleccione el botón Crear para terminar.

Tras completar el procedimiento anterior, actualizará los permisos del rol de invitado como sigue:

  1. Vaya a Amazon Cognito y abra su grupo de identidades. A continuación, vaya al acceso de usuario y seleccione el rol de invitado.

  2. Haga clic en las políticas de permisos para habilitar la edición.

    { 'Version': '2012-10-17', 'Statement': [ { 'Action': [ 'geo:GetMap*', 'geo:BatchUpdateDevicePosition', 'geo:BatchEvaluateGeofences', 'iot:Subscribe', 'iot:Publish', 'iot:Connect', 'iot:Receive', 'iot:AttachPrincipalPolicy', 'iot:AttachPolicy', 'iot:DetachPrincipalPolicy', 'iot:DetachPolicy' ], 'Resource': [ 'arn:aws:geo:us-east-1:{USER_ID}:map/{MAP_NAME}', 'arn:aws:geo:us-east-1:{USER_ID}:tracker/{TRACKER_NAME}', 'arn:aws:geo:us-east-1:{USER_ID}:geofence-collection/{GEOFENCE_COLLECTION_NAME}', 'arn:aws:iot:us-east-1:{USER_ID}:client/${cognito-identity.amazonaws.com:sub}', 'arn:aws:iot:us-east-1:{USER_ID}:topic/${cognito-identity.amazonaws.com:sub}', 'arn:aws:iot:us-east-1:{USER_ID}:topicfilter/${cognito-identity.amazonaws.com:sub}/*', 'arn:aws:iot:us-east-1:{USER_ID}:topic/${cognito-identity.amazonaws.com:sub}/tracker' ], 'Effect': 'Allow' }, { 'Condition': { 'StringEquals': { 'cognito-identity.amazonaws.com:sub': '${cognito-identity.amazonaws.com:sub}' } }, 'Action': [ 'iot:AttachPolicy', 'iot:DetachPolicy', 'iot:AttachPrincipalPolicy', 'iot:DetachPrincipalPolicy' ], 'Resource': [ '*' ], 'Effect': 'Allow' } ] }
  3. Con los cambios de política anteriores, todos los recursos de AWS necesarios ahora están configurados correctamente para la aplicación.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.