

# Agregar destinos a AWS IoT Core para LoRaWAN
<a name="lorawan-create-destinations"></a>

Los destinos de AWS IoT Core for LoRaWAN describen la regla de AWS IoT que procesa los datos de un dispositivo para su uso por parte de los servicios de AWS.

Como la mayoría de los dispositivos LoRaWAN no envían datos a AWS IoT Core for LoRaWAN en un formato que puedan utilizar los servicios de AWS, una regla de AWS IoT debe procesarlos primero. La regla de AWS IoT contiene la instrucción SQL que interpreta los datos del dispositivo y las acciones de la regla temática que envían el resultado de la instrucción SQL a los servicios que la utilizarán.

Si es la primera vez que agrega el destino, le recomendamos que use la consola. 

## Agregar un destino mediante la consola
<a name="lorawan-create-destination-console"></a>

Si desea agregar un dispositivo inalámbrico mediante la consola como se describe en [Agregar las especificaciones de un dispositivo inalámbrico a AWS IoT Core para LoRaWAN con la consola](lorawan-end-devices-add.md#lorawan-end-device-spec-console), después de haber agregado las especificaciones y los perfiles del dispositivo inalámbrico a AWS IoT Core para LoRaWAN como se describió anteriormente, puede continuar y agregar un destino.

Como alternativa, también puede agregar un destino de AWS IoT Core para LoRaWAN desde la página [Destinos](https://console.aws.amazon.com/iot/home#/wireless/destinations) de la consola de AWS IoT.

Para procesar los datos de un dispositivo, especifique los siguientes campos al crear un destino de AWS IoT Core for LoRaWAN y, a continuación, elija **Agregar destino**.
+ 

**Detalles de destino**  
Introduzca un **Nombre de destino** y una descripción opcional para su destino.
+ 

**Nombre de la regla**  
La regla de AWS IoT que se configura para evaluar los mensajes enviados por el dispositivo y procesar los datos del dispositivo. El nombre de la regla se asignará a su destino. El destino requiere que la regla procese los mensajes que recibe. Puede elegir que los mensajes se procesen invocando una regla de AWS IoT o publicándolos en el agente de mensajes de AWS IoT.
  + Si selecciona **Introducir un nombre de regla**, introduzca un nombre y, a continuación, elija **Copiar** para copiar el nombre de la regla que introducirá al crear la regla de AWS IoT. Puede elegir **Crear regla** para crear la regla ahora o ir al [Centro de reglas](https://console.aws.amazon.com/iot/home#/create/rule) de la consola de AWS IoT y crear una regla con ese nombre.

    También puede introducir una regla y usar la configuración **Avanzada** para especificar el nombre de un tema. El nombre del tema se proporciona durante la invocación de la regla y se accede a él mediante la expresión `topic` incluida en la regla. Para obtener más información acerca de las reglas de AWS IoT, consulte [https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html).
  + Si elige **Publicar en el agente de mensajes de AWS IoT**, introduzca el nombre del tema. A continuación, puede copiar el nombre del tema de MQTT y varios suscriptores podrán suscribirse a este tema para recibir los mensajes publicados sobre ese tema. Para obtener más información, consulte [https://docs.aws.amazon.com/iot/latest/developerguide/topics.html](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html).

  Para obtener más información sobre las reglas de AWS IoT, consulte [Crear reglas para procesar los mensajes del dispositivo LoRaWAN](lorawan-destination-rules.md).
+ 

**Nombre de rol**  
El rol de IAM que concede a los datos del dispositivo el permiso para acceder a la regla nombrada **Nombre de regla**. En la consola, elija un rol de servicio existente o cree uno nuevo. Si va a crear un nuevo rol de servicio, puede introducir un nombre de rol (por ejemplo, **IoTWirelessDestinationRole**) o dejarlo en blanco para que AWS IoT Core para LoRaWAN genere un nuevo nombre de rol. AWS IoT Core para LoRaWAN creará automáticamente el rol de IAM con los permisos adecuados en su nombre.

  Para obtener más información sobre los roles de IAM, consulte [Uso de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html).

## Agregar un destino mediante la API
<a name="lorawan-create-destination-api"></a>

Si, en su lugar, desea agregar un destino mediante la CLI, debe haber creado ya la regla y el rol de IAM para su destino. Para obtener más información acerca de los detalles que un destino requiere en la función, consulte [Crear un rol de IAM para los destinos](#lorawan-create-destinations-roles).

La siguiente lista contiene las acciones de la API que realizan las tareas asociadas a agregar, actualizar o eliminar un destino.

**Acciones de la API de AWS IoT Wireless para destinos**
+ [CreateDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDestination.html)
+ [GetDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetDestination.html)
+ [ListDestinations](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListDestinations.html)
+ [UpdateDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateDestination.html)
+ [DeleteDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteDestination.html)

Para ver la lista completa de las acciones y los tipos de datos disponibles para crear y administrar recursos de AWS IoT Core para LoRaWAN, consulte la [referencia de la API de AWS IoT Wireless](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html).

**Cómo utilizar la AWS CLI para agregar un destino**  
Puede utilizar la AWS CLI para agregar un destino mediante el comando [create-destination](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-destination.html). En el siguiente ejemplo, se muestra cómo crear un destino introduciendo el nombre de una regla de `RuleName` como valor para el parámetro `expression-type`. Si desea especificar un nombre de tema para publicarlo o suscribirse al agente de mensajes, cambie el valor del parámetro `expression-type` a `MqttTopic`.

```
aws iotwireless create-destination \
    --name IoTWirelessDestination \
    --expression-type RuleName \
    --expression IoTWirelessRule \
    --role-arn arn:aws:iam::123456789012:role/IoTWirelessDestinationRole
```

Al ejecutar este comando, se crea un destino con el nombre del destino, el nombre de la regla y el nombre del rol especificados. Para obtener información sobre los nombres de reglas y roles de los destinos, consulte [Crear reglas para procesar los mensajes del dispositivo LoRaWAN](lorawan-destination-rules.md) y [Crear un rol de IAM para los destinos](#lorawan-create-destinations-roles).

Para obtener información sobre las CLI que puede usar, consulte la [referencia de AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html). 

## Crear un rol de IAM para los destinos
<a name="lorawan-create-destinations-roles"></a>

Los destinos de AWS IoT Core para LoRaWAN requieren roles de IAM que otorguen a AWS IoT Core para LoRaWAN los permisos necesarios para enviar datos a la regla de AWS IoT. Si dicho rol aún no está definido, debe definirlo para que aparezca en la lista de roles.

Cuando utiliza la consola para agregar un destino, AWS IoT Core para LoRaWAN crea automáticamente un rol de IAM para sí, tal y como se describió anteriormente en este tema. Cuando agrega un destino mediante la API o la CLI, debe crear el rol de IAM para su destino.

**Para crear una política de IAM para su rol de destino de AWS IoT Core para LoRaWAN**

1. Abra la página [Central de políticas de la consola de IAM](https://console.aws.amazon.com/iam/home#/policies).

1. Elija **Crear política** y, a continuación, elija la pestaña **JSON**.

1. En el editor, elimine cualquier contenido del editor y pegue este documento de política.

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:DescribeEndpoint",
                   "iot:Publish"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

1. En **Revisar política**, en **Nombre**, escriba un nombre para la política. Necesitará este nombre para usarlo en el procedimiento siguiente.

   Si lo desea, también puede describir esta política en **Descripción**.

1. Elija **Crear política**.

**Para crear un rol de IAM para un destino de AWS IoT Core para LoRaWAN**

1. Abra la página [Hub de roles de la consola de IAM](https://console.aws.amazon.com/iam/home#/roles) y elija **Crear rol**.

1. En **Seleccionar el tipo de entidad de confianza**, elija **Otra Cuenta de AWS**.

1. En **ID de cuenta**, introduzca su ID de Cuenta de AWS y, a continuación, seleccione **Siguiente: Permisos**.

1. En el cuadro de búsqueda, escriba el nombre de la política de IAM que creó en el procedimiento anterior.

1. En los resultados de la búsqueda, compruebe la política de IAM creada en el procedimiento anterior.

1. Elija **Siguiente: Etiqueta** y, a continuación, seleccione **Siguiente: Revisar**.

1. En **Nombre del rol**, introduzca el nombre de este rol y, a continuación, elija **Crear rol**.

1. En el mensaje de confirmación, seleccione el nombre del rol que creó para editar el nuevo rol.

1. En la página **Resumen**, elija **Relaciones de confianza** y, a continuación, elija **Editar relación de confianza**.

1. En el **Documento de política**, cambie la propiedad `Principal` para que tenga el aspecto que se muestra en este ejemplo.

   ```
   "Principal": { 
       "Service": "iotwireless.amazonaws.com" 
   },
   ```

   Tras cambiar la propiedad `Principal`, el documento de política completo deberá tener el aspecto que se muestra en este ejemplo.

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "iotwireless.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {}
       }
     ]
   }
   ```

1. Para guardar los cambios, elija **Actualizar política de confianza**.

Con este rol definido, puede encontrarlo en la lista de roles al configurar sus destinos de AWS IoT Core para LoRaWAN.