

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Inserisci dati in AWS IoT SiteWise
<a name="industrial-data-ingestion"></a>

AWS IoT SiteWise è progettato per raccogliere e correlare in modo efficiente i dati industriali con gli asset corrispondenti, che rappresentano vari aspetti delle operazioni industriali. Questa documentazione si concentra sugli aspetti pratici dell'acquisizione dei dati e offre diversi metodi adattati a diversi casi d'uso industriali. AWS IoT SiteWise Per le istruzioni sulla creazione di un'operazione industriale virtuale, consulta [Asset industriali modello](industrial-asset-models.md).

È possibile inviare dati industriali a AWS IoT SiteWise utilizzando una delle seguenti opzioni:
+ **AWS IoT SiteWise Edge**: utilizza il [gateway SiteWise Edge](gateways.md) come intermediario tra AWS IoT SiteWise e i tuoi server di dati. AWS IoT SiteWise fornisce AWS IoT Greengrass componenti che è possibile implementare su qualsiasi piattaforma in grado di eseguire la configurazione AWS IoT Greengrass di un SiteWise gateway Edge. Questa opzione supporta il collegamento con il protocollo server [OPC UA](https://en.wikipedia.org/wiki/OPC_Unified_Architecture).
+ **AWS IoT SiteWise API**: utilizza l'[AWS IoT SiteWise API](ingest-api.md) per caricare dati da qualsiasi altra fonte. Utilizza la nostra [BatchPutAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html)API di streaming per l'inserimento in pochi secondi o l'[CreateBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateBulkImportJob.html)API orientata ai batch per facilitare l'ingestione economica in batch di grandi dimensioni.
+ AWS IoT Regole di **base: utilizza le regole** di [AWS IoT base per caricare dati dai messaggi MQTT](iot-rules.md) pubblicati da un oggetto o da un altro servizio. AWS IoT AWS 
+ **AWS IoT Events azioni**: utilizza le [AWS IoT Events azioni attivate](iot-events.md) da eventi specifici in. AWS IoT Events Questo metodo è adatto per scenari in cui il caricamento dei dati è legato al verificarsi di eventi.
+ **AWS IoT Greengrass stream manager**: utilizza [AWS IoT Greengrass stream manager](greengrass-stream-manager.md) per caricare dati da fonti di dati locali utilizzando un dispositivo edge. Questa opzione si adatta a situazioni in cui i dati provengono da postazioni locali o periferiche.

Questi metodi offrono una gamma di soluzioni per la gestione dei dati da diverse fonti. Approfondisci i dettagli di ciascuna opzione per ottenere una comprensione completa delle funzionalità di acquisizione dei dati offerte. AWS IoT SiteWise 

# Gestisci i flussi di dati per AWS IoT SiteWise
<a name="manage-data-streams"></a>

 Un flusso di dati è la risorsa che contiene i dati storici delle serie temporali. Ogni flusso di dati è identificato da un alias univoco, che semplifica la registrazione dell'origine di ogni dato. I flussi di dati vengono creati automaticamente AWS IoT SiteWise quando vengono ricevuti i dati della prima serie temporale. Se i dati della prima serie temporale vengono identificati con un alias, AWS IoT SiteWise crea un nuovo flusso di dati con quell'alias, a condizione che a quell'alias non sia già assegnato alcuna proprietà della risorsa. In alternativa, se i primi dati della serie temporale vengono identificati con un ID di risorsa e un ID di proprietà, AWS IoT SiteWise crea un nuovo flusso di dati e lo associa alla proprietà dell'asset. 

 Esistono due modi per assegnare un alias a una proprietà dell'asset. Il metodo utilizzato dipende dal fatto che i dati vengano inviati per AWS IoT SiteWise primi o che venga creata prima una risorsa.
+  Se i dati vengono inviati per AWS IoT SiteWise primi, questo crea automaticamente un flusso di dati con l'alias assegnato. Quando la risorsa viene creata in un secondo momento, utilizzate l'[ AssociateTimeSeriesToAssetProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssociateTimeSeriesToAssetProperty.html)API per associare il flusso di dati e il relativo alias alla proprietà della risorsa. 
+  Se una risorsa viene creata per prima, utilizzate l'[ UpdateAssetProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html)API per assegnare un alias a una proprietà della risorsa. Quando i dati vengono successivamente inviati a AWS IoT SiteWise, il flusso di dati viene creato automaticamente e associato alla proprietà dell'asset. 

Attualmente, è possibile associare solo flussi di dati alle misurazioni. *Le misurazioni* sono un tipo di proprietà degli asset che rappresentano i flussi di dati grezzi dei sensori dei dispositivi, come i valori di temperatura con data e ora o i valori di rotazione al minuto (RPM) con data e ora.

Quando queste misurazioni definiscono metriche o trasformazioni, i dati in entrata attivano calcoli specifici. È importante notare che una proprietà di un asset può essere collegata solo a un flusso di dati alla volta.

AWS IoT SiteWise utilizza `TimeSeries` la risorsa Amazon Resource Name (ARN) per determinare i costi di storage. Per ulteriori informazioni, consultare [AWS IoT SiteWise Prezzi](https://aws.amazon.com/iot-sitewise/pricing/).

Le seguenti sezioni mostrano come utilizzare la AWS IoT SiteWise console o l'API per gestire i flussi di dati.

**Topics**
+ [Configura autorizzazioni e impostazioni](manage-data-streams-configuration.md)
+ [Associa un flusso di dati a una proprietà dell'asset](manage-data-streams-method.md)
+ [Dissocia un flusso di dati da una proprietà dell'asset](disassociate-data-streams-method.md)
+ [Eliminare un flusso di dati](delete-data-streams-method.md)
+ [Aggiorna l'alias di proprietà di un asset](update-data-streams-method.md)
+ [Scenari comuni](data-ingestion-scenarios.md)

# Configura autorizzazioni e impostazioni
<a name="manage-data-streams-configuration"></a>

 I flussi di dati vengono creati automaticamente AWS IoT SiteWise quando vengono ricevuti i primi dati della serie temporale. Se i dati importati non sono associati a una proprietà della risorsa, AWS IoT SiteWise crea un nuovo flusso di dati dissociato che è configurabile per essere associato a una proprietà della risorsa. Configura il controllo di accesso del gateway a cui invia i dati AWS IoT SiteWise, utilizzando le policy IAM per specificare il tipo di dati da importare. 

 La seguente policy IAM disabilita l'inserimento di dati disassociati dal gateway, pur consentendo l'inserimento di dati nei flussi di dati associati a una proprietà dell'asset: 

**Example Policy utente IAM che disabilita l'inserimento di dati disassociati dal gateway**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
      "Sid": "AllowPutAssetPropertyValuesUsingAssetIdAndPropertyId",
      "Effect": "Allow",
      "Action": "iotsitewise:BatchPutAssetPropertyValue",
      "Resource": "arn:aws:iotsitewise:*:*:asset/*"
    },
    {
      "Sid": "AllowPutAssetPropertyValuesUsingAliasWithAssociatedAssetProperty",
      "Effect": "Allow",
      "Action": "iotsitewise:BatchPutAssetPropertyValue",
      "Resource": "arn:aws:iotsitewise:*:*:time-series/*",
      "Condition": {
        "StringLikeIfExists": {
          "iotsitewise:isAssociatedWithAssetProperty": "true"
        }
      }
    },
    {
      "Sid": "DenyPutAssetPropertyValuesUsingAliasWithNoAssociatedAssetProperty",
      "Effect": "Deny",
      "Action": "iotsitewise:BatchPutAssetPropertyValue",
      "Resource": "arn:aws:iotsitewise:*:*:time-series/*",
      "Condition": {
        "StringLikeIfExists": {
          "iotsitewise:isAssociatedWithAssetProperty": "false"
        }
      }
    }
  ]
}
```

**Example Policy utente IAM che disabilita l'inserimento di tutti i dati dal gateway**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyPutAssetPropertyValues",
            "Effect": "Deny",
            "Action": "iotsitewise:BatchPutAssetPropertyValue",
            "Resource": [
                "arn:aws:iotsitewise:*:*:asset/*",
                "arn:aws:iotsitewise:*:*:time-series/*"
            ]
        }
    ]
}
```

# Associa un flusso di dati a una proprietà dell'asset
<a name="manage-data-streams-method"></a>

Gestisci i tuoi flussi di dati utilizzando o. Console AWS IoT SiteWise AWS CLI

------
#### [ Console ]

Usa la AWS IoT SiteWise console per gestire i tuoi flussi di dati.

**Per gestire i flussi di dati (console)**

1. <a name="sitewise-open-console"></a>Passare alla [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Nel riquadro di navigazione, scegli **Flussi di dati**.

1. Scegli un flusso di dati filtrando in base all'alias del flusso di dati o selezionando **Flussi di dati non associati** nel menu a discesa del filtro.

1. Seleziona il flusso di dati da aggiornare. È possibile selezionare più flussi di dati. Fai clic su **Gestisci flussi di dati** in alto a destra. 

1. Seleziona il flusso di dati da associare da **Aggiorna associazioni di flussi di dati** e fai clic sul pulsante **Scegli la misurazione**.

1.  Nella sezione **Scegli la misurazione**, trova la proprietà di misurazione degli asset corrispondente. Seleziona la misura, quindi fai clic su **Scegli**. 

1.  Esegui i passaggi 4 e 5 per gli altri flussi di dati selezionati nel passaggio 3. Assegna le proprietà delle risorse a tutti i flussi di dati. 

1.  Scegliete **Aggiorna** per confermare le modifiche. Viene visualizzato un banner di conferma dell'avvenuto aggiornamento. 

------
#### [ AWS CLI ]

 Per associare un flusso di dati (identificato dal relativo alias) a una proprietà dell'asset (identificata dal suo IDs), esegui il comando seguente: 

```
aws iotsitewise associate-time-series-to-asset-property \ 
    --alias <data-stream-alias> \
    --assetId <asset-ID> \
    --propertyId <property-ID>
```

------

# Dissocia un flusso di dati da una proprietà dell'asset
<a name="disassociate-data-streams-method"></a>

------
#### [ Console ]

Utilizza la AWS IoT SiteWise console per dissociare il flusso di dati dalla proprietà di una risorsa.

**Per dissociare i flussi di dati da una proprietà della risorsa (console)**

1. <a name="sitewise-open-console"></a>Passare alla [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Nel riquadro di navigazione, scegli Flussi di **dati**.

1. Scegli un flusso di dati filtrando in base all'alias del flusso di dati o selezionando **Flussi di dati associati** nel menu a discesa del filtro.

1. Seleziona il flusso di dati da dissociare. La colonna degli **alias del flusso di dati** deve contenere un alias. Le colonne **Asset name** e **Asset property name** devono contenere i valori della proprietà dell'asset a cui è associato il flusso di dati. È possibile selezionare più flussi di dati.

1.  Fai clic su **Gestisci flussi di dati** in alto a destra. 

1.  Nella sezione **Aggiorna le associazioni dei flussi di dati**, fai clic su **X** nella colonna **Nome della misurazione**. Uno `submitted` stato dovrebbe apparire nella colonna **Stato**. 

1.  Scegli **Aggiorna** per confermare le modifiche. Il flusso di dati è ora dissociato dalla proprietà dell'asset e l'alias viene ora utilizzato per identificare il flusso di dati. 

------
#### [ AWS CLI ]

Per dissociare un flusso di dati da una proprietà dell'asset (identificata dalla relativa `ID` s e dal relativo alias), esegui il comando seguente: 

```
    aws iotsitewise disassociate-time-series-from-asset-property \ 
        --alias <asset-property-alias> \
        --assetId <asset-ID> \
        --propertyId <property-ID>
```

 Il flusso di dati è ora dissociato dalla proprietà dell'asset e l'alias viene utilizzato per identificare il flusso di dati. L'alias non è più associato alla proprietà dell'asset, poiché ora è associato al flusso di dati. 

------

# Eliminare un flusso di dati
<a name="delete-data-streams-method"></a>

 Quando una proprietà viene rimossa da un modello di asset, AWS IoT SiteWise elimina le proprietà e i relativi flussi di dati da tutte le risorse gestite dal modello di asset. Elimina inoltre tutte le proprietà e i relativi flussi di dati di una risorsa quando la risorsa viene eliminata. Se i dati di un flusso di dati devono essere conservati, è necessario dissociarli dalla proprietà dell'asset prima di essere eliminati. 

**avvertimento**  
 Quando una proprietà viene eliminata da una risorsa, viene eliminato anche il flusso di dati associato. Per preservare il flusso di dati, dissociatelo prima dalla proprietà della risorsa, prima di eliminare la proprietà dal modello di asset o eliminare la risorsa. 

------
#### [ Console ]

Utilizzate la AWS IoT SiteWise console per dissociare il flusso di dati dalla proprietà di una risorsa.

**Per eliminare un flusso di dati (console)**

1. <a name="sitewise-open-console"></a>Passare alla [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1.  Nel riquadro di navigazione, scegli **Flussi di dati**. 

1.  Scegli un flusso di dati filtrandolo in base all'alias del flusso di dati. 

1.  Seleziona il flusso di dati da eliminare. È possibile selezionare più flussi di dati. 

1.  Scegli il pulsante **Elimina** per eliminare il flusso di dati. 

------
#### [ AWS CLI ]

 Utilizza l'[ DeleteTimeSeries](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DeleteTimeSeries.html)API per eliminare un flusso di dati specifico, tramite il relativo alias. 

```
    aws iotsitewise delete-time-series \ 
        --alias <data-stream-alias>
```

------

# Aggiorna l'alias di proprietà di un asset
<a name="update-data-streams-method"></a>

 Gli alias devono essere univoci all'interno di una AWS regione. Ciò include gli alias sia delle proprietà degli asset che dei flussi di dati. Non assegnate un alias a una proprietà della risorsa, se quell'alias è utilizzato da un'altra proprietà o da un altro flusso di dati. 

------
#### [ Console ]

Utilizzate la AWS IoT SiteWise console per aggiornare l'alias di una proprietà della risorsa.

**Per aggiornare un alias di proprietà di un asset (console)**

1. <a name="sitewise-open-console"></a>Passare alla [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1.  Nel riquadro di navigazione, scegli **Asset**. 

1.  Seleziona la risorsa dalla tabella. 

1.  Fai clic sul pulsante **Edit (Modifica)**. 

1.  Selezionate il **tipo di proprietà** **nella tabella Proprietà**. 

1.  Trova la proprietà e digita il nuovo alias nel campo di testo dell'alias della proprietà. 

1.  Fate clic sul pulsante **Salva** per salvare le modifiche. 

------
#### [ AWS CLI ]

 Per aggiornare un alias su una proprietà dell'asset, esegui il comando seguente: 

```
    aws iotsitewise update-asset-property \
        --asset-id <asset-ID> \
        --property-id <property-ID> \
        --property-alias <asset-property-alias> \
        --property-notification-state <ENABLED|DISABLED>
```

**Nota**  
 Se le notifiche di proprietà sono attualmente abilitate, devono essere fornite nuovamente per garantire che continuino a essere abilitate. 

------

# Scenari comuni
<a name="data-ingestion-scenarios"></a>

## Sposta un flusso di dati
<a name="data-ingestion-scenario-move-data-stream"></a>

 Per modificare l'associazione di un flusso di dati con un'altra proprietà dell'asset, dissociate innanzitutto il flusso di dati dalla proprietà corrente dell'asset. Quando si dissocia un flusso di dati da una proprietà della risorsa, deve essere assegnato un alias a quella proprietà della risorsa. 

```
    aws iotsitewise disassociate-time-series-from-asset-property \ 
        --alias <asset-property-alias> \
        --assetId <asset-ID> \
        --propertyId <property-ID>
```

 Ora riassegna il flusso di dati alla nuova proprietà dell'asset. 

```
    aws iotsitewise associate-time-series-from-asset-property \ 
        --alias <data-stream-alias> \
        --assetId <new-asset-ID> \
        --propertyId <new-property-ID>
```

## Errore durante l'assegnazione di un alias a una proprietà dell'asset
<a name="data-ingestion-scenario-assetid-contains-data"></a>

 Quando si utilizza l'`UpdateAssetProperty`API per assegnare un alias a una proprietà, è possibile che venga visualizzato il seguente messaggio di errore: 

```
Given alias <data-stream-alias> for property <property-name> with ID <property-ID> already in use by another property or data stream
```

 Questo messaggio di errore indica che l'alias non è assegnato alla proprietà, perché è attualmente utilizzato da un'altra proprietà o da un flusso di dati. 

 Ciò accade se i dati vengono importati AWS IoT SiteWise con un alias. Quando i dati vengono inviati con un alias non utilizzato da un altro flusso di dati o proprietà di un asset, viene creato un nuovo flusso di dati con quell'alias. Le due opzioni seguenti risolvono il problema. 
+  Utilizza l'`AssociateTimeSeriesToAssetProperty`API per associare il flusso di dati al relativo alias alla proprietà dell'asset. 
+  Interrompi temporaneamente l'ingestione dei dati ed elimina il flusso di dati. Utilizza l'`UpdateAssetProperty`API per assegnare l'alias alla proprietà dell'asset, quindi riattiva l'inserimento dei dati. 

## Errore durante l'associazione di un flusso di dati a una proprietà dell'asset
<a name="data-ingestion-scenario-move-data-stream"></a>

 Quando si associa un flusso di dati a una proprietà dell'asset, viene visualizzato il seguente messaggio di errore. 

```
assetProperty <property-name> with assetId <asset-ID> propertyId <property-ID> contains data
```

 Questo messaggio di errore indica che la proprietà dell'asset è già associata a un flusso di dati contenente dati. Tale flusso di dati deve essere dissociato o eliminato prima di associare un altro flusso di dati alla proprietà della risorsa. 

**Nota**  
 Quando si dissocia un flusso di dati da una proprietà dell'asset, l'alias assegnato alla proprietà viene assegnato al flusso di dati. Affinché l'alias rimanga assegnato alla proprietà, assegnate un nuovo alias a quella proprietà prima di dissociare il flusso di dati. 

 Per conservare i dati memorizzati nella proprietà dell'asset, procedi come segue: 
+  Assicurati che nessun dato venga inserito nella proprietà dell'asset, per evitare la creazione di un nuovo flusso di dati. 
+  Utilizza l'`UpdateAssetProperty`API per impostare un nuovo alias da assegnare al flusso di dati attualmente assegnato. 
+  Utilizza l'`DisassociateTimeSeriesFromAssetProperty`API per dissociare il flusso di dati corrente dalla proprietà dell'asset. 
+  Utilizza l'`AssociateTimeSeriesToAssetProperty`API per associare il flusso di dati desiderato alla proprietà dell'asset. 

 Se i dati memorizzati nella proprietà dell'asset devono essere eliminati, procedi come segue: 
+  Assicuratevi che nessun dato venga importato nella proprietà dell'asset, per evitare la creazione di un nuovo flusso di dati. 
+  Utilizza l'`DeleteTimeSeries`API per eliminare il flusso di dati attualmente assegnato. 
+  Utilizza l'`AssociateTimeSeriesToAssetProperty`API per associare il flusso di dati desiderato alla proprietà dell'asset. 

# Inserisci dati con AWS IoT SiteWise APIs
<a name="ingest-api"></a>

 AWS IoT SiteWise APIs Utilizzateli per inviare dati industriali con data e ora agli attributi e alle proprietà di misurazione degli asset. APIs Accetta strutture contenenti payload (TQV). timestamp-quality-value

# BatchPutAssetPropertyValue API
<a name="ingest-api-batch-putasset"></a>

Utilizzare l'operazione [BatchPutAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html) per caricare i dati. Con questa operazione, puoi caricare più immissioni di dati alla volta per raccogliere dati da più dispositivi e inviarli tutti in un'unica richiesta.

**Importante**  
L'[BatchPutAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html)operazione è soggetta alle seguenti quote:   
Fino a 10 [iscrizioni](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html#API_BatchPutAssetPropertyValue_RequestSyntax) per richiesta.
Fino a 10 [valori di proprietà](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_PutAssetPropertyValueEntry.html#iotsitewise-Type-PutAssetPropertyValueEntry-propertyValues) (punti dati TQV) per ingresso. 
AWS IoT SiteWise rifiuta tutti i dati con un timestamp datato a più di 7 giorni nel passato o a più di 10 minuti nel futuro.
 Per ulteriori informazioni su queste quote, consulta la voce [BatchPutAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html) nella *documentazione di riferimento delle API di AWS IoT SiteWise *.

Per identificare la proprietà di una risorsa, specificate una delle seguenti opzioni:
+ La proprietà `assetId` e `propertyId` della risorsa a cui vengono inviati i dati.
+ Il`propertyAlias`, che è un alias del flusso di dati (ad esempio,`/company/windfarm/3/turbine/7/temperature`). Per utilizzare questa opzione, è necessario prima impostare l'alias della proprietà dell'asset. Per impostare gli alias delle proprietà, vedere. [Gestisci i flussi di dati per AWS IoT SiteWise](manage-data-streams.md)

L'esempio seguente illustra come inviare le letture della temperatura e delle rotazioni al minuto (RPM) di una turbina eolica da un payload archiviato in un file JSON.

```
aws iotsitewise batch-put-asset-property-value --cli-input-json file://batch-put-payload.json
```

Il payload in di esempio `batch-put-payload.json` ha il seguente contenuto.

```
{
  "enablePartialEntryProcessing": true,      
  "entries": [
    {
      "entryId": "unique entry ID",
      "propertyAlias": "/company/windfarm/3/turbine/7/temperature",
      "propertyValues": [
        {
          "value": {
            "integerValue": 38
          },
          "timestamp": {
            "timeInSeconds": 1575691200
          }
        }
      ]
    },
    {
      "entryId": "unique entry ID",
      "propertyAlias": "/company/windfarm/3/turbine/7/rpm",
      "propertyValues": [
        {
          "value": {
            "doubleValue": 15.09
          },
          "timestamp": {
            "timeInSeconds": 1575691200
          },
          "quality": "GOOD"
        }
      ]
    },
    {
  "entryId": "unique entry ID",
      "propertyAlias": "/company/windfarm/3/turbine/7/rpm",
      "propertyValues": [
        {
  "value": {
  "nullValue":{"valueType": "D"}
          },
          "timestamp": {
  "timeInSeconds": 1575691200
          },
          "quality": "BAD"
        }
      ]
    }
  ]
}
```

Specificando `enablePartialEntryProcessing` as è `true` possibile l'ingestione di tutti i valori che non provocano errori. Il comportamento predefinito è `false`. Se un valore non è valido, l'intera voce non viene inserita.

Ogni voce nel payload contiene un `entryId` che è possibile definire come una qualsiasi stringa univoca. Se una richiesta non riesce, ciascun errore conterrà l'`entryId` della richiesta corrispondente in modo che sia possibile sapere quale richiesta riprovare.

Ogni struttura nell'elenco di `propertyValues` è una struttura timestamp-quality-value (TQV) che contiene a`value`, a e facoltativamente a`timestamp`. `quality`
+ `value`— Una struttura che contiene uno dei seguenti campi, a seconda del tipo di proprietà impostata:
  + `booleanValue`
  + `doubleValue`
  + `integerValue`
  + `stringValue`
  + `nullValue`
+ `nullValue`— Una struttura con il seguente campo che indica il tipo di valore della proprietà con valore Null e qualità o. `BAD` `UNCERTAIN`
  + `valueType`— Enumerazione di \$1"B», «D», «S», «I"\$1
+ `timestamp`— Una struttura che contiene l'ora attuale dell'epoca Unix in secondi,. `timeInSeconds` È inoltre possibile impostare la `offsetInNanos` chiave nella `timestamp` struttura se si dispone di dati temporalmente precisi. AWS IoT SiteWise rifiuta tutti i punti dati con timestamp più vecchi di 7 giorni nel passato o più recenti di 10 minuti nelle future.
+ `quality`— (Facoltativo) Una delle seguenti stringhe di qualità:
  + `GOOD`— (Impostazione predefinita) I dati non sono interessati da alcun problema.
  + `BAD`— I dati sono interessati da un problema, ad esempio un guasto del sensore.
  + `UNCERTAIN`— I dati sono influenzati da un problema come l'imprecisione del sensore.

  Per ulteriori informazioni su come AWS IoT SiteWise gestisce la qualità dei dati nei calcoli, vedi [Qualità dei dati nelle espressioni di formule](expression-tutorials.md#data-quality).

# CreateBulkImportJob API
<a name="ingest-bulkImport"></a>

Usa l'`CreateBulkImportJob`API per importare grandi quantità di dati da Amazon S3. I tuoi dati devono essere salvati in formato CSV in Amazon S3. I file di dati possono avere le seguenti colonne.

**Nota**  
 I dati precedenti alle 00:00:00 UTC del 1° gennaio 1970 non sono supportati.   
Per identificare la proprietà di un asset, specificate una delle seguenti opzioni.  
La proprietà `ASSET_ID` e `PROPERTY_ID` della risorsa a cui stai inviando i dati.
Il`ALIAS`, che è un alias del flusso di dati (ad esempio,`/company/windfarm/3/turbine/7/temperature`). Per utilizzare questa opzione, è necessario prima impostare l'alias della proprietà dell'asset. Per informazioni relative all'impostazione degli alias delle proprietà, consultare [Gestisci i flussi di dati per AWS IoT SiteWise](manage-data-streams.md).
+ `ALIAS`— L'alias che identifica la proprietà, ad esempio il percorso del flusso di dati del server OPC UA (ad esempio,). `/company/windfarm/3/turbine/7/temperature` Per ulteriori informazioni, consulta [Gestisci i flussi di dati per AWS IoT SiteWise](manage-data-streams.md).
+ `ASSET_ID`— L'ID della risorsa.
+ `PROPERTY_ID`— L'ID della proprietà dell'asset.
+ `DATA_TYPE`— Il tipo di dati della proprietà può essere uno dei seguenti.
  + `STRING`— Una stringa con un massimo di 1024 byte.
  + `INTEGER`— Un numero intero con segno a 32 bit con intervallo [-2.147.483.648, 2.147.483.647].
  + `DOUBLE`— Un numero in virgola mobile con intervallo [-10^100, 10^100] e precisione doppia IEEE 754.
  + `BOOLEAN`— `true` oppure. `false`
+ `TIMESTAMP_SECONDS`— Il timestamp del punto dati, in Unix Epoch Time.
+ `TIMESTAMP_NANO_OFFSET`— L'offset in nanosecondi coperto da. `TIMESTAMP_SECONDS`
+ `QUALITY`— (Facoltativo) La qualità del valore della proprietà del bene. Il valore può essere uno dei seguenti.
  + `GOOD`— (Impostazione predefinita) I dati non sono interessati da alcun problema.
  + `BAD`— I dati sono interessati da un problema, ad esempio un guasto del sensore.
  + `UNCERTAIN`— I dati sono influenzati da un problema come l'imprecisione del sensore.

  Per ulteriori informazioni su come AWS IoT SiteWise gestisce la qualità dei dati nei calcoli, consulta [Qualità dei dati nelle espressioni delle formule](expression-tutorials.md#data-quality).
+ `VALUE`— Il valore della proprietà dell'asset.

**Example file di dati in formato.csv**  

```
asset_id,property_id,DOUBLE,1635201373,0,GOOD,1.0
asset_id,property_id,DOUBLE,1635201374,0,GOOD,2.0
asset_id,property_id,DOUBLE,1635201375,0,GOOD,3.0
```

```
unmodeled_alias1,DOUBLE,1635201373,0,GOOD,1.0
unmodeled_alias1,DOUBLE,1635201374,0,GOOD,2.0
unmodeled_alias1,DOUBLE,1635201375,0,GOOD,3.0
unmodeled_alias1,DOUBLE,1635201376,0,GOOD,4.0
unmodeled_alias1,DOUBLE,1635201377,0,GOOD,5.0
unmodeled_alias1,DOUBLE,1635201378,0,GOOD,6.0
unmodeled_alias1,DOUBLE,1635201379,0,GOOD,7.0
unmodeled_alias1,DOUBLE,1635201380,0,GOOD,8.0
unmodeled_alias1,DOUBLE,1635201381,0,GOOD,9.0
unmodeled_alias1,DOUBLE,1635201382,0,GOOD,10.0
```

AWS IoT SiteWise fornisce le seguenti operazioni API per creare un processo di importazione in blocco e ottenere informazioni su un lavoro esistente.
+ [CreateBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateBulkImportJob.html)— Crea un nuovo processo di importazione in blocco.
+ [DescribeBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeBulkImportJob.html)— Recupera informazioni su un processo di importazione in blocco.
+ [ListBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListBulkImportJobs.html)— Recupera un elenco impaginato di riepiloghi di tutti i lavori di importazione in blocco.

# Crea un processo di importazione in blocco AWS IoT SiteWise ()AWS CLI
<a name="CreateBulkImportJob"></a>

Utilizza l'operazione [CreateBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateBulkImportJob.html)API per trasferire dati da Amazon S3 a. AWS IoT SiteWise L'[CreateBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateBulkImportJob.html)API consente l'ingestione di grandi volumi di dati storici e l'ingestione bufferizzata di flussi di dati analitici in piccoli lotti. Fornisce una primitiva economica per l'ingestione dei dati. Gli esempi seguenti utilizzano AWS CLI.

**Importante**  
Prima di creare un processo di importazione in blocco, è necessario abilitare AWS IoT SiteWise il livello caldo o il livello freddo. AWS IoT SiteWise Per ulteriori informazioni, consulta [Configurare le impostazioni di archiviazione in AWS IoT SiteWise](configure-storage.md).  
 L'[CreateBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateBulkImportJob.html)API supporta l'inserimento di dati storici AWS IoT SiteWise con l'opzione di impostare il parametro. adaptive-ingestion-flag   
Se impostata su`false`, l'API acquisisce i dati storici senza attivare calcoli o notifiche.
Se impostata su`true`, l'API acquisisce nuovi dati, calcola le metriche e trasforma i dati per ottimizzare le analisi e le notifiche continue entro sette giorni.

Eseguire il seguente comando seguente. *file-name*Sostituiscilo con il nome del file che contiene la configurazione del processo di importazione in blocco.

```
aws iotsitewise create-bulk-import-job --cli-input-json file://file-name.json
```

**Example Configurazione del processo di importazione in blocco**  
Di seguito sono riportati alcuni esempi di impostazioni di configurazione:  
+ Sostituisci *adaptive-ingestion-flag* con `true` o `false`.
  + Se impostato su`false`, il processo di importazione in blocco inserisce i dati storici in. AWS IoT SiteWise
  + Se impostato su`true`, il processo di importazione in blocco esegue le seguenti operazioni:
    + Inserisce nuovi dati in. AWS IoT SiteWise
    + Calcola metriche e trasformazioni e supporta notifiche per i dati con un timestamp entro sette giorni.
+ Sostituisci *delete-files-after-import-flag* con `true` per eliminare i dati dal bucket di dati Amazon S3 dopo l'inserimento in uno storage di livello caldo. AWS IoT SiteWise 
+ Sostituisci amzn-s3-demo-bucket con *-for-errors* il nome del bucket Amazon S3 a cui vengono inviati gli errori associati a questo processo di importazione in blocco.
+ Sostituisci amzn-s3-demo-bucket con *-for-errors-prefix* il prefisso del bucket Amazon S3 a cui vengono inviati gli errori associati a questo processo di importazione in blocco. 

  Amazon S3 utilizza il prefisso come nome di cartella per organizzare i dati nel bucket. Ogni oggetto Amazon S3 ha una chiave che è il suo identificatore univoco nel bucket. Per ogni oggetto in un bucket è presente esattamente una chiave. Il prefisso deve terminare con una barra (/). Per ulteriori informazioni, consulta [Organizing object using prefixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) nella *Amazon Simple Storage Service User Guide*.
+ Sostituisci amzn-s3-demo-bucket con *-data* il nome del bucket Amazon S3 da cui vengono importati i dati.
+ Sostituisci *data-bucket-key* con la chiave dell'oggetto Amazon S3 che contiene i tuoi dati. Ogni oggetto ha una chiave che è un identificatore univoco. Ogni oggetto ha esattamente una chiave.
+ Sostituiscilo *data-bucket-version-id* con l'ID della versione per identificare una versione specifica dell'oggetto Amazon S3 che contiene i tuoi dati. Questo parametro è facoltativo.
+ Sostituisci *column-name* con il nome della colonna specificato nel file.csv.
+ *job-name*Sostituiscilo con un nome univoco che identifichi il processo di importazione in blocco.
+ Sostituisci *job-role-arn* con il ruolo IAM che consente di AWS IoT SiteWise leggere i dati di Amazon S3.
Assicurati che il tuo ruolo disponga delle autorizzazioni mostrate nell'esempio seguente. Sostituisci amzn-s3-demo-bucket con *-data* il nome del bucket Amazon S3 che contiene i tuoi dati. Inoltre, *amzn-s3-demo-bucket-for-errors* sostituiscilo con il nome del bucket Amazon S3 a cui vengono inviati gli errori associati a questo processo di importazione in blocco.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-data",
                "arn:aws:s3:::amzn-s3-demo-bucket-data/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-for-errors",
                "arn:aws:s3:::amzn-s3-demo-bucket-for-errors/*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

```
{
   "adaptiveIngestion": adaptive-ingestion-flag,
   "deleteFilesAfterImport": delete-files-after-import-flag,       
   "errorReportLocation": { 
      "bucket": "amzn-s3-demo-bucket-for-errors",
      "prefix": "amzn-s3-demo-bucket-for-errors-prefix"
   },
   "files": [ 
      { 
         "bucket": "amzn-s3-demo-bucket-data",
         "key": "data-bucket-key",
         "versionId": "data-bucket-version-id"
      }
   ],
   "jobConfiguration": { 
      "fileFormat": { 
         "csv": { 
            "columnNames": [ "column-name" ]
         }
      }
   },
   "jobName": "job-name",
   "jobRoleArn": "job-role-arn"    
}
```

**Example risposta**  

```
{
   "jobId":"f8c031d0-01d1-4b94-90b1-afe8bb93b7e5",
   "jobStatus":"PENDING",
   "jobName":"myBulkImportJob"
}
```

# Descrivi un processo di AWS IoT SiteWise importazione in blocco ()AWS CLI
<a name="DescribeBulkImportJob"></a>

Utilizza l'operazione [DescribeBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeBulkImportJob.html)API per recuperare informazioni su uno specifico processo di importazione in blocco. AWS IoT SiteWise Questa operazione restituisce dettagli come lo stato del lavoro, l'ora di creazione e le informazioni sull'errore se il lavoro non è riuscito. È possibile utilizzare questa operazione per monitorare l'avanzamento del lavoro e risolvere i problemi. Per utilizzarla`DescribeBulkImportJob`, è necessario l'ID del lavoro dell'`CreateBulkImportJob`operazione. L’API restituisce le seguenti informazioni:
+ Elenco dei file importati, incluse le posizioni e le chiavi dei bucket Amazon S3
+ Posizione del report di errore (se applicabile)
+ Dettagli di configurazione del lavoro, come il formato del file e i nomi delle colonne CSV
+ Data di creazione di posti di lavoro e ultimo aggiornamento
+ Stato attuale del lavoro (ad esempio, se il lavoro è in corso, completato o non riuscito)
+ Ruolo IAM (ARN) utilizzato per il processo di importazione

Per i lavori completati, esamina i risultati per confermare la corretta integrazione dei dati. Se un processo fallisce, esamina i dettagli dell'errore per diagnosticare e risolvere i problemi.

Sostituiscilo *job-ID* con l'ID del processo di importazione in blocco che desideri recuperare.

```
aws iotsitewise describe-bulk-import-job --job-id job-ID
```

**Example risposta**  

```
{
   "files":[
      {
         "bucket":"amzn-s3-demo-bucket1",
         "key":"100Tags12Hours.csv"
      },
      {
         "bucket":"amzn-s3-demo-bucket2",
         "key":"BulkImportData1MB.csv"
      },
      {
         "bucket":"	amzn-s3-demo-bucket3",
         "key":"UnmodeledBulkImportData1MB.csv"
      }
   ],
   "errorReportLocation":{
      "prefix":"errors/",
      "bucket":"amzn-s3-demo-bucket-for-errors"
   },
   "jobConfiguration":{
      "fileFormat":{
         "csv":{
            "columnNames":[
               "ALIAS",
               "DATA_TYPE",
               "TIMESTAMP_SECONDS",
               "TIMESTAMP_NANO_OFFSET",
               "QUALITY",
               "VALUE"
            ]
         }
      }
   },
   "jobCreationDate":1645745176.498,
   "jobStatus":"COMPLETED",
   "jobName":"myBulkImportJob",
   "jobLastUpdateDate":1645745279.968,
   "jobRoleArn":"arn:aws:iam::123456789012:role/DemoRole",
   "jobId":"f8c031d0-01d1-4b94-90b1-afe8bb93b7e5"
}
```

# Elenca i lavori di importazione AWS IoT SiteWise in blocco ()AWS CLI
<a name="ListBulkImportJobs"></a>

Utilizza l'operazione [ListBulkImportJobs](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListBulkImportJobss.html)API per recuperare un elenco di riepiloghi per i lavori di importazione in blocco in. AWS IoT SiteWise Questa operazione offre un modo efficiente per monitorare e gestire i processi di importazione dei dati. Restituisce le seguenti informazioni chiave per ogni processo:
+ Job ID. Un identificatore univoco per ogni processo di importazione in blocco
+ Nome del lavoro. Il nome che hai assegnato al lavoro durante la sua creazione
+ Stato attuale. Lo stato corrente del lavoro (ad esempio, COMPLETED, RUNNING, FAILED)

ListBulkImportJobs è particolarmente utile per ottenere una panoramica completa di tutti i lavori di importazione in blocco. Questo può aiutarti a tenere traccia di più importazioni di dati, identificare eventuali lavori che richiedono attenzione e mantenere un flusso di lavoro organizzato. L'operazione supporta l'impaginazione, che consente di recuperare in modo efficiente un gran numero di riepiloghi dei lavori. È possibile utilizzare il lavoro IDs restituito da questa operazione con l'[DescribeBulkImportJob](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeBulkImportJob.html)operazione per recuperare informazioni più dettagliate su lavori specifici. Questo processo in due fasi consente innanzitutto di ottenere una visione di alto livello di tutti i lavori e quindi di approfondire i dettagli dei lavori di interesse. Durante l'utilizzo`ListBulkImportJobs`, puoi applicare filtri per restringere i risultati. Ad esempio, è possibile filtrare i lavori in base al loro stato per recuperare solo i lavori completati o solo i lavori in esecuzione. Questa funzionalità consente di concentrarsi sulle informazioni più pertinenti per l'attività corrente. L'operazione restituisce anche un `nextToken` messaggio se ci sono più risultati disponibili. È possibile utilizzare questo token nelle chiamate successive per recuperare la serie successiva di riepiloghi dei lavori, in modo da scorrere ripetutamente tutti i processi di importazione in blocco anche se ne è presente un numero elevato. L'esempio seguente mostra come utilizzare `ListBulkImportJobs` with per recuperare un elenco AWS CLI di lavori completati.

```
aws iotsitewise list-bulk-import-jobs --filter COMPLETED
```

**Example Filtro Risposta per i lavori completati**  

```
{
   "jobSummaries":[
      {
         "id":"bdbbfa52-d775-4952-b816-13ba1c7cb9da",
         "name":"myBulkImportJob",
         "status":"COMPLETED"
      },
      {
         "id":"15ffc641-dbd8-40c6-9983-5cb3b0bc3e6b",
         "name":"myBulkImportJob2",
         "status":"COMPLETED"
      }
   ]
}
```

Questo comando dimostra come `ListBulkImportJobs` recuperare un elenco di lavori completati con errori. Il massimo è impostato su 50 risultati e stiamo utilizzando un token successivo per i risultati impaginati.

```
aws iotsitewise list-bulk-import-jobs --filter COMPLETED_WITH_FAILURES --max-results 50 --next-token "string"
```

# Inserisci dati per AWS IoT SiteWise utilizzare le regole AWS IoT Core
<a name="iot-rules"></a>

Invia dati AWS IoT SiteWise a AWS IoT oggetti e altri AWS servizi utilizzando le regole in AWS IoT Core. Le regole trasformano i messaggi MQTT ed eseguono azioni per interagire con AWS i servizi. L'azione della AWS IoT SiteWise regola inoltra i dati dei messaggi all'[BatchPutAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html)operazione dall' AWS IoT SiteWise API. Per ulteriori informazioni, consulta [Regole](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) e [AWS IoT SiteWise azioni](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rule-actions.html#iotsitewise-rule) nella *Guida per gli AWS IoT sviluppatori*.

Per seguire un tutorial che illustra i passaggi necessari per configurare una regola che acquisisce i dati attraverso le ombre dei dispositivi, consulta. [Inserisci dati AWS IoT SiteWise da oggetti AWS IoT](ingest-data-from-iot-things.md)

Puoi anche inviare dati da altri AWS IoT SiteWise AWS servizi. Per ulteriori informazioni, consulta [Interagisci con altri AWS servizi](interact-with-other-services.md).

**Topics**
+ [Concedi AWS IoT l'accesso richiesto](grant-rule-access.md)
+ [Configura l'azione della AWS IoT SiteWise regola](configure-rule-action.md)
+ [Riduci i costi con Basic Ingest in AWS IoT SiteWise](basic-ingest-rules.md)

# Concedi AWS IoT l'accesso richiesto
<a name="grant-rule-access"></a>

I ruoli IAM vengono utilizzati per controllare le AWS risorse a cui ogni regola ha accesso. Prima di creare una regola, devi creare un ruolo IAM con una policy che consenta alla regola di eseguire azioni sulla AWS risorsa richiesta. AWS IoT assume questo ruolo quando esegue una regola.

Se create l'azione della regola nella AWS IoT console, potete scegliere una risorsa principale per creare un ruolo che abbia accesso a una gerarchia di risorse selezionata. *Per ulteriori informazioni su come definire manualmente un ruolo per una regola, consulta [Concessione AWS IoT delle autorizzazioni di accesso richieste](https://docs.aws.amazon.com/iot/latest/developerguide/iot-create-role.html) [e Pass role](https://docs.aws.amazon.com/iot/latest/developerguide/pass-role.html) nella Developer Guide.AWS IoT *

Per l'azione della AWS IoT SiteWise regola, è necessario definire un ruolo che consenta `iotsitewise:BatchPutAssetPropertyValue` l'accesso alle proprietà degli asset a cui la regola invia i dati. Per migliorare la sicurezza, è possibile specificare un percorso di gerarchia AWS IoT SiteWise degli asset nella `Condition` proprietà. 

La policy di attendibilità di esempio riportata di seguito consente l'accesso a un asset specifico e ai relativi asset figlio.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iotsitewise:BatchPutAssetPropertyValue",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "iotsitewise:assetHierarchyPath": [
            "/root node asset ID",
            "/root node asset ID/*"
          ]
        }
      }
    }
  ]
}
```

------

Rimuovilo `Condition` dalla policy per consentire l'accesso a tutte le tue risorse. La policy di attendibilità di esempio riportata di seguito consente l'accesso a tutti gli asset nella regione corrente.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iotsitewise:BatchPutAssetPropertyValue",
      "Resource": "*"
    }
  ]
}
```

------

# Configura l'azione della AWS IoT SiteWise regola
<a name="configure-rule-action"></a>

L'azione della AWS IoT SiteWise regola invia i dati dal messaggio MQTT che ha avviato la regola alle proprietà dell'asset in. AWS IoT SiteWiseÈ possibile caricare più immissioni di dati in diverse proprietà degli asset contemporaneamente, per inviare aggiornamenti per tutti i sensori di un dispositivo in un unico messaggio. Inoltre puoi caricare più punti dati contemporaneamente per ogni inserimento di dati.

**Nota**  
Quando invii dati a AWS IoT SiteWise con l'azione della regola, i dati devono soddisfare tutti i requisiti dell'`BatchPutAssetPropertyValue`operazione. Ad esempio, i dati non possono avere un timestamp precedente a 7 giorni dall'epoca Unix corrente. Per ulteriori informazioni, consulta [Inserimento di dati con l'API AWS IoT SiteWise]().

Per ogni inserimento di dati nell'azione di regola, puoi identificare una proprietà dell'asset e specificare il timestamp, la qualità e il valore di ciascun punto dati per la proprietà dell'asset. L'azione di regola prevede stringhe per tutti i parametri.

Per identificare una proprietà dell'asset, specifica uno dei seguenti valori:
+ **Asset ID (ID asset)** (`assetId`) e **Property ID (ID proprietà)** (`propertyId`) della proprietà dell'asset a cui invii i dati. Puoi trovare l'Asset ID e l'ID della proprietà utilizzando. Console AWS IoT SiteWise Se conosci l'Asset ID, puoi utilizzare la chiamata AWS CLI to [DescribeAsset](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAsset.html)per trovare l'ID della proprietà.
+ **Property alias (Alias proprietà)** (`propertyAlias`), che è un alias del flusso di dati (ad esempio, `/company/windfarm/3/turbine/7/temperature`). Per utilizzare questa opzione, è necessario prima impostare l'alias della proprietà dell'asset. Per informazioni relative all'impostazione degli alias delle proprietà, consultare [Gestisci i flussi di dati per AWS IoT SiteWise](manage-data-streams.md).

Per il timestamp di ogni voce, utilizzate il timestamp riportato dall'apparecchiatura o il timestamp fornito da. AWS IoT Core Il timestamp ha due parametri:
+ **Tempo in secondi** (`timeInSeconds`) — L'ora dell'epoca Unix, in secondi, in cui il sensore o l'apparecchiatura ha riportato i dati.
+ **Offset in nanos** (`offsetInNanos`) — (Facoltativo) L'offset in nanosecondi dal tempo in secondi.

**Importante**  
Se il timestamp è una stringa, ha una parte decimale o non è espresso in secondi, rifiuta la richiesta. AWS IoT SiteWise È necessario convertire il timestamp in secondi e offset in nanosecondi. Utilizza le funzionalità del motore delle AWS IoT regole per convertire il timestamp. Per ulteriori informazioni, consulta gli argomenti seguenti:  
[Ottenere timestamp per dispositivi che non riportano l'ora esatta](#rule-timestamp-function)
[Conversione di timestamp in formato stringa](#rule-time-to-epoch-function)

È possibile utilizzare modelli sostitutivi per diversi parametri dell'azione per eseguire calcoli, richiamare funzioni e recuperare valori dal payload dei messaggi. *Per ulteriori informazioni, consulta Modelli [sostitutivi nella Guida per gli sviluppatori](https://docs.aws.amazon.com/iot/latest/developerguide/iot-substitution-templates.html).AWS IoT *

**Nota**  <a name="substitution-template-limitations"></a>
Poiché un'espressione in un modello di sostituzione viene valutata separatamente dall'istruzione `SELECT`, non puoi utilizzare un modello di sostituzione per fare riferimento a un alias creato utilizzando una clausola `AS`. È possibile fare riferimento solo alle informazioni presenti nel payload originale, oltre alle funzioni e agli operatori supportati.

**Topics**
+ [Ottenere timestamp per dispositivi che non riportano l'ora esatta](#rule-timestamp-function)
+ [Conversione di timestamp in formato stringa](#rule-time-to-epoch-function)
+ [Conversione di stringhe di timestamp con precisione in nanosecondi](#rule-convert-precise-timestamp-string)
+ [Esempi di configurazioni di regole](#rule-action-examples)
+ [Risoluzione dei problemi dell'azione di regola](#troubleshoot-rule-action)

## Ottenere timestamp per dispositivi che non riportano l'ora esatta
<a name="rule-timestamp-function"></a>

[Se il sensore o l'apparecchiatura non riporta dati temporali accurati, recupera l'ora attuale di Unix dal motore delle AWS IoT regole con timestamp ().](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html#iot-function-timestamp) Questa funzione restituisce il tempo in millisecondi, quindi è necessario convertire il valore in tempo in secondi e l'offset in nanosecondi. A tale scopo, utilizzate le seguenti conversioni:
+ Per **Time in seconds (Ora in secondi)** (`timeInSeconds`), utilizza **\$1\$1floor(timestamp() / 1E3)\$1** per convertire l'ora da millisecondi in secondi.
+ Per **Offset in nanos (Offset in nanosecondi)** (`offsetInNanos`), utilizza **\$1\$1(timestamp() % 1E3) \$1 1E6\$1** per calcolare l'offset del timestamp in nanosecondi.

## Conversione di timestamp in formato stringa
<a name="rule-time-to-epoch-function"></a>

Se il sensore o l'apparecchiatura riporta i dati temporali in formato stringa (ad esempio,`2020-03-03T14:57:14.699Z`), usa [time\$1to\$1epoch](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html#iot-sql-function-time-to-epoch) (String, String). Questa funzione inserisce il timestamp e lo schema di formato come parametri e restituisce l'ora in millisecondi. Quindi, è necessario convertire il tempo in tempo in secondi e l'offset in nanosecondi. A tale scopo, utilizzate le seguenti conversioni:
+ Per **Tempo in secondi** (`timeInSeconds`), utilizzare **\$1\$1floor(time\$1to\$1epoch("2020-03-03T14:57:14.699Z", "yyyy-MM-dd'T'HH:mm:ss'Z'") / 1E3)\$1** per convertire la stringa del timestamp in millisecondi e quindi in secondi.
+ Per **Offset in nanos** (`offsetInNanos`), usa per calcolare l'offset in nanosecondi della stringa del **\$1\$1(time\$1to\$1epoch("2020-03-03T14:57:14.699Z", "yyyy-MM-dd'T'HH:mm:ss'Z'") % 1E3) \$1 1E6\$1** timestamp.

**Nota**  
La `time_to_epoch` funzione supporta stringhe di timestamp con precisione fino a un millisecondo. Per convertire stringhe con precisione in microsecondi o nanosecondi, configura una AWS Lambda funzione richiamata dalla regola per convertire il timestamp in valori numerici. Per ulteriori informazioni, consulta [Conversione di stringhe di timestamp con precisione in nanosecondi](#rule-convert-precise-timestamp-string).

## Conversione di stringhe di timestamp con precisione in nanosecondi
<a name="rule-convert-precise-timestamp-string"></a>

Se il dispositivo invia informazioni sul timestamp in formato stringa con precisione in nanosecondi (ad esempio,), `2020-03-03T14:57:14.699728491Z` utilizza la procedura seguente per configurare l'azione della regola. **Potete creare una AWS Lambda funzione che converta il timestamp da una stringa in **Time in seconds (`timeInSeconds`) e Offset in nanos** ().** `offsetInNanos` Quindi, usa [aws\$1lambda (functionArn, inputJSON) nei parametri di azione della regola per richiamare quella funzione Lambda e utilizzare l'output](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html#iot-func-aws-lambda) nella regola.

**Nota**  
Questa sezione contiene istruzioni avanzate che presuppongono che si abbia familiarità con la creazione delle risorse seguenti:  
Funzioni Lambda. Per ulteriori informazioni, consulta [Create your first Lambda function](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) nella *Guida per gli sviluppatori di AWS Lambda *.
AWS IoT regole con la AWS IoT SiteWise regola d'azione. Per ulteriori informazioni, consulta [Inserisci dati per AWS IoT SiteWise utilizzare le regole AWS IoT Core](iot-rules.md).

**Per creare un'azione di AWS IoT SiteWise regola che analizzi le stringhe del timestamp**

1. Crea una funzione Lambda con le seguenti proprietà:
   + **Nome della funzione**: utilizza un nome di funzione descrittivo (ad esempio,**ConvertNanosecondTimestampFromString**).
   + **Runtime** — Usa un runtime Python 3, come **Python** 3.11 (). `python3.11`
   + **Autorizzazioni**: crea un ruolo con **AWS LambdaBasicExecutionRole**autorizzazioni Lambda di base ().
   + **Livelli**: aggiungi il **AWS SDKPandaslivello -Python311** per l'utilizzo della funzione Lambda. `numpy`
   + **Codice funzione**: utilizzate il seguente codice di funzione, che utilizza un argomento di stringa denominato `timestamp` e restituisce e valori per quel timestamp. `timeInSeconds` `offsetInNanos`

     ```
     import json
     import math
     import numpy
     
     # Converts a timestamp string into timeInSeconds and offsetInNanos in Unix epoch time.
     # The input timestamp string can have up to nanosecond precision.
     def lambda_handler(event, context):
         timestamp_str = event['timestamp']
         # Parse the timestamp string as nanoseconds since Unix epoch.
         nanoseconds = numpy.datetime64(timestamp_str, 'ns').item()
         time_in_seconds = math.floor(nanoseconds / 1E9)
         # Slice to avoid precision issues.
         offset_in_nanos = int(str(nanoseconds)[-9:])
         return {
             'timeInSeconds': time_in_seconds,
             'offsetInNanos': offset_in_nanos
         }
     ```

     [Questa funzione Lambda inserisce stringhe di timestamp in formato [ISO](https://en.wikipedia.org/wiki/ISO_8601) 8601 utilizzando datetime64 from.](https://numpy.org/doc/stable/reference/arrays.datetime.html) NumPy
**Nota**  
Se le stringhe del timestamp non sono in formato ISO 8601, puoi implementare una soluzione che definisca il formato del timestamp. pandas [Per ulteriori informazioni, consulta pandas.to\$1datetime.](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html)

1. **Quando configuri l' AWS IoT SiteWise azione per la tua regola, usa i seguenti modelli sostitutivi per **Time in seconds () e Offset in** nanos (). `timeInSeconds`** `offsetInNanos` Questi modelli di sostituzione presuppongono che il payload del messaggio contenga la stringa timestamp in `timestamp`. La funzione `aws_lambda` utilizza una struttura JSON per il suo secondo parametro, quindi è possibile modificare i modelli di sostituzione sottostanti, se necessario.
   + Per **Time in seconds (Tempo in secondi)** (`timeInSeconds`), utilizzare il seguente modello di sostituzione.

     ```
     ${aws_lambda('arn:aws:lambda:region:account-id:function:ConvertNanosecondTimestampFromString', {'timestamp': timestamp}).timeInSeconds}
     ```
   + Per **Offset in nanos (Offset in nanosecondi)** (`offsetInNanos`), utilizzare il seguente modello di sostituzione.

     ```
     ${aws_lambda('arn:aws:lambda:region:account-id:function:ConvertNanosecondTimestampFromString', {'timestamp': timestamp}).offsetInNanos}
     ```

   Per ogni parametro, sostituisci *region* e *account-id* con la tua regione e l'ID dell'account. AWS Se hai usato un nome diverso per la tua funzione Lambda, cambia anche quello.

1. Concedi AWS IoT le autorizzazioni per richiamare la tua funzione con l'autorizzazione. `lambda:InvokeFunction` Per ulteriori informazioni, consultare [aws\$1lambda(functionArn, inputJson)](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html#iot-func-aws-lambda).

1. Verifica la tua regola (ad esempio, usa il client di test AWS IoT MQTT) e verifica che AWS IoT SiteWise riceva i dati che invii.

   Se la regola non funziona come previsto, consultare [Risolvere i problemi relativi a un' AWS IoT SiteWise azione delle regole](troubleshoot-rule.md).

**Nota**  
Questa soluzione richiama la funzione Lambda due volte per ogni stringa di timestamp. Puoi creare un'altra regola per ridurre il numero di chiamate alla funzione Lambda se la regola gestisce più punti dati con lo stesso timestamp in ogni payload.  
A tale scopo, create una regola con un'azione di ripubblicazione che richiami la Lambda e pubblichi il payload originale con la stringa del timestamp convertita in and. `timeInSeconds` `offsetInNanos` Quindi, create una regola con un'azione di regola per consumare il payload convertito AWS IoT SiteWise . Con questo approccio, riduci il numero di volte in cui la regola richiama la Lambda ma aumenti il numero di azioni della AWS IoT regola eseguite. Considerare il prezzo di ciascun servizio se si applica questa soluzione al caso d'uso.

## Esempi di configurazioni di regole
<a name="rule-action-examples"></a>

Questa sezione contiene esempi di configurazioni di regole per creare una regola con un' AWS IoT SiteWise azione.

**Example Azione di regola di esempio che utilizza alias di proprietà come argomenti dei messaggi**  
L'esempio seguente crea una regola con un' AWS IoT SiteWise azione che utilizza l'argomento (tramite [topic ())](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html#iot-function-topic) come alias di proprietà per identificare le proprietà degli asset. Utilizzate questo esempio per definire una regola per l'importazione di dati di doppio tipo in tutte le turbine eoliche di tutti i parchi eolici. Questo esempio richiede la definizione di alias di proprietà su tutte le proprietà degli asset delle turbine. È necessario definire una seconda regola simile per importare dati di tipo intero.  

```
aws iot create-topic-rule \
  --rule-name SiteWiseWindFarmRule \
  --topic-rule-payload file://sitewise-rule-payload.json
```
Il payload di esempio in `sitewise-rule-payload.json` contiene quanto segue.  

```
{
  "sql": "SELECT * FROM '/company/windfarm/+/turbine/+/+' WHERE type = 'double'",
  "description": "Sends data to the wind turbine asset property with the same alias as the topic",
  "ruleDisabled": false,
  "awsIotSqlVersion": "2016-03-23",
  "actions": [
    {
      "iotSiteWise": {
        "putAssetPropertyValueEntries": [
          {
            "propertyAlias": "${topic()}",
            "propertyValues": [
              {
                "timestamp": {
                  "timeInSeconds": "${timeInSeconds}"
                },
                "value": {
                  "doubleValue": "${value}"
                }
              }
            ]
          }
        ],
        "roleArn": "arn:aws:iam::account-id:role/MySiteWiseActionRole"
      }
    }
  ]
}
```
Con questa azione di regola, inviate il seguente messaggio a un alias di proprietà di una turbina eolica (ad esempio,`/company/windfarm/3/turbine/7/temperature`) come argomento per l'inserimento dei dati.  

```
{
  "type": "double",
  "value": "38.3",
  "timeInSeconds": "1581368533"
}
```

**Example Azione di regola di esempio che utilizza timestamp() per determinare l'ora**  
L'esempio seguente crea una regola con un' AWS IoT SiteWise azione che identifica la proprietà di un asset IDs e utilizza [timestamp ()](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html#iot-function-timestamp) per determinare l'ora corrente.  

```
aws iot create-topic-rule \
  --rule-name SiteWiseAssetPropertyRule \
  --topic-rule-payload file://sitewise-rule-payload.json
```
Il payload di esempio in `sitewise-rule-payload.json` contiene quanto segue.  

```
{
  "sql": "SELECT * FROM 'my/asset/property/topic'",
  "description": "Sends device data to an asset property",
  "ruleDisabled": false,
  "awsIotSqlVersion": "2016-03-23",
  "actions": [
    {
      "iotSiteWise": {
        "putAssetPropertyValueEntries": [
          {
            "assetId": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE",
            "propertyId": "a1b2c3d4-5678-90ab-cdef-33333EXAMPLE",
            "propertyValues": [
              {
                "timestamp": {
                  "timeInSeconds": "${floor(timestamp() / 1E3)}",
                  "offsetInNanos": "${(timestamp() % 1E3) * 1E6}"
                },
                "value": {
                  "doubleValue": "${value}"
                }
              }
            ]
          }
        ],
        "roleArn": "arn:aws:iam::account-id:role/MySiteWiseActionRole"
      }
    }
  ]
}
```
Con questa azione della regola, inviate il seguente messaggio a per `my/asset/property/topic` importare i dati.  

```
{
  "type": "double",
  "value": "38.3"
}
```

## Risoluzione dei problemi dell'azione di regola
<a name="troubleshoot-rule-action"></a>

Per risolvere l'azione della AWS IoT SiteWise regola in AWS IoT Core, configura i CloudWatch registri o configura un'azione di errore di ripubblicazione per la regola. Per ulteriori informazioni, consulta [Risolvere i problemi relativi a un' AWS IoT SiteWise azione delle regole](troubleshoot-rule.md).

# Riduci i costi con Basic Ingest in AWS IoT SiteWise
<a name="basic-ingest-rules"></a>

AWS IoT Core [offre una funzionalità chiamata Basic Ingest che è possibile utilizzare per inviare dati AWS IoT Core senza incorrere in AWS IoT costi di messaggistica.](https://aws.amazon.com/iot-core/pricing/) Basic Ingest ottimizza il flusso di dati per carichi di lavoro di ingestione di dati ad alto volume rimuovendo il broker di messaggi dal percorso di importazione. publish/subscribe Puoi utilizzare Basic Ingest se conosci le regole a cui devono essere instradati i messaggi.

Per utilizzare Basic Ingest, invii i messaggi direttamente a una regola specifica utilizzando l'argomento speciale `$aws/rules/rule-name`. Ad esempio, per inviare un messaggio a una regola denominata `SiteWiseWindFarmRule`, invii un messaggio all'argomento `$aws/rules/SiteWiseWindFarmRule`.

Se l'azione di regola utilizza modelli di sostituzione contenenti [topic(Decimal)](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html#iot-function-topic), puoi passare l'argomento originale alla fine dell'argomento speciale di Basic Ingest, ad esempio `$aws/rules/rule-name/original-topic`. Ad esempio, per utilizzare Basic Ingest con l'alias di proprietà della centrale eolica di esempio della sezione precedente, puoi inviare messaggi al seguente argomento.

```
$aws/rules/SiteWiseWindFarmRule//company/windfarm/3/turbine/7/temperature
```

**Nota**  
L'esempio precedente include una seconda barra (`//`) perché AWS IoT rimuove il prefisso Basic Ingest (`$aws/rules/rule-name/`) dall'argomento visibile all'azione della regola. In questo esempio, la regola riceve l'argomento `/company/windfarm/3/turbine/7/temperature`.

*Per ulteriori informazioni, consulta [Ridurre i costi di messaggistica con Basic Ingest](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html) nella Guida per gli sviluppatori.AWS IoT *

# Inserisci dati da AWS IoT SiteWise AWS IoT Events
<a name="iot-events"></a>

Con AWS IoT Events, puoi creare applicazioni complesse di monitoraggio degli eventi per la tua flotta IoT nel AWS Cloud. Utilizza l' SiteWise azione IoT in AWS IoT Events per inviare dati alle proprietà degli asset AWS IoT SiteWise quando si verifica un evento.

**Nota**  
Avviso di fine del supporto: AWS è terminato il supporto per AWS IoT Events. Per ulteriori informazioni, consulta [AWS IoT Events Fine del supporto](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html).

AWS IoT Events è progettato per semplificare lo sviluppo di applicazioni di monitoraggio degli eventi per dispositivi e sistemi IoT all'interno del AWS Cloud. Utilizzando AWS IoT Events, puoi:
+ Rileva e rispondi a cambiamenti, anomalie o condizioni specifiche nella tua flotta IoT.
+  Migliora l'efficienza operativa e abilita la gestione proattiva del tuo ecosistema IoT.

 Grazie all'integrazione con AWS IoT SiteWise through the AWS IoT SiteWise action, ne AWS IoT Events estende le funzionalità, consentendoti di aggiornare automaticamente le proprietà degli asset AWS IoT SiteWise in risposta a eventi specifici. Questa interazione può semplificare l'inserimento e la gestione dei dati. Può anche fornirti informazioni utili. 

*Per ulteriori informazioni, consulta i seguenti argomenti nella Guida per gli AWS IoT Events sviluppatori:*
+ [Che cos'è AWS IoT Events?](https://docs.aws.amazon.com/iotevents/latest/developerguide/)
+ [Operazioni AWS IoT Events](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-supported-actions.html)
+ [ SiteWise Azione IoT](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-other-aws-services.html#iotevents-iotsitewise)

# Usa AWS IoT Greengrass stream manager in AWS IoT SiteWise
<a name="greengrass-stream-manager"></a>

AWS IoT Greengrass stream manager è una funzionalità di integrazione che facilita il trasferimento di flussi di dati da fonti locali al AWS cloud. Funge da livello intermedio che gestisce i flussi di dati, consentendo ai dispositivi che operano all'edge di raccogliere e archiviare i dati prima che vengano inviati AWS IoT SiteWise, per ulteriori analisi ed elaborazioni.

Aggiungi una destinazione di dati configurando una fonte locale sulla AWS IoT SiteWise console. Puoi anche utilizzare stream manager nella tua AWS IoT Greengrass soluzione personalizzata per importare dati. AWS IoT SiteWise

**Nota**  
Per importare dati da fonti OPC UA, configura un gateway AWS IoT SiteWise Edge che funzioni su. AWS IoT Greengrass Per ulteriori informazioni, consulta [Usa i gateway AWS IoT SiteWise Edge](gateways.md).

Per ulteriori informazioni su come **configurare una destinazione** per i dati di origine locale, consulta. [Comprendi le destinazioni Edge AWS IoT SiteWise](gw-destinations.md#source-destination)

Per ulteriori informazioni su come importare **dati utilizzando stream manager** in una AWS IoT Greengrass soluzione personalizzata, consulta i seguenti argomenti nella *Guida per gli AWS IoT Greengrass Version 2 sviluppatori*:
+ [Che cos'è AWS IoT Greengrass?](https://docs.aws.amazon.com/greengrass/v2/developerguide/)
+ [Gestisci i flussi di dati sul core AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-data-streams.html)
+ [Esportazione dei dati nelle proprietà degli asset AWS IoT SiteWise](https://docs.aws.amazon.com/greengrass/v2/developerguide/stream-export-configurations.html#export-to-iot-sitewise)