

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.

# Ubicación
<a name="location-rule-action"></a>

La acción Ubicación (`location`) envía sus datos de ubicación geográfica a [Amazon Location Service](https://docs.aws.amazon.com//location/latest/developerguide/welcome.html).

## Requisitos
<a name="location-rule-action-requirements"></a>

Esta regla tiene los siguientes requisitos:
+ Una función de IAM que AWS IoT puede asumir para realizar la `geo:BatchUpdateDevicePosition` operación. Para obtener más información, consulte [Otorgar a una AWS IoT regla el acceso que requiere](iot-create-role.md).

  En la AWS IoT consola, puede elegir o crear un rol que permita AWS IoT realizar esta acción de regla.

## Parameters
<a name="location-rule-action-parameters"></a>

Al crear una AWS IoT regla con esta acción, debe especificar la siguiente información:

`deviceId`  
El identificador único del dispositivo que proporciona los datos de ubicación. Para obtener más información, consulte la [https://docs.aws.amazon.com//location/latest/APIReference/API_DevicePositionUpdate.html](https://docs.aws.amazon.com//location/latest/APIReference/API_DevicePositionUpdate.html) de la *Referencia de la API de Amazon Location Service*.  
Admite [plantillas de sustitución](iot-substitution-templates.md): Sí

`latitude`  
Una cadena que se evalúa como un valor doble que representa la latitud de la ubicación del dispositivo.  
Admite [plantillas de sustitución](iot-substitution-templates.md): Sí

`longitude`  
Una cadena que se evalúa como un valor doble que representa la longitud de la ubicación del dispositivo.  
Admite [plantillas de sustitución](iot-substitution-templates.md): Sí

`roleArn`  
El rol de IAM que permite el acceso al dominio de Amazon Location Service. Para obtener más información, consulte [Requisitos](#location-rule-action-requirements). 

`timestamp`  
La hora en que se muestrearon los datos de ubicación. El valor predeterminado es la hora en que se procesó el mensaje MQTT.  
El valor `timestamp` se compone de los siguientes dos valores:  
+ `value`: Una expresión que devuelve un valor de tiempo de época larga. Puede utilizar la función [time\$1to\$1epoch(String, String)](iot-sql-functions.md#iot-sql-function-time-to-epoch) para crear una marca de tiempo válida a partir de un valor de fecha u hora incluido en la carga útil del mensaje. Admite [plantillas de sustitución](iot-substitution-templates.md): Sí
+ `unit`: (Opcional) La precisión del valor de marca de tiempo que resulta de la expresión que se describe en `value`. Valores válidos: `SECONDS` \$1 `MILLISECONDS` \$1 `MICROSECONDS` \$1 `NANOSECONDS` El valor predeterminado es `MILLISECONDS`. Admite [plantillas de sustitución](iot-substitution-templates.md): API y AWS CLI únicamente.

`trackerName`  
El nombre del recurso de seguimiento de Amazon Location en el que se actualiza la ubicación. Para obtener más información, consulte [Rastreador](https://docs.aws.amazon.com//location/latest/developerguide/geofence-tracker-concepts.html#tracking-overview) en la *Guía para desarrolladores de Amazon Location Service*.  
Soporta [plantillas de sustitución](iot-substitution-templates.md): API y AWS CLI únicamente

## Ejemplos
<a name="location-rule-action-examples"></a>

El siguiente ejemplo de JSON define una acción de ubicación en una AWS IoT regla.

```
{
	"topicRulePayload": {
		"sql": "SELECT * FROM 'some/topic'",
		"ruleDisabled": false,
		"awsIotSqlVersion": "2016-03-23",
		"actions": [
			{
				"location": {
					"roleArn": "arn:aws:iam::123454962127:role/service-role/ExampleRole",
					"trackerName": "MyTracker",
					"deviceId": "001",
					"sampleTime": {
						"value": "${timestamp()}",
						"unit": "MILLISECONDS"
					},
					"latitude": "-12.3456",
					"longitude": "65.4321"
				}
			}
		]
	}
}
```

El siguiente ejemplo de JSON define una acción de ubicación con plantillas de sustitución en una AWS IoT regla.

```
{
	"topicRulePayload": {
		"sql": "SELECT * FROM 'some/topic'",
		"ruleDisabled": false,
		"awsIotSqlVersion": "2016-03-23",
		"actions": [
			{
				"location": {
					"roleArn": "arn:aws:iam::123456789012:role/service-role/ExampleRole",
					"trackerName": "${TrackerName}",
					"deviceId": "${DeviceID}",
					"timestamp": {
						"value": "${timestamp()}",
						"unit": "MILLISECONDS"
					},
					"latitude": "${get(position, 0)}",
					"longitude": "${get(position, 1)}"
				}
			}
		]
	}
}
```

El siguiente ejemplo de carga útil de MQTT muestra cómo las plantillas de sustitución del ejemplo anterior acceden a los datos. Puede usar el comando CLS [https://docs.aws.amazon.com/cli/latest/reference/location/get-device-position-history.html](https://docs.aws.amazon.com/cli/latest/reference/location/get-device-position-history.html) para verificar que los datos de carga útil MQTT se entreguen en su rastreador de ubicación.

```
{
	"TrackerName": "mytracker",
	"DeviceID": "001",
	"position": [
		"-12.3456",
		"65.4321"
	]
}
```

```
aws location get-device-position-history --device-id 001 --tracker-name mytracker
```

```
{
	"DevicePositions": [
		{
			"DeviceId": "001",
			"Position": [
				-12.3456,
				65.4321
			],
			"ReceivedTime": "2022-11-11T01:31:54.464000+00:00",
			"SampleTime": "2022-11-11T01:31:54.308000+00:00"
		}
	]
}
```

## Véase también
<a name="location-rule-action-see-also"></a>
+ [¿Qué es Amazon Location Service?](https://docs.aws.amazon.com//location/latest/developerguide/welcome.html) en la *Guía para desarrolladores de Amazon Location Service*.