

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Hébergez vous-même une passerelle AWS IoT SiteWise Edge avec AWS IoT Greengrass V2
<a name="gw-self-host-gg2"></a>

Configurez AWS IoT SiteWise Edge pour collecter, traiter et visualiser les données des équipements industriels localement avant de les envoyer vers le cloud. Auto-hébergeur en utilisant AWS IoT Greengrass Version 2.

Une passerelle AWS IoT SiteWise Edge sert d'intermédiaire entre votre équipement industriel et AWS IoT SiteWise. Lorsqu'elle est exécutée AWS IoT Greengrass Version 2, la passerelle SiteWise Edge prend en charge la collecte et le traitement des données sur site.

Il existe deux types de passerelles auto-hébergées :

**Passerelle V3 compatible MQTT**  
L'architecture de passerelle V3 compatible MQTT fournit des capacités d'ingestion de données améliorées. Il utilise le protocole MQTT pour une communication de données efficace et propose des destinations de données configurables. Il s'agit notamment des options d'ingestion de données en mémoire tampon à l'aide d'Amazon S3, ainsi que d'ingestion de données en temps réel. Vous pouvez implémenter des filtres de chemin pour vous abonner à des sujets MQTT spécifiques, permettant ainsi une collecte de données ciblée. Notez que la passerelle V3 compatible MQTT ne prend pas en charge la fonctionnalité Data Processing Pack. Pour de plus amples informations, veuillez consulter [Passerelles V3 compatibles MQTT pour Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md).

**Passerelle V2, Classic Streams**  
La passerelle Classic Streams, V2 représente l'architecture de passerelle AWS IoT SiteWise Edge traditionnelle. Il convient parfaitement aux déploiements SiteWise Edge existants et aux utilisateurs habitués au flux de travail établi. Bien que la passerelle Classic diffuse, la passerelle V2 prend en charge le pack de traitement de données, notez que les données générées par le pack de traitement de données ne peuvent pas être ingérées via Amazon S3. Utilisez la passerelle Classic Streams, V2 si vous devez maintenir la compatibilité avec les déploiements existants ou si vous avez besoin de la fonctionnalité du pack de traitement des données. Pour de plus amples informations, veuillez consulter [Streams classiques, passerelles V2 pour Edge AWS IoT SiteWise](classic-streams-v2-gateway.md).

**Topics**
+ [AWS IoT SiteWise Exigences relatives à la passerelle auto-hébergée Edge](configure-gateway-ggv2.md)
+ [Créez une passerelle SiteWise Edge auto-hébergée](create-gateway-ggv2.md)
+ [Installez le logiciel de passerelle AWS IoT SiteWise Edge sur votre appareil local](install-gateway-software-on-local-device.md)
+ [Passerelles V3 compatibles MQTT pour Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md)
+ [Streams classiques, passerelles V2 pour Edge AWS IoT SiteWise](classic-streams-v2-gateway.md)
+ [Ajoutez des sources de données à votre passerelle AWS IoT SiteWise Edge](add-data-sources.md)
+ [AWS IoT Greengrass composants pour AWS IoT SiteWise Edge](sw-edge-components.md)
+ [Filtrer les actifs sur une passerelle SiteWise Edge](filter-assets-ggv2.md)
+ [Configuration de la prise en charge des proxys et gestion des magasins de confiance pour AWS IoT SiteWise Edge](edge-apis-manage-trust-stores-proxy.md)
+ [Utiliser AWS IoT SiteWise APIs sur le bord](edge-apis.md)

# AWS IoT SiteWise Exigences relatives à la passerelle auto-hébergée Edge
<a name="configure-gateway-ggv2"></a>

AWS IoT SiteWise Les passerelles Edge fonctionnent AWS IoT Greengrass V2 sous la forme d'un ensemble de AWS IoT Greengrass composants qui prennent en charge la collecte, le traitement et la publication de données sur site. Pour configurer une passerelle SiteWise Edge qui s'exécute sur AWS IoT Greengrass V2, créez une passerelle dans le logiciel SiteWise Edge Gateway AWS Cloud et exécutez le logiciel de passerelle Edge pour configurer votre appareil local. Lorsque vous utilisez le AWS Management Console pour créer la passerelle SiteWise Edge, un script d'installation est fourni. Exécutez ce script sur votre passerelle cible pour configurer les logiciels et les dépendances nécessaires.

## Exigences relatives aux appareils locaux
<a name="gateway-requirements-local-device"></a>

Les appareils locaux doivent répondre aux exigences suivantes pour installer et exécuter le logiciel de passerelle SiteWise Edge.
+ Supporte la version [v2.3.0](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-release-2021-06-29.html) ou ultérieure du logiciel AWS IoT Greengrass V2 Core. Pour plus d'informations, consultez la section [Exigences](https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html#greengrass-v2-requirements) du *guide du AWS IoT Greengrass Version 2 développeur*.
+ L'une des plateformes prises en charge suivantes :
  + Système d'exploitation : Ubuntu 20.04 ou version ultérieure

    Architecture : x86\$164 (AMD64) ou ARMv8 (Aarch64)
  + Système d'exploitation : Red Hat Enterprise Linux (RHEL) 8

    Architecture : x86\$164 (AMD64) ou ARMv8 (Aarch64)
  + Système d'exploitation : Amazon Linux 2

    Architecture : x86\$164 (AMD64) ou ARMv8 (Aarch64)
  + Système d'exploitation : Debian 11

    Architecture : x86\$164 (AMD64) ou ARMv8 (Aarch64)
  + Système d'exploitation : Windows Server 2019 et versions ultérieures

    Architecture : x86\$164 () AMD64
**Note**  
Les plateformes ARM prennent en charge les passerelles SiteWise Edge uniquement avec le pack de collecte de données. Le pack de traitement des données n'est pas pris en charge.
+ Minimum de 4 Go de RAM.
+ Au moins 10 Go d'espace disque disponible pour le logiciel de passerelle SiteWise Edge.
+ Configurez votre appareil local pour vous assurer que les ports appropriés sont accessibles. Pour obtenir la liste complète des points de terminaison de service sortants requis, voir Points de terminaison de [service requis pour les AWS IoT SiteWise passerelles](https://docs.aws.amazon.com/prescriptive-guidance/latest/endpoints-for-iot-sitewise-edge-gateways/required-endpoints.html) Edge.
+ Java Runtime Environment (JRE) version 11 ou supérieure. Java doit être disponible sur la variable d'`PATH`environnement de l'appareil. Pour utiliser Java pour développer des composants personnalisés, vous devez installer un kit de développement Java (JDK). [Nous vous recommandons d'utiliser [Amazon Corretto ou OpenJDK](https://docs.aws.amazon.com/corretto/).](https://openjdk.org/projects/jdk/)

### Buckets Amazon S3 à autoriser pour les appareils locaux
<a name="w2aac17c19c13b5b7"></a>

Configurez votre appareil local pour fournir un accès au pare-feu au compartiment Amazon S3 suivant. Configurez l'accès en fonction des régions respectives de vos appareils. 


| Région | Endpoint | 
| --- | --- | 
|  Asie-Pacifique (Tokyo)  |  https://iot-sitewise-gateway-ap-northeast-1-785558802005.s3.ap-northeast-1.amazonaws.com  | 
|  Asie-Pacifique (Séoul)  |  https://iot-sitewise-gateway-ap-northeast-2-310055672453.s3.ap-northeast-2.amazonaws.com  | 
|  Asie-Pacifique (Mumbai)  |  https://iot-sitewise-gateway-ap-south-1-677656657204.s3.ap-south-1.amazonaws.com  | 
|  Asie-Pacifique (Singapour)  |  https://iot-sitewise-gateway-ap-southeast-1-475191558554.s3.ap-southeast-1.amazonaws.com  | 
|  Asie-Pacifique (Sydney)  |  https://iot-sitewise-gateway-ap-southeast-2-396319432685.s3.ap-southeast-2.amazonaws.com  | 
|  Canada (Centre)  |  https://iot-sitewise-gateway-ca-central-1-842060018567.s3.ca-central-1.amazonaws.com  | 
|  Chine (Pékin)  |  https://iot-sitewise-gateway-cn-north-1-237124890262---s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn  | 
|  Europe (Francfort)  |  https://iot-sitewise-gateway-eu-central-1-748875242063.s3.eu-central-1.amazonaws.com  | 
|  Europe (Irlande)  |  https://iot-sitewise-gateway-eu-west-1-383414315062.s3.eu-west-1.amazonaws.com  | 
|  USA Est (Virginie du Nord)  |  https://iot-sitewise-gateway-us-east-1-223558168232---s3---us-east-1.amazonaws.com.rproxy.govskope.uset https://iot-sitewise-gateway-us-east-1-223558168232.s3.amazonaws.com/  | 
|  USA Est (Ohio)  |  https://iot-sitewise-gateway-us-east-2-005072661813.s3.us-east-2.amazonaws.com  | 
|  AWS GovCloud (US-Ouest)  |  https://iot-sitewise-gateway-us-gov-west-1-599984565679.s3.us-gov-west-1.amazonaws.com/  | 
|  USA Ouest (Oregon)  |  https://iot-sitewise-gateway-us-west-2-502577205460.s3.us-west-2.amazonaws.com  | 

## Exigences relatives aux packs de traitement des données
<a name="w2aac17c19c13b7"></a>

**Note**  
La fonctionnalité du pack de traitement des données (DPP) n’est plus disponible pour les nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d’informations, consultez [Data processing pack availability change](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html).
+ Si vous prévoyez d'utiliser le pack de traitement des données en périphérie AWS IoT SiteWise, votre appareil local doit également répondre aux exigences suivantes :
  + Dispose d'un processeur quadricœur x86 64 bits.
  + Dispose d'au moins 16 Go de RAM.
  + Dispose d'au moins 32 Go de RAM en cas d'utilisationMicrosoft Windows.
  + Disposait d'au moins 256 Go d'espace disque libre.
  + Le périphérique local doit autoriser le trafic réseau entrant sur le port 443.
  + Les ports suivants sont réservés pour être utilisés par AWS IoT SiteWise : 80, 443, 3001, 4569, 4572, 8000, 8081, 8082, 8084, 8085, 8445, 8086, 9000, 9500, 11080 et 50010. L'utilisation d'un port réservé pour le trafic peut entraîner l'interruption de la connexion.
**Note**  
Le composant AWS IoT Greengrass V2 Stream manager a ses propres exigences. Pour plus d'informations, consultez [la section Configuration](https://docs.aws.amazon.com/greengrass/v2/developerguide/stream-manager-component.html#stream-manager-component-configuration) dans le *guide du AWS IoT Greengrass Version 2 développeur*.
+ Les exigences minimales en matière d'espace disque et de capacité de calcul dépendent de divers facteurs propres à votre implémentation et à votre cas d'utilisation.
  + L'espace disque requis pour la mise en cache des données pour une connectivité Internet intermittente dépend des facteurs suivants :
    + Nombre de flux de données chargés
    + Points de données par flux de données par seconde
    + Taille de chaque point de données
    + Vitesses de communication
    + Temps d'arrêt du réseau attendu
  + La capacité de calcul requise pour interroger et charger les données dépend des facteurs suivants :
    + Nombre de flux de données chargés
    + Points de données par flux de données par seconde

## Configurer les autorisations pour utiliser les passerelles SiteWise Edge
<a name="gateway-iam-permisions"></a>

Vous devez disposer des autorisations suivantes pour utiliser les passerelles SiteWise Edge :

**Note**  
Si vous utilisez la AWS IoT SiteWise console pour créer votre passerelle SiteWise Edge, ces autorisations sont ajoutées pour vous.
+ Le rôle IAM de votre passerelle SiteWise Edge doit vous permettre d'utiliser une passerelle SiteWise Edge sur un AWS IoT Greengrass V2 appareil pour traiter les données des modèles d'actifs et les données des actifs.

  Le rôle permet au service suivant d'assumer le rôle :`credentials.iot.amazonaws.com`.

  **Détails de l’autorisation**

  Le rôle doit disposer des autorisations suivantes :
  + `iotsitewise`— Permet aux principaux de récupérer les données des modèles d'actifs et les données des actifs à la périphérie.
  + `iot`— Permet à vos AWS IoT Greengrass V2 appareils d'interagir avec AWS IoT.
  + `logs`— Permet à vos AWS IoT Greengrass V2 appareils d'envoyer des journaux à Amazon CloudWatch Logs.
  + `s3`— Permet à vos AWS IoT Greengrass V2 appareils de télécharger des artefacts de composants personnalisés depuis Amazon S3.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "iotsitewise:BatchPutAssetPropertyValue",
                  "iotsitewise:List*",
                  "iotsitewise:Describe*",
                  "iotsitewise:Get*"
              ],
              "Resource": "*"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "iot:DescribeCertificate",
                  "logs:CreateLogGroup",
                  "logs:CreateLogStream",
                  "logs:PutLogEvents",
                  "logs:DescribeLogStreams",
                  "s3:GetBucketLocation",
                  "s3:GetObject",
                  "iot:Connect",
                  "iot:Publish",
                  "iot:Subscribe",
                  "iot:Receive",
                  "iot:DescribeEndpoint"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------

# Créez une passerelle SiteWise Edge auto-hébergée
<a name="create-gateway-ggv2"></a>

Utilisez la AWS IoT SiteWise console ou AWS CLI créez une passerelle SiteWise Edge auto-hébergée. Cette procédure explique comment créer une passerelle SiteWise Edge auto-hébergée que vous installerez sur votre propre matériel. Pour plus d'informations sur la création d'une passerelle SiteWise Edge qui s'exécute sur Siemens Industrial Edge, consultez[Hébergez une passerelle SiteWise Edge sur Siemens Industrial Edge](sitewise-edge-on-siemens.md).

## Création d'une passerelle SiteWise Edge
<a name="configure-gateway-console"></a>

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

1. <a name="sitewise-open-console"></a>Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation, choisissez **Edge gateways**.

1. Cliquez sur **Create gateway (Créer une passerelle)**.

1. Pour **Choisir une cible de déploiement**, choisissez une **passerelle auto-hébergée**.

1. Sélectionnez soit une passerelle **MQTT compatible avec MQTT, soit des **flux classiques**, une passerelle V2**. Pour plus d'informations sur chaque option, consultez[Hébergez vous-même une passerelle AWS IoT SiteWise Edge avec AWS IoT Greengrass V2](gw-self-host-gg2.md). La passerelle V3 compatible MQTT est recommandée pour ses fonctionnalités prêtes pour l'avenir.

1. Dans la section **Configuration de la passerelle**, entrez le nom de votre passerelle SiteWise Edge ou utilisez le nom généré par AWS IoT SiteWise.

1. Sous le système d'**exploitation de l'appareil Greengrass**, sélectionnez le système d'exploitation de l'appareil sur lequel vous allez installer cette passerelle SiteWise Edge.
**Note**  
Le pack de traitement des données n'est disponible que sur les plateformes x86. Il n'est disponible que sur les streams classiques, passerelle V2

1. (Facultatif) Pour traiter et organiser les données à la périphérie, sous **Fonctionnalités de la périphérie**, sélectionnez **Data Processing Pack**.
**Note**  
Pour autoriser les groupes d'utilisateurs de votre annuaire d'entreprise à accéder à cette passerelle SiteWise Edge, voir [Configurer la fonctionnalité Edge dans SiteWise Edge](edge-data-collection-and-processing.md#using-sitewise-edge) 

1. (Facultatif) Dans **la section Configuration avancée**, procédez comme suit :

   1. Pour l'**appareil Greengrass Core**, choisissez l'une des options suivantes :
     + **Configuration par défaut** : utilise AWS automatiquement les paramètres par défaut pour créer un appareil Greengrass Core dans. AWS IoT Greengrass V2

       1. Entrez un nom pour le périphérique principal de Greengrass ou utilisez le nom généré par. AWS IoT SiteWise
     + **Configuration avancée** — Choisissez cette option si vous souhaitez utiliser un appareil principal Greengrass existant ou en créer un manuellement.

       1. Choisissez un appareil Greengrass core ou choisissez Create **Greengrass core device** pour en créer un dans la console. AWS IoT Greengrass V2 Pour plus d'informations, consultez [Configuration des appareils Core AWS IoT Greengrass V2](https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) dans le *Guide du développeur AWS IoT Greengrass Version 2 *.

1. Cliquez sur **Create gateway (Créer une passerelle)**.

1. Dans la boîte de dialogue **Générer le programme d'installation de la passerelle SiteWise Edge**, sélectionnez **Générer et télécharger**. AWS IoT SiteWise génère automatiquement un programme d'installation que vous pouvez utiliser pour configurer votre appareil local.
**Important**  
Vous ne pouvez pas régénérer ce fichier. Assurez-vous d'enregistrer le fichier d'installation dans un emplacement sécurisé, car vous l'utiliserez ultérieurement.

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

Pour créer une passerelle auto-hébergée à l'aide de AWS CLI, attribuez un nom à la passerelle, spécifiez la plate-forme et la version de la passerelle. Il existe de nombreuses autres options que vous pouvez spécifier lors de la création d'une passerelle. Pour plus d'informations, voir [create-gateway](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/create-gateway.html) dans le manuel de référence des *AWS CLI commandes* pour AWS IoT SiteWise

Pour utiliser cet exemple, remplacez les espaces réservés d’entrée utilisateur par vos propres informations.

```
aws iotsitewise create-gateway \
    --gateway-name your-gateway-name \
    --gateway-platform greengrassV2={coreDeviceThingName=your-core-device-thing-name, coreDeviceOperatingSystem=LINUX_AMD64} \                        
    --gateway-version 3 \
    [--cli-input-json your-configuration]
```
+ `gateway-name`— Nom unique pour la passerelle.
+ `gateway-platform`— Spécifie la configuration de la plateforme de passerelle. Pour les passerelles auto-hébergées, entrez. `greengrassV2` Pour plus d'informations, consultez la section [Options](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/create-gateway.html#options) de la section create-gateway de *AWS CLI Command Reference* for. AWS IoT SiteWise
  + `coreDeviceThingName`— Le nom de l'objet AWS IoT pour votre appareil AWS IoT Greengrass V2 principal.
  + `coreDeviceOperatingSystem`— Le système d'exploitation de l'appareil principal dans AWS IoT Greengrass V2. La spécification du système d'exploitation est requise `gateway-version 3` et ne s'applique pas à`gateway-version 2`. Les options incluent : `LINUX_AARCH64``LINUX_AMD64`, et `WINDOWS_AMD64`
+ `gateway-version`— La version de la passerelle.
  + Pour créer une passerelle V3 compatible MQTT, utilisez la version `3` de passerelle.
  + Pour créer une passerelle Classic Streams, version V2, `2` utilisez-la pour la version passerelle.
+ `cli-input-json`— Un fichier JSON contenant les paramètres de requête.

------

Maintenant que vous avez créé la passerelle SiteWise Edge,[Installez le logiciel de passerelle AWS IoT SiteWise Edge sur votre appareil local](install-gateway-software-on-local-device.md).

# Installez le logiciel de passerelle AWS IoT SiteWise Edge sur votre appareil local
<a name="install-gateway-software-on-local-device"></a>

Après avoir créé une passerelle AWS IoT SiteWise Edge, installez le logiciel de passerelle SiteWise Edge sur votre appareil local. SiteWise Le logiciel de passerelle Edge peut être installé sur des appareils locaux sur lesquels des systèmes d'exploitation Linux ou Microsoft Windows serveur sont installés.

**Important**  
Assurez-vous que votre appareil local est connecté à Internet.

------
#### [ Linux ]

La procédure suivante utilise SSH pour se connecter à votre appareil local. Vous pouvez également utiliser une clé USB ou d'autres outils pour transférer le fichier d'installation sur votre appareil local. Si vous ne souhaitez pas utiliser SSH, passez à l'**étape 2 : Installation du logiciel de passerelle SiteWise Edge** ci-dessous.

**Prérequis SSH**

Avant de vous connecter à votre appareil via SSH, remplissez les conditions préalables suivantes.
+ Linux et macOS : téléchargez et installez OpenSSH. Pour de plus amples informations, veuillez consulter [https://www.openssh.com](https://www.openssh.com/).

**Étape 1 : Copiez le programme d'installation sur votre périphérique de passerelle SiteWise Edge**

Les instructions suivantes expliquent comment vous connecter à votre appareil local à l'aide d'un client SSH.

1. Pour vous connecter à votre appareil, exécutez la commande suivante dans une fenêtre de terminal de votre ordinateur, en remplaçant *username* et *IP* par un nom d'utilisateur doté de privilèges élevés et d'une adresse IP.

   ```
   ssh username@IP
   ```

1. Pour transférer le fichier d'installation AWS IoT SiteWise généré sur votre périphérique de passerelle SiteWise Edge, exécutez la commande suivante.
**Note**  
Remplacez-le *path-to-saved-installer* par le chemin sur votre ordinateur que vous avez utilisé pour enregistrer le fichier d'installation et le nom du fichier d'installation.
Remplacez *IP-address* par l'adresse IP de votre appareil local.
*directory-to-receive-installer*Remplacez-le par le chemin sur le périphérique local que vous utilisez pour recevoir le fichier d'installation.

   ```
   scp path-to-saved-installer.sh user-name@IP-address:directory-to-receive-installer
   ```

**Étape 2 : Installation du logiciel de passerelle SiteWise Edge**

Dans les procédures suivantes, exécutez les commandes dans une fenêtre de terminal sur votre périphérique de passerelle SiteWise Edge.

1. Donnez au fichier d'installation l'autorisation d'exécution.

   ```
   chmod +x path-to-installer.sh
   ```

1. Exécutez le programme d'installation.

   ```
   sudo ./path-to-installer.sh
   ```

------
#### [ Windows Server ]

**Conditions préalables**

Vous devez remplir les conditions préalables suivantes pour installer le logiciel de passerelle SiteWise Edge :
+ Microsoft WindowsServer 2019 ou version ultérieure installé
+ Privilèges d'administrateur
+ PowerShell version 5.1 ou ultérieure installée
+ SiteWise Le programme d'installation de la passerelle Edge a été téléchargé sur le serveur Windows où il sera provisionné

**Étape 1 : Exécuter en PowerShell tant qu'administrateur**

1. Sur le serveur Windows sur lequel vous souhaitez installer la passerelle SiteWise Edge, connectez-vous en tant qu'administrateur.

1. Entrez **PowerShell**dans la barre de recherche de Windows.

1. Dans les résultats de recherche, ouvrez le menu contextuel (clic droit) de l' PowerShell application Windows. Choisissez **Exécuter en tant qu'administrateur**.

**Étape 2 : Installation du logiciel de passerelle SiteWise Edge**

Exécutez les commandes suivantes dans une fenêtre de terminal sur votre périphérique SiteWise Edge Gateway.

1. Débloquez le programme d'installation de la passerelle SiteWise Edge.

   ```
   unblock-file path-to-installer.ps1
   ```

1. Lancez le programme d'installation.

   ```
   ./path-to-installer.ps1
   ```
**Note**  
Si l'exécution du script est désactivée sur le système, remplacez la politique d'exécution du script par`RemoteSigned`.  

   ```
   Set-ExecutionPolicy RemoteSigned
   ```

------

L'étape suivante dépend du *type* de passerelle auto-hébergée dont vous avez besoin. Continuez vers [Passerelles V3 compatibles MQTT pour Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md) ou[Streams classiques, passerelles V2 pour Edge AWS IoT SiteWise](classic-streams-v2-gateway.md).

# Passerelles V3 compatibles MQTT pour Edge AWS IoT SiteWise
<a name="mqtt-enabled-v3-gateway"></a>

AWS IoT SiteWise peut utiliser des passerelles V3 compatibles MQTT, ce qui représente une avancée significative dans l'architecture des passerelles Edge. SiteWise Ce type de passerelle utilise le protocole MQTT (Message Queuing Telemetry Transport) pour la communication de données, offrant ainsi une flexibilité et une efficacité accrues dans les déploiements industriels de l'IoT.

La passerelle V3 compatible MQTT utilise MQTT pour le transfert de données, permettant ainsi un protocole réseau léger de publication et d'abonnement qui transporte efficacement les messages entre les appareils et le cloud. Vous pouvez configurer différentes destinations de données, notamment l'ingestion de données en temps réel directement dans Amazon S3 AWS IoT SiteWise et l'ingestion de données mise en mémoire tampon. Pour permettre une collecte de données précise, vous pouvez implémenter des filtres de chemin pour vous abonner à des sujets MQTT spécifiques.

Les passerelles V3 compatibles MQTT sont fournies avec une destination en temps réel préconfigurée avec des filtres définis sur « \$1 » (tous les sujets), que vous pouvez personnaliser ou supprimer selon vos besoins. Pour rationaliser la gestion des données, une seule destination en temps réel peut exister dans chaque passerelle.

L'architecture compatible MQTT est très différente de la passerelle Classic Streams, V2. Alors que la V2 utilise une approche basée sur les flux, la V3 utilise MQTT, offrant des destinations de données et des options de filtrage plus configurables. Notez toutefois que la V3 ne prend pas en charge le pack de traitement de données, qui est disponible dans la version 2.

La passerelle V3 compatible MQTT offre plusieurs avantages : 
+ Évolutivité améliorée, grâce à la légèreté du MQTT, permettant une meilleure gestion de nombreux appareils et une meilleure transmission de données à haute fréquence.
+ Contrôle des données amélioré grâce à des filtres de chemin, permettant une gestion granulaire de la collecte de données et réduisant le transfert et le traitement inutiles des données.
+ Gestion flexible des données, permettant la configuration entre le traitement en temps réel et le stockage en mémoire tampon en fonction des besoins spécifiques.
+ Harmonisation avec les normes de communication IoT modernes, ouvrant la voie à de futures améliorations et intégrations.

Envisagez d'adopter la passerelle V3 compatible MQTT pour les nouveaux déploiements, en particulier lorsque vous avez besoin d'options d'ingestion de données flexibles et d'un contrôle précis de la collecte de données.

**Note**  
Pour les déploiements existants ou les scénarios nécessitant le pack de traitement des données, la passerelle Classic Streams, V2 reste une option viable.

En proposant les deux types de passerelles AWS IoT SiteWise , vous pouvez choisir la solution qui répond le mieux à vos besoins spécifiques en matière d'IoT industriel, que vous privilégiiez les fonctionnalités MQTT avancées ou la compatibilité avec les systèmes existants.

## Filtres de destinations et de chemins
<a name="create-destination-summary"></a>

Consultez les rubriques suivantes pour en savoir plus sur les destinations et les filtres de chemin dans les passerelles compatibles MQTT :
+ [Comprendre les destinations AWS IoT SiteWise Edge](gw-destinations.md#source-destination)
+ [Ajouter une destination AWS IoT SiteWise Edge en temps réel](destinations-real-time.md)
+ [Ajouter une destination AWS IoT SiteWise mise en mémoire tampon à l'aide d'Amazon S3](destinations-buffered.md)
+ [Comprendre les filtres de chemin pour les destinations AWS IoT SiteWise EdgeComprendre les filtres de chemin](gw-destinations.md#destinations-path-filters)
+ [Ajouter des filtres de chemin aux destinations AWS IoT SiteWise Edge](destinations-add-path-filters.md)
+ [Gérer les destinations AWS IoT SiteWise Edge](destinations-manage.md)

# Connectez des applications externes au broker EMQX
<a name="connect-external-applications-emqx"></a>

Ce guide explique comment connecter des applications externes à votre passerelle AWS IoT SiteWise Edge via un courtier EMQX sur votre passerelle V3 compatible MQTT déployée. Les applications externes peuvent inclure des outils de surveillance personnalisés, des logiciels de visualisation tiers ou des systèmes existants qui doivent interagir avec vos données industrielles à la périphérie.

Nous aborderons les étapes de configuration pour Linux et les Microsoft Windows environnements, notamment la configuration du déploiement d'EMQX, la configuration TLS pour des connexions sécurisées et les règles d'autorisation pour contrôler l'accès à des sujets spécifiques.

**Note**  
EMQX n'est ni un fournisseur ni un fournisseur d' AWS IoT SiteWise Edge.

**Important**  
Pour sécuriser les connexions à votre passerelle, nous vous recommandons vivement d'utiliser l'authentification par certificat via la fonction d'authentification de l'appareil AWS IoT Greengrass client. Cette méthode fournit une sécurité robuste grâce à l'authentification TLS mutuelle (mTLS). Pour plus d'informations, consultez la section [Connecter les appareils clients aux appareils principaux](https://docs.aws.amazon.com/greengrass/v2/developerguide/connect-client-devices.html) dans le *Guide du AWS IoT Greengrass Version 2 développeur*.

Si vous n'êtes pas en mesure d'utiliser l'authentification basée sur des certificats, suivez ce guide pour configurer l'authentification à l'aide de noms d'utilisateur et de mots de passe.

## Conditions préalables
<a name="emqx-broker-prerequisites"></a>
+ Une passerelle V3 compatible SiteWise Edge MQTT qui a été déployée et est en ligne
+ Accès à l'hôte de la passerelle
+ Accès aux AWS IoT Greengrass consoles AWS IoT SiteWise et

**Topics**
+ [Conditions préalables](#emqx-broker-prerequisites)
+ [Format de charge utile des messages pour le courtier EMQX sur Edge AWS IoT SiteWise](connect-broker-payload-format.md)
+ [Configuration du broker EMQX](configure-emqx-broker.md)
+ [Connecter une application au broker EMQX sur Edge AWS IoT SiteWise](connect-app-to-broker.md)
+ [Configurer des règles d'autorisation pour AWS IoT SiteWise Edge dans EMQX](authorization-rules-emqx-broker.md)

# Format de charge utile des messages pour le courtier EMQX sur Edge AWS IoT SiteWise
<a name="connect-broker-payload-format"></a>

Pour que le composant SiteWise éditeur IoT puisse consommer les données de votre application externe et les publier AWS IoT SiteWise dans le cloud, la charge utile envoyée au courtier doit répondre à des exigences spécifiques.

Comprendre le format de charge utile est essentiel pour une communication MQTT réussie avec AWS IoT SiteWise Edge. Bien que le processus de configuration de la connexion soit abordé dans les sections suivantes, nous présentons d'abord les exigences en matière de charge utile pour vous aider à planifier votre mise en œuvre.

## Exigences relatives aux rubriques MQTT
<a name="connect-broker-mqtt-requirements"></a>

Il n'y a aucune restriction quant à la structure des rubriques MQTT, y compris le nombre de niveaux ou de caractères utilisés. Cependant, nous recommandons que le sujet corresponde au `propertyAlias` champ de la charge utile.

**Example Exemple d'alias de propriété**  
Si le sujet du MQTT l'est`site1/line1/compressor1/temperature`, assurez-vous que les `propertyAlias` correspondances sont correctes.  

```
{
  "assetId": "compressor_asset_01",
  "propertyAlias": "site1/line1/compressor1/temperature",
  "propertyId": "temperature_sensor_01",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "offsetInNanos": 0,
        "timeInSeconds": 1683000000
      },
      "value": {
        "doubleValue": 23.5
      }
    }
  ]
}
```

## Structure de charge utile JSON
<a name="connect-broker-json-payload"></a>

La charge utile des messages MQTT est écrite en JSON et suit le format de `PutAssetPropertyValueEntry` message défini dans la référence d'[AWS IoT SiteWise API](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_PutAssetPropertyValueEntry.html).

```
{
   "assetId": "string",
   "propertyAlias": "string",
   "propertyId": "string",
   "propertyValues": [
      {
         "quality": "string",
         "timestamp": {
            "offsetInNanos": number,
            "timeInSeconds": number
         },
         "value": {
            "booleanValue": boolean,
            "doubleValue": number,
            "integerValue": number,
            "stringValue": "string"
         }
      }
   ]
}
```

**Note**  
Pour qu'un message soit considéré comme valide, seule l'une des conditions suivantes peut être vraie :  
Le `propertyAlias` est défini, ou
Les deux `assetId` et `propertyId` sont définis
`PutAssetPropertyValueEntry`Il contient un `entryId` champ qui n'est pas obligatoire dans ce contexte.

# Configuration du broker EMQX
<a name="configure-emqx-broker"></a>

Cette section explique comment ajouter des noms d'utilisateur et des mots de passe. Il explique également comment établir une connexion TLS à partir d'une source externe à l'aide du nom d'utilisateur et du mot de passe ajoutés. Vous pouvez configurer le broker EMQX à l'aide de Linux ou. Microsoft Windows

**Note**  
Pour configurer le broker, vous avez besoin d'un périphérique principal configuré avec la configuration EMQX par défaut dans votre passerelle V3 compatible MQTT.

**Important**  
Une fois cette procédure terminée, nous vous recommandons vivement de configurer les règles d'autorisation. Pour de plus amples informations, veuillez consulter [Configurer des règles d'autorisation pour AWS IoT SiteWise Edge dans EMQX](authorization-rules-emqx-broker.md). Les règles d'autorisation pour les utilisateurs ajoutés renforcent la sécurité. 

## Mettre à jour la configuration de déploiement d'EMQX pour l'authentification
<a name="update-emqx-broker-authentication"></a>

**Pour mettre à jour la configuration de déploiement d'EMQX pour l'authentification**

1. <a name="sitewise-open-console"></a>Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation de gauche, choisissez **Edge gateway** dans la section **Edge**.

1. Choisissez la passerelle à configurer.

1. Dans la section **Configuration de la passerelle Edge**, copiez la valeur **principale de votre appareil Greengrass**. Conservez-le pour une utilisation ultérieure.

1. Ouvrez la [AWS IoT console](https://console.aws.amazon.com/iot/).

1. **Dans le menu de navigation de gauche, dans la section **Gérer**, choisissez **Greengrass devices**, puis Deployments.**

1. Recherchez la valeur principale de l'appareil que vous avez enregistrée précédemment et cliquez sur ce lien pour ouvrir le déploiement.

1. Cliquez sur le bouton déroulant **Actions**, puis sur **Réviser**.

1. Lisez le message qui s'affiche, puis choisissez **Revise le déploiement**. La page **Spécifier la cible** apparaît.

1. Choisissez **Next** jusqu'à ce que vous atteigniez l'étape **Configurer les composants**.

1. Sélectionnez le bouton `aws.greengrass.clientdevices.mqtt.EMQX` radio.

1. Cliquez sur le bouton **Configurer le composant**. Une page de configuration s'affiche pour le composant.

1. Sous **Mise à jour de la configuration**, choisissez **Rétablir la configuration par défaut pour la version du composant : 2.\$1. **\$1.

1. Entrez la configuration suivante dans la section **Configuration à fusionner** en fonction de votre système d'exploitation.

------
#### [ Linux ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "allow"
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "dockerOptions": "-p 8883:8883 -p 127.0.0.1:1883:1883 -p 127.0.0.1:18083:18083 -v emqx-data:/opt/emqx/data -e EMQX_NODE__NAME=emqx@local",
       "requiresPrivilege": "true"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "allow"
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "requiresPrivilege": "true"
   }
   ```

   Le `dockerOptions` champ concerne uniquement les passerelles Linux.

------

1. Choisissez **Confirmer**.

1. Choisissez **Next** jusqu'à ce que vous atteigniez l'étape de **révision**.

1. Choisissez **Déployer**.

1. Une fois le déploiement réussi, passez à l'étape suivante.

## Activer l'authentification par nom d'utilisateur et mot de passe
<a name="emqx-broker-username-password-auth"></a>

Cette section explique comment ajouter des noms d'utilisateur et des mots de passe via l'interface graphique du tableau de bord EMQX.

**Note**  
Les instructions relatives à EMQX fournies sont fournies à titre de référence uniquement. Étant donné que la documentation et les fonctionnalités d'EMQX peuvent changer au fil du temps et que nous ne conservons pas leur documentation, nous vous recommandons de consulter la [documentation officielle d'EMQX](https://docs.emqx.com/en/emqx/latest/) pour obtenir les informations les plus récentes.

------
#### [ EMQX Dashboard ]

**Pour activer l'authentification par nom d'utilisateur et mot de passe via le tableau de bord EMQX**

1. Assurez-vous que vous vous trouvez dans l'hôte de la passerelle.

1. Ouvrez une fenêtre de navigateur et rendez-vous sur [http://localhost:18083/](http://localhost:18083/).

1. Entrez le nom d'utilisateur **admin** et le mot de passe par défaut de**public**. Pour plus d'informations, consultez le tableau de [bord EMQX](https://docs.emqx.com/en/emqx/latest/dashboard/introduction.html#first-login) dans la documentation *EMQX*.

1. Une fois connecté, vous êtes invité à modifier votre mot de passe. Mettez à jour votre mot de passe pour accéder au tableau de bord EMQX.

1. Dans le volet de navigation de gauche, choisissez l'icône en forme de bouclier, puis **Authentification**.

1. Dans la ligne **Base de données intégrée**, cliquez sur le bouton **Utilisateurs**.

1. Cliquez sur le bouton représentant le signe plus pour ajouter des utilisateurs. Un écran d'**ajout** apparaît.

1. Entrez un nom d'utilisateur et un mot de passe pour l'utilisateur de l'application externe.

1. Choisissez **Enregistrer**. Le nom d'utilisateur que vous avez choisi apparaît dans le tableau de la page **d'authentification**.

**Note**  
Les règles d'autorisation existantes ou par défaut s'appliquent au nouvel utilisateur. Il est recommandé de les examiner et de les adapter aux besoins de votre application externe.

------
#### [ EMQX Management with Linux ]

Utilisez l'outil AWS IoT SiteWise CLI EMQX à l'adresse. `/greengrass/v2/bin/swe-emqx-cli`

**Pour activer l'authentification par nom d'utilisateur et mot de passe via EMQX Management sous Linux**

1. Modifiez le mot de passe administrateur en exécutant la commande suivante :

   ```
   /greengrass/v2/bin/swe-emqx-cli admin change-pwd
   ```

1. Lorsque vous y êtes invité, procédez comme suit :

   1. Entrez votre nom d'utilisateur administrateur (par défaut`admin`) et votre mot de passe (par défaut`public`).

   1. Entrez et confirmez votre nouveau mot de passe.

   En cas de réussite, le message suivant s'affiche :

   ```
   admin password changed successfully
   ```

1. Ajoutez des utilisateurs pour les applications externes en exécutant la commande suivante :

   ```
   /greengrass/v2/bin/swe-emqx-cli users add
   ```

1. Lorsque vous y êtes invité, procédez comme suit :

   1. Entrez le nom d'utilisateur du nouvel utilisateur.

   1. Entrez et confirmez le mot de passe du nouvel utilisateur.

   En cas de réussite, le message suivant s'affiche :

   ```
   User '[username]' created successfully
   ```

1. Vérifiez la configuration utilisateur en exécutant la commande suivante :

   ```
   /greengrass/v2/bin/swe-emqx-cli users list
   ```

   Le résultat montre tous les utilisateurs configurés :

   ```
   Users:
   - [your-added-username]
   
   Total users: 1
   ```

------
#### [ EMQX Management with Windows ]

Utilisez l'outil AWS IoT SiteWise CLI EMQX à l'un des emplacements suivants :
+ PowerShell: `C:\greengrass\v2\bin\swe-emqx-cli.ps1`
+ Invite de commande : `C:\greengrass\v2\bin\swe-emqx-cli.bat`

**Pour activer l'authentification par nom d'utilisateur et mot de passe via EMQX Management à l'aide de Windows**

1. Modifiez le mot de passe administrateur en exécutant la commande suivante :

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 admin change-pwd
   ```

1. Lorsque vous y êtes invité, procédez comme suit :

   1. Entrez votre nom d'utilisateur administrateur (par défaut`admin`) et votre mot de passe (par défaut`public`).

   1. Entrez et confirmez votre nouveau mot de passe.

   En cas de réussite, le message suivant s'affiche :

   ```
   admin password changed successfully
   ```

1. Ajoutez des utilisateurs pour les applications externes en exécutant la commande suivante :

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 users add
   ```

1. Lorsque vous y êtes invité, procédez comme suit :

   1. Entrez le nom d'utilisateur du nouvel utilisateur.

   1. Entrez et confirmez le mot de passe du nouvel utilisateur.

   En cas de réussite, le message suivant s'affiche :

   ```
   User '[username]' created successfully
   ```

1. Vérifiez la configuration utilisateur en exécutant la commande suivante :

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 users list
   ```

   Le résultat montre tous les utilisateurs configurés :

   ```
   Users:
   - [your-added-username]
   
   Total users: 1
   ```

------

# Connecter une application au broker EMQX sur Edge AWS IoT SiteWise
<a name="connect-app-to-broker"></a>

Le broker EMQX utilise le protocole TLS (Transport Layer Security) sur le port 8883 pour chiffrer toutes les communications, garantissant ainsi la protection de vos données pendant la transmission. Cette section explique les étapes à suivre pour établir des connexions entre vos applications et le broker EMQX. Le respect de ces étapes permet de préserver l'intégrité et la confidentialité de vos données industrielles. Le processus de connexion implique deux approches principales : l'utilisation de la découverte automatique des adresses IP par le biais de composants ou la configuration manuelle des noms DNS et des adresses IP en tant que noms alternatifs de sujet (SANs) dans vos certificats TLS. Chaque méthode présente ses propres avantages en fonction de la configuration de votre réseau et de vos exigences en matière de sécurité. Cette documentation vous guidera à travers les deux options.

**Topics**
+ [Configuration du protocole TLS pour des connexions sécurisées au courtier EMQX sur Edge AWS IoT SiteWise](#configure-tls-emqx-broker)
+ [Testez la connexion du broker EMQX sur Edge AWS IoT SiteWise](#test-emqx-connection)
+ [Utilisez votre propre CA](#configure-tls-custom-ca)
+ [Ouvrez le port 8883 pour les connexions de pare-feu externes](#emqx-firewall)

## Configuration du protocole TLS pour des connexions sécurisées au courtier EMQX sur Edge AWS IoT SiteWise
<a name="configure-tls-emqx-broker"></a>

 AWS IoT Greengrass Génère par défaut un certificat de serveur TLS pour le courtier EMQX qui est signé par l'autorité de certification (CA) du périphérique principal. Pour plus d'informations, consultez [Connecter des appareils clients à un périphérique AWS IoT Greengrass Core avec un courtier MQTT](https://docs.aws.amazon.com/greengrass/v2/developerguide/connecting-to-mqtt.html).

### Récupérez le certificat TLS
<a name="configure-tls-retrieve-certificate"></a>

Pour obtenir le certificat CA, exécutez la commande suivante sur l'hôte de la passerelle :

------
#### [ Linux ]

Exécutez la commande suivante dans une session shell sur l'hôte de passerelle :

```
/greengrass/v2/bin/swe-emqx-cli cert
```

Cette commande affiche l'emplacement du certificat et imprime le contenu du certificat.

Vous pouvez également enregistrer le certificat dans un fichier à l'aide de cette commande :

```
/greengrass/v2/bin/swe-emqx-cli cert --output /path/to/certificate.pem
```

------
#### [ Windows ]

Exécutez la commande suivante dans une PowerShell session sur l'hôte de la passerelle :

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 cert
```

Cette commande affiche l'emplacement du certificat et imprime le contenu du certificat.

Vous pouvez également enregistrer le certificat dans un fichier à l'aide de cette commande :

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 cert --output C:\path\to\certificate.pem
```

La CLI localise automatiquement le certificat quel que soit le chemin exact sur votre système.

------

Copiez le contenu du fichier ca.pem dans l'application externe que vous connectez au broker. Enregistrez-le sous `BrokerCoreDeviceCA.pem`.

### Ajouter des names/IP adresses DNS personnalisées au certificat du serveur TLS
<a name="configure-tls-custom-dns-ip"></a>

Le nom alternatif du sujet (SAN) sur le certificat généré par AWS IoT Greengrass est`localhost`. Lors de l'établissement d'une connexion TLS depuis l'extérieur de l'hôte de la passerelle, l'étape de vérification TLS échoue car le nom d'hôte du courtier ne correspond pas au nom d'hôte figurant `localhost` sur le certificat du serveur.

Pour résoudre le problème de non-concordance des noms d'hôte, AWS IoT Greengrass propose deux méthodes de gestion des points de terminaison des appareils principaux. Cette section couvre les deux options. Pour des informations plus détaillées, consultez la section [Gérer les principaux points de terminaison des appareils](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-core-device-endpoints.html) dans le *Guide du AWS IoT Greengrass Version 2 développeur*.
+ Pour vous connecter au broker EMQX à l'aide de l'adresse IP de l'appareil principal, utilisez la section Découverte automatique des adresses IP.
+ Pour vous connecter au broker EMQX à l'aide d'un nom DNS au lieu d'une adresse IP, utilisez la section Gestion manuelle.

------
#### [ Automated IP discovery ]

Cette option permet à votre appareil principal de découvrir automatiquement son adresse IP et de l'ajouter en tant que nom alternatif du sujet (SAN) au certificat du courtier.

1. Ajoutez le `aws.greengrass.clientdevices.IPDetector` composant au déploiement de votre appareil principal.

1. Déployez les modifications sur votre appareil

1. Attendez que le déploiement soit terminé.

   Une fois le déploiement terminé, vous pouvez établir une connexion TLS sécurisée à l'aide de l'adresse IP du courtier.

   L'adresse IP est automatiquement ajoutée en tant que SAN au certificat du courtier.

------
#### [ Manual DNS and IP Configuration ]

Vous pouvez ajouter manuellement des noms DNS et des adresses IP en tant que noms alternatifs de sujet (SANs) à votre certificat TLS. Cette méthode est utile lorsque vous avez configuré un nom DNS pour l'hôte de votre passerelle.

**Important**  
Si vous utilisez le IPDetector composant, supprimez-le de votre déploiement avant de continuer. Le IPDetector composant remplace les configurations manuelles des points de terminaison.

**Pour configurer manuellement les points de terminaison**

1. <a name="sitewise-open-console"></a>Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation de gauche, choisissez **Edge gateway** dans la section **Edge**.

1. Choisissez la passerelle à configurer.

1. Dans la section de **configuration de la passerelle Edge**, choisissez l'URL de votre **appareil principal Greengrass**. La page de l'appareil principal s'affiche.

1. Choisissez l'onglet **Appareils clients**.

1. Choisissez **Gérer les points de terminaison.**

1. Dans la boîte de dialogue Gérer les points de terminaison, entrez le ou les noms DNS et les adresses IP que vous souhaitez ajouter. SANs Utilisez le port 8883.

1. Choisissez **Mettre à jour**.

Le certificat de serveur TLS du courtier est automatiquement mis à jour pour inclure vos nouveaux points de terminaison.

**Pour vérifier la mise à jour du certificat du serveur TLS sous Linux**

1. Démarrez une session shell sur votre hôte de passerelle.

   ```
   docker exec emqx openssl x509 -in ./data/cert.pem -text -noout | grep -A1 "Subject Alternative Name"
   ```

1. La commande renvoie un résultat similaire à ce qui suit :

   ```
   X509v3 Subject Alternative Name: 
   DNS:endpoint_you_added, DNS:localhost
   ```

1. Vérifiez que votre point de terminaison apparaît dans la liste des SANs.

**Pour vérifier la mise à jour du certificat du serveur TLS à l'aide de Windows**

1. Démarrez une session shell sur votre hôte de passerelle.

   ```
   (Get-PfxCertificate -FilePath "C:\greengrass\v2\work\aws.greengrass.clientdevices.mqtt.EMQX\v2\data\cert.pem").Extensions | Where-Object { $_.Oid.FriendlyName -eq "Subject Alternative Name" } | ForEach-Object { "Subject Alternative Name:", ($_.Format($true) -split "`n")[0..1] }
   ```

1. La commande renvoie un résultat similaire à ce qui suit :

   ```
   Subject Alternative Name:
   DNS Name=your-endpoint
   DNS Name=localhost
   ```

1. Vérifiez que le point de terminaison que vous avez ajouté figure dans la liste des SANs.

------

## Testez la connexion du broker EMQX sur Edge AWS IoT SiteWise
<a name="test-emqx-connection"></a>

Après avoir configuré votre broker EMQX avec des certificats TLS et des informations d'authentification, il est important de vérifier que votre configuration fonctionne correctement. Le test de la connexion permet de s'assurer que vos configurations de sécurité sont correctement mises en œuvre et que les clients peuvent établir avec succès des connexions chiffrées avec le courtier. Cette section explique comment tester votre connexion au courtier à l'aide du client d'interface de ligne de commande (CLI) Mosquitto, un outil client MQTT largement utilisé qui prend en charge le chiffrement et l'authentification TLS.

### Utiliser le client Mosquitto CLI pour tester la connexion du broker EMQX
<a name="test-emqx-connection-mosquitto"></a>

Au cours de cette étape, nous utiliserons le client CLI Mosquitto pour tester notre configuration et nous assurer que nous pouvons nous connecter avec succès au courtier en utilisant le nom d'utilisateur et le mot de passe que nous avons créés précédemment. Pour `BrokerCoreDeviceCA.pem` suivre les étapes décrites à l'étape 3 : Configuration du protocole TLS.

```
mosquitto_sub -h hostname|ip address \
    -p 8883 \
    -t "#" \
    -q 1 \
    -u username -P password \
    --cafile BrokerCoreDeviceCA.pem
```

**Note**  
Une erreur SSL:Verify peut s'afficher si l' hostname/IP adresse à laquelle vous vous connectez ne correspond pas au nom alternatif du sujet (SAN) figurant sur le certificat CA que vous transmettez au client. Reportez-vous à la section « Ajout d' names/IP adresses DNS personnalisées au certificat du serveur TLS » à l'étape 3 : Configuration du protocole TLS pour savoir comment obtenir un certificat avec le SAN approprié.

À ce stade, tous les utilisateurs peuvent publier et s'abonner à tous les sujets du courtier. Passez à [Configurer des règles d'autorisation pour AWS IoT SiteWise Edge dans EMQX](authorization-rules-emqx-broker.md).

## Utilisez votre propre CA
<a name="configure-tls-custom-ca"></a>

AWS IoT Greengrass explique comment configurer le composant d'authentification de votre appareil client pour utiliser votre propre autorité de certification (CA). Le composant d'authentification du dispositif client (`aws.greengrass.clientdevices.Auth`) authentifie les dispositifs clients et autorise les actions du dispositif client. Pour plus d'informations, consultez la section [Utilisation de votre propre autorité de certification](https://docs.aws.amazon.com/greengrass/v2/developerguide/connecting-to-mqtt.html#use-your-own-CA) dans le *Guide du AWS IoT Greengrass Version 2 développeur*.

Pour utiliser votre propre autorité de certification, ajoutez le `aws.greengrass.clientdevices.Auth` composant à votre déploiement afin de pouvoir spécifier une configuration personnalisée.

## Ouvrez le port 8883 pour les connexions de pare-feu externes
<a name="emqx-firewall"></a>

------
#### [ Linux ]

Dans la règle de pare-feu de votre hôte Linux, ajoutez une règle entrante pour le port 8883 afin d'autoriser les connexions entrantes provenant de l'extérieur de l'hôte de passerelle. Si des pare-feux sont en place, assurez-vous que les connexions TLS entrantes sur le port 8883 sont autorisées.

------
#### [ Windows ]

Dans la règle de pare-feu de votre Microsoft Windows hôte, ajoutez une règle entrante pour le port 8883 afin d'autoriser les connexions entrantes provenant de l'extérieur de l'hôte de la passerelle. Assurez-vous que la règle est une règle d'autorisation, de type port, spécifiant le port 8883. Vous pouvez le configurer en fonction de la configuration de votre réseau pour autoriser les connexions entre vos applications externes et le broker.

------

# Configurer des règles d'autorisation pour AWS IoT SiteWise Edge dans EMQX
<a name="authorization-rules-emqx-broker"></a>

EMQX prend en charge l'ajout de règles d'autorisation basées sur des identifiants tels que le nom d'utilisateur, l'adresse IP ou l'identifiant client. Cela est utile si vous souhaitez limiter le nombre d'applications externes se connectant à différentes opérations ou sujets.

**Topics**
+ [Configuration de l'autorisation à l'aide de la base de données intégrée sous Linux](add-auth-rules-database-emqx-broker-linux.md)
+ [Configuration de l'autorisation à l'aide de la base de données intégrée avec Windows](add-auth-rules-database-emqx-broker-windows.md)
+ [Mettre à jour la configuration de déploiement d'EMQX pour obtenir une autorisation](update-emqx-broker-authorization.md)
+ [Ajoutez des règles d'autorisation via le tableau de bord EMQX pour les utilisateurs](add-rules-emqx-broker.md)

# Configuration de l'autorisation à l'aide de la base de données intégrée sous Linux
<a name="add-auth-rules-database-emqx-broker-linux"></a>

Lorsque vous configurez des règles d'autorisation, il existe deux choix de configuration qui dépendent de la configuration de votre déploiement.
+ **Docker**— Si vous exécutez une Docker installation standard sansLitmus Edge, utilisez la configuration de la **passerelle Docker Bridge**. C'est généralement le cas lorsque vous n'avez déployé que AWS IoT SiteWise des composants.
+ **Litmus Edge**— Si vous l'avez Litmus Edge installé sur votre passerelle, utilisez la configuration du **Litmus Edgesous-réseau**.

**Note**  
Si vous configurez initialement la passerelle de Docker pont et que vous l'installez ultérieurementLitmus Edge, reconfigurez les règles d'autorisation à l'aide de l'option de Litmus Edge sous-réseau pour garantir une communication correcte entre tous les composants.

**Pour ajouter des règles d'autorisation de base**

1. Vérifiez que le broker EMQX est déployé et en cours d'exécution.

1. Démarrez une session shell sur votre hôte de passerelle.

------
#### [ Docker without Litmus Edge ]

   Pour une Docker installation standard sansLitmus Edge, exécutez :

   ```
   /greengrass/v2/bin/swe-emqx-cli acl init
   ```

------
#### [ Litmus Edge network subnet ]

   Si vous utilisezLitmus Edge, déterminez l'adresse IP du sous-réseau Litmus Edge :

   ```
   docker network inspect LitmusNetwork | grep IPAM -A9
   ```

   Notez la valeur du sous-réseau à partir de la sortie et exécutez la commande suivante. Remplacez `litmus_subnet_ip` par la valeur du sous-réseau de l'étape précédente.

   ```
   /greengrass/v2/bin/swe-emqx-cli acl init litmus_subnet_ip
   ```

------

   L'outil crée et applique automatiquement des règles d'autorisation pour autoriser les connexions entre l'adresse IP fournie et le courtier. Il permet d'accéder à tous les sujets. Cela inclut le collecteur IoT SiteWise OPC UA et l' SiteWise éditeur IoT.

1. Passez à [Mettre à jour la configuration de déploiement d'EMQX pour obtenir une autorisation](update-emqx-broker-authorization.md).

# Configuration de l'autorisation à l'aide de la base de données intégrée avec Windows
<a name="add-auth-rules-database-emqx-broker-windows"></a>

Cette section décrit la configuration des règles d'autorisation à l'aide de la base de données intégrée pour les déploiements Windows.

**Pour ajouter des règles d'autorisation de base**

1. Vérifiez que le broker EMQX est déployé et en cours d'exécution.

1. Exécutez l'outil AWS IoT SiteWise CLI EMQX : 

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 acl init
   ```

   L'outil crée et applique automatiquement des règles ACL autorisant les connexions entre localhost (127.0.0.1) et le broker. Il permet d'accéder à tous les sujets. Cela inclut le collecteur IoT SiteWise OPC UA et l' SiteWise éditeur IoT.

1. Passez à [Mettre à jour la configuration de déploiement d'EMQX pour obtenir une autorisation](update-emqx-broker-authorization.md).

# Mettre à jour la configuration de déploiement d'EMQX pour obtenir une autorisation
<a name="update-emqx-broker-authorization"></a>

**Pour mettre à jour la configuration de déploiement d'EMQX à des fins d'autorisation**

1. <a name="sitewise-open-console"></a>Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation de gauche, choisissez **Edge gateway** dans la section **Edge**.

1. Choisissez la passerelle à configurer.

1. Dans la section **Configuration de la passerelle Edge**, copiez la valeur **principale de votre appareil Greengrass**. Conservez-le pour une utilisation ultérieure.

1. Ouvrez la [AWS IoT console](https://console.aws.amazon.com/iot/).

1. **Dans le menu de navigation de gauche, dans la section **Gérer**, choisissez **Greengrass devices**, puis Deployments.**

1. Recherchez la valeur principale de l'appareil que vous avez enregistrée précédemment et cliquez sur ce lien pour ouvrir le déploiement.

1. Cliquez sur le bouton déroulant **Actions**, puis sur **Réviser**.

1. Lisez le message qui s'affiche, puis choisissez **Revise le déploiement**. La page **Spécifier la cible** apparaît.

1. Choisissez **Next** jusqu'à ce que vous atteigniez l'étape **Configurer les composants**.

1. Sélectionnez le bouton `aws.greengrass.clientdevices.mqtt.EMQX` radio.

1. Cliquez sur le bouton **Configurer le composant**. Une page de configuration s'affiche pour le composant.

1. Sous **Mise à jour de la configuration**, choisissez **Rétablir la configuration par défaut pour la version du composant : 2.\$1. **\$1.

1. Collez le contenu suivant dans la section **Configuration pour fusionner** en fonction de votre système d'exploitation.

------
#### [ Linux ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "deny",
               "sources": [
                   {
                       "type": "built_in_database"
                   },
                   {
                       "type": "file",
                       "path": "data/authz/acl.conf"
                   }
               ]
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "dockerOptions": "-p 8883:8883 -p 127.0.0.1:1883:1883 -p 127.0.0.1:18083:18083 -v emqx-data:/opt/emqx/data -e EMQX_NODE__NAME=emqx@local",
       "requiresPrivilege": "true"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "deny",
               "sources": [
                   {
                       "type": "built_in_database"
                   },
                   {
                       "type": "file",
                       "path": "C:\\greengrass\\v2\\work\\aws.greengrass.clientdevices.mqtt.EMQX\\v2\\data\\authz\\acl.conf"
                   }
               ]
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "requiresPrivilege": "true"
   }
   ```

------

1. Choisissez **Confirmer**.

1. Choisissez **Next** jusqu'à ce que vous atteigniez l'étape de **révision**.

1. Choisissez **Déployer**.

**Note**  
À partir de ce moment, vous ne pouvez pas modifier le fichier ACL pour mettre à jour les règles d'autorisation. Vous pouvez également procéder [Ajoutez des règles d'autorisation via le tableau de bord EMQX pour les utilisateurs](add-rules-emqx-broker.md) après un déploiement réussi.

# Ajoutez des règles d'autorisation via le tableau de bord EMQX pour les utilisateurs
<a name="add-rules-emqx-broker"></a>

Vous pouvez ajouter ou mettre à jour des règles d'autorisation à l'aide du tableau de bord EMQX ou de l'outil AWS IoT SiteWise EMQX CLI. L'outil AWS IoT SiteWise EMQX CLI gère les autorisations à l'aide de la base de données intégrée d'EMQX.

**Note**  
L'ajout de règles d'autorisation est une étape de configuration avancée qui nécessite de comprendre les modèles de sujets MQTT et le contrôle d'accès. Pour plus d'informations sur la création de règles d'autorisation à l'aide de la base de données intégrée d'EMQX, consultez la section [Utiliser une base de données intégrée](https://docs.emqx.com/en/emqx/latest/access-control/authz/mnesia.html) dans la documentation *EMQX*.

**Note**  
Les instructions relatives à EMQX fournies sont fournies à titre de référence uniquement. Étant donné que la documentation et les fonctionnalités d'EMQX peuvent changer au fil du temps et que nous ne conservons pas leur documentation, nous vous recommandons de consulter la [documentation officielle d'EMQX](https://docs.emqx.com/en/emqx/latest/) pour obtenir les informations les plus récentes.

------
#### [ EMQX dashboard ]

Cette procédure montre comment ajouter des règles d'autorisation sur le tableau de bord EMQX.

Le tableau de bord EMQX n'est accessible que depuis l'hôte de la passerelle. Si vous essayez de vous connecter depuis l'extérieur de l'hôte de la passerelle, vous ne pouvez pas accéder au tableau de bord.

**Pour ajouter des règles d'autorisation à l'aide du tableau de bord EMQX**

1. Assurez-vous que vous vous trouvez dans l'hôte de la passerelle.

1. Ouvrez une fenêtre de navigateur et rendez-vous sur [http://localhost:18083/](http://localhost:18083/).

1. Connectez-vous au tableau de bord EMQX. Cette procédure suppose que vous avez remplacé vos informations de connexion par défaut par celles de votre choix. Pour plus d'informations sur la configuration initiale, consultez[Activer l'authentification par nom d'utilisateur et mot de passe](configure-emqx-broker.md#emqx-broker-username-password-auth).

1. Choisissez l'icône en forme de bouclier, puis **Autorisation** dans le menu déroulant.

1. Cliquez sur le bouton **Autorisations** sur la ligne de **base de données intégrée**. 

1. Dans la section Autorisation de base de données intégrée, ajoutez ou mettez à jour les règles d'autorisation utilisateur en fonction des besoins de votre entreprise. Pour plus d'informations sur la création de règles, consultez la section [Utiliser une base de données intégrée](https://docs.emqx.com/en/emqx/latest/access-control/authz/mnesia.html) dans la documentation *EMQX*.

------
#### [ AWS IoT SiteWise CLI tool using Linux ]

**Pour gérer les règles d'autorisation à l'aide de l'outil AWS IoT SiteWise CLI EMQX sous Linux :**
+ Ajoutez des règles d'autorisation pour un utilisateur en utilisant le format suivant :

  ```
  /greengrass/v2/bin/swe-emqx-cli auth add your-username your-action your-permission your-topic [your-action-permission-topic]
  ```

**Example Ajouter des règles d'autorisation pour un utilisateur**  
Cet exemple montre comment ajouter des règles pour un utilisateur nommé `system1` :  

```
/greengrass/v2/bin/swe-emqx-cli auth add system1 \
    publish allow "sensors/#" \
    subscribe allow "control/#" \
    all deny "#"
```

**Example : Afficher les règles d'autorisation d'un utilisateur**  
Pour consulter les règles d'autorisation des `system1` utilisateurs, exécutez la commande suivante :  

```
/greengrass/v2/bin/swe-emqx-cli auth list system1
```

**Example : Afficher toutes les règles d'autorisation existantes**  
Pour afficher toutes les règles d'autorisation dont vous disposez actuellement, exécutez la commande suivante :  

```
/greengrass/v2/bin/swe-emqx-cli auth list
```

**Example : Supprimer toutes les règles d'autorisation pour un utilisateur**  
Pour supprimer toutes les règles d'autorisation appliquées à un utilisateur en particulier, exécutez la commande suivante :  

```
/greengrass/v2/bin/swe-emqx-cli auth delete system1
```
Vous êtes invité à confirmer la suppression.

------
#### [ AWS IoT SiteWise CLI tool using Windows ]

**Pour gérer les règles d'autorisation à l'aide de l'outil AWS IoT SiteWise CLI EMQX dans : Windows PowerShell**
+ Ajoutez des règles d'autorisation pour un utilisateur en utilisant le format suivant :

  ```
  C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth add your-username your-action your-permission your-topic [your-action-permission-topic]
  ```

**Example : Ajouter des règles d'autorisation pour un utilisateur**  
Cet exemple montre comment ajouter des règles pour un utilisateur nommé `system1` :  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth add system1 `
    publish allow "sensors/#" `
    subscribe allow "control/#" `
    all deny "#"
```

**Example : Afficher les règles d'autorisation d'un utilisateur**  
Pour consulter les règles d'autorisation des `system1` utilisateurs, exécutez la commande suivante :  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth list system1
```

**Example : Afficher toutes les règles d'autorisation existantes**  
Pour afficher toutes les règles d'autorisation dont vous disposez actuellement, exécutez la commande suivante :  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth list
```

**Example : Supprimer toutes les règles d'autorisation pour un utilisateur**  
Pour supprimer toutes les règles d'autorisation appliquées à un utilisateur en particulier, exécutez la commande suivante :  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth delete system1
```
Vous êtes invité à confirmer la suppression.

------

# Traitez et visualisez les données avec SiteWise Edge et les outils open source
<a name="open-source-edge-integrations"></a>

Configurez les passerelles AWS IoT SiteWise Edge compatibles MQTT avec des outils open source pour le traitement et la visualisation locaux afin d'améliorer vos capacités de gestion des données industrielles.

Avec SiteWise Edge, vous pouvez créer un pipeline de traitement de données local à l'aide d'outils open source externes. [Utilisez [Node-RED®](https://nodered.org/) pour stocker des données de séries chronologiques avec [InfluxDB® et surveiller les opérations via les tableaux de bord Grafana®](https://www.influxdata.com/lp/influxdb-database/).](https://grafana.com/)

Node-RED traite et transforme vos flux de données, tandis qu'InfluxDB fournit un stockage de données chronologiques. Grafana affiche vos données opérationnelles en temps réel. Utilisez ces outils avec SiteWise Edge pour synchroniser les données entre votre environnement local et le AWS Cloud, en vous fournissant à la fois des informations locales immédiates et des capacités d'analyse basées sur le cloud à long terme.

**Note**  
Node-RED®, InfluxDB® et Grafana® ne sont ni des fournisseurs ni des fournisseurs d'Edge. SiteWise 

![\[Schéma illustrant quelques sources de données et le simulateur de turbine se connectant à l'EMQX Broker à publier. Ensuite, le broker EMQX s'abonne à la AWS IoT SiteWise passerelle et à Node-RED. Node-RED alimente InfluxDB, puis Influx DB alimente le tableau de bord Grafana.\]](http://docs.aws.amazon.com/fr_fr/iot-sitewise/latest/userguide/images/gateway-open-source-overview.png)


**Note**  
Dans ce guide, nous utilisons la version open source de [Grafana](https://grafana.com/) SiteWise for Edge par opposition au service [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html).

## Options de déploiement
<a name="deployment-options"></a>

Vous pouvez déployer cette solution en utilisant l'une des deux approches suivantes. Avec une configuration Microsoft Windows manuelle, vous contrôlez la configuration des composants et leur intégration à votre infrastructure. AvecLinux, vous pouvez utiliser Docker pour déployer des composants préconfigurés dans des conteneurs.

Choisissez la méthode qui répond à vos exigences opérationnelles.
+ [Configuration manuelle des intégrations open source (Windows)](windows-manual-setup.md)— Pour les configurations personnalisées ou l'infrastructure existante
+ [Configurer des intégrations open source avec Docker (Linux)](linux-docker-setup.md)— Pour un déploiement rapide avec des composants préconfigurés

## Aperçu d'un exemple de parc éolien
<a name="open-source-example-overview"></a>

Ce guide utilise un exemple de parc éolien pour montrer comment surveiller la vitesse du vent pour une éolienne installée sur un parc éolien. Ce scénario pratique illustre les besoins courants de surveillance industrielle pour lesquels la visibilité locale et basée sur le cloud est précieuse pour l'efficacité opérationnelle.

Grâce à cette intégration, vous pouvez :
+ Collectez des données provenant d'équipements industriels à l'aide d'une passerelle AWS IoT SiteWise Edge
+ Traitez les données localement avec Node-RED, InfluxDB et Grafana
+ Stockez les données localement à l'aide d'InfluxDB
+ Surveillez les données en temps réel à l'aide des tableaux de bord Grafana

Tout au long de ce guide, nous prenons l'exemple d'un parc éolien. Nous utilisons Node-RED pour simuler une turbine qui génère des données sur la vitesse du vent. Node-RED traduit la charge utile des données, publie les données sur le broker SiteWise Edge MQTT, s'abonne pour recevoir des données du courtier et stocke les données localement dans InfluxDB. Cette approche garantit que toutes les données opérationnelles sont disponibles à la fois localement pour un accès immédiat et dans le cloud pour des analyses supplémentaires. En mettant en œuvre ce modèle, vous gagnez en résilience face aux perturbations du réseau tout en conservant la capacité d'effectuer des analyses avancées dans le AWS Cloud. Grafana se connecte à InfluxDB pour une surveillance locale, offrant aux opérateurs une visibilité en temps réel sur les métriques sans dépendance au cloud. Une passerelle SiteWise Edge compatible MQTT se connecte au même courtier MQTT auquel envoyer des données AWS IoT SiteWise, créant ainsi un pont entre vos opérations de périphérie et les services basés sur le cloud.

Vous pouvez utiliser vos propres données et configurations pour créer un flux de travail similaire adapté à vos exigences industrielles spécifiques, que vous surveilliez des équipements de fabrication, des infrastructures utilitaires ou d'autres actifs industriels.

## Exigences relatives aux intégrations open source
<a name="open-source-requirements"></a>

Avant de mettre en œuvre des intégrations open source avec SiteWise Edge, assurez-vous que votre environnement répond aux exigences requises.
+ **Configuration matérielle requise** : le matériel de votre passerelle doit répondre aux exigences des passerelles SiteWise Edge. Pour plus d'informations, voir [AWS IoT SiteWise Exigences relatives à la passerelle auto-hébergée Edge](configure-gateway-ggv2.md) pour les passerelles MQTT compatibles avec MQTT, les passerelles V3 et. [Exigences relatives à l'application AWS IoT SiteWise Edge](siemens-app-gateway-requirements.md)
**Important**  
[Lorsque vous déployez des composants open source supplémentaires, assurez-vous que votre matériel répond aux exigences d'[InfluxDB](https://docs.influxdata.com/influxdb/v2/install/), [Node-RED](https://nodered.org/docs/getting-started/) et Grafana.](https://grafana.com/docs/grafana/latest/setup-grafana/installation/)
+ La configuration de votre réseau doit prendre en charge à la fois la communication locale entre les composants et la connectivité cloud pour SiteWise Edge.
+ Tous les services doivent être exécutés sur le même hôte.

## Considérations sur la sécurité
<a name="open-source-security-considerations"></a>

Nous vous recommandons de chiffrer toutes les communications entre les composants, en particulier lorsque vous accédez à des interfaces depuis des réseaux non locaux. Mettez en œuvre des contrôles d'accès appropriés pour chaque composant et suivez les AWS meilleures pratiques en matière de configuration de la passerelle AWS IoT SiteWise Edge et de sécurité des AWS comptes.

**Environnement de développement**  
Ce guide montre que Node-RED, InfluxDB et Grafana s'exécutent et sont accessibles localement sur un hôte de passerelle. Pour les déploiements de production nécessitant un accès externe, mettez en œuvre des mesures de sécurité, notamment le chiffrement, l'authentification et l'autorisation TLS. Respectez les meilleures pratiques de sécurité de chaque application.

**Logiciels tiers**  
Cette solution utilise des logiciels tiers non gérés par AWS, notamment InfluxDB, Node-RED, Grafana et le plugin. `node-red-contrib-influxdb` Avant le déploiement, assurez-vous que ces composants sont conformes aux exigences de sécurité, aux normes de conformité et aux politiques de gouvernance de votre entreprise.

**Important**  
Ce guide fait référence à des logiciels tiers qui ne sont ni détenus ni gérés par AWS. Avant la mise en œuvre, assurez-vous que tous les composants répondent à vos exigences en matière de sécurité, de conformité et de gouvernance. Maintenez tous les logiciels à jour avec les derniers correctifs de sécurité et suivez les meilleures pratiques pour sécuriser votre déploiement en périphérie.  
 InfluxDB, Node-red, Grafana ne sont ni des fournisseurs ni des fournisseurs d'Edge. SiteWise 

## Autres considérations
<a name="open-source-other-considerations"></a>

Tenez compte de ces facteurs supplémentaires lors de la mise en œuvre d'intégrations open source avec SiteWise Edge.
+ Utilisez les dernières versions de tous les services, outils et composants.
+ Filtrez et agrégez les données localement avant leur transmission dans le cloud afin de réduire les coûts d'ingestion de AWS IoT SiteWise données. Configurez les périodes de conservation des données appropriées dans InfluxDB et dimensionnez correctement votre matériel de passerelle. Pour en savoir plus, consultez [Pricing AWS IoT SiteWise](https://aws.amazon.com/iot-sitewise/pricing/) (Tarification).
+ Mettez en œuvre des procédures de sauvegarde régulières pour toutes les données.
+ Surveillez l'utilisation des ressources sur votre passerelle et configurez les limites de ressources appropriées pour chaque composant. Mettez en œuvre des politiques de conservation des données dans InfluxDB pour gérer l'utilisation du disque.

# Configuration manuelle des intégrations open source (Windows)
<a name="windows-manual-setup"></a>

Utilisez ce guide pour créer manuellement un seau de séries chronologiques pour les données de vitesse du vent qui se connecte à Grafana® et à Node-RED®.

 Installez et configurez manuellement Node-RED, InfluxDB® et Grafana pour contrôler la configuration de votre déploiement. Microsoft Windows Vous pouvez stocker et gérer les données de séries chronologiques de vos appareils à l'aide d'InfluxDB.

## Prérequis de configuration manuelle
<a name="windows-open-source-prerequisites"></a>

Avant de commencer, remplissez les conditions suivantes :

**Note**  
Exécutez tous les services (SiteWise Edge, InfluxDB, Node-red et Grafana) sur le même hôte.
+ Installez une passerelle V3 compatible MQTT. Pour de plus amples informations, veuillez consulter [Passerelles V3 compatibles MQTT pour Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md).
+ Installez et exécutez ces services localement :
  + InfluxDB OSS v2. Pour les étapes d'installation, voir [Installer InfluxDB](https://docs.influxdata.com/influxdb/v2/install/).
  + Nœud rouge. Pour les étapes d'installation, voir [Installer Node-RED localement.](https://nodered.org/docs/getting-started/local)
  + Grafana. Pour les étapes d'installation, voir [Installer Grafana](https://grafana.com/docs/grafana/latest/setup-grafana/installation/).

# Configurer le stockage local avec InfluxDB
<a name="windows-influxdb-setup"></a>

Avec InfluxDB®, vous pouvez stocker des données de séries chronologiques à partir de vos appareils localement. L'objectif de la capacité de stockage local est de maintenir la visibilité opérationnelle en cas de perturbation du réseau et de réduire le temps de latence pour les applications critiques. Vous pouvez effectuer des analyses et des visualisations à la périphérie tout en ayant la possibilité de transférer les données de manière sélective vers le cloud.

Dans cette section, vous allez créer un bucket de séries chronologiques pour les données de vitesse du vent des éoliennes et générer un jeton d'API pour la connectivité Grafana® et Node-RED®. Le bucket InfluxDB sert de conteneur de stockage dédié pour vos données de séries chronologiques, comme une base de données dans les systèmes traditionnels. Le jeton API permet un accès programmatique sécurisé à vos données.

**Pour configurer InfluxDB**

1. Après avoir effectué les étapes préalables et vérifié que tous les outils s'exécutent sur le même hôte, ouvrez votre navigateur Web et accédez à [http://127.0.0.1:8086](http://127.0.0.1:8086).

1. (Facultatif) Activez le chiffrement TLS pour améliorer la sécurité. Pour plus d'informations, voir [Activer le chiffrement TLS](https://docs.influxdata.com/influxdb/v2/admin/security/enable-tls/) dans le *InfluxData Documentation*.

1. Créez un bucket InfluxDB de série chronologique pour stocker les données de Node-RED. Le bucket servira de conteneur dédié aux données de votre parc éolien, ce qui vous permettra d'organiser et de gérer les politiques de rétention spécifiques à cet ensemble de données. Pour plus d'informations, consultez la section [Gérer les compartiments](https://docs.influxdata.com/influxdb/v2/admin/buckets/) dans le *InfluxData Documentation*.

1. (Facultatif) Configurez la période de conservation des données pour votre emplacement périphérique. La définition de périodes de conservation appropriées permet de gérer efficacement les ressources de stockage en supprimant automatiquement les anciennes données qui ne sont plus nécessaires aux opérations locales.

   Pour plus d'informations sur la conservation des données, voir [Conservation des données dans InfluxDB](https://docs.influxdata.com/influxdb/v2/reference/internals/data-retention/) dans le. *InfluxData Documentation*

1. Générez un jeton d'API pour le bucket. Ce jeton permettra une communication sécurisée entre InfluxDB et d'autres composants tels que Node-RED et Grafana. Ainsi, seuls les services autorisés peuvent lire ou écrire dans votre magasin de données. Pour plus d'informations, consultez la section [Créer un jeton](https://docs.influxdata.com/influxdb/cloud/admin/tokens/create-token/) dans le *InfluxData Documentation*.

Une fois ces étapes terminées, vous pouvez stocker les données de séries chronologiques dans votre instance InfluxDB, fournissant ainsi une base pour la persistance et l'analyse des données locales dans votre environnement périphérique.

# Configurer les flux Node-RED pour AWS IoT SiteWise l'intégration des données
<a name="windows-nodered-config"></a>

Avec Node-RED®, vous pouvez implémenter deux flux pour gérer les données entre vos appareils et. AWS IoT SiteWise Ces flux fonctionnent ensemble pour créer une solution complète de gestion des données qui gère à la fois les flux de données locaux et cloud.
+ **Flux de publication des données** : publie dans le cloud. Le flux de publication des données envoie des données à AWS IoT SiteWise. Ce flux simule un dispositif de turbine en générant des données de capteur, en les traduisant au AWS IoT SiteWise format et en les publiant sur le broker SiteWise Edge MQTT. Cela vous permet de tirer parti des capacités AWS IoT SiteWise du cloud pour le stockage, l'analyse et l'intégration avec d'autres AWS services.

  Pour de plus amples informations, veuillez consulter [Configuration du flux de publication des données](windows-nodered-data-publish-flow.md).
+ **Flux de rétention des données** — Stocke les données à la périphérie. Le flux de rétention des données s'abonne au broker SiteWise Edge MQTT pour recevoir les données, les traduire au format InfluxDB® et les stocker localement à des fins de surveillance. Ce stockage local fournit un accès immédiat aux données opérationnelles, réduit le temps de latence pour les applications critiques et garantit la continuité en cas de perturbation du réseau.

  Pour de plus amples informations, veuillez consulter [Configuration du flux de conservation des données](windows-nodered-data-retention-flow.md).

Ces deux flux fonctionnent ensemble pour garantir que les données sont à la fois envoyées AWS IoT SiteWise et stockées localement pour un accès immédiat.

[Pour accéder à votre console Node-RED, rendez-vous sur http://127.0.0.1:1880.](http://127.0.0.1:1880) Pour plus d'informations sur l'activation du protocole TLS, consultez la section [Activer le chiffrement TLS.](https://docs.influxdata.com/influxdb/v2/admin/security/enable-tls/)

# Configuration du flux de publication des données
<a name="windows-nodered-data-publish-flow"></a>

Le flux de publication des données utilise trois nœuds pour créer un pipeline qui envoie vos données industrielles vers le cloud. Ce flux est essentiel pour permettre l'analyse basée sur le cloud, le stockage à long terme et l'intégration avec d'autres AWS services. Tout d'abord, les données de l'appareil simulé sont envoyées au broker SiteWise Edge MQTT. La passerelle récupère les données auprès du courtier, ce qui permet de les transmettre au AWS IoT SiteWise cloud, où vous pouvez tirer parti de puissantes fonctionnalités d'analyse et de visualisation.
+ **Entrée de données** - Reçoit les données de l'appareil à partir de votre équipement industriel ou de vos simulateurs
+ **Traducteur de données pour AWS IoT SiteWise** : traduit les données au AWS IoT SiteWise format pour garantir la compatibilité avec la passerelle SiteWise Edge
+ **Éditeur MQTT** : publie les données sur le courtier SiteWise Edge MQTT, les mettant à la disposition des consommateurs locaux et du cloud

![\[Schéma illustrant le flux de publication de données Node-RED. Il envoie les données de l'appareil simulées au courtier SiteWise Edge MQTT pour qu'elles soient récupérées par SiteWise Edge Gateway, puis sur le AWS IoT SiteWise cloud.\]](http://docs.aws.amazon.com/fr_fr/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-publish-flow.png)


## Configuration du nœud de saisie de données
<a name="windows-nodered-data-input-config"></a>

Dans cet exemple, le nœud de saisie de données utilise un dispositif d'éolienne simulé qui génère des données sur la vitesse du vent. Ce nœud sert de point d'entrée pour vos données industrielles, qu'elles proviennent de sources simulées (comme dans notre exemple) ou d'équipements industriels réels dans des environnements de production.

Nous utilisons un format JSON personnalisé pour la charge utile des données afin de fournir une structure standardisée qui fonctionne efficacement avec les outils de traitement locaux et le service AWS IoT SiteWise cloud. Ce format inclut des métadonnées essentielles telles que les horodatages et les indicateurs de qualité, ainsi que les valeurs de mesure réelles, permettant une gestion complète des données et un suivi de la qualité tout au long de votre pipeline. Importez le nœud d'injection pour recevoir des données simulées dans ce format JSON standardisé avec des horodatages, des indicateurs de qualité et des valeurs.

*Pour plus d'informations sur le nœud d'injection Node-RED, consultez la section [Inject](https://nodered.org/docs/user-guide/nodes#inject) de la Node-RED documentation.*

Le simulateur de turbine génère des données sur la vitesse du vent chaque seconde dans ce format JSON standardisé :

**Example : Charge utile de données sur les turbines**  

```
{
    name: string,         // Property name/identifier
    timestamp: number,    // Epoch time in nanoseconds
    quality: "GOOD" | "UNCERTAIN" | "BAD",
    value: number | string | boolean
}
```

Ce format présente plusieurs avantages :
+ Le `name` champ identifie la propriété ou la mesure spécifique, ce qui vous permet de suivre plusieurs points de données à partir du même appareil
+ La valeur `timestamp` en nanosecondes garantit un suivi précis du temps pour une analyse historique précise
+ L'`quality`indicateur vous aide à filtrer et à gérer les données en fonction de leur fiabilité
+ Le `value` champ flexible prend en charge différents types de données pour s'adapter aux différentes sorties de capteurs

**Example : Nœud d'injection d'un simulateur de turbine**  

```
[
    {
        "id": "string",
        "type": "inject",
        "z": "string",
        "name": "Turbine Simulator",
        "props": [
            {
                "p": "payload.timestamp",
                "v": "",
                "vt": "date"
            },
            {
                "p": "payload.quality",
                "v": "GOOD",
                "vt": "str"
            },
            {
                "p": "payload.value",
                "v": "$random()",
                "vt": "jsonata"
            },
            {
                "p": "payload.name",
                "v": "/Renton/WindFarm/Turbine/WindSpeed",
                "vt": "str"
            }
        ],
        "repeat": "1",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "x": 270,
        "y": 200,
        "wires": [
            [
                "string"
            ]
        ]
    }
]
```

## Configuration d'un nœud pour la traduction des données
<a name="windows-nodered-sitewiseise-translator-config"></a>

La passerelle SiteWise Edge nécessite des données dans un format spécifique pour garantir la compatibilité avec AWS IoT SiteWise le cloud. Le nœud de traduction est un composant important qui convertit vos données d'entrée au format de AWS IoT SiteWise charge utile requis. Cette étape de traduction garantit que vos données industrielles peuvent être correctement traitées, stockées et analysées ultérieurement dans l'environnement AWS IoT SiteWise cloud.

En normalisant le format des données à ce stade, vous permettez l'intégration entre vos appareils périphériques et le service cloud, où vous pouvez utiliser les fonctionnalités de modélisation, d'analyse et de visualisation des actifs. Utilisez cette structure :

**Example : Structure de charge utile pour l'analyse des données SiteWise Edge**  

```
{
  "propertyAlias": "string",  
  "propertyValues": [
    {
      "value": { 
          "booleanValue": boolean, 
          "doubleValue": number, 
          "integerValue": number,
          "stringValue": "string" 
     },
      "timestamp": {
          "timeInSeconds": number,
          "offsetInNanos": number
      },
      "quality": "GOOD" | "UNCERTAIN" | "BAD",
  }]
}
```

**Note**  
Faites correspondre le `propertyAlias` à votre hiérarchie de sujets MQTT (par exemple,`/Renton/WindFarm/Turbine/WindSpeed`). Cela garantit que vos données sont correctement associées à la propriété d'actif appropriée dans AWS IoT SiteWise. Pour plus d'informations, consultez le concept « Alias de flux de données » dans[AWS IoT SiteWise concepts](concept-overview.md). 

1. Importez le nœud de fonction d'exemple pour la traduction de AWS IoT SiteWise la charge utile. Cette fonction gère la conversion de votre format d'entrée standardisé vers un format AWS IoT SiteWise compatible, garantissant ainsi un formatage d'horodatage, des indicateurs de qualité et une saisie de valeur appropriés.

   ```
   [
       {
           "id": "string",
           "type": "function",
           "z": "string",
           "name": "Translate to SiteWise payload",
           "func": "let input = msg.payload;\nlet output = {};\n\noutput[\"propertyAlias\"] = input.name;\n\nlet propertyVal = {}\n\nlet timeInSeconds = Math.floor(input.timestamp / 1000);\nlet offsetInNanos = (input.timestamp % 1000) * 1000000;\n\npropertyVal[\"timestamp\"] = {\n    \"timeInSeconds\": timeInSeconds,\n    \"offsetInNanos\": offsetInNanos,\n};\n\npropertyVal[\"quality\"] = input.quality\n\nlet typeNameConverter = {\n    \"number\": (x) => Number.isInteger(x) ? \"integerValue\" : \"doubleValue\",\n    \"boolean\": (x) => \"booleanValue\",\n    \"string\": (x) => \"stringValue\", \n}\nlet typeName = typeNameConverter[typeof input.value](input.value)\npropertyVal[\"value\"] = {}\npropertyVal[\"value\"][typeName] = input.value;\n\noutput[\"propertyValues\"] = [propertyVal]\n\nreturn {\n    payload: JSON.stringify(output)\n};",
           "outputs": 1,
           "timeout": "",
           "noerr": 0,
           "initialize": "",
           "finalize": "",
           "libs": [],
           "x": 530,
           "y": 200,
           "wires": [
               [
                   "string"
               ]
           ]
       }
   ]
   ```

1. Vérifiez que le JavaScript code traduit correctement les données de vitesse du vent. La fonction exécute plusieurs tâches importantes :
   + Extrait le nom de la propriété de l'entrée et le définit comme PropertyAlias
   + Convertit l'horodatage en millisecondes au format requis en secondes et nanosecondes
   + Préserve l'indicateur de qualité pour le suivi de la fiabilité des données
   + Détecte automatiquement le type de valeur et le formate en fonction des AWS IoT SiteWise besoins

1. Connectez le nœud à votre flux, en le liant entre le nœud d'entrée de données et l'éditeur MQTT.

Pour obtenir des conseils sur la rédaction d'une fonction spécifique aux besoins de votre entreprise, consultez la section [Fonctions d'écriture](https://nodered.org/docs/user-guide/writing-functions) dans la *Node-REDdocumentation*

## Configuration de l'éditeur MQTT
<a name="windows-nodered-mqtt-publisher-config"></a>

Après la traduction, les données sont prêtes à être publiées sur le broker SiteWise Edge MQTT.

Configurez l'éditeur MQTT avec les paramètres suivants pour envoyer des données au courtier SiteWise Edge MQTT :

**Pour importer le nœud MQTT sortant**

1. Importez un nœud de configuration MQTT en utilisant`"type": "mqtt out"`. Les nœuds de sortie MQTT vous permettent de partager la configuration d'un broker.

1. Entrez des paires clé-valeur pour les informations relatives à la connexion au courtier MQTT et au routage des messages.

Importez le `mqtt out` nœud d'exemple.

**Example**  

```
[
    {
        "id": "string",
        "type": "mqtt out",
        "z": "string",
        "name": "Publish to MQTT broker",
        "topic": "/Renton/WindFarm/Turbine/WindSpeed",
        "qos": "1",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "string",
        "x": 830,
        "y": 200,
        "wires": []
    },
    {
        "id": "string",
        "type": "mqtt-broker",
        "name": "emqx",
        "broker": "127.0.0.1",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "5",
        "keepalive": 15,
        "cleansession": true,
        "autoUnsubscribe": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]
```

L'exemple de nœud de sortie MQTT crée la connexion MQTT avec les informations suivantes :
+ Serveur : `127.0.0.1`
+ Port : `1883`
+ Protocole : `MQTT V5`

Le nœud de sortie MQTT configure ensuite le routage des messages avec les informations suivantes :
+ Sujet: `/Renton/WindFarm/Turbine/WindSpeed`
+ QoS : `1`

## Déployer et vérifier les nœuds
<a name="windows-verify-deployment"></a>

Après avoir configuré les trois nœuds du flux de publication des données, procédez comme suit pour déployer le flux et vérifier que les données sont correctement transmises à AWS IoT SiteWise

**Pour déployer et vérifier les connexions**

1. Connectez les trois nœuds comme indiqué dans le flux de publication des données.  
![\[Data publish flow diagram showing input from turbine simulator to AWS IoT SiteWise to MQTT broker.\]](http://docs.aws.amazon.com/fr_fr/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-publish-flow.png)

1. Choisissez **Déployer** pour appliquer toutes les modifications de connexion aux nœuds.

1. Accédez à la [AWS IoT SiteWise console](https://console.aws.amazon.com/iotsitewise/) et choisissez **Data streams**.

1. Assurez-vous que le **préfixe Alias** est sélectionné dans le menu déroulant. Recherchez ensuite l'`/Renton/WindFarm/Turbine/WindSpeed`alias.

Si vous voyez le bon alias dans votre recherche, cela signifie que vous avez déployé le flux et vérifié la transmission des données.

# Configuration du flux de conservation des données
<a name="windows-nodered-data-retention-flow"></a>

Le flux de rétention des données peut être utilisé pour maintenir la visibilité opérationnelle à la périphérie. Cela est utile lors de perturbations du réseau ou lorsque vous avez besoin d'un accès immédiat à vos données. Ce flux s'abonne au broker MQTT pour recevoir les données de l'appareil, les convertit au format InfluxDB® et les stocke localement. En mettant en œuvre ce flux, vous créez un magasin de données local résilient auquel les opérateurs peuvent accéder sans dépendre du cloud, ce qui permet une surveillance en temps réel et une prise de décision à la périphérie.

Le flux se compose de trois éléments clés qui fonctionnent ensemble pour garantir que vos données sont correctement capturées et stockées :
+ **Client d'abonnement MQTT** - Reçoit les données du courtier, ce qui vous permet de capturer toutes les données industrielles pertinentes
+ **Translateur InfluxDB** - Convertit la AWS IoT SiteWise charge utile au format InfluxDB, préparant les données pour un stockage efficace des séries chronologiques
+ **Rédacteur InfluxDB** - Gère le stockage local, garantissant la persistance et la disponibilité des données pour les applications locales

![\[Flux de conservation des données Node-Red\]](http://docs.aws.amazon.com/fr_fr/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-data-retention.png)


## Configuration du client d'abonnement MQTT
<a name="windows-nodered-mqtt-subscriber"></a>
+ Configurez le client d'abonnement MQTT dans Node-RED pour recevoir les données du courtier MQTT EMQX en AWS IoT SiteWise important l'exemple ci-dessous.  
**Example : MQTT dans le nœud**  

  ```
  [
      {
          "id": "string",
          "type": "mqtt in",
          "z": "string",
          "name": "Subscribe to MQTT broker",
          "topic": "/Renton/WindFarm/Turbine/WindSpeed",
          "qos": "1",
          "datatype": "auto-detect",
          "broker": "string",
          "nl": false,
          "rap": true,
          "rh": 0,
          "inputs": 0,
          "x": 290,
          "y": 340,
          "wires": [
              [
                  "string"
              ]
          ]
      },
      {
          "id": "string",
          "type": "mqtt-broker",
          "name": "emqx",
          "broker": "127.0.0.1",
          "port": "1883",
          "clientid": "",
          "autoConnect": true,
          "usetls": false,
          "protocolVersion": "5",
          "keepalive": 15,
          "cleansession": true,
          "autoUnsubscribe": true,
          "birthTopic": "",
          "birthQos": "0",
          "birthPayload": "",
          "birthMsg": {},
          "closeTopic": "",
          "closePayload": "",
          "closeMsg": {},
          "willTopic": "",
          "willQos": "0",
          "willPayload": "",
          "willMsg": {},
          "userProps": "",
          "sessionExpiry": ""
      }
  ]
  ```

Cet abonnement garantit que toutes les données pertinentes publiées auprès du courtier sont capturées pour un stockage local, fournissant ainsi un enregistrement complet de vos opérations industrielles. Le nœud utilise les mêmes paramètres de connexion MQTT que la [Configuration de l'éditeur MQTT](windows-nodered-data-publish-flow.md#windows-nodered-mqtt-publisher-config) section, avec les paramètres d'abonnement suivants :
+ Sujet — `/Renton/WindFarm/Turbine/WindSpeed`
+ QoS — `1`

Pour plus d'informations, consultez la section [Connect to an MQTT Broker](https://cookbook.nodered.org/mqtt/connect-to-broker) dans la *Node-REDdocumentation*.

## Configurer le traducteur InfluxDB
<a name="windows-nodered-influxdb-translator"></a>

InfluxDB organise les données à l'aide de [balises](https://docs.influxdata.com/influxdb/v1/concepts/glossary/#tag) pour l'indexation et de [champs](https://docs.influxdata.com/influxdb/v1/concepts/glossary/#field) pour les valeurs. Cette organisation optimise les performances des requêtes et l'efficacité du stockage des données chronologiques. Importez l'exemple de nœud de fonction qui contient le JavaScript code pour convertir la AWS IoT SiteWise charge utile au format InfluxDB. Le traducteur divise les propriétés en deux groupes :
+ Tags — Propriétés de qualité et de nom pour une indexation efficace
+ Champs — Horodatage (en millisecondes depuis l'époque) et valeur

**Example : Nœud de fonction permettant de traduire en une charge utile InfluxDB**  

```
[
    {
        "id": "string",
        "type": "function",
        "z": "string",
        "name": "Translate to InfluxDB payload",
        "func": "let data = msg.payload;\n\nlet timeInSeconds = data.propertyValues[0].timestamp.timeInSeconds;\nlet offsetInNanos = data.propertyValues[0].timestamp.offsetInNanos;\nlet timestampInMilliseconds = (timeInSeconds * 1000) + (offsetInNanos / 1000000);\n\nmsg.payload = [\n    {\n        \"timestamp(milliseconds_since_epoch)\": timestampInMilliseconds,\n        \"value\": data.propertyValues[0].value.doubleValue\n    },\n    {\n        \"name\": data.propertyAlias,\n        \"quality\": data.propertyValues[0].quality\n    }\n]\n\nreturn msg",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 340,
        "wires": [
            [
                "string"
            ]
        ]
    }
]
```

Pour des options de configuration supplémentaires, consultez [node-red-contrib-influxdb](https://github.com/mblackstock/node-red-contrib-influxdb)le référentiel Node-RED. GitHub 

## Configurer le rédacteur InfluxDB
<a name="windows-nodered-influxdb-writer"></a>

Le nœud d'écriture InfluxDB est le dernier composant de votre flux de rétention de données, chargé de stocker vos données industrielles dans la base de données InfluxDB locale. Ce stockage local est important pour maintenir la visibilité opérationnelle en cas de perturbation du réseau et pour fournir un accès immédiat aux données pour les applications critiques.

1. Installez le node-red-contrib-influxdb package via l'option Gérer la palette. Ce paquet fournit les nœuds nécessaires pour connecter Node-RED à InfluxDB.

1. Ajoutez un nœud de sortie InfluxDB à votre flux. Ce nœud gérera l'écriture réelle des données dans votre base de données InfluxDB.

1. Configurez les propriétés du serveur pour établir une connexion sécurisée à votre instance InfluxDB :

   1. Définir la version sur 2.0 - Cela indique que vous vous connectez à InfluxDB v2.x, qui utilise une API différente de celle des versions précédentes

   1. Définissez l'URL sur `http://127.0.0.1:8086` - Cela pointe vers votre instance InfluxDB locale

   1. Entrez votre jeton d'authentification InfluxDB. Ce jeton sécurisé autorise la connexion à votre base de données. Vous avez généré le jeton au cours de la [Configurer le stockage local avec InfluxDB](windows-influxdb-setup.md) procédure.

1. Spécifiez les paramètres de l'emplacement de stockage pour définir où et comment vos données seront stockées :

   1. Entrez le nom de votre organisation InfluxDB — L'organisation est un espace de travail pour un groupe d'utilisateurs, auquel appartiennent vos buckets et tableaux de bord. Pour plus d'informations, voir [Gérer les organisations](https://docs.influxdata.com/influxdb/v2/admin/organizations/) dans le *InfluxData Documentation*.

   1. Spécifiez le bucket InfluxDB (par exemple,`WindFarmData`) — Le bucket est équivalent à une base de données dans les systèmes traditionnels, servant de conteneur pour vos données de séries chronologiques

   1. Définir la mesure InfluxDB (par exemple,`TurbineData`) — La mesure est similaire à une table dans les bases de données relationnelles, organisant les points de données associés

**Note**  
Trouvez le nom de votre organisation dans la barre latérale gauche de l'instance InfluxDB. Les concepts d'organisation, de compartiment et de mesure sont fondamentaux pour le modèle d'organisation des données d'InfluxDB. Pour plus d'informations, consultez la documentation [InfluxDB.](https://docs.influxdata.com/influxdb/v2/admin/organizations/)

## Déployer et vérifier le flux de rétention
<a name="windows-nodered-retention-deploy"></a>

Après avoir configuré tous les composants du flux de rétention des données, vous devez déployer le système et vérifier qu'il fonctionne correctement. Cette vérification garantit que vos données industrielles sont correctement stockées localement pour un accès et une analyse immédiats.

1. Connectez les trois nœuds comme indiqué dans le diagramme du flux de conservation des données. Cela crée un pipeline complet allant de l'abonnement aux données au stockage local.  
![\[Flux de conservation des données Node-Red\]](http://docs.aws.amazon.com/fr_fr/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-data-retention.png)

1. Choisissez **Déployer** pour appliquer vos modifications et activer le flux. Cela lance le processus de collecte et de stockage des données.

1. Utilisez l'explorateur de données InfluxDB pour interroger et visualiser vos données. Cet outil vous permet de vérifier que les données sont correctement stockées et de créer des visualisations initiales de vos séries chronologiques.

   Dans l'explorateur de données, vous devriez être en mesure de voir les mesures de la vitesse du vent enregistrées au fil du temps, afin de confirmer que l'ensemble du pipeline, de la génération des données au stockage local, fonctionne correctement. 

   Pour plus d'informations, consultez la section [Requête dans l'explorateur de données](https://docs.influxdata.com/influxdb/v2/query-data/execute-queries/data-explorer/) dans le *InfluxData Documentation*.

Avec le flux de publication et le flux de rétention des données déployés, vous disposez désormais d'un système complet qui envoie les données vers le AWS IoT SiteWise cloud tout en conservant une copie locale pour un accès et une résilience immédiats. Cette approche à double voie vous permet de bénéficier des avantages de l'analyse et du stockage basés sur le cloud tout en maintenant une visibilité opérationnelle à la périphérie.

# Configurer Grafana pour Edge SiteWise
<a name="windows-grafana"></a>

 Grafana® vous permet de créer des tableaux de bord de surveillance locaux en temps réel pour vos données industrielles. En visualisant les données stockées dans InfluxDB®, vous pouvez fournir aux opérateurs des informations immédiates sur les performances des équipements, l'efficacité des processus et les problèmes potentiels. Cette visibilité à la périphérie est importante pour les opérations urgentes et pour assurer la continuité en cas de perturbations du réseau.

## Configuration de la source de données
<a name="windows-grafana-data-source-config"></a>

La connexion de Grafana à votre base de données InfluxDB crée une puissante couche de visualisation pour vos données industrielles. Cette connexion permet de créer des tableaux de bord de surveillance en temps réel que les opérateurs peuvent utiliser pour prendre des décisions éclairées sans dépendre du cloud.

1. Accédez à votre instance Grafana localement en accédant à [http://127.0.0.1:3000](http://127.0.0.1:3000) dans votre navigateur. *Si l'activation du protocole TLS est requise, vous pouvez consulter la section [Configurer Grafana HTTPS pour un trafic Web sécurisé](https://grafana.com/docs/grafana/latest/setup-grafana/set-up-https/) dans Grafana Labs la documentation.*

1. Ajoutez une source de données InfluxDB pointant vers le bucket de séries chronologiques InfluxDB dans lequel Node-RED écrit les données. Par exemple, `WindFarmData`. Cette connexion établit le lien entre vos données stockées et la plateforme de visualisation.

1. *Pour des instructions détaillées, voir [Configurer la source de données InfluxDB](https://grafana.com/docs/grafana/latest/datasources/influxdb/configure-influxdb-data-source/) dans la Grafana Labs documentation.*

### Création d'un tableau de bord Grafana pour les données Edge SiteWise
<a name="windows-grafana-create-dashboard"></a>

La création d'un tableau de bord est la dernière étape de la création de votre solution de surveillance locale. Les tableaux de bord fournissent des représentations visuelles de vos données industrielles, ce qui permet d'identifier plus facilement les tendances, les anomalies et les problèmes potentiels en un coup d'œil.
+ Suivez le guide pour créer un tableau de bord. Pour plus d'informations, consultez la section [Création de votre premier tableau de bord](https://grafana.com/docs/grafana/latest/getting-started/build-first-dashboard/) dans la *Grafana Labsdocumentation*. Ce modèle suppose que votre compartiment porte un nom `WindFarmData` et que la mesure l'est`TurbineData`.

  Vous pouvez également utiliser le guide de démarrage rapide en important l'exemple de modèle de tableau de bord fourni pour créer rapidement un tableau de bord avec un diagramme chronologique pour les données générées par Node-RED dans la section précédente. Ce modèle fournit un point de départ que vous pouvez personnaliser pour répondre à vos besoins de surveillance spécifiques.

  ```
  {
    "__inputs": [
      {
        "name": "DS_WINDFARM-DEMO",
        "label": "windfarm-demo",
        "description": "",
        "type": "datasource",
        "pluginId": "influxdb",
        "pluginName": "InfluxDB"
      }
    ],
    "__elements": {},
    "__requires": [
      {
        "type": "grafana",
        "id": "grafana",
        "name": "Grafana",
        "version": "11.6.0-pre"
      },
      {
        "type": "datasource",
        "id": "influxdb",
        "name": "InfluxDB",
        "version": "1.0.0"
      },
      {
        "type": "panel",
        "id": "timeseries",
        "name": "Time series",
        "version": ""
      }
    ],
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": {
            "type": "grafana",
            "uid": "-- Grafana --"
          },
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations & Alerts",
          "type": "dashboard"
        }
      ]
    },
    "editable": true,
    "fiscalYearStartMonth": 0,
    "graphTooltip": 0,
    "id": null,
    "links": [],
    "panels": [
      {
        "datasource": {
          "type": "influxdb",
          "uid": "${DS_WINDFARM-DEMO}"
        },
        "fieldConfig": {
          "defaults": {
            "color": {
              "mode": "palette-classic"
            },
            "custom": {
              "axisBorderShow": false,
              "axisCenteredZero": false,
              "axisColorMode": "text",
              "axisLabel": "",
              "axisPlacement": "auto",
              "barAlignment": 0,
              "barWidthFactor": 0.6,
              "drawStyle": "line",
              "fillOpacity": 0,
              "gradientMode": "none",
              "hideFrom": {
                "legend": false,
                "tooltip": false,
                "viz": false
              },
              "insertNulls": false,
              "lineInterpolation": "linear",
              "lineWidth": 1,
              "pointSize": 5,
              "scaleDistribution": {
                "type": "linear"
              },
              "showPoints": "auto",
              "spanNulls": false,
              "stacking": {
                "group": "A",
                "mode": "none"
              },
              "thresholdsStyle": {
                "mode": "off"
              }
            },
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "color": "green"
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            }
          },
          "overrides": []
        },
        "gridPos": {
          "h": 8,
          "w": 12,
          "x": 0,
          "y": 0
        },
        "id": 1,
        "options": {
          "legend": {
            "calcs": [],
            "displayMode": "list",
            "placement": "bottom",
            "showLegend": true
          },
          "tooltip": {
            "hideZeros": false,
            "mode": "single",
            "sort": "none"
          }
        },
        "pluginVersion": "11.6.0-pre",
        "targets": [
          {
            "datasource": {
              "type": "influxdb",
              "uid": "${DS_WINDFARM-DEMO}"
            },
            "query": "from(bucket: \"WindFarmData\")\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n  |> filter(fn: (r) => r[\"_measurement\"] == \"TurbineData\")\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\n  |> filter(fn: (r) => r[\"name\"] == \"/Renton/WindFarm/Turbine/WindSpeed\")\n  |> filter(fn: (r) => r[\"quality\"] == \"GOOD\")\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n  |> yield(name: \"mean\")",
            "refId": "A"
          }
        ],
        "title": "Panel Title",
        "type": "timeseries"
      }
    ],
    "schemaVersion": 41,
    "tags": [],
    "templating": {
      "list": []
    },
    "time": {
      "from": "now-6h",
      "to": "now"
    },
    "timepicker": {},
    "timezone": "browser",
    "title": "demo dashboard",
    "uid": "fejc0t08o6d4wb",
    "version": 1,
    "weekStart": ""
  }
  ```

# Configurer des intégrations open source avec Docker (Linux)
<a name="linux-docker-setup"></a>

Pour un processus de déploiement rationalisé, vous pouvez utiliser Docker pour configurer Node-RED®, InfluxDB® et Grafana® dans un environnement Linux. Cette méthode utilise des conteneurs préconfigurés, ce qui permet un déploiement rapide et une gestion simplifiée des composants.

## Conditions préalables à la configuration de Docker
<a name="linux-docker-prerequisites"></a>

Avant de commencer, vérifiez que vous disposez des éléments suivants :
+ Une passerelle V3 compatible MQTT. Pour de plus amples informations, veuillez consulter [Passerelles V3 compatibles MQTT pour Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md).
+ Le plugin Docker Compose. Pour connaître les étapes d'installation, consultez la section [Installer le Docker Compose plug-in](https://docs.docker.com/compose/install/linux/) dans la documentation des manuels *Docker*.

## Déployez les services
<a name="linux-docker-deployment"></a>

Ce déploiement exécute SiteWise Edge, InfluxDB, Node-RED et Grafana sur le même hôte.

### Configuration de l'environnement
<a name="linux-docker-env-setup"></a>

1. Obtenez un accès root :

   ```
   sudo -i
   ```

1. Créez un fichier .env ou exportez les variables d'environnement suivantes :

   ```
   export INFLUXDB_PASSWORD=your-secure-influxdb-password
   export INFLUXDB_TOKEN=your-secure-influxdb-token
   export GRAFANA_PASSWORD=your-secure-grafana-password
   ```

### Configuration du réseau Docker
<a name="linux-docker-network-config"></a>
+ Créez un réseau de ponts en utilisant le nom`SiteWiseEdgeNodeRedDemoNetwork`.

  ```
  docker network create --driver=bridge SiteWiseEdgeNodeRedDemoNetwork
  ```

### Préparez le Docker Compose fichier
<a name="linux-docker-compose-file"></a>

Copiez le contenu du fichier YAML suivant sur votre périphérique de passerelle SiteWise Edge.

#### Agrandir pour afficher l'exemple de fichier Docker Compose YAML
<a name="collapsible-section-docker-compose-file"></a>

```
services:
  influxdb:
    image: influxdb:latest
    container_name: influxdb
    ports:
      - "127.0.0.1:8086:8086"
    volumes:
      - influxdb-storage:/.influxdbv2
    environment:
      - DOCKER_INFLUXDB_INIT_MODE=setup
      - DOCKER_INFLUXDB_INIT_USERNAME=admin
      - DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUXDB_PASSWORD}
      - DOCKER_INFLUXDB_INIT_ORG=iot-sitewise-edge
      - DOCKER_INFLUXDB_INIT_BUCKET=WindFarmData
      - DOCKER_INFLUXDB_INIT_RETENTION=0
      - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=${INFLUXDB_TOKEN}
    networks:
      - SiteWiseEdgeNodeRedDemoNetwork
    restart: unless-stopped

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    ports:
      - "127.0.0.1:3000:3000"
    volumes:
      - grafana-storage:/var/lib/grafana
      - ./grafana/provisioning:/etc/grafana/provisioning
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
      - GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
      - GF_PATHS_PROVISIONING=/etc/grafana/provisioning
      - GF_PATHS_CONFIG=/etc/grafana/grafana.ini
      - GF_LOG_LEVEL=info
    configs:
      - source: grafana_datasource
        target: /etc/grafana/provisioning/datasources/influxdb.yaml
      - source: grafana_preload_dashboard_config
        target: /etc/grafana/provisioning/dashboards/dashboard.yml
      - source: grafana_preload_dashboard
        target: /etc/grafana/provisioning/dashboards/demo_dashboard.json
    depends_on:
      - influxdb
    networks:
      - SiteWiseEdgeNodeRedDemoNetwork
    restart: unless-stopped

  nodered:
    build:
      context: .
      dockerfile_inline: |
        FROM nodered/node-red:latest
        RUN npm install node-red-contrib-influxdb
    container_name: nodered
    ports:
      - "127.0.0.1:1880:1880"
    volumes:
      - node_red_data:/data
    environment:
      - NODE_RED_ENABLE_SAFE_MODE=false
      - NODE_RED_ENABLE_PALETTE_EDIT=true
      - NODE_RED_AUTO_INSTALL_MODULES=true
    configs:
      - source: nodered_flows
        target: /data/flows.json
      - source: nodered_settings
        target: /data/settings.js
      - source: nodered_flows_cred
        target: /data/flows_cred.json
    depends_on:
      - influxdb
    networks:
      - SiteWiseEdgeNodeRedDemoNetwork
    restart: unless-stopped

volumes:
  influxdb-storage:
  grafana-storage:
  node_red_data:

networks:
  SiteWiseEdgeNodeRedDemoNetwork:
    external: true

configs:
  grafana_datasource:
    content: |
      apiVersion: 1
      datasources:
        - name: windfarm-demo
          type: influxdb
          access: proxy
          url: http://influxdb:8086
          jsonData:
            version: Flux
            organization: iot-sitewise-edge
            defaultBucket: WindFarmData
            tlsSkipVerify: true
          secureJsonData:
            token: ${INFLUXDB_TOKEN}
          editable: false

  grafana_preload_dashboard_config:
    content: |
      apiVersion: 1
      providers:
        - name: "Dashboard provider"
          orgId: 1
          type: file
          options: 
            path: /etc/grafana/provisioning/dashboards

  grafana_preload_dashboard:
    content: |
      {
        "annotations": {
          "list": [
            {
              "builtIn": 1,
              "datasource": {
                "type": "grafana",
                "uid": "-- Grafana --"
              },
              "enable": true,
              "hide": true,
              "iconColor": "rgba(0, 211, 255, 1)",
              "name": "Annotations & Alerts",
              "type": "dashboard"
            }
          ]
        },
        "editable": true,
        "fiscalYearStartMonth": 0,
        "graphTooltip": 0,
        "id": 1,
        "links": [],
        "panels": [
          {
            "datasource": {
              "type": "influxdb",
              "uid": "PEB0DCBF338B3CEB2"
            },
            "fieldConfig": {
              "defaults": {
                "color": {
                  "mode": "palette-classic"
                },
                "custom": {
                  "axisBorderShow": false,
                  "axisCenteredZero": false,
                  "axisColorMode": "text",
                  "axisLabel": "",
                  "axisPlacement": "auto",
                  "barAlignment": 0,
                  "barWidthFactor": 0.6,
                  "drawStyle": "line",
                  "fillOpacity": 0,
                  "gradientMode": "none",
                  "hideFrom": {
                    "legend": false,
                    "tooltip": false,
                    "viz": false
                  },
                  "insertNulls": false,
                  "lineInterpolation": "linear",
                  "lineWidth": 1,
                  "pointSize": 5,
                  "scaleDistribution": {
                    "type": "linear"
                  },
                  "showPoints": "auto",
                  "spanNulls": false,
                  "stacking": {
                    "group": "A",
                    "mode": "none"
                  },
                  "thresholdsStyle": {
                    "mode": "off"
                  }
                },
                "mappings": [],
                "thresholds": {
                  "mode": "absolute",
                  "steps": [
                    {
                      "color": "green"
                    },
                    {
                      "color": "red",
                      "value": 80
                    }
                  ]
                }
              },
              "overrides": []
            },
            "gridPos": {
              "h": 8,
              "w": 12,
              "x": 0,
              "y": 0
            },
            "id": 1,
            "options": {
              "legend": {
                "calcs": [],
                "displayMode": "list",
                "placement": "bottom",
                "showLegend": true
              },
              "tooltip": {
                "hideZeros": false,
                "mode": "single",
                "sort": "none"
              }
            },
            "pluginVersion": "11.6.0",
            "targets": [
              {
                "datasource": {
                  "type": "influxdb",
                  "uid": "PEB0DCBF338B3CEB2"
                },
                "query": "from(bucket: \"WindFarmData\")\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n  |> filter(fn: (r) => r[\"_measurement\"] == \"TurbineData\")\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\n  |> filter(fn: (r) => r[\"name\"] == \"/Renton/WindFarm/Turbine/WindSpeed\")\n  |> filter(fn: (r) => r[\"quality\"] == \"GOOD\")\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n  |> yield(name: \"mean\")",
                "refId": "A"
              }
            ],
            "title": "Wind Speed",
            "type": "timeseries"
          }
        ],
        "preload": false,
        "schemaVersion": 41,
        "tags": [],
        "templating": {
          "list": []
        },
        "time": {
          "from": "now-6h",
          "to": "now"
        },
        "timepicker": {},
        "timezone": "browser",
        "title": "Demo Dashboard",
        "uid": "eejtureqjo9a8c",
        "version": 2
      }

  nodered_flows:
    content: |
      [
        {
          "id": "95fce448fdd43b47",
          "type": "tab",
          "label": "Demo Flow",
          "disabled": false,
          "info": ""
        },
        {
          "id": "5f63740b66af3386",
          "type": "mqtt out",
          "z": "95fce448fdd43b47",
          "name": "Publish to MQTT broker",
          "topic": "/Renton/WindFarm/Turbine/WindSpeed",
          "qos": "1",
          "retain": "",
          "respTopic": "",
          "contentType": "",
          "userProps": "",
          "correl": "",
          "expiry": "",
          "broker": "5744207557fa19be",
          "x": 830,
          "y": 200,
          "wires": []
        },
        {
          "id": "8f2eb590d596679b",
          "type": "function",
          "z": "95fce448fdd43b47",
          "name": "Translate to SiteWise payload",
          "func": "let input = msg.payload;\nlet output = {};\n\noutput[\"propertyAlias\"] = input.name;\n\nlet propertyVal = {}\n\nlet timeInSeconds = Math.floor(input.timestamp / 1000);\nlet offsetInNanos = (input.timestamp % 1000) * 1000000;\n\npropertyVal[\"timestamp\"] = {\n    \"timeInSeconds\": timeInSeconds,\n    \"offsetInNanos\": offsetInNanos,\n};\n\npropertyVal[\"quality\"] = input.quality\n\nlet typeNameConverter = {\n    \"number\": (x) => Number.isInteger(x) ? \"integerValue\" : \"doubleValue\",\n    \"boolean\": (x) => \"booleanValue\",\n    \"string\": (x) => \"stringValue\", \n}\nlet typeName = typeNameConverter[typeof input.value](input.value)\npropertyVal[\"value\"] = {}\npropertyVal[\"value\"][typeName] = input.value;\n\noutput[\"propertyValues\"] = [propertyVal]\n\nreturn {\n    payload: JSON.stringify(output)\n};",
          "outputs": 1,
          "timeout": "",
          "noerr": 0,
          "initialize": "",
          "finalize": "",
          "libs": [],
          "x": 530,
          "y": 200,
          "wires": [
            [
              "5f63740b66af3386"
            ]
          ]
        },
        {
          "id": "4b78cbdea5e3258c",
          "type": "inject",
          "z": "95fce448fdd43b47",
          "name": "Turbine Simulator",
          "props": [
            {
              "p": "payload.timestamp",
              "v": "",
              "vt": "date"
            },
            {
              "p": "payload.quality",
              "v": "GOOD",
              "vt": "str"
            },
            {
              "p": "payload.value",
              "v": "$$random()",
              "vt": "jsonata"
            },
            {
              "p": "payload.name",
              "v": "/Renton/WindFarm/Turbine/WindSpeed",
              "vt": "str"
            }
          ],
          "repeat": "1",
          "crontab": "",
          "once": false,
          "onceDelay": "",
          "topic": "",
          "x": 270,
          "y": 200,
          "wires": [
            [
              "8f2eb590d596679b"
            ]
          ]
        },
        {
          "id": "b658bf337ea2e316",
          "type": "influxdb out",
          "z": "95fce448fdd43b47",
          "influxdb": "2f1c38495035d2e4",
          "name": "Store data in InfluxDB",
          "measurement": "TurbineData",
          "precision": "",
          "retentionPolicy": "",
          "database": "",
          "retentionPolicyV18Flux": "",
          "org": "iot-sitewise-edge",
          "bucket": "WindFarmData",
          "x": 840,
          "y": 340,
          "wires": []
        },
        {
          "id": "9432d39af35b202f",
          "type": "function",
          "z": "95fce448fdd43b47",
          "name": "Translate to InfluxDB payload",
          "func": "let data = msg.payload;\n\nlet timeInSeconds = data.propertyValues[0].timestamp.timeInSeconds;\nlet offsetInNanos = data.propertyValues[0].timestamp.offsetInNanos;\nlet timestampInMilliseconds = (timeInSeconds * 1000) + (offsetInNanos / 1000000);\n\nmsg.payload = [\n    {\n        \"timestamp(milliseconds_since_epoch)\": timestampInMilliseconds,\n        \"value\": data.propertyValues[0].value.doubleValue\n    },\n    {\n        \"name\": data.propertyAlias,\n        \"quality\": data.propertyValues[0].quality\n    }\n]\n\nreturn msg",
          "outputs": 1,
          "timeout": "",
          "noerr": 0,
          "initialize": "",
          "finalize": "",
          "libs": [],
          "x": 560,
          "y": 340,
          "wires": [
            [
              "b658bf337ea2e316"
            ]
          ]
        },
        {
          "id": "b689403d2c80816b",
          "type": "mqtt in",
          "z": "95fce448fdd43b47",
          "name": "Subscribe to MQTT broker",
          "topic": "/Renton/WindFarm/Turbine/WindSpeed",
          "qos": "1",
          "datatype": "auto-detect",
          "broker": "5744207557fa19be",
          "nl": false,
          "rap": true,
          "rh": 0,
          "inputs": 0,
          "x": 290,
          "y": 340,
          "wires": [
            [
              "9432d39af35b202f"
            ]
          ]
        },
        {
          "id": "4f59bed8e829fc35",
          "type": "comment",
          "z": "95fce448fdd43b47",
          "name": "Data Publish Flow",
          "info": "dfgh",
          "x": 270,
          "y": 160,
          "wires": []
        },
        {
          "id": "b218c7fc58c8b6e7",
          "type": "comment",
          "z": "95fce448fdd43b47",
          "name": "Data Retention flow",
          "info": "",
          "x": 270,
          "y": 300,
          "wires": []
        },
        {
          "id": "5744207557fa19be",
          "type": "mqtt-broker",
          "name": "emqx",
          "broker": "emqx",
          "port": "1883",
          "clientid": "",
          "autoConnect": true,
          "usetls": false,
          "protocolVersion": "5",
          "keepalive": 15,
          "cleansession": true,
          "autoUnsubscribe": true,
          "birthTopic": "",
          "birthQos": "0",
          "birthPayload": "",
          "birthMsg": {},
          "closeTopic": "",
          "closePayload": "",
          "closeMsg": {},
          "willTopic": "",
          "willQos": "0",
          "willPayload": "",
          "willMsg": {},
          "userProps": "",
          "sessionExpiry": ""
        },
        {
          "id": "2f1c38495035d2e4",
          "type": "influxdb",
          "hostname": "influxdb",
          "port": 8086,
          "protocol": "http",
          "database": "",
          "name": "InfluxDB",
          "usetls": false,
          "tls": "",
          "influxdbVersion": "2.0",
          "url": "http://influxdb:8086",
          "timeout": "",
          "rejectUnauthorized": false
        }
      ]

  nodered_flows_cred:
    content: |
      {
        "2f1c38495035d2e4": {
          "token": "${INFLUXDB_TOKEN}"
        }
      }

  nodered_settings:
    content: |
      module.exports = {
        flowFile: 'flows.json',
        credentialSecret: false,
        adminAuth: null,
        editorTheme: {
          projects: {
            enabled: false
          }
        }
      }
```

### Mettre à jour le déploiement d' SiteWise Edge
<a name="w2aac17c19c19c26c27b7c11"></a>

1. Accédez à la [AWS IoT console](https://console.aws.amazon.com/iot/)

1. Choisissez **Appareils Greengrass** dans le menu de navigation de gauche sous la section **Gérer**, puis Appareils **Core**.

1. Sélectionnez le périphérique principal connecté à votre SiteWise Edge Gateway.

1. Choisissez l'onglet **Déploiements**, puis sélectionnez la valeur de l'**ID de déploiement**.

1. Choisissez **Actions**, puis sélectionnez **Réviser**. 

1. Lisez le message contextuel, puis choisissez **Revise le déploiement**.

1. À **l'étape 2 - Sélection des composants**, sélectionnez les composants suivants, puis cliquez sur **Suivant**.
   + `aws.greengrass.clientdevices.mqtt.EMQX`
   + `aws.iot.SiteWiseEdgePublisher`

1. À **l'étape 3 - Configuration des composants**, sélectionnez la valeur du `aws.greengrass.clientdevices.mqtt.EMQX` composant et ajoutez la configuration réseau suivante :

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "allow"
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               }
           }
       },
       "authMode": "bypass",
       "dockerOptions": "-p 127.0.0.1:1883:1883 --network=SiteWiseEdgeNodeRedDemoNetwork",
       "requiresPrivilege": "true"
   }
   ```

1. Choisissez **Suivant**.

1. À **l'étape 4 - Configurer les paramètres avancés**, choisissez **Next**.

1. Choisissez **Deploy**

### Lancez les services
<a name="linux-docker-launch"></a>

1. Démarrez les services à l'aide du fichier Docker Compose. Exécutez la commande suivante dans le répertoire contenant le `compose.yaml` fichier.

   ```
   docker compose up -d
   ```

1. Créez un tunnel SSH pour accéder aux services :

   ```
   ssh -i path_to_your_ssh_key -L 1880:127.0.0.1:1880 -L 3000:127.0.0.1:3000 -L 8086:127.0.0.1:8086 username@gateway_ip_address
   ```

Ce déploiement crée les services suivants dans `SiteWiseEdgeNodeRedDemoNetwork network` :

**InfluxDB v2 (port 8086)**  
Inclut une organisation (iot-sitewise-edge) préconfigurée, un bucket WindFarmData InfluxDB et des informations d'identification d'administrateur

**Node-rouge (port 1880)**  
Inclut des nœuds InfluxDB et des flux préconfigurés pour l'intégration AWS IoT SiteWise 

**Grafana (port 3000)**  
Comprend un utilisateur administrateur, une source de données InfluxDB et un tableau de bord de surveillance

### Accédez aux services
<a name="linux-docker-access-services"></a>

Après le déploiement, accédez aux services à l'aide des informations suivantes URLs et des informations d'identification :

**Note**  
Vous pouvez accéder à chaque service depuis votre hôte ou depuis la machine passerelle.


**Détails d'accès au service**  

| Service | URL | Informations d’identification | 
| --- | --- | --- | 
| Nœud rouge | [http://127.0.0.1:1880](http://127.0.0.1:1880) | Aucune information d'identification requise | 
| InfluxDB | [http://127.0.0.1:8086](http://127.0.0.1:8086) |  Nom d'utilisateur : admin Mot de passe : \$1INFLUXDB\$1PASSWORD  | 
| Grafana | [http://127.0.0.1:3000](http://127.0.0.1:3000) |  Nom d'utilisateur : admin Mot de passe : \$1GRAFANA\$1PASSWORD  | 

## Vérification du déploiement
<a name="linux-docker-verify-deployment"></a>

Pour garantir le succès de votre déploiement, effectuez les vérifications suivantes :

1. Pour Node-RED, vérifiez la présence de deux flux préchargés :
   + Flux de publication des données
   + Flux de conservation des données

1. Car AWS IoT SiteWise, dans la AWS IoT SiteWise console, confirmez la présence d'un flux de données avec l'alias`/Renton/WindFarm/Turbine/WindSpeed`.

1. Pour InfluxDB, utilisez l'explorateur de données pour vérifier le stockage des données dans la `TurbineData` mesure au sein du `WindFarmData` bucket.

1. Pour Grafana, consultez le tableau de bord pour confirmer l'affichage des données de séries chronologiques générées par Node-RED.

# Traitez les données pour les intégrations open source
<a name="open-source-data-processing-open-source"></a>

Les données peuvent être traitées (telles que la transformation ou l'agrégation) à différentes étapes à l'aide de divers outils, chacun répondant à des exigences de surveillance différentes.

## Traitez les données avec les nœuds Node-RED
<a name="open-source-nodered-nodes"></a>

Transformez vos données en temps réel à l'aide des nœuds de traitement intégrés de Node-RED®. Configurez ces nœuds via la console Node-RED pour créer votre pipeline de données.

### Nœuds de transformation de données
<a name="open-source-data-transformation-nodes"></a>

Transformez des points de données individuels, de la même manière que Transforms in AWS IoT SiteWise, à l'aide des nœuds suivants :
+ **change de nœud** - Effectue de simples modifications de valeur sur vos données.
+ **function node** - Permet des JavaScript transformations personnalisées pour le traitement de données complexes.

### Nœuds de calcul des métriques
<a name="open-source-metrics-calculation-nodes"></a>

Combinez plusieurs points de données en une seule sortie, comme Metrics in AWS IoT SiteWise, à l'aide des nœuds suivants :
+ **nœud batch** : regroupe plusieurs messages pour le traitement par lots.
+ **join node** - Combine plusieurs flux de données en une seule sortie.
+ **nœud d'agrégation** - Calcule les métriques agrégées à partir de plusieurs points de données.

Pour des options de nœud supplémentaires, consultez la bibliothèque [Node-RED.](https://flows.nodered.org/)

## Création de tâches InfluxDB
<a name="open-source-influxdb-tasks"></a>

Bien que Node-RED excelle dans le traitement de base des données grâce à une configuration rapide, les calculs métriques complexes peuvent s'avérer difficiles dans le cadre de la programmation basée sur les flux. Les tâches InfluxDB® offrent une alternative via des scripts Flux planifiés pour les besoins de traitement avancés.

Utilisez les tâches InfluxDB pour :
+ Agrégations statistiques sur de grands ensembles de données
+ Opérations mathématiques sur plusieurs propriétés
+ Mesures dérivées à partir de sources multiples

### Caractéristiques des tâches
<a name="open-source-task-features"></a>
+ **Exécution planifiée** - Exécute des tâches en fonction d'expressions cron
+ **Traitement par lots** - Optimisation des opérations pour les données de séries chronologiques
+ **Récupération des erreurs** - Réessayez automatiquement les opérations ayant échoué
+ **Surveillance** - Suivez l'exécution grâce à des journaux détaillés

Gérez les tâches via l'interface utilisateur, l'API ou la CLI d'InfluxDB. Pour plus d'informations, voir [Traiter les données avec les tâches InfluxDB.](https://docs.influxdata.com/influxdb/cloud/process-data/)

## Utiliser les transformations Grafana
<a name="open-source-grafana-transformations"></a>

Transformez la visualisation des données dans Grafana® sans modifier les données sources dans InfluxDB. Les transformations Grafana s'appliquent uniquement à la couche de visualisation.
+ **Visual Builder** - Créez des transformations sans écrire de code
+ **Aperçu en direct : visualisez** les résultats de transformation en temps réel
+ **Multi-Source** : traitez les données provenant de plusieurs sources de base de données
+ **Stockage efficace** : transformez les données au moment de la visualisation sans stocker de résultats intermédiaires

Pour plus d'informations, consultez la section [Transformation des données](https://grafana.com/docs/grafana/latest/panels/transform-data/).

## Résolution des problèmes liés aux intégrations open source
<a name="open-source-troubleshoot"></a>

Pour plus d'informations sur les sujets de résolution des problèmes liés aux intégrations open source pour les passerelles SiteWise Edge, consultez. [Résolution des problèmes liés aux intégrations open source à la périphérie](troubleshooting-gateway.md#open-source-troubleshooting)

# Streams classiques, passerelles V2 pour Edge AWS IoT SiteWise
<a name="classic-streams-v2-gateway"></a>

Découvrez les fonctionnalités et les limites des flux classiques, des passerelles V2 pour AWS IoT SiteWise Edge.

La passerelle Classic Streams, V2 conserve les fonctionnalités traditionnelles connues lors des AWS IoT SiteWise déploiements antérieurs avant l'introduction des passerelles V3 compatibles MQTT. Ces passerelles SiteWise Edge sont considérées comme des flux classiques, des passerelles V2. Ils sont rétrocompatibles et fonctionnent avec le pack de traitement des données. Bien que la passerelle Classic diffuse, la passerelle V2 offre des performances fiables pour les configurations existantes, elle présente des limites par rapport aux options de passerelle plus récentes. Plus précisément, ce type de passerelle n'est pas entièrement compatible avec les fonctionnalités avancées disponibles dans la destination de passerelle V3 compatible MQTT. Pour utiliser le protocole de messagerie MQTT, vous pouvez créer une nouvelle passerelle V3 compatible MQTT. Pour de plus amples informations, veuillez consulter [Passerelles V3 compatibles MQTT pour Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md).

**Topics**
+ [Utiliser des packs pour collecter et traiter des données dans SiteWise Edge](data-packs.md)
+ [Configuration du composant AWS IoT SiteWise éditeur](configure-publisher-component.md)
+ [Gestionnaire de destinations et de AWS IoT Greengrass flux](destinations-gg-stream-manager.md)
+ [Configuration des fonctionnalités Edge sur AWS IoT SiteWise Edge](edge-data-collection-and-processing.md)
+ [Configuration du traitement des données de pointe pour les AWS IoT SiteWise modèles et les actifs](edge-processing.md)

# Utiliser des packs pour collecter et traiter des données dans SiteWise Edge
<a name="data-packs"></a>

**Note**  
La fonctionnalité du pack de traitement des données (DPP) n’est plus disponible pour les nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d’informations, consultez [Data processing pack availability change](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html).

AWS IoT SiteWise Les passerelles Edge utilisent différents packs pour déterminer comment collecter et traiter vos données. 

Les packs suivants sont actuellement disponibles :
+ **Pack de collecte de données** : utilisez ce pack pour collecter vos données industrielles et les acheminer vers des destinations AWS cloud. Par défaut, ce pack est activé automatiquement pour votre passerelle SiteWise Edge.
+ **Pack de traitement des données** : utilisez ce pack pour permettre la communication par passerelle SiteWise Edge avec des modèles d'actifs et des actifs configurés en périphérie. Vous pouvez utiliser la configuration en périphérie pour contrôler les données de ressource à calculer et à traiter sur site. Vous pouvez ensuite envoyer vos données à AWS IoT SiteWise d'autres AWS services. Pour plus d'informations sur le pack de traitement des données, consultez[Configuration du traitement des données de pointe pour les AWS IoT SiteWise modèles et les actifs](edge-processing.md).

## Packs de mise à niveau
<a name="update-gateway-packs"></a>

**Important**  
La mise à niveau des versions du pack de traitement de données antérieures (et incluses) à la version 2.1.x vers la version 2.1.x entraînera une perte de données des mesures stockées localement.

SiteWise Les passerelles Edge utilisent différents packs pour déterminer comment collecter et traiter vos données. Vous pouvez utiliser la AWS IoT SiteWise console pour mettre à niveau les packs.

**Pour mettre à niveau des packs (console)**

1. <a name="sitewise-open-console"></a>Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation de gauche, choisissez **Edge gateway** dans la section **Edge**.

1. Dans la liste des **passerelles**, choisissez la passerelle SiteWise Edge contenant les packs que vous souhaitez mettre à niveau.

1. Dans la section **Configuration de la passerelle**, sélectionnez **Mises à jour logicielles disponibles**.

1. Sur la page Modifier les versions du logiciel, sélectionnez **Mises à jour**.
**Note**  
Vous ne pouvez mettre à niveau que les packs qui sont activés. Pour trouver la liste des packs activés pour cette passerelle SiteWise Edge, choisissez **Overview**, puis consultez la section **Fonctionnalités Edge**.

1. Sur la page de modification des versions du logiciel, dans la section **Mises à jour des composants Gateway**, procédez comme suit :
   + Pour mettre à jour le **collecteur OPC UA**, choisissez une version, puis choisissez **Deploy**.
   + Pour mettre à jour l'**éditeur**, choisissez une version, puis choisissez **Déployer**.
   + Pour mettre à jour le **pack de traitement des données**, choisissez une version, puis choisissez **Déployer**.

1. Lorsque vous avez terminé de déployer les nouvelles versions, choisissez **OK**.

Si vous rencontrez des problèmes lors de la mise à niveau des packs, consultez[Impossible de déployer des packs sur les passerelles SiteWise Edge](troubleshooting-gateway.md#gateway-issue-ggv2-packs).

# Modification de la disponibilité des packs de traitement des données
<a name="iotsitewise-dpp-availability-change"></a>

**Note**  
La fonctionnalité du pack de traitement des données (DPP) n’est plus disponible pour les nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d’informations, consultez [Data processing pack availability change](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html).

Pour des fonctionnalités similaires à celles du pack de traitement des données AWS IoT, explorez des [alternatives open source](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/open-source-edge-integrations.html) ou les [intégrations de nos partenaires](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/cpa-add-source.html). Le pack de traitement des AWS IoT SiteWise données est une fonctionnalité AWS IoT SiteWise qui fournit des transformations de données, des métriques, un filtrage, un stockage local et une visualisation à la périphérie.

**Note**  
AWS IoT SiteWise et la fonctionnalité du pack de collecte de données AWS IoT SiteWise Edge reste disponible, mais la fonctionnalité du pack de traitement des données passe en mode maintenance.

## Options de migration
<a name="iotsitewise-dpp-migration-options"></a>

Explorez ces options de migration pour remplacer la fonctionnalité du pack de traitement des données.

**Alternatives open source**  
Créez des pipelines de traitement de données locaux en utilisant Node-RED pour la transformation des données, InfluxDB pour le stockage de séries chronologiques et Grafana pour la visualisation. Ces outils fonctionnent avec des passerelles V3 compatibles MQTT via MQTT pour fournir un traitement de pointe et des informations locales tout en synchronisant les données avec le cloud. AWS   
Pour plus d'informations, voir [Traiter et visualiser les données avec SiteWise Edge et les outils open source](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/open-source-edge-integrations.html).

**Intégrations avec les partenaires**  
Connectez les équipements industriels et les capteurs via des sources de données partenaires tierces telles que CloudRail Litmus Edge. EasyEdge Ces composants Greengrass sont développés en partenariat avec plus de 200 protocoles industriels AWS et prennent en charge plus de 200 protocoles industriels pour une collecte et un traitement complets des données.  
Pour plus d'informations, voir [Ajouter une source de données](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/cpa-add-source.html).

**Passerelles V3 compatibles MQTT**  
Les passerelles V3 compatibles MQTT utilisent le protocole MQTT léger pour une communication de données efficace et offrent des destinations de données flexibles, notamment l'ingestion en temps réel et l'ingestion d'Amazon S3 en mémoire tampon. Vous pouvez implémenter des filtres de chemin pour une collecte de données précise et bénéficier d'une évolutivité améliorée et d'un alignement des normes IoT. Les passerelles V3 compatibles MQTT fournissent un traitement des données basé sur le cloud via des services de AWS IoT SiteWise base, notamment des modèles d'actifs, des propriétés calculées, des alarmes et des requêtes de données historiques.  
Pour de plus amples informations, veuillez consulter [Passerelles V3 compatibles MQTT pour Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md).

## Questions fréquentes (FAQ)
<a name="iotsitewise-dpp-faq"></a>

### Puis-je migrer progressivement ?
<a name="iotsitewise-dpp-faq-gradual"></a>

Oui, vous pouvez effectuer une migration progressive en utilisant n'importe quelle combinaison des options de migration. Vous pouvez déployer des passerelles V3 compatibles MQTT, des alternatives open source ou des intégrations partenaires aux côtés des flux Classic existants, ou des passerelles V2 avec le pack de traitement de données. Toutes les options peuvent envoyer des données vers le même AWS IoT SiteWise environnement.

### Pendant combien de temps puis-je continuer à utiliser le pack de traitement des données ?
<a name="iotsitewise-dpp-faq-timeline"></a>

Le pack de traitement des données reste disponible pour les clients existants en mode maintenance. Vous serez prévenu à l'avance si des modifications de disponibilité sont prévues. Surveillez les annonces AWS de service et les notifications de votre compte pour connaître les mises à jour.

# Configuration du composant AWS IoT SiteWise éditeur
<a name="configure-publisher-component"></a>

Après avoir créé une passerelle AWS IoT SiteWise Edge et installé le logiciel, vous pouvez configurer le composant éditeur afin que votre passerelle SiteWise Edge puisse exporter des données vers le AWS cloud. Utilisez le composant éditeur pour activer des fonctionnalités supplémentaires ou configurer les paramètres par défaut. Pour plus d'informations, consultez la section [AWS IoT SiteWise Publisher](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-publisher-component.html) dans le *Guide du AWS IoT Greengrass Version 2 développeur*.

**Note**  
La configuration de l'éditeur varie en fonction du type de passerelle que vous utilisez. Pour les passerelles Classic Stream, V2, utilisez l'espace de `iotsitewise:publisher:2` noms. Pour les passerelles V3 compatibles MQTT, utilisez l'espace de noms. `iotsitewise:publisher:3`

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

1. Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation, choisissez **Edge gateways**.

1. Sélectionnez la passerelle SiteWise Edge pour laquelle vous souhaitez configurer l'éditeur.

1. Dans la section **Configuration de l'éditeur**, choisissez **Modifier**

1. Pour **Ordre de publication**, sélectionnez l'une des options suivantes :
   + **Publier les données les plus anciennes en premier** — La passerelle SiteWise Edge publie d'abord les données les plus anciennes dans le cloud par défaut.
   + **Publiez d'abord les données les plus récentes** : la passerelle SiteWise Edge publie d'abord les données les plus récentes dans le cloud.

1. (Facultatif) Si vous ne souhaitez pas que la passerelle SiteWise Edge compresse vos données, désélectionnez **Activer la compression lors du téléchargement** des données.

1. (Facultatif) Si vous ne souhaitez pas publier d'anciennes données, choisissez **Exclure les données expirées** et procédez comme suit :

   1. Pour **Période limite**, entrez une valeur et choisissez une unité. La période limite doit être comprise entre cinq minutes et sept jours. Par exemple, si la période limite est de trois jours, les données datant de plus de trois jours ne sont pas publiées dans le cloud.

1. (Facultatif) Pour définir des paramètres personnalisés concernant le traitement des données sur votre appareil local, choisissez **Paramètres de stockage local** et procédez comme suit :

   1. Pour **Période de rétention**, entrez un nombre et choisissez une unité. La période de conservation doit être comprise entre une minute et 30 jours, et être supérieure ou égale à la période de rotation. Par exemple, si la période de conservation est de 14 jours, la passerelle SiteWise Edge supprime toutes les données de la périphérie qui sont antérieures à la période limite spécifiée après les avoir stockées pendant 14 jours.

   1. Pour **Période de rotation**, entrez un nombre et choisissez une unité. La période de rotation doit être supérieure à une minute et égale ou inférieure à la période de conservation. Par exemple, supposons que la période de rotation soit de deux jours, la passerelle SiteWise Edge regroupe et enregistre les données antérieures à la période limite dans un seul fichier. Pour les passerelles auto-hébergées AWS IoT Greengrass V2, la passerelle SiteWise Edge transfère un lot de données vers le répertoire local suivant une fois tous les deux jours :. `/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/exports`

   1. Pour **Capacité de stockage**, entrez une valeur supérieure ou égale à 1. Si la capacité de stockage est de 2 Go, la passerelle SiteWise Edge commence à supprimer les données lorsque plus de 2 Go de données sont stockées localement. 

1. Choisissez **Enregistrer**.

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

Utilisez l'[UpdateGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateGatewayCapabilityConfiguration.html)API pour configurer l'éditeur.

Définissez le paramètre `capabilityNamespace` sur `iotsitewise:publisher:2`.

**Example : Configuration de l'éditeur pour les passerelles Classic Stream, V2**  
L'espace de noms de l'éditeur : `iotsitewise:publisher:2`  

```
{
    "SiteWisePublisherConfiguration": {                               
        "publishingOrder": "TIME_ORDER",
        "enableCompression": true,
        "dropPolicy": {
            "cutoffAge": "7d",
            "exportPolicy": {
                "retentionPeriod": "7d",
                "rotationPeriod": "6h",
                "exportSizeLimitGB": 10
            }
        }
    },
    "SiteWiseS3PublisherConfiguration": {
        "accessRoleArn": "arn:aws:iam:123456789012:role/roleName",
        "streamToS3ConfigMapping": [
            {
                "streamName": "S3_OPC-UA_Data_Collector",
                "targetBucketArn": "arn:aws:s3:::amzn-s3-demo-bucket/dataCollector",
                "publishPolicy": {
                    "publishFrequency": "10m",
                    "localSizeLimitGB": 10
                },
                "siteWiseImportPolicy": {
                    "enableSiteWiseStorageImport": true,
                    "enableDeleteAfterImport": true
                }
            }
        ]
    }
}
```

L'éditeur fournit les paramètres de configuration suivants que vous pouvez personnaliser :

`SiteWisePublisherConfiguration`    
`publishingOrder`  
Ordre dans lequel les données sont publiées dans le cloud. La valeur de ce paramètre peut être l'une des suivantes :  
+ `TIME_ORDER`(**Publiez d'abord les données les plus anciennes**) — Les données les plus anciennes sont publiées dans le cloud en premier, par défaut.
+ `RECENT_DATA`(**Publiez d'abord les données** les plus récentes) — Les données les plus récentes sont d'abord publiées dans le cloud.  
`enableCompression`  
Réglez ce paramètre sur `true` pour compresser les données avant de les publier. La compression des données peut réduire l'utilisation de la bande passante.  
`dropPolicy`  
(Facultatif) Une politique qui contrôle les données publiées dans le cloud.    
`cutoffAge`  
L'âge maximal des données à publier est indiqué en jours, heures et minutes. Par exemple, `7d` ou `1d7h16m`. Les données plus anciennes que celles que vous spécifiez ne sont pas envoyées à AWS IoT SiteWise.   
Les données antérieures à la période limite ne sont pas publiées dans le cloud. L'âge limite doit être compris entre cinq minutes et sept jours.  
Vous pouvez utiliser `m``h`, et `d` lorsque vous spécifiez un âge limite. Notez que cela `m` `h` représente les minutes, les heures et les `d` jours.  
`exportPolicy`  
(Facultatif) Une politique qui gère le stockage des données à la périphérie. Cette politique s'applique aux données antérieures à l'âge limite.    
`retentionPeriod`  
Votre passerelle SiteWise Edge supprime toutes les données de la périphérie antérieures à la période limite du stockage local une fois qu'elles ont été stockées pendant la période de conservation spécifiée. La période de conservation doit être comprise entre une minute et 30 jours, et être supérieure ou égale à la période de rotation.  
Vous pouvez utiliser `m``h`, et `d` lorsque vous spécifiez une période de conservation. Notez que cela `m` `h` représente les minutes, les heures et les `d` jours.  
`rotationPeriod`  
Intervalle de temps pendant lequel les données antérieures à la période limite doivent être regroupées et enregistrées dans un seul fichier. La passerelle SiteWise Edge transfère un lot de données vers le répertoire local suivant à la fin de chaque période de rotation :`/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/exports`. La période de rotation doit être supérieure à une minute et égale ou inférieure à la période de conservation.  
Vous pouvez utiliser `m``h`, et `d` lorsque vous spécifiez une période de rotation. Notez que cela `m` `h` représente les minutes, les heures et les `d` jours.  
`exportSizeLimitGB`  
Taille maximale autorisée des données stockées localement, en Go. Si ce quota est dépassé, la passerelle SiteWise Edge commence à supprimer les données les plus anciennes jusqu'à ce que la taille des données stockées localement soit égale ou inférieure au quota. La valeur de ce paramètre doit être supérieure ou égale à 1.

`SiteWiseS3PublisherConfiguration`    
`accessRoleArn`  
Rôle d'accès qui AWS IoT SiteWise autorise la gestion du compartiment Amazon S3 dans lequel vous publiez.  
`streamToS3ConfigMapping`  
Un ensemble de configurations qui mappe un flux vers une configuration Amazon S3.    
`streamName`  
Le flux à lire et à publier dans la configuration Amazon S3.  
`targetBucketArn`  
Le compartiment ARN dans lequel publier.  
`publishPolicy`  
    
`publishFrequency`  
Fréquence à laquelle la passerelle SiteWise Edge publie dans le compartiment Amazon S3.   
`localSizeLimitGB`  
Taille maximale des fichiers écrits sur le disque local. Si ce seuil est dépassé, l'éditeur publie toutes les données mises en mémoire tampon vers leur destination.  
`siteWiseImportPolicy`  
    
`enableSiteWiseStorageImport`  
Définissez ce paramètre sur `true` pour importer les données d'un compartiment Amazon S3 vers le AWS IoT SiteWise stockage.  
`enableDeleteAfterImport`  
Définissez cette option `true` pour supprimer le fichier dans le compartiment Amazon S3 après son ingestion dans le AWS IoT SiteWise stockage.

------

# Gestionnaire de destinations et de AWS IoT Greengrass flux
<a name="destinations-gg-stream-manager"></a>

AWS IoT Greengrass Le gestionnaire de flux vous permet d'envoyer des données vers les AWS Cloud destinations suivantes : canaux AWS IoT Analytics entrants, flux dans Amazon Kinesis Data Streams, propriétés des actifs ou objets AWS IoT SiteWise dans Amazon Simple Storage Service (Amazon S3). Pour plus d'informations, consultez la section [Gérer les flux de données sur le AWS IoT Greengrass Core](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-data-streams.html) dans le *Guide AWS IoT Greengrass Version 2 du développeur*.

**Example : Structure des messages du flux de données**  
L'exemple suivant montre la structure de message de flux de données requise transmise par le gestionnaire de AWS IoT Greengrass flux.  

```
{
   "assetId": "string",
   "propertyAlias": "string",
   "propertyId": "string",
   "propertyValues": [
      {
         "quality": "string",
         "timestamp": {
            "offsetInNanos": number,
            "timeInSeconds": number
         },
         "value": {
            "booleanValue": boolean,
            "doubleValue": number,
            "integerValue": number,
            "stringValue": "string"
         }
      }
   ]
}
```

**Note**  
Le message du flux de données doit inclure (`assetId`et`propertyId`) ou `propertyAlias` dans sa structure. 

`assetId`  
(Facultatif) L'ID de la ressource à mettre à jour.

`propertyAlias`  
(Facultatif) Alias identifiant la propriété, tel qu'un chemin de flux de données du serveur OPC UA. Par exemple :  

```
/company/windfarm/3/turbine/7/temperature
```
Pour plus d'informations, consultez la section [Gérer les flux de données](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-data-streams.html) dans le *guide de AWS IoT SiteWise l'utilisateur*.

`propertyId`  
(Facultatif) ID de la propriété de l'actif pour cette entrée.

`propertyValues`  
(Obligatoire) La liste des valeurs de propriétés à télécharger. Vous pouvez spécifier jusqu'à 10 éléments `propertyValues` de tableau.    
`quality`  
(Facultatif) La qualité de la valeur de la propriété de l'actif.  
 `timestamp`   
(Obligatoire) Horodatage de la valeur de la propriété de l'actif.    
 `offsetInNanos`   
(Facultatif) Le décalage de nanosecondes par rapport à`timeInSeconds`.  
 `timeInSeconds`   
(Obligatoire) Date d'horodatage, en secondes, au format Unix Epoch. Les données de nanosecondes fractionnaires sont fournies par. `offsetInNanos`  
 `value`   
(Obligatoire) La valeur de la propriété de l'actif.  
Seule l'une des valeurs suivantes peut exister dans le `value` champ.   
 `booleanValue`   
(Facultatif) Données de propriété de l'actif de type booléen (`true`ou`false`).  
 `doubleValue`   
(Facultatif) Données de propriété des actifs de type double (nombre à virgule flottante).  
 `integerValue`   
(Facultatif) Données de propriété de l'actif de type entier (nombre entier).  
 `stringValue`   
(Facultatif) Données de propriété de l'actif de type chaîne (séquence de caractères).

# Configuration des fonctionnalités Edge sur AWS IoT SiteWise Edge
<a name="edge-data-collection-and-processing"></a>

**Note**  
La fonctionnalité du pack de traitement des données (DPP) n’est plus disponible pour les nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d’informations, consultez [Data processing pack availability change](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html).

Vous pouvez utiliser AWS IoT SiteWise Edge pour collecter et stocker temporairement des données afin de pouvoir organiser et traiter les données des appareils localement. En activant le traitement périphérique, vous pouvez choisir de n'envoyer que des données agrégées au AWS Cloud afin d'optimiser votre utilisation de la bande passante et les coûts de stockage dans le cloud. À l'aide de AWS IoT SiteWise composants AWS IoT Greengrass, vous pouvez collecter et traiter les données à la périphérie avant de les envoyer au AWS Cloud, ou les gérer sur site à l'aide d' SiteWise Edge APIs. 

La collecte de données s'effectue par le biais de packs de données et de AWS IoT SiteWise composants qui s'exécutent sur AWS IoT Greengrass.

**Note**  
AWS IoT SiteWise conserve vos données Edge sur vos passerelles SiteWise Edge jusqu'à 30 jours. La durée de conservation de vos données dépend de l'espace disque disponible sur votre appareil.
Si votre passerelle SiteWise Edge est déconnectée du AWS Cloud depuis 30 jours, le [pack de traitement des données](configure-opcua-source.md) est automatiquement désactivé.

**Topics**
+ [Configurer la fonctionnalité Edge dans SiteWise Edge](#using-sitewise-edge)

## Configurer la fonctionnalité Edge dans SiteWise Edge
<a name="using-sitewise-edge"></a>

AWS IoT SiteWise fournit les packs suivants que votre passerelle SiteWise Edge peut utiliser pour déterminer comment collecter et traiter vos données. Sélectionnez des packs pour activer les fonctionnalités Edge de votre passerelle SiteWise Edge.
+ Le **pack de collecte de données** permet à votre passerelle SiteWise Edge de collecter des données à partir de plusieurs serveurs OPC UA, puis de les exporter de la périphérie vers le AWS cloud. Il devient actif une fois que vous avez ajouté des sources de données à votre passerelle SiteWise Edge.
+ **Le pack de traitement des données** permet à votre passerelle SiteWise Edge de traiter les données de votre équipement à la périphérie. Par exemple, vous pouvez utiliser des modèles d'actifs pour calculer des métriques et des transformations. Pour plus d'informations sur les modèles d'actifs et les actifs, consultez[Modéliser des actifs industriels](industrial-asset-models.md).
**Note**  
Le pack de traitement des données n'est disponible que sur les plateformes x86.

**Pour configurer les fonctionnalités Edge**

1. Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation, choisissez **Edge gateways**.

1. Sélectionnez la passerelle SiteWise Edge pour laquelle vous souhaitez activer les fonctionnalités Edge.

1. Dans la section **Fonctionnalités Edge**, choisissez **Modifier**

1. Dans la section **Fonctionnalités Edge**, sélectionnez **Activer le pack de traitement des données (entraîne des frais supplémentaires).**

1. (Facultatif) Dans la section **Connexion LDAP Edge**, vous pouvez autoriser les groupes d'utilisateurs de votre annuaire d'entreprise à accéder à cette passerelle SiteWise Edge. Les groupes d'utilisateurs peuvent utiliser les informations d'identification LDAP (Lightweight Directory Access Protocol) pour accéder à la passerelle SiteWise Edge. Ils peuvent ensuite utiliser l' AWS IoT SiteWise application AWS OpsHub for, les opérations d' AWS IoT SiteWise API ou d'autres outils pour gérer la passerelle SiteWise Edge. Pour de plus amples informations, veuillez consulter [Gérer les passerelles SiteWise Edge](manage-gateways-ggv2.md).
**Note**  
Vous pouvez également utiliser le système Linux ou les Microsoft Windows informations d'identification pour accéder à la passerelle SiteWise Edge. Pour de plus amples informations, veuillez consulter [Accédez à votre passerelle SiteWise Edge à l'aide des informations d'identification du système d'exploitation Linux](manage-gateways-ggv2.md#linux-user-pool).

   1. Sélectionnez **Activé**.

   1. Dans **Nom du fournisseur**, entrez le nom de votre fournisseur LDAP.

   1. Dans **Nom d'hôte ou adresse IP**, entrez le nom d'hôte ou l'adresse IP de votre serveur LDAP.

   1. Pour **Port**, entrez un numéro de port.

   1. Pour **Nom distinctif de base (DN)**, entrez un nom distinctif (DN) pour la base. 

      Les types d'attributs suivants sont pris en charge : CommonName (CN), LocalityName (L), Name (ST) stateOrProvince, OrganizationName (O), (OU), CountryName (C) organizationalUnitName , StreetAddress (STREET), DomainComponent (DC) et userid (UID).

   1. Pour le **DN du groupe d'administrateurs**, entrez un DN.

   1. Pour le **DN du groupe d'utilisateurs**, entrez un DN.

1. Choisissez **Enregistrer**.

Maintenant que vous avez activé les fonctionnalités de périphérie sur votre passerelle SiteWise Edge, vous devez configurer votre modèle d'actif pour la périphérie. La configuration périphérique de votre modèle d'actifs indique où les propriétés de vos actifs sont calculées. Vous pouvez calculer toutes les propriétés à la périphérie ou configurer les propriétés de votre modèle d'actifs séparément. Les propriétés du modèle d'actifs incluent [les métriques](concept-overview.md#concept-metric), les [transformations](concept-overview.md#concept-transform) et [les mesures](concept-overview.md#concept-measurement).

Pour plus d'informations sur les propriétés des actifs, consultez[Définir les propriétés des données](asset-properties.md).

 Après avoir créé votre modèle d'actif, vous pouvez le configurer pour la périphérie. Pour plus d'informations sur la configuration de votre modèle d'actif pour la périphérie, consultez[Création d'un modèle d'actif (console)](create-asset-models.md#create-asset-model-console). 

**Note**  
Les modèles d'actifs et les tableaux de bord sont automatiquement synchronisés entre le AWS Cloud et votre passerelle SiteWise Edge toutes les 10 minutes. Vous pouvez également effectuer une synchronisation manuelle à partir de l'application de passerelle SiteWise Edge locale.

# Configuration du traitement des données de pointe pour les AWS IoT SiteWise modèles et les actifs
<a name="edge-processing"></a>

**Note**  
La fonctionnalité du pack de traitement des données (DPP) n’est plus disponible pour les nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d’informations, consultez [Data processing pack availability change](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html).

 Vous pouvez utiliser AWS IoT SiteWise Edge pour collecter, stocker, organiser et surveiller les données des équipements localement. Vous pouvez utiliser SiteWise Edge pour modéliser vos données industrielles et les visualiser localement. Vous pouvez traiter vos données localement et les envoyer vers le AWS cloud, ou les traiter sur site à l'aide de l' AWS IoT SiteWise API. 

Avec AWS IoT SiteWise Edge, vous pouvez traiter les données brutes localement et choisir de n'envoyer que des données agrégées vers le AWS cloud afin d'optimiser votre utilisation de la bande passante et les coûts de stockage dans le cloud.

**Note**  
AWS IoT SiteWise conserve vos données Edge sur vos passerelles SiteWise Edge jusqu'à 30 jours. La durée de conservation de vos données dépend de l'espace disque disponible sur votre appareil.
Si votre passerelle SiteWise Edge est déconnectée du AWS Cloud depuis 30 jours, elle [Configuration d'une source OPC UA dans Edge SiteWise](configure-opcua-source.md) est automatiquement désactivée.

## Configuration d'un modèle d'actif pour le traitement des données sur SiteWise Edge
<a name="process-gateway-data-edge"></a>

Vous devez configurer votre modèle d'actif pour la périphérie avant de pouvoir traiter les données de votre passerelle SiteWise Edge à la périphérie. La configuration périphérique de votre modèle d'actifs indique où les propriétés de vos actifs sont calculées. Vous pouvez choisir de calculer toutes les propriétés à la périphérie et d'envoyer les résultats vers le AWS cloud, ou de personnaliser l'endroit où calculer chaque propriété d'actif séparément. Pour de plus amples informations, veuillez consulter [Configuration du traitement des données de pointe pour les AWS IoT SiteWise modèles et les actifs](#edge-processing).

Les propriétés des actifs incluent les métriques, les transformations et les mesures :
+ Les métriques sont les données agrégées de l'actif sur une période donnée. Vous pouvez calculer de nouvelles mesures en utilisant les données métriques existantes. AWS IoT SiteWise envoie toujours vos indicateurs vers le AWS Cloud pour un stockage à long terme. AWS IoT SiteWise calcule les métriques sur le AWS Cloud par défaut. Vous pouvez configurer votre modèle d'actifs pour calculer vos indicateurs à la périphérie. AWS IoT SiteWise envoie les résultats traités vers le AWS Cloud.
+ Les transformations sont des expressions mathématiques qui mappent les points de données d'une propriété de ressource à partir d'un formulaire vers un autre. Les transformations peuvent utiliser des métriques comme données d'entrée et doivent être calculées et stockées au même endroit que leurs entrées. Si vous configurez une entrée métrique pour qu'elle soit calculée à la périphérie, calcule AWS IoT SiteWise également la transformation associée à la périphérie. 
+ Les mesures sont formatées sous forme de données brutes que votre appareil collecte et envoie au AWS Cloud par défaut. Vous pouvez configurer votre modèle d'actif pour stocker ces données sur votre appareil local.

Pour plus d'informations sur les propriétés des actifs, consultez[Définir les propriétés des données](asset-properties.md).

 Après avoir créé votre modèle d'actif, vous pouvez le configurer pour la périphérie. Pour plus d'informations sur la configuration de votre modèle d'actif pour la périphérie, consultez[Création d'un modèle d'actif (console)](create-asset-models.md#create-asset-model-console). 

**Note**  
Les modèles d'actifs et les tableaux de bord sont automatiquement synchronisés entre le AWS Cloud et votre passerelle SiteWise Edge toutes les 10 minutes. Vous pouvez également effectuer une synchronisation manuelle à partir du[Gérer les passerelles SiteWise Edge](manage-gateways-ggv2.md).

Vous pouvez utiliser le AWS IoT SiteWise REST APIs et le AWS Command Line Interface (AWS CLI) pour interroger votre passerelle SiteWise Edge pour obtenir des données en périphérie. Avant d'interroger votre passerelle SiteWise Edge pour obtenir des données en périphérie, vous devez remplir les conditions préalables suivantes :
+ Vos informations d'identification doivent être définies pour le REST APIs. Pour plus d'informations sur la définition des informations d'identification, consultez[Gérer les passerelles SiteWise Edge](manage-gateways-ggv2.md).
+ Le point de terminaison du SDK doit pointer vers l'adresse IP de votre passerelle SiteWise Edge. Vous trouverez de plus amples informations dans la documentation de votre SDK. Par exemple, consultez la section [Spécification de points de terminaison personnalisés](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/specifying-endpoints.html) dans le *guide du AWS SDK for Java 2.x développeur*.
+ Votre certificat de passerelle SiteWise Edge doit être enregistré. Vous trouverez plus d'informations sur l'enregistrement de votre certificat de passerelle SiteWise Edge dans la documentation de votre SDK. Par exemple, consultez l'[enregistrement des ensembles de certificats dans le fichier Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/node-registering-certs.html) du *manuel du AWS SDK for Java 2.x développeur*.

Pour plus d'informations sur l'interrogation de données avec AWS IoT SiteWise, consultez[Interrogez les données de AWS IoT SiteWise](query-industrial-data.md).

# Ajoutez des sources de données à votre passerelle AWS IoT SiteWise Edge
<a name="add-data-sources"></a>

Après avoir configuré une passerelle AWS IoT SiteWise Edge, vous pouvez ajouter et configurer des sources de données pour ingérer les données des équipements industriels locaux vers AWS IoT SiteWise. SiteWise Edge prend en charge divers protocoles, notamment OPC UA, et de nombreux autres protocoles disponibles via des sources de données partenaires. Ces sources permettent à votre passerelle de se connecter à des serveurs locaux et de récupérer vos données industrielles. En configurant les sources de données, vous pouvez ingérer des données provenant de diverses sources de données, puis associer les flux de données aux propriétés des actifs, ce qui permet une modélisation complète des actifs industriels et un mappage des données. AWS IoT SiteWise

**Topics**
+ [Sources de données OPC UA pour les passerelles AWS IoT SiteWise Edge](configure-sources-opcua.md)
+ [Sources de données partenaires sur les passerelles SiteWise Edge](partner-data-sources.md)

# Sources de données OPC UA pour les passerelles AWS IoT SiteWise Edge
<a name="configure-sources-opcua"></a>

Après avoir configuré une passerelle AWS IoT SiteWise Edge, vous pouvez configurer des sources de données afin que votre passerelle SiteWise Edge puisse ingérer des données provenant d'équipements industriels locaux vers AWS IoT SiteWise. Chaque source représente un serveur local, tel qu'un serveur OPC UA, auquel votre passerelle SiteWise Edge connecte et récupère les flux de données industriels. Pour plus d'informations sur la configuration d'une passerelle SiteWise Edge, consultez[Créez une passerelle SiteWise Edge auto-hébergée](create-gateway-ggv2.md).

Le type de passerelle, compatible MQTT, passerelles V3 par rapport au flux classique, passerelles V2, influence la façon dont les données OPC UA sont traitées. Dans le stream classique, les passerelles V2 et les sources de données OPC UA sont ajoutées directement à la configuration de l' SiteWise éditeur IoT de la passerelle. Chaque source de données est couplée à la passerelle, et le routage des données est configuré individuellement pour chaque source. En revanche, à l'aide de passerelles V3 compatibles MQTT, les sources de données OPC UA sont converties en sujets MQTT et gérées via des destinations centralisées. Pour plus d'informations sur chaque type, reportez-vous aux sections [Passerelles V3 compatibles MQTT pour Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md) et[Streams classiques, passerelles V2 pour Edge AWS IoT SiteWise](classic-streams-v2-gateway.md).

**Note**  
AWS IoT SiteWise redémarre votre passerelle SiteWise Edge chaque fois que vous ajoutez ou modifiez une source. Votre passerelle SiteWise Edge n'ingère pas de données lors de la mise à jour de la configuration de la source. Le délai de redémarrage de votre passerelle SiteWise Edge dépend du nombre de balises figurant sur les sources de votre passerelle SiteWise Edge. Le temps de redémarrage peut aller de quelques secondes (pour une passerelle SiteWise Edge avec peu de balises) à plusieurs minutes (pour une passerelle SiteWise Edge avec de nombreuses balises).

Après avoir créé les sources, vous pouvez associer vos flux de données aux propriétés des actifs. Pour de plus amples informations sur la création et l'utilisation des ressources, veuillez consulter [Modéliser des actifs industriels](industrial-asset-models.md).

Vous pouvez consulter CloudWatch les métriques pour vérifier qu'une source de données est connectée à AWS IoT SiteWise. Pour de plus amples informations, veuillez consulter [AWS IoT Greengrass Version 2 métriques de passerelle](monitor-cloudwatch-metrics.md#gateway-metrics-ggv2).

Actuellement, AWS IoT SiteWise prend en charge les protocoles de source de données suivants :
+ [OPC UA](https://en.wikipedia.org/wiki/OPC_Unified_Architecture) — Protocole de communication machine-to-machine (M2M) pour l'automatisation industrielle.

## Support pour des protocoles industriels supplémentaires
<a name="additional-protocols"></a>

SiteWise Edge prend en charge un large éventail de protocoles industriels grâce à l'intégration avec des partenaires de sources de données. Ces partenariats permettent la connectivité avec plus de 200 protocoles différents, adaptés à divers systèmes et appareils industriels.

Pour obtenir la liste des partenaires de sources de données disponibles, consultez[SiteWise Options de source de données pour les partenaires Edge Gateway](connect-partner-data-source.md).

# Configuration d'une source OPC UA dans Edge SiteWise
<a name="configure-opcua-source"></a>

Vous pouvez utiliser la AWS IoT SiteWise console ou une fonctionnalité de passerelle SiteWise Edge pour définir et ajouter une source OPC UA à votre passerelle SiteWise Edge afin de représenter un serveur OPC UA local.

**Topics**
+ [Configuration d'une source OPC UA (console)](#config-opcua-source-console)
+ [Configurer une source OPC UA ()AWS CLI](#configure-opc-ua-source-cli)

## Configuration d'une source OPC UA (console)
<a name="config-opcua-source-console"></a>

Vous pouvez utiliser la console pour configurer la source OPC UA en suivant la procédure suivante.

**Note**  
Avertissement : la duplication TQVs peut entraîner une double charge.

**Pour configurer une source OPC UA à l'aide de la console AWS IoT SiteWise**

1. Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation de gauche, choisissez **Edge gateway** dans la section **Edge**.

1. Sélectionnez la passerelle SiteWise Edge pour ajouter une source OPC UA.

1. Choisissez **Add data source**.

1. Entrez le nom de la source.

1. Entrez le **point de terminaison local** du serveur de source de données. Le point de terminaison peut être l'adresse IP ou le nom d'hôte. Vous pouvez également ajouter un numéro de port au point de terminaison local. Par exemple, votre point de terminaison local peut ressembler à ceci : **opc.tcp://203.0.113.0:49320**

1. (Facultatif) Pour l'**ID de nœud à sélectionner**, ajoutez des filtres de nœuds pour limiter les flux de données ingérés AWS dans le cloud. Par défaut, les passerelles SiteWise Edge utilisent le nœud racine d'un serveur pour ingérer tous les flux de données. Vous pouvez utiliser des filtres de nœuds pour réduire le temps de démarrage et l'utilisation du processeur de votre passerelle SiteWise Edge en incluant uniquement les chemins d'accès aux données que vous modélisez AWS IoT SiteWise. Par défaut, les passerelles SiteWise Edge téléchargent tous les chemins OPC UA à l'exception de ceux qui commencent par. `/Server/` Pour définir les filtres de nœuds OPC UA, vous pouvez utiliser les chemins des nœuds `*` et les `**` caractères génériques. Pour de plus amples informations, veuillez consulter [Utiliser les filtres de nœuds OPC UA dans Edge SiteWise](opc-ua-node-filters.md).

1. Les **destinations** varient entre les passerelles V3 compatibles MQTT et les flux classiques, les passerelles V2.
   + **Streams classiques, les destinations de passerelle V2** entretiennent une relation 1:1 avec la source. Chaque source envoie des données vers une destination spécifique.
   + Les **destinations de passerelle V3 compatibles MQTT sont configurées** séparément car le modèle hub and spoke vous permet de centraliser la configuration et la gestion de plusieurs sources de données sur différentes passerelles. Pour configurer des destinations dans une passerelle V3, voir[Comprendre les destinations AWS IoT SiteWise Edge](gw-destinations.md#source-destination).

------
#### [ Classic steams, V2 gateway destinations ]
   + **AWS IoT SiteWise en temps réel** — Choisissez cette option pour envoyer les données directement vers le AWS IoT SiteWise stockage. Ingérez et surveillez les données en temps réel à la périphérie.
   + AWS IoT SiteWise Mise en **mémoire tampon à l'aide d'Amazon S3** : envoyez les données au format Parquet vers Amazon S3, puis importez-les dans le AWS IoT SiteWise stockage. Choisissez cette option pour ingérer les données par lots et stocker les données historiques de manière rentable. Vous pouvez configurer l'emplacement de votre compartiment Amazon S3 préféré et la fréquence à laquelle vous souhaitez que les données soient chargées sur Amazon S3. Vous pouvez également choisir ce que vous souhaitez faire avec les données après leur ingestion dans AWS IoT SiteWise. Vous pouvez choisir que les données soient disponibles à la fois dans Amazon S3 AWS IoT SiteWise et dans Amazon S3, ou vous pouvez choisir de les supprimer automatiquement d'Amazon S3 après leur importation dans Amazon S3 AWS IoT SiteWise.
     + Le compartiment Amazon S3 est un mécanisme de préparation et de mise en mémoire tampon qui prend en charge les fichiers au format Parquet.
     + Si vous cochez la case **Importer les données dans le AWS IoT SiteWise stockage**, les données sont d'abord chargées dans Amazon S3, puis dans le AWS IoT SiteWise stockage.
       + Si vous cochez la case **Supprimer les données d'Amazon S3**, les données sont supprimées d'Amazon S3 après leur importation dans le SiteWise stockage. 
       + Si vous décochez la case **Supprimer les données d'Amazon S3**, les données sont stockées à la fois dans Amazon S3 et dans le SiteWise stockage. 
     + Si vous décochez la case **Importer les données dans le AWS IoT SiteWise stockage**, les données sont stockées uniquement dans Amazon S3. Il n'est pas importé dans le SiteWise stockage. 

     Visitez [Gestion du stockage des données](manage-data-storage.md) pour plus de détails sur les différentes options de stockage AWS IoT SiteWise proposées. Pour en savoir plus sur les options de tarification, consultez la section [AWS IoT SiteWise Tarification](https://aws.amazon.com/iot-sitewise/pricing/).

      
   + **AWS IoT Greengrass gestionnaire de flux** — Utilisez le gestionnaire de AWS IoT Greengrass flux pour envoyer des données vers les destinations AWS cloud suivantes : canaux AWS IoT Analytics entrants, flux dans Amazon Kinesis Data Streams, propriétés des actifs ou objets AWS IoT SiteWise dans Amazon Simple Storage Service (Amazon S3). Pour plus d'informations, consultez la section [Gérer les flux de données sur le AWS IoT Greengrass Core](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-data-streams.html) dans le *Guide AWS IoT Greengrass Version 2 du développeur*.

     Entrez un nom pour le AWS IoT Greengrass flux.

------
#### [ MQTT-enabled, V3 gateway destinations ]

   1. Consultez [Passerelles V3 compatibles MQTT pour Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md) pour plus d'informations sur l'ajout de vos destinations pertinentes.

   1. Revenez à cette procédure après avoir ajouté vos destinations sources.

------

1. Dans le volet **Configuration avancée**, vous pouvez effectuer les opérations suivantes :

   1. Choisissez un **mode de sécurité des messages** pour les connexions et les données en transit entre votre serveur source et votre passerelle SiteWise Edge. Ce champ est la combinaison de la politique de sécurité OPC UA et du mode de sécurité des messages. Choisissez la même politique de sécurité et le même mode de sécurité des messages que ceux que vous avez spécifiés pour votre serveur OPC UA.

   1. Si votre source nécessite une authentification, choisissez un AWS Secrets Manager secret dans la liste de **configuration de l'authentification**. La passerelle SiteWise Edge utilise les informations d'authentification contenues dans ce secret lorsqu'elle se connecte à cette source de données. Vous devez associer des secrets au AWS IoT Greengrass composant de votre passerelle SiteWise Edge pour les utiliser pour l'authentification des sources de données. Pour de plus amples informations, veuillez consulter [Configurer l'authentification des sources de données pour SiteWise Edge](configure-source-authentication-ggv2.md).
**Astuce**  
Votre serveur de données peut avoir une option nommée **Autoriser la connexion anonyme**. Si cette option est **Oui**, votre source n'a pas besoin d'authentification.

   1. *(Facultatif) Vous pouvez activer un préfixe de flux de données en sélectionnant **Activer le préfixe de flux de données -** facultatif.*

      1. Entrez un **préfixe de flux de données**. La passerelle SiteWise Edge ajoute ce préfixe à tous les flux de données provenant de cette source. Utilisez un préfixe de flux de données pour distinguer les flux de données portant le même nom mais provenant de sources différentes. Chaque flux de données doit avoir un nom unique dans votre compte.

   1. (Facultatif) Choisissez une option de **conversion de type de données** pour convertir les types de données OPC UA non pris en charge en chaînes avant de les ingérer. AWS IoT SiteWise Convertissez des valeurs de tableau contenant des types de données simples en chaînes JSON et DateTime des types de données en chaînes ISO 8601. Pour de plus amples informations, veuillez consulter [Conversion de types de données non pris en charge](string-conversion.md).

   1. Choisissez un **déclencheur de modification des données par défaut** pour les nœuds qui ne sont pas contenus dans un groupe de propriétés défini par l'utilisateur. Le déclencheur de modification des données par défaut détermine le moment où le serveur OPC UA envoie les valeurs mises à jour à la passerelle. Vous pouvez choisir l’une des options suivantes :
      + **État** : pour recevoir des données uniquement lorsqu'un statut change.
      + **StatusValue**— pour recevoir des données lorsqu'un statut ou une valeur change.
      + **StatusValueTimestamp**— pour recevoir des données lorsqu'un statut, une valeur ou un horodatage change.

   1. (Facultatif) Sur une passerelle V3 compatible MQTT, vous pouvez utiliser la **configuration Discovery pour configurer le processus de découverte** des nœuds OPC UA. La configuration Discovery remplace le système de fichiers de remplacement de configuration précédent pour ces options par des paramètres basés sur la console qui sont mis à jour dynamiquement sans qu'il soit nécessaire de redémarrer la passerelle.
**Note**  
Le **déclencheur de modification des données par défaut** nécessite la version 3.1.0 ou ultérieure du composant collecteur IoT SiteWise OPC UA. Pour de plus amples informations, veuillez consulter [Mettre à jour la version d'un AWS IoT SiteWise composant](manage-gateways-ggv2.md#update-component-version).

      1. Pour **Nombre maximal de demandes de navigation simultanées**, entrez le nombre maximum de demandes de navigation que votre serveur OPC UA peut traiter simultanément. Vous pouvez configurer jusqu'à 500 demandes de navigation simultanées par source de données.

      1. Pour **Nombre maximal de nœuds par demande de navigation**, entrez le nombre maximal de nœuds à envoyer dans chaque demande de navigation au serveur OPC UA. Vous pouvez envoyer jusqu'à 1 000 nœuds par demande de navigation.

      1. Choisissez **Éviter les boucles d'arborescence des nœuds** pour empêcher la passerelle de rester bloquée dans des références circulaires lors de la navigation dans la structure du serveur OPC UA. Lorsque cette option est sélectionnée, la passerelle suit les emplacements visités afin d'éviter les boucles infinies qui peuvent se produire lorsque les nœuds du serveur se référencent selon un schéma circulaire.

      1. Choisissez **Activer la traversée des nœuds** pour permettre à la passerelle d'explorer la structure complète de votre serveur OPC UA afin de découvrir tous les points de données disponibles sur votre équipement et vos appareils. Lorsque cette option est sélectionnée, la passerelle parcourt l'organisation des données de votre équipement au-delà du niveau racine pour trouver automatiquement tous les capteurs, commandes et points de mesure.

      1. Choisissez **Activer la découverte périodique** pour exécuter automatiquement des opérations de découverte à intervalles réguliers afin de détecter les modifications de la structure du serveur OPC UA. Lorsqu'elle est sélectionnée, la passerelle surveille en permanence les nouveaux équipements ou points de données, en veillant à ce qu'ils soient automatiquement détectés et mis à disposition pour la collecte de données.

         1. Pour **Intervalle de découverte périodique**, définissez l'intervalle de temps entre les opérations de découverte automatique lorsque la découverte périodique est en cours d'exécution. L'intervalle de découverte périodique minimal est de 30 secondes et le maximum de 30 jours.

         1. Pour **Maximum de nœuds découverts par intervalle**, définissez le nombre maximum de nœuds à découvrir par intervalle de découverte. Cela permet de contrôler la charge sur la passerelle et sur le serveur OPC UA pendant les opérations de découverte.

   1. (Facultatif) Pour les **groupes de propriétés**, choisissez **Ajouter un nouveau groupe**.

      1. Entrez un **nom** pour le groupe de propriétés.

      1. Pour les **propriétés** :

         1. Pour les **chemins de nœud**, ajoutez des filtres de nœuds OPC UA pour limiter les chemins OPC UA vers lesquels le téléchargement est effectué. AWS IoT SiteWise Le format est similaire à celui de l'**ID de nœud pour la sélection**.

      1. Pour les **paramètres de groupe**, procédez comme suit :

         1. Pour le **paramètre de qualité des données**, choisissez le type de qualité de données que AWS IoT SiteWise Collector doit ingérer.

         1. Pour le **réglage du mode de numérisation**, configurez les propriétés d'abonnement standard à l'aide du **mode de numérisation**. Vous pouvez sélectionner **S'abonner** ou **Sondage**. Pour plus d'informations sur le mode de numérisation, consultez[Filtrez les plages d'ingestion de données avec OPC UA](opcua-data-acquisition.md).

------
#### [ Subscribe ]

**Pour envoyer chaque point de données**

            1. Choisissez **S'abonner** et définissez les paramètres suivants :

               1. **[Déclencheur de modification des données](https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.2/)** : condition qui déclenche une alerte de modification des données.

               1. **[Taille de la file d'attente d'abonnement](https://reference.opcfoundation.org/v104/Core/docs/Part4/7.16/)** : profondeur de la file d'attente sur un serveur OPC UA pour une métrique particulière dans laquelle les notifications relatives aux éléments surveillés sont mises en file d'attente.

               1. **[Intervalle de publication par abonnement](https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.2/)** : intervalle (en millisecondes) du cycle de publication spécifié lors de la création de l'abonnement.

               1. **Intervalle entre les instantanés : *facultatif*** : paramètre de délai d'expiration de la fréquence des instantanés pour garantir qu' AWS IoT SiteWise Edge ingère un flux constant de données.

               1. **Fréquence de numérisation** : fréquence à laquelle vous souhaitez que la passerelle SiteWise Edge lise vos registres. AWS IoT SiteWise calcule automatiquement le taux de numérisation minimum autorisé pour votre passerelle SiteWise Edge.

               1. **Horodatage** — L'horodatage à inclure dans vos points de données OPC UA. Vous pouvez utiliser l'horodatage du serveur ou celui de votre appareil.
**Note**  
Utilisez la version 2.5.0 ou ultérieure du composant collecteur IoT SiteWise OPC UA. Si vous utilisez la fonction d'horodatage avec des versions antérieures, les mises à jour de configuration échouent. Pour de plus amples informations, veuillez consulter [Mettre à jour la version d'un AWS IoT SiteWise composant](manage-gateways-ggv2.md#update-component-version).

            1. Dans les **paramètres Deadband**, configurez un type **Deadband.** Le type deadband contrôle les données que votre source vous AWS IoT SiteWise envoie et celles qu'elle supprime. Pour plus d'informations sur le paramètre Deadband, consultez[Filtrez les plages d'ingestion de données avec OPC UA](opcua-data-acquisition.md).
               + **Aucun** — Le serveur associé envoie tous les points de données pour ce groupe de propriétés.
               + **Pourcentage** : le serveur associé envoie uniquement les données qui se situent en dehors d'un pourcentage spécifié de la plage de données. Cette plage est calculée par le serveur en fonction des unités d'ingénierie minimales et maximales définies pour chaque nœud. Si le serveur ne prend pas en charge les pourcentages morts ou s'il n'a pas d'unités d'ingénierie définies, la passerelle calcule la plage en utilisant les valeurs minimale et maximale fournies ci-dessous.
               + **Absolu** — Le serveur associé envoie uniquement des données situées en dehors d'une plage spécifique.

               1. Définissez la **valeur Deadband** comme le pourcentage de la plage de données sur Deadband.

               1. (Facultatif) Spécifiez un minimum et un maximum pour la plage de zone morte en utilisant **Plage minimale *(facultatif)*** et **Plage maximale *(facultatif)***.

------
#### [ Poll ]

**Pour envoyer des points de données à un intervalle spécifique**
            + Choisissez **Poll** et définissez les paramètres suivants :

              1. **Fréquence de numérisation** : fréquence à laquelle vous souhaitez que la passerelle SiteWise Edge lise vos registres. AWS IoT SiteWise calcule automatiquement le taux de numérisation minimum autorisé pour votre passerelle SiteWise Edge.

              1. **Horodatage** — L'horodatage à inclure dans vos points de données OPC UA. Vous pouvez utiliser l'horodatage du serveur ou celui de votre appareil.
**Note**  
Utilisez la version 3.1.0 ou ultérieure du composant collecteur IoT SiteWise OPC UA. Si vous utilisez la fonction d'horodatage avec des versions antérieures, les mises à jour de configuration échouent. Pour de plus amples informations, veuillez consulter [Mettre à jour la version d'un AWS IoT SiteWise composant](manage-gateways-ggv2.md#update-component-version).

**Note**  
Les **paramètres Deadband** sont applicables lorsque vous avez sélectionné **S'abonner** dans les **paramètres du mode Scan**.

------

1. Choisissez **Enregistrer**.

## Configurer une source OPC UA ()AWS CLI
<a name="configure-opc-ua-source-cli"></a>

Vous pouvez définir des sources de données OPC UA pour une passerelle SiteWise Edge à l'aide du AWS CLI. Pour ce faire, créez un fichier JSON de configuration des fonctionnalités OPC UA et utilisez la [ update-gateway-capability-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotsitewise/update-gateway-capability-configuration.html#)commande pour mettre à jour la configuration de la passerelle SiteWise Edge. Vous devez définir toutes vos sources OPC UA dans une configuration de fonctionnalité unique.

------
#### [ MQTT-enabled, V3 gateway ]

Cette fonctionnalité possède l'espace de noms suivant.
+ `iotsitewise:opcuacollector:3`

```
{
  "sources": [
    {
      "name": "string",
      "endpoint": {
        "certificateTrust": {
          "type": "TrustAny" | "X509",
          "certificateBody": "string",
          "certificateChain": "string",
        },
        "endpointUri": "string",
        "securityPolicy": "NONE" | "BASIC128_RSA15" | "BASIC256" | "BASIC256_SHA256" | "AES128_SHA256_RSAOAEP" | "AES256_SHA256_RSAPSS",
        "messageSecurityMode": "NONE" | "SIGN" | "SIGN_AND_ENCRYPT",
        "identityProvider": {
          "type": "Anonymous" | "Username",
          "usernameSecretArn": "string"
        },
        "nodeFilterRules": [
          {
            "action": "INCLUDE",
            "definition": {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          }
        ]
      },
      "measurementDataStreamPrefix": "string",
      "typeConversions": {
        "array": "JsonArray",
        "datetime": "ISO8601String"
        },
      "destination": {
        {
          "type":"MQTT"
        }           
      },
      "defaultPropertyGroupConfig": {
        "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP"
      },
      "discoveryConfig": {
        "enableNodeTraversal": true | false,
        "avoidNodeTreeLoops": true | false,
        "maxConcurrentBrowseRequests": integer,
        "maxNodesPerBrowseRequest": integer,
        "periodicDiscovery": {
          "interval": "string",
          "maxNodesDiscoveredPerInterval": integer
        }
      },
      "propertyGroups": [
        {
          "name": "string",
          "nodeFilterRuleDefinitions": [
            {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          ],
          "deadband": {
            "type": "PERCENT" | "ABSOLUTE",
            "value": double,
            "eguMin": double,
            "eguMax": double,
            "timeoutMilliseconds": integer
          },
          "scanMode": {
            "type": "EXCEPTION" | "POLL",
            "rate": integer,
            "timestampToReturn": "SOURCE_TIME" | "SERVER_TIME"
          },
          "dataQuality": {
            "allowGoodQuality": true | false,
            "allowBadQuality": true | false,
            "allowUncertainQuality": true | false
          },
          "subscription": {
            "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP",
            "queueSize": integer,
            "publishingIntervalMilliseconds": integer,
            "snapshotFrequencyMilliseconds": integer
          }  
        }  
      ]  
    }  
  ]  
}
```

------
#### [ Classic streams, V2 gateway ]

Cette fonctionnalité possède l'espace de noms suivant.
+ `iotsitewise:opcuacollector:2`

Syntaxe de demande

```
{
  "sources": [
    {
      "name": "string",
      "endpoint": {
        "certificateTrust": {
          "type": "TrustAny" | "X509",
          "certificateBody": "string",
          "certificateChain": "string",
        },
        "endpointUri": "string",
        "securityPolicy": "NONE" | "BASIC128_RSA15" | "BASIC256" | "BASIC256_SHA256" | "AES128_SHA256_RSAOAEP" | "AES256_SHA256_RSAPSS",
        "messageSecurityMode": "NONE" | "SIGN" | "SIGN_AND_ENCRYPT",
        "identityProvider": {
          "type": "Anonymous" | "Username",
          "usernameSecretArn": "string"
        },
        "nodeFilterRules": [
          {
            "action": "INCLUDE",
            "definition": {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          }
        ]
      },
      "measurementDataStreamPrefix": "string",
      "typeConversions": {
        "array": "JsonArray",
        "datetime": "ISO8601String"
        },
      "destination": {
        "type": "StreamManager",
        "streamName": "string",
        "streamBufferSize": integer,                      
      },
      "propertyGroups": [
        {
          "name": "string",
          "nodeFilterRuleDefinitions": [
            {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          ],
          "deadband": {
            "type": "PERCENT" | "ABSOLUTE",
            "value": double,
            "eguMin": double,
            "eguMax": double,
            "timeoutMilliseconds": integer
          },
          "scanMode": {
            "type": "EXCEPTION" | "POLL",
            "rate": integer,
            "timestampToReturn": "SOURCE_TIME" | "SERVER_TIME"
          },
          "dataQuality": {
            "allowGoodQuality": true | false,
            "allowBadQuality": true | false,
            "allowUncertainQuality": true | false
          },
          "subscription": {
            "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP",
            "queueSize": integer,
            "publishingIntervalMilliseconds": integer,
            "snapshotFrequencyMilliseconds": integer
          }  
        }  
      ]  
    }  
  ]  
}
```

------

### Corps de la demande
<a name="opcua-request-body"></a>

`sources`  
Liste des structures de définition de source OPC UA contenant chacune les informations suivantes :    
`name`  
Nom unique et convivial pour la source.  
`endpoint`  
Structure de point de terminaison contenant les informations suivantes :    
`certificateTrust`  
Structure de stratégie d'approbation de certificat contenant les informations suivantes :    
`type`  
Mode d'approbation de certificat pour la source. Sélectionnez l’une des méthodes suivantes :  
+ `TrustAny`— La passerelle SiteWise Edge fait confiance à n'importe quel certificat lorsqu'elle se connecte à la source OPC UA.
+ `X509`— La passerelle SiteWise Edge fait confiance à un certificat X.509 lorsqu'elle se connecte à la source OPC UA. Si vous choisissez cette option, vous devez définir `certificateBody` dans `certificateTrust`. Vous pouvez également définir `certificateChain` dans `certificateTrust`.  
`certificateBody`  
(Facultatif) Corps d'un certificat X.509.  
Ce champ est obligatoire si vous choisissez `X509` pour `type` dans `certificateTrust`.  
`certificateChain`  
(Facultatif) Chaîne de confiance pour un certificat X.509.  
Ce champ n'est utilisé que si vous choisissez `X509` pour `type` dans `certificateTrust`.  
`endpointUri`  
Point de terminaison local de la source OPC UA. Par exemple, votre point de terminaison local peut ressembler à `opc.tcp://203.0.113.0:49320`.  
`securityPolicy`  
La politique de sécurité à utiliser pour sécuriser les messages lus depuis la source OPC UA. Sélectionnez l’une des méthodes suivantes :  
+ `NONE`— La passerelle SiteWise Edge ne sécurise pas les messages provenant de la source OPC UA. Nous vous recommandons de choisir une autre politique de sécurité. Si vous choisissez cette option, vous devez également choisir `NONE` pour `messageSecurityMode`.
+ `BASIC256_SHA256`— La politique `Basic256Sha256` de sécurité.
+ `AES128_SHA256_RSAOAEP`— La politique `Aes128_Sha256_RsaOaep` de sécurité.
+ `AES256_SHA256_RSAPSS`— La politique `Aes256_Sha256_RsaPss` de sécurité.
+ `BASIC128_RSA15`— (Obsolète) La politique de `Basic128Rsa15` sécurité est déconseillée dans la spécification OPC UA car elle n'est plus considérée comme sécurisée. Nous vous recommandons de choisir une autre politique de sécurité. Pour plus d'informations, consultez [Profile SecurityPolicy — Basic128Rsa15](https://profiles.opcfoundation.org/profile/1532).
+ `BASIC256`— (Obsolète) La politique de `Basic256` sécurité est déconseillée dans la spécification OPC UA car elle n'est plus considérée comme sécurisée. Nous vous recommandons de choisir une autre politique de sécurité. Pour plus d'informations, voir [SecurityPolicy — Basic256](https://profiles.opcfoundation.org/profile/1536).
Si vous choisissez une politique de sécurité autre que`NONE`, vous devez choisir `SIGN` ou `SIGN_AND_ENCRYPT` pour`messageSecurityMode`. Vous devez également configurer votre serveur source pour qu'il fasse confiance à la passerelle SiteWise Edge. Pour de plus amples informations, veuillez consulter [Configurer les serveurs OPC UA pour qu'ils fassent confiance à la passerelle AWS IoT SiteWise Edge](enable-source-trust.md).  
`messageSecurityMode`  
Mode de sécurité des messages à utiliser pour sécuriser les connexions à la source OPC UA. Sélectionnez l’une des méthodes suivantes :  
+ `NONE`— La passerelle SiteWise Edge ne sécurise pas les connexions à la source OPC UA. Nous vous recommandons de choisir un autre mode de sécurité des messages. Si vous choisissez cette option, vous devez également choisir `NONE` pour `securityPolicy`.
+ `SIGN`— Les données en transit entre la passerelle SiteWise Edge et la source OPC UA sont signées mais ne sont pas cryptées.
+ `SIGN_AND_ENCRYPT`— Les données en transit entre la passerelle et la source OPC UA sont signées et cryptées.
Si vous choisissez un mode de sécurité des messages autre que`NONE`, vous devez en choisir un `securityPolicy` autre que`NONE`. Vous devez également configurer votre serveur source pour qu'il fasse confiance à la passerelle SiteWise Edge. Pour de plus amples informations, veuillez consulter [Configurer les serveurs OPC UA pour qu'ils fassent confiance à la passerelle AWS IoT SiteWise Edge](enable-source-trust.md).  
`identityProvider`  
Structure de fournisseur d'identité contenant les informations suivantes :    
`type`  
Type d'informations d'identification d'authentification requises par la source. Sélectionnez l’une des méthodes suivantes :  
+ `Anonymous`— La source n'a pas besoin d'authentification pour se connecter.
+ `Username`— La source a besoin d'un nom d'utilisateur et d'un mot de passe pour se connecter. Si vous choisissez cette option, vous devez définir `usernameSecretArn` dans `identityProvider`.  
`usernameSecretArn`  
(Facultatif) L'ARN d'un AWS Secrets Manager secret. La passerelle SiteWise Edge utilise les informations d'authentification contenues dans ce secret lorsqu'elle se connecte à cette source. Vous devez associer des secrets au SiteWise connecteur IoT de votre passerelle SiteWise Edge pour les utiliser à des fins d'authentification à la source. Pour de plus amples informations, veuillez consulter [Configurer l'authentification des sources de données pour SiteWise Edge](configure-source-authentication-ggv2.md).  
Ce champ est obligatoire si vous choisissez `Username` pour `type` dans `identityProvider`.  
`nodeFilterRules`  
Liste des structures de règles de filtrage des nœuds qui définissent les chemins de flux de données OPC UA à envoyer vers le AWS cloud. Vous pouvez utiliser des filtres de nœuds pour réduire le temps de démarrage et l'utilisation du processeur de votre passerelle SiteWise Edge en incluant uniquement les chemins d'accès aux données que vous modélisez AWS IoT SiteWise. Par défaut, les passerelles SiteWise Edge téléchargent tous les chemins OPC UA à l'exception de ceux qui commencent par. `/Server/` Pour définir les filtres de nœuds OPC UA, vous pouvez utiliser les chemins des nœuds `*` et les `**` caractères génériques. Pour de plus amples informations, veuillez consulter [Utiliser les filtres de nœuds OPC UA dans Edge SiteWise](opc-ua-node-filters.md).  
Chaque structure de la liste doit contenir les informations suivantes :    
`action`  
Action pour cette règle de filtrage de nœud. Vous pouvez choisir les options suivantes :  
+ `INCLUDE`— La passerelle SiteWise Edge inclut uniquement les flux de données qui répondent à cette règle.  
`definition`  
Structure de règles de filtrage de nœud contenant les informations suivantes :    
`type`  
Type de chemin de filtre de nœud pour cette règle. Vous pouvez choisir les options suivantes :  
+ `OpcUaRootPath`— La passerelle SiteWise Edge évalue ce chemin de filtre de nœuds par rapport à la racine de la hiérarchie des chemins OPC UA.  
`rootPath`  
Le chemin du filtre de nœuds à évaluer par rapport à la racine de la hiérarchie des chemins OPC UA. Ce chemin doit commencer par`/`.  
`measurementDataStreamPrefix`  
Chaîne à ajouter à tous les flux de données provenant de la source. La passerelle SiteWise Edge ajoute ce préfixe à tous les flux de données provenant de cette source. Utilisez un préfixe de flux de données pour distinguer les flux de données portant le même nom mais provenant de sources différentes. Chaque flux de données doit avoir un nom unique dans votre compte.  
`typeConversions`  
Les types de conversions disponibles pour les types de données OPC UA non pris en charge. Chaque type de données est converti en chaînes. Pour de plus amples informations, veuillez consulter [Conversion de types de données non pris en charge](string-conversion.md).    
`array`  
Type de données de tableau simple converti en chaînes. Vous pouvez choisir les options suivantes :  
+ `JsonArray`— Indique que vous choisissez de convertir les types de données de vos tableaux simples en chaînes.  
`datetime`  
Type de DateTime données converti en chaînes. Vous pouvez choisir les options suivantes :  
+ `ISO8601String`— Indique que vous choisissez de convertir les types de données ISO 8601 en chaînes.  
`destination`  
Configuration pour la destination des balises OPC UA. Les passerelles V3 classiques avec flux, v2 et MQTT ont des configurations différentes pour les destinations.    
`type`  
Type de destination.  
`streamName`— *uniquement pour les streams classiques, les passerelles V2*  
Nom du flux . Le nom du flux doit être unique.  
`streamBufferSize`— *uniquement pour les streams classiques, les passerelles V2*  
Taille de la mémoire tampon du flux. Cela est important pour gérer le flux de données provenant des sources OPC UA.  
`defaultPropertyGroupConfig`— *Passerelles V3 compatibles MQTT uniquement*  
(Facultatif) Configuration du groupe de propriétés par défaut. Le groupe de propriétés par défaut contient tous les nœuds qui ne figurent pas autrement dans un groupe de propriétés défini par l'utilisateur.    
`dataChangeTrigger`  
Le déclencheur de modification des données par défaut à utiliser dans le groupe de propriétés par défaut. Les valeurs valides sont `STATUS_VALUE_TIMESTAMP`, `STATUS_VALUE` ou `STATUS`.
`defaultPropertyGroupConfig`nécessite la version 3.1.0 ou ultérieure du composant collecteur IoT SiteWise OPC UA. Pour de plus amples informations, veuillez consulter [Mettre à jour la version d'un AWS IoT SiteWise composant](manage-gateways-ggv2.md#update-component-version).  
`discoveryConfig`— *Passerelles V3 compatibles MQTT uniquement*  
(Facultatif) Configuration pour le processus de découverte des nœuds OPC UA.    
`enableNodeTraversal`  
Spécifie s'il faut continuer à parcourir les nœuds enfants du nœud racine défini par le filtre de nœuds de la source de données. Lorsque cette valeur est définie sur`false`, la découverte s'arrête au nœud racine.  
`avoidNodeTreeLoops`  
Spécifie s'il faut éviter les boucles infinies pendant le processus de navigation des nœuds OPC UA. Lorsqu'elle est définie sur`true`, la passerelle suit les nœuds visités pour éviter les références circulaires.  
`maxConcurrentBrowseRequests`  
Le nombre maximum de demandes de navigation simultanées que votre serveur OPC UA peut traiter simultanément. La plage valide est comprise entre 1 et 500.  
`maxNodesPerBrowseRequest`  
Le nombre maximum de nœuds à envoyer dans chaque demande de navigation au serveur OPC UA. La plage valide est comprise entre 1 et 1 000.  
`periodicDiscovery`  
Configuration permettant d'exécuter la découverte régulièrement à intervalles réguliers. La découverte périodique est activée lorsque cette configuration est fournie.    
`interval`  
Le délai entre les opérations de découverte périodiques. Vous pouvez l'utiliser `m` pendant des minutes, `h` des heures et `d` des jours. Par exemple, `90m` ou `1h`. L'intervalle minimum est de 30 secondes.  
`maxNodesDiscoveredPerInterval`  
Nombre maximal de nœuds à découvrir par intervalle de découverte. Cela permet de contrôler la charge à la fois sur la passerelle et sur le serveur OPC UA.
`periodicDiscovery`nécessite la version 3.1.0 ou ultérieure du composant collecteur IoT SiteWise OPC UA. Pour de plus amples informations, veuillez consulter [Mettre à jour la version d'un AWS IoT SiteWise composant](manage-gateways-ggv2.md#update-component-version).
Si la découverte tourne en boucle à l'infini, `avoidNodeTreeLoops` activez-la. Surveillez la progression de la découverte dans CloudWatch les journaux situés sous le `aws.iot.SiteWiseOpcUaCollector` composant.

`propertyGroups`  
(Facultatif) La liste des groupes de propriétés qui définissent `deadband` et `scanMode` demandés par le protocole.    
`name`  
Nom du groupe de propriétés. Il doit s'agir d'un identifiant unique.  
`deadband`  
La `deadband` valeur définit la modification minimale de la valeur d'un point de données qui doit se produire avant que les données ne soient envoyées vers le cloud. Elle contient les informations suivantes :    
`type`  
Les types de deadband pris en charge. Vous pouvez choisir les options suivantes :  
+ `ABSOLUTE`— Une valeur fixe qui indique le changement absolu minimum requis pour considérer qu'un point de données est suffisamment significatif pour être envoyé vers le cloud.
+ `PERCENT`— Valeur dynamique qui indique la modification minimale requise sous forme de pourcentage de la valeur du dernier point de données envoyé. Ce type de zone morte est utile lorsque les valeurs des données varient considérablement au fil du temps.  
`value`  
La valeur du deadband. Dans ce cas `type``ABSOLUTE`, cette valeur est un double sans unité. Dans ce cas `type``PERCENT`, cette valeur est un double compris entre `1` et`100`.  
`eguMin`  
(Facultatif) L'unité d'ingénierie minimale lors de l'utilisation d'une `PERCENT` zone morte. Vous définissez ce paramètre si aucune unité d'ingénierie n'est configurée sur le serveur OPC UA.  
`eguMax`  
(Facultatif) L'unité d'ingénierie maximale lors de l'utilisation d'une `PERCENT` zone morte. Vous définissez ce paramètre si aucune unité d'ingénierie n'est configurée sur le serveur OPC UA.  
`timeoutMilliseconds`  
Durée en millisecondes avant le délai d'expiration. Le minimum est`100`.  
`scanMode`  
`scanMode`Structure qui contient les informations suivantes :    
`type`  
Les types pris en charge de`scanMode`. Les valeurs acceptées sont `POLL` et`EXCEPTION`.  
`rate`  
Intervalle d'échantillonnage pour le mode de numérisation.  
`timestampToReturn`  
Source de l'horodatage. Vous pouvez choisir les options suivantes :  
+ `SOURCE_TIME`— Utilise l'horodatage de votre appareil.
+ `SERVER_TIME`— Utilise l'horodatage de votre serveur.
`TimestampToReturn`À utiliser avec la version 2.5.0 ou ultérieure du composant collecteur IoT SiteWise OPC UA. Si vous utilisez cette fonctionnalité avec des versions antérieures, les mises à jour de configuration échouent. Pour de plus amples informations, veuillez consulter [Mettre à jour la version d'un AWS IoT SiteWise composant](manage-gateways-ggv2.md#update-component-version).  
`nodeFilterRuleDefinitions`  
(Facultatif) Liste des chemins de nœuds à inclure dans le groupe de propriétés. Les groupes de propriétés ne peuvent pas se chevaucher. Si vous ne spécifiez aucune valeur pour ce champ, le groupe contient tous les chemins situés sous la racine et vous ne pouvez pas créer de groupes de propriétés supplémentaires. La structure `nodeFilterRuleDefinitions` contient les informations suivantes :    
`type`  
`OpcUaRootPath`est le seul type pris en charge. Cela indique que la valeur de `rootPath` est un chemin relatif à la racine de l'espace de navigation OPC UA.  
`rootPath`  
Liste séparée par des virgules qui indique les chemins (relatifs à la racine) à inclure dans le groupe de propriétés.

### Exemples de configuration de fonctionnalités supplémentaires pour les flux classiques, les passerelles V2 ()AWS CLI
<a name="opc-ua-source-example-cli"></a>

L'exemple suivant définit une configuration de fonctionnalité de passerelle OPC UA SiteWise Edge à partir d'une charge utile stockée dans un fichier JSON.

```
aws iotsitewise update-gateway-capability-configuration \
--capability-namespace "iotsitewise:opcuacollector:2" \
--capability-configuration file://opc-ua-configuration.json
```

**Example : configuration de la source OPC UA**  
Le `opc-ua-configuration.json` fichier suivant définit une configuration de source OPC UA de base non sécurisée.  

```
{
    "sources": [
        {
            "name": "Wind Farm #1",
            "endpoint": {
                "certificateTrust": {
                    "type": "TrustAny"
                },
                "endpointUri": "opc.tcp://203.0.113.0:49320",
                "securityPolicy": "NONE",
                "messageSecurityMode": "NONE",
                "identityProvider": {
                    "type": "Anonymous"
                },
                "nodeFilterRules": []
            },
            "measurementDataStreamPrefix": ""
        }
    ]
}
```

**Example : configuration de source OPC UA avec groupes de propriétés définis**  
Le `opc-ua-configuration.json` fichier suivant définit une configuration de source OPC UA de base non sécurisée avec des groupes de propriétés définis.  

```
{
    "sources": [
        {
            "name": "source1",
            "endpoint": {
                "certificateTrust": {
                    "type": "TrustAny"
                },
                "endpointUri": "opc.tcp://10.0.0.9:49320",
                "securityPolicy": "NONE",
                "messageSecurityMode": "NONE",
                "identityProvider": {
                    "type": "Anonymous"
                },
                "nodeFilterRules": [
                    {
                        "action": "INCLUDE",
                        "definition": {
                            "type": "OpcUaRootPath",
                            "rootPath": "/Utilities/Tank"
                        }
                    }
                ]
            },
            "measurementDataStreamPrefix": "propertyGroups",
            "propertyGroups": [
                 {
                     "name": "Deadband_Abs_5",
                     "nodeFilterRuleDefinitions": [
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Temperature/TT-001"
                         },
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Temperature/TT-002"
                         }
                     ],
                     "deadband": {
                         "type":"ABSOLUTE",
                         "value": 5.0,
                         "timeoutMilliseconds": 120000
                     }
                 },
                 {
                     "name": "Polling_10s",
                     "nodeFilterRuleDefinitions": [
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Pressure/PT-001"
                         }
                     ],
                     "scanMode": {
                         "type": "POLL",
                         "rate": 10000
                     }
                 },
                 {
                     "name": "Percent_Deadband_Timeout_90s",
                     "nodeFilterRuleDefinitions": [
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Flow/FT-*"
                         }
                     ],
                     "deadband": {
                         "type":"PERCENT",
                         "value": 5.0,
                         "eguMin": -100,
                         "eguMax": 100,
                         "timeoutMilliseconds": 90000
                     }
                 }
             ]
        }
    ]
}
```

**Example : configuration de la source OPC UA avec propriétés**  
L'exemple JSON suivant `opc-ua-configuration.json` définit une configuration de source OPC UA avec les propriétés suivantes :  
+ Faire confiance à n'importe quel certificat.
+ Utilise la politique de `BASIC256` sécurité pour sécuriser les messages.
+ Utilise le mode `SIGN_AND_ENCRYPT` pour sécuriser les connexions.
+ Utilise les informations d'authentification stockées dans un secret de Secrets Manager.
+ Filtre les flux de données sauf ceux dont le chemin commence par `/WindFarm/2/WindTurbine/`.
+ Ajoute `/Washington` au début de chaque chemin de flux de données pour distinguer ce « parc éolien \$12 » et un « parc éolien \$12 » dans une autre zone.

```
{
    "sources": [
        {
            "name": "Wind Farm #2",
            "endpoint": {
                "certificateTrust": {
                    "type": "TrustAny"
                },
                "endpointUri": "opc.tcp://203.0.113.1:49320",
                "securityPolicy": "BASIC256",
                "messageSecurityMode": "SIGN_AND_ENCRYPT",
                "identityProvider": {
                    "type": "Username",
                    "usernameSecretArn": "arn:aws:secretsmanager:region:123456789012:secret:greengrass-windfarm2-auth-1ABCDE"
                },
                "nodeFilterRules": [
                  {
                      "action": "INCLUDE",
                      "definition": {
                          "type": "OpcUaRootPath",
                          "rootPath": "/WindFarm/2/WindTurbine/"
                    }
                  }
                ]
            },
            "measurementDataStreamPrefix": "/Washington"
        }
    ]
}
```

**Example : Configuration de la source OPC UA avec certificat de confiance**  
L'exemple JSON suivant `opc-ua-configuration.json` définit une configuration de source OPC UA avec les propriétés suivantes :  
+ Approuve un certificat X.509 donné.
+ Utilise la politique de `BASIC256` sécurité pour sécuriser les messages.
+ Utilise le mode `SIGN_AND_ENCRYPT` pour sécuriser les connexions.

```
{
    "sources": [
        {
            "name": "Wind Farm #3",
            "endpoint": {
                "certificateTrust": {
                    "type": "X509",
                    "certificateBody": "-----BEGIN CERTIFICATE-----
          MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
 WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
 EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
 MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
 WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
 HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
 BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
 k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
 ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
 AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
 KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
 EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
 3rrszlaEXAMPLE=
          -----END CERTIFICATE-----",
                    "certificateChain": "-----BEGIN CERTIFICATE-----
          MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
 WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
 EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
 MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
 WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
 HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
 BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
 k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
 ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
 AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
 KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
 EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
 3rrszlaEXAMPLE=
          -----END CERTIFICATE-----"
                },
                "endpointUri": "opc.tcp://203.0.113.2:49320",
                "securityPolicy": "BASIC256",
                "messageSecurityMode": "SIGN_AND_ENCRYPT",
                "identityProvider": {
                    "type": "Anonymous"
                },
                "nodeFilterRules": []
              },
            "measurementDataStreamPrefix": ""
              
        }
    ]
}
```

# Configurer les serveurs OPC UA pour qu'ils fassent confiance à la passerelle AWS IoT SiteWise Edge
<a name="enable-source-trust"></a>

Si vous choisissez une valeur `messageSecurityMode` autre que **None** lors de la configuration de votre source OPC UA, vous devez permettre à vos serveurs source de faire confiance à la passerelle AWS IoT SiteWise Edge. La passerelle SiteWise Edge génère un certificat dont votre serveur source peut avoir besoin. Le processus varie en fonction de vos serveurs sources. Pour plus d'informations, consultez la documentation de vos serveurs.

La procédure suivante décrit les étapes de base.

**Pour permettre à un serveur OPC UA de faire confiance à la passerelle SiteWise Edge**

1. Ouvrez l'interface de configuration de votre serveur OPC UA.

1. Entrez le nom d'utilisateur et le mot de passe de l'administrateur du serveur OPC UA.

1. Localisez **Clients de confiance** dans l'interface, puis choisissez **Client de passerelle AWS IoT SiteWise **.

1. Choisissez **Trust (Approuver)**.

## Exportation du certificat client OPC UA
<a name="export-opc-ua-client-certificate"></a>

Certains serveurs OPC UA ont besoin d'accéder au fichier de certificat client OPC UA pour faire confiance à la passerelle SiteWise Edge. Si cela s'applique à vos serveurs OPC UA, vous pouvez utiliser la procédure suivante pour exporter le certificat client OPC UA depuis la passerelle SiteWise Edge. Vous pouvez ensuite importer le certificat sur votre serveur OPC UA.

**Pour exporter le fichier de certificat client OPC UA pour une source**

1. Exécutez la commande suivante pour passer au répertoire contenant le fichier de certificat. *sitewise-work*Remplacez-le par le chemin de stockage local du dossier de travail *aws.iot.SiteWiseEdgeCollectorOpcua* Greengrass et remplacez-le *source-name* par le nom de la source de données. 

   Par défaut, le dossier de travail Greengrass se trouve sous Linux et */greengrass/v2/work/aws.iot.SiteWiseEdgeCollectorOpcua* *C:/greengrass/v2/work/aws.iot.SiteWiseEdgeCollectorOpcua* activé. Microsoft Windows 

   ```
   cd /sitewise-work/source-name/opcua-certificate-store
   ```

1. Le certificat client OPC UA de la passerelle SiteWise Edge pour cette source se trouve dans le `aws-iot-opcua-client.pfx` fichier.

   Exécutez la commande suivante pour exporter le certificat vers un fichier `.pem` appelé `aws-iot-opcua-client-certificate.pem`.

   ```
   keytool -exportcert -v -alias aws-iot-opcua-client -keystore aws-iot-opcua-client.pfx -storepass amazon -storetype PKCS12 -rfc > aws-iot-opcua-client-certificate.pem
   ```

1. Transférez le fichier de certificat de la passerelle SiteWise Edge vers le serveur OPC UA. `aws-iot-opcua-client-certificate.pem`

   Pour ce faire, vous pouvez utiliser un logiciel commun tel que le programme `scp` pour transférer le fichier en utilisant le protocole SSH. Pour de plus amples informations, veuillez consulter [Copie sécurisée](https://en.wikipedia.org/wiki/Secure_copy) sur *Wikipédia*.
**Note**  
Si votre passerelle SiteWise Edge s'exécute sur Amazon Elastic Compute Cloud (Amazon EC2) et que vous vous y connectez pour la première fois, vous devez configurer les conditions requises pour vous connecter. Pour plus d’informations, consultez la section [Connexion à votre instance Linux à l’aide de SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) dans le *Guide de l’utilisateur Amazon EC2*.

1. Importez le fichier de certificat sur le serveur OPC UA pour faire confiance à la passerelle SiteWise Edge. `aws-iot-opcua-client-certificate.pem` Les étapes varient en fonction du serveur source que vous utilisez. Consultez la documentation de votre serveur.

# Filtrez les plages d'ingestion de données avec OPC UA
<a name="opcua-data-acquisition"></a>

Vous pouvez contrôler la façon dont vous ingérez les données avec une source OPC UA en utilisant le mode scan et les plages de zones mortes. Ces fonctionnalités vous permettent de contrôler le type de données à ingérer, ainsi que la manière et le moment où votre serveur et la passerelle SiteWise Edge échangent ces informations.

## Collectez ou filtrez les données en fonction de leur qualité
<a name="opcua-data-quality"></a>

Vous pouvez configurer vos paramètres de qualité des données pour contrôler les données collectées à partir de la source OPC UA. La source de données inclut l'évaluation de qualité sous forme de métadonnées lorsqu'elle l'envoie. Vous pouvez sélectionner l'une ou l'ensemble des options suivantes :
+ `Good`
+ `Bad`
+ `Uncertain`

### Gérer les valeurs NaN ou nulles
<a name="nan-null"></a>

SiteWise Edge prend en charge la collecte et le traitement des valeurs NaN et nulles.
+ *NaN (pas un nombre) :* représente des résultats numériques non définis ou non représentables.
+ *Null :* indique des données manquantes.

Le collecteur IoT SiteWise OPC UA capture les valeurs NaN et Null avec une qualité MAUVAISE ou INCERTAINE. Ces valeurs spéciales sont écrites dans le flux local, ce qui permet une collecte de données plus complète.

## Contrôlez la fréquence de collecte des données avec le mode Scan
<a name="opcua-scanmode"></a>

Vous pouvez configurer le mode de numérisation de votre OPC UA pour contrôler la manière dont vous collectez les données à partir de votre source OPC UA. Vous pouvez choisir le mode abonnement ou le mode sondage.
+ Mode d'abonnement — La source OPC UA collecte des données à envoyer à votre passerelle SiteWise Edge à la fréquence définie par votre taux de numérisation. Le serveur envoie des données uniquement lorsque la valeur a changé. Il s'agit donc de la fréquence maximale à laquelle votre passerelle SiteWise Edge reçoit des données.
+ Mode d'interrogation : votre passerelle SiteWise Edge interroge la source OPC UA à une fréquence définie en fonction de votre fréquence de numérisation. Le serveur envoie des données, que la valeur ait changé ou non, de sorte que votre passerelle SiteWise Edge reçoit toujours les données à cet intervalle.
**Note**  
L'option du mode de sondage remplace vos paramètres de zone morte pour cette source.

## Filtrez l'ingestion de données OPC UA avec des plages de zones mortes
<a name="opcua-deadbanding"></a>

 Vous pouvez appliquer une zone morte à vos groupes de propriétés sources OPC UA afin de filtrer et de supprimer certaines données au lieu de les envoyer vers le Cloud. AWS Une zone morte indique une fenêtre de fluctuations attendues des valeurs de données entrantes provenant de votre source OPC UA. Si les valeurs se trouvent dans cette fenêtre, votre serveur OPC UA ne les enverra pas au AWS Cloud. Vous pouvez utiliser le filtrage en zone morte pour réduire la quantité de données que vous traitez et envoyez vers le AWS cloud. Pour savoir comment configurer des sources OPC UA pour votre passerelle SiteWise Edge, consultez[Sources de données OPC UA pour les passerelles AWS IoT SiteWise Edge](configure-sources-opcua.md).

**Note**  
 Votre serveur supprime toutes les données qui se trouvent dans la fenêtre spécifiée par votre deadband. Vous ne pouvez pas récupérer ces données supprimées.

### Types de deadbands
<a name="deadband-types"></a>

 Vous pouvez spécifier deux types de zones mortes pour le groupe de propriétés de votre serveur OPC UA. Ils vous permettent de choisir la quantité de données à envoyer AWS vers le cloud et celle à supprimer.
+ Pourcentage : vous spécifiez une fenêtre en utilisant un pourcentage de fluctuation attendue de la valeur de mesure. Le serveur calcule la fenêtre exacte à partir de ce pourcentage et envoie au AWS Cloud les données qui dépassent les limites de la fenêtre. Par exemple, la spécification d'une valeur de zone morte de 2 % sur un capteur comprise entre -100 degrés Fahrenheit et \$1100 degrés Fahrenheit indique au serveur d'envoyer des données vers le AWS cloud lorsque la valeur change de 4 degrés Fahrenheit ou plus. 
**Note**  
 Vous pouvez éventuellement spécifier une valeur de bande morte minimale et maximale pour cette fenêtre si votre serveur source ne définit pas d'unités d'ingénierie. Si aucune plage d'unités d'ingénierie n'est fournie, le serveur OPC UA utilise par défaut la plage complète du type de données de mesure.
+ Absolu — Vous spécifiez une fenêtre en utilisant des unités exactes. Par exemple, la spécification d'une valeur de zone morte de 2 sur un capteur indique au serveur d'envoyer des données au AWS Cloud lorsque sa valeur change d'au moins 2 unités. Vous pouvez utiliser l'impasse absolue pour les environnements dynamiques dans lesquels des fluctuations sont régulièrement attendues pendant les opérations normales.

### Délais d'expiration de la bande morte
<a name="deadband-timeout"></a>

 Vous pouvez éventuellement configurer un paramètre de délai d'expiration en zone morte. Après ce délai, le serveur OPC UA envoie la valeur de mesure actuelle même si elle se situe dans les limites de la fluctuation de bande morte attendue. Vous pouvez utiliser le paramètre de temporisation pour garantir AWS IoT SiteWise l'ingestion d'un flux constant de données à tout moment, même lorsque les valeurs ne dépassent pas la fenêtre de zone morte définie. 

# Utiliser les filtres de nœuds OPC UA dans Edge SiteWise
<a name="opc-ua-node-filters"></a>

Lorsque vous définissez des sources de données OPC UA pour une passerelle SiteWise Edge, vous pouvez définir des filtres de nœuds. Les filtres de nœuds vous permettent de limiter les chemins de flux de données que la passerelle SiteWise Edge envoie vers le cloud. Vous pouvez utiliser des filtres de nœuds pour réduire le temps de démarrage et l'utilisation du processeur de votre passerelle SiteWise Edge en incluant uniquement les chemins d'accès aux données que vous modélisez AWS IoT SiteWise. Par défaut, les passerelles SiteWise Edge téléchargent tous les chemins OPC UA à l'exception de ceux qui commencent par. `/Server/` Vous pouvez utiliser les caractères génériques `*` et `**` dans vos filtres de nœuds pour inclure plusieurs chemins de flux de données avec un seul filtre. Pour savoir comment configurer des sources OPC UA pour votre passerelle SiteWise Edge, consultez[Sources de données OPC UA pour les passerelles AWS IoT SiteWise Edge](configure-sources-opcua.md).

**Note**  
AWS IoT SiteWise redémarre votre passerelle SiteWise Edge chaque fois que vous ajoutez ou modifiez une source. Votre passerelle SiteWise Edge n'ingère pas de données lors de la mise à jour de la configuration de la source. Le délai de redémarrage de votre passerelle SiteWise Edge dépend du nombre de balises figurant sur les sources de votre passerelle SiteWise Edge. Le temps de redémarrage peut aller de quelques secondes (pour une passerelle SiteWise Edge avec peu de balises) à plusieurs minutes (pour une passerelle SiteWise Edge avec de nombreuses balises).

Le tableau suivant répertorie les caractères génériques que vous pouvez utiliser pour filtrer les sources de données OPC UA.


**Caractères génériques du filtre de nœuds OPC UA**  

| Caractère générique | Description | 
| --- | --- | 
| \$1 | Correspond à un niveau unique dans un chemin de flux de données. | 
| \$1\$1 | Correspond à plusieurs niveaux dans un chemin de flux de données. | 

**Note**  
Si vous configurez une source avec un filtre large, puis que vous modifiez ultérieurement la source pour utiliser un filtre plus restrictif, AWS IoT SiteWise arrête de stocker les données qui ne correspondent pas au nouveau filtre.

**Example : scénario utilisant des filtres de nœuds**  
Considérons les flux de données hypothétiques suivants :  
+ `/WA/Factory 1/Line 1/PLC1`
+ `/WA/Factory 1/Line 1/PLC2`
+ `/WA/Factory 1/Line 2/Counter1`
+ `/WA/Factory 1/Line 2/PLC1`
+ `/OR/Factory 1/Line 1/PLC1`
+ `/OR/Factory 1/Line 2/Counter2`
À l'aide des flux de données précédents, vous pouvez définir des filtres de nœuds pour limiter les données à inclure à partir de votre source OPC UA.  
+ Pour sélectionner tous les nœuds dans cet exemple, utilisez `/` ou`/**/`. Vous pouvez inclure plusieurs répertoires ou dossiers avec les caractères génériques « `**` ».
+ Pour sélectionner tous les flux de données `PLC`, utilisez `/*/*/*/PLC*` ou `/**/PLC*`.
+ Pour sélectionner tous les compteurs dans cet exemple, utilisez `/**/Counter*` ou`/*/*/*/Counter*`.
+ Pour sélectionner tous les compteurs à partir de `Line 2`, utilisez `/**/Line 2/Counter*`.

# Conversion de types de données non pris en charge
<a name="string-conversion"></a>

Activez éventuellement la conversion des types de données AWS IoT SiteWise pour les tableaux et types de DateTime données simples. AWS IoT SiteWise ne prend pas en charge tous les types de données OPC UA. Lorsque vous envoyez des données non prises en charge à votre flux de AWS IoT Greengrass données, ces données sont perdues. Toutefois, en convertissant les types de données natifs non pris en charge en chaînes, vous pouvez ingérer les données au AWS IoT SiteWise lieu de les supprimer. AWS IoT SiteWise sérialise vos données converties afin que vous puissiez ultérieurement utiliser vos propres fonctions pour reconvertir les chaînes dans leur type de données d'origine en aval, si nécessaire. 

Vous pouvez mettre à jour les paramètres de conversion des types de données pour une source de données à tout moment et chaque source de données peut avoir ses propres paramètres.

Lorsque vous ajoutez des sources de données dans le Console AWS IoT SiteWise, deux cases à cocher se trouvent sous **Conversion de type de données** dans **Configuration avancée**. Vous pouvez indiquer les types de données à convertir en chaînes.

De plus, le collecteur IoT SiteWise OPC UA peut accepter des valeurs NaN ou nulles sur le bord.
+ Convertissez des valeurs de tableau contenant des types de données simples en chaînes JSON
+ Convertir DateTime des valeurs en chaînes ISO 8601

## Prérequis
<a name="string-conversion-prereq"></a>
+ Utilisez la version 2.5.0 ou ultérieure du collecteur [IoT SiteWise OPC UA](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html).

## Limitations
<a name="string-conversion-limits"></a>

Voici les limites de la conversion des types de données OPC UA en AWS IoT SiteWise chaînes.
+ La conversion de types de données complexes n'est pas prise en charge.
+ Les limites de chaînes après la conversion sont de 1 024 octets. Si la chaîne est supérieure à 1024 octets, elle est rejetée par AWS IoT SiteWise.

# Configurer l'authentification des sources de données pour SiteWise Edge
<a name="configure-source-authentication-ggv2"></a>

Si votre serveur OPC UA nécessite des informations d'authentification pour se connecter, vous pouvez les utiliser AWS Secrets Manager pour créer et déployer un secret sur votre passerelle SiteWise Edge. AWS Secrets Manager chiffre les secrets sur l'appareil pour protéger votre nom d'utilisateur et votre mot de passe jusqu'à ce que vous ayez besoin de les utiliser. Pour plus d'informations sur le composant du gestionnaire de AWS IoT Greengrass secrets, consultez la section [Gestionnaire de secrets](https://docs.aws.amazon.com/greengrass/v2/developerguide/secret-manager-component.html) dans le *guide du AWS IoT Greengrass Version 2 développeur*.

Pour plus d'informations sur la gestion de l'accès aux secrets de Secrets Manager, voir :
+ [Qui est autorisé à accéder à vos AWS Secrets Manager secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/determine-acccess_examine-iam-policies.html).
+ [Déterminer si une demande est autorisée ou refusée dans un compte](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow).

## Étape 1 : créer des secrets d'authentification à la source
<a name="create-secrets-ggv2"></a>

Vous pouvez l'utiliser AWS Secrets Manager pour créer un secret d'authentification pour votre source de données. Dans le secret, définissez **username** des paires **password** clé-valeur contenant les détails d'authentification de votre source de données.

**Pour créer des secrets (console)**

1. Accédez à la [console AWS Secrets Manager](https://console.aws.amazon.com/secretsmanager/).

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Sous **Type de secret**, sélectionnez **Autre type de secret**.

1. Sous **Paires clé/valeur**, procédez comme suit :

   1. Dans la première zone de saisie, entrez **username** le nom d'utilisateur dans la deuxième zone de saisie.

   1. Choisissez **Add row** (Ajouter une ligne).

   1. Dans la première zone de saisie, entrez **password** le mot de passe dans la deuxième zone de saisie.

1. **Pour **Clé de chiffrement**, sélectionnez **aws/secretsmanager**, puis Next.**

1. Sur la page **Enregistrer un nouveau secret**, entrez un **nom secret**. 

1. (Facultatif) Entrez une **description** qui vous aidera à identifier ce secret, puis choisissez **Next**.

1. (Facultatif) Sur la page **Enregistrer une nouvelle page secrète**, activez la **rotation automatique**. Pour plus d'informations, voir [Rotation des secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html) dans le *guide de AWS Secrets Manager l'utilisateur*.

1. Spécifiez un calendrier de rotation.

1. **Choisissez une fonction Lambda capable de faire pivoter ce secret, puis choisissez Next.**

1. Passez en revue vos configurations secrètes, puis choisissez **Store**.

Pour autoriser l'interaction avec votre passerelle SiteWise Edge AWS Secrets Manager, le rôle IAM de votre passerelle SiteWise Edge doit autoriser l'`secretsmanager:GetSecretValue`action. Vous pouvez utiliser le **périphérique principal de Greengrass** pour rechercher la politique IAM. Pour plus d'informations sur la mise à jour d'une stratégie IAM, consultez la section [Modification des politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) dans le Guide de l'*Gestion des identités et des accès AWS utilisateur*.

**Example policy**  
*secret-arn*Remplacez-le par le Amazon Resource Name (ARN) du secret que vous avez créé à l'étape précédente. Pour plus d'informations sur la façon d'obtenir l'ARN d'un secret, consultez la section [Rechercher des secrets AWS Secrets Manager dans](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html) le *guide de AWS Secrets Manager l'utilisateur*.    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement":[
  {
     "Action":[
        "secretsmanager:GetSecretValue"
     ],
     "Effect":"Allow",
     "Resource":[
        "arn:aws:secretsmanager:us-east-1:123456789012:secret/*"
     ]
  }
]
}
```

## Étape 2 : Déployer des secrets sur votre périphérique de passerelle SiteWise Edge
<a name="deploy-secrets-ggv2"></a>

Vous pouvez utiliser la AWS IoT SiteWise console pour déployer des secrets sur votre passerelle SiteWise Edge.

**Pour déployer un secret (console)**

1. Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation, choisissez **Passerelles**.

1. Dans la liste des **passerelles**, choisissez la passerelle SiteWise Edge cible.

1. Dans la section **Configuration de la passerelle**, choisissez le lien du **périphérique principal Greengrass** pour ouvrir le AWS IoT Greengrass cœur associé à la passerelle SiteWise Edge.

1. Dans le volet de navigation, choisissez **Deployments.**

1. Choisissez le déploiement cible, puis sélectionnez **Revise**.

1. Sur la page **Spécifier la cible**, choisissez **Next**.

1. Sur la page **Sélectionner les composants**, dans la section **Composants publics**, désactivez **Afficher uniquement les composants sélectionnés**.

1. Recherchez et choisissez le fichier **aws.greengrass. SecretManager**composant, puis choisissez **Next**.

1. Dans la liste des **composants sélectionnés**, sélectionnez **aws.greengrass. SecretManager**, puis choisissez **Configurer le composant**.

1. Dans le champ **Configuration à fusionner**, ajoutez l'objet JSON suivant.
**Note**  
*secret-arn*Remplacez-le par l'ARN du secret que vous avez créé à l'étape précédente. Pour plus d'informations sur la façon d'obtenir l'ARN d'un secret, consultez la section [Rechercher des secrets AWS Secrets Manager dans](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html) le *guide de AWS Secrets Manager l'utilisateur*.

   ```
   {
   "cloudSecrets":[
     {
        "arn":"secret-arn"
     }
   ]
   }
   ```

1. Choisissez **Confirmer**.

1. Choisissez **Suivant**.

1. Sur la page **Configurer les paramètres avancés**, choisissez **Next**.

1. Passez en revue vos configurations de déploiement, puis choisissez **Deploy**.

## Étape 3 : ajouter des configurations d'authentification
<a name="add-authentication-configurations"></a>

Vous pouvez utiliser la AWS IoT SiteWise console pour ajouter des configurations d'authentification à votre passerelle SiteWise Edge.

**Pour ajouter des configurations d'authentification (console)**

1. Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans la liste des **passerelles**, choisissez la passerelle SiteWise Edge cible.

1. Dans la liste des **sources de données**, choisissez la source de données cible, puis sélectionnez **Modifier**.

1. Sur la page **Ajouter une source de données**, choisissez **Configuration avancée**.

1. Pour la **configuration de l'authentification**, choisissez le secret que vous avez déployé à l'étape précédente.

1. Choisissez **Enregistrer**.

# Sources de données partenaires sur les passerelles SiteWise Edge
<a name="partner-data-sources"></a>

Lorsque vous utilisez une passerelle AWS IoT SiteWise Edge, vous pouvez connecter une source de données partenaire à votre passerelle SiteWise Edge et recevoir des données du partenaire sur votre passerelle SiteWise Edge et dans le AWS cloud. Ces sources de données partenaires sont AWS IoT Greengrass des composants développés en partenariat entre AWS et le partenaire. Lorsque vous ajoutez une source de données partenaire, ce composant AWS IoT SiteWise sera créé et déployé sur votre passerelle SiteWise Edge. 

**Note**  
Vous pouvez ajouter une source de données pour chaque partenaire dans chaque passerelle.

Pour ajouter une source de données partenaire, procédez comme suit :

1. [Ajouter une source de données partenaire dans SiteWise Edge](cpa-add-source.md)

1. Accédez au portail Web du partenaire, le cas échéant, et configurez la source de données du partenaire afin qu'elle se connecte à la passerelle SiteWise Edge.

**Topics**
+ [Sécurité](#cpa-security)
+ [Configuration Docker sur votre passerelle SiteWise Edge](cpa-install-docker.md)
+ [Ajouter une source de données partenaire dans SiteWise Edge](cpa-add-source.md)
+ [SiteWise Options de source de données pour les partenaires Edge Gateway](connect-partner-data-source.md)

## Sécurité
<a name="cpa-security"></a>

Dans le cadre du [modèle de responsabilité partagée](https://aws.amazon.com/compliance/shared-responsibility-model/) entre AWS nos clients et nos partenaires, les informations suivantes décrivent qui est responsable des différents aspects de la sécurité :

**Responsabilité du client**  
+ Sélection du partenaire.
+ Configuration de l'accès réseau accordé au partenaire. 
+ Surveillance de l'utilisation raisonnable des ressources de la machine de passerelle SiteWise Edge (processeur, mémoire et système de fichiers).

**AWS responsabilité**  
+ Isoler le partenaire des ressources AWS cloud du client, à l'exception de celles dont le partenaire a besoin. Dans ce cas, AWS IoT SiteWise ingestion.
+ Restreindre la solution partenaire à une utilisation raisonnable des ressources de la machine de passerelle SiteWise Edge (processeur et mémoire).

**Responsabilité du partenaire**  
+ Utilisation de valeurs par défaut sécurisées.
+ Garantir la sécurité de la solution au fil du temps grâce à des correctifs et à d'autres mises à jour appropriées.
+ Préserver la confidentialité des données des clients.

# Configuration Docker sur votre passerelle SiteWise Edge
<a name="cpa-install-docker"></a>

AWS IoT SiteWise fournit une Docker image qui vous permet d'exécuter l'application SiteWise Edge sur différents environnements et plateformes. Cette Docker image encapsule tous les composants et dépendances nécessaires pour collecter, traiter et envoyer les données de votre équipement industriel vers le AWS cloud. À l'aide de l'image Docker, vous pouvez déployer et exécuter l'application SiteWise Edge sur des hôtes compatibles Docker, tels que des serveurs, des appareils Edge ou des services de conteneur basés sur le cloud.

Pour ajouter une source de données partenaire, [Docker Engine](https://docs.docker.com/engine/) 1.9.1 ou version ultérieure doit être installé sur votre appareil local.

**Note**  
La version 20.10 est la dernière version vérifiée pour fonctionner avec le logiciel de passerelle SiteWise Edge.

## Vérifier Docker qu'il est installé
<a name="cpa-install-docker-verify"></a>

Pour vérifier Docker qu'il est installé, exécutez la commande suivante depuis un terminal connecté à votre passerelle SiteWise Edge :

```
docker info
```

Si la commande renvoie un `docker is not recognized` résultat ou si une ancienne version de Docker est installée, [installez Docker Engine](https://docs.docker.com/engine/install/) avant de continuer.

## Configurer Docker
<a name="cpa-install-docker-setup"></a>

L'utilisateur du système qui exécute un composant de Docker conteneur doit disposer des autorisations root ou administrateur, ou vous devez le configurer Docker pour l'exécuter en tant qu'utilisateur non root ou non administrateur.

Sur les appareils Linux, vous devez ajouter un `ggc_user` utilisateur au `docker` groupe sans lequel vous pouvez appeler Docker des commandes`sudo`.

Pour ajouter `ggc_user` au `docker` groupe l'utilisateur non root que vous utilisez pour exécuter les composants du Docker conteneur, ou l'utilisateur non root que vous utilisez pour exécuter les composants du conteneur, exécutez la commande suivante :

```
sudo usermod -aG docker ggc_user
```

Pour plus d'informations, consultez les [étapes de post-installation de Linux pour Docker Engine](https://docs.docker.com/engine/install/linux-postinstall/).

# Ajouter une source de données partenaire dans SiteWise Edge
<a name="cpa-add-source"></a>

Pour connecter une source de données partenaire à votre passerelle SiteWise Edge, ajoutez-la en tant que source de données. Lorsque vous l'ajoutez en tant que source de données, un AWS IoT Greengrass composant privé AWS IoT SiteWise sera déployé sur votre passerelle SiteWise Edge.

## Conditions préalables
<a name="cpa-add-prereqs"></a>

Pour ajouter une source de données partenaire, vous devez effectuer les opérations suivantes :
+ Pour EasyEdge etCloudRail, créez un compte auprès du partenaire, puis liez les comptes.
+ [Configuration Docker sur votre passerelle SiteWise Edge](cpa-install-docker.md)

## Création d'une passerelle SiteWise Edge avec une source de données partenaire
<a name="cpa-add-create-gateway"></a>

Si vous souhaitez créer une nouvelle passerelle SiteWise Edge, suivez les étapes décrites dans[Créez une passerelle SiteWise Edge auto-hébergée](create-gateway-ggv2.md). Après avoir créé la passerelle SiteWise Edge, suivez les étapes ci-dessous [Ajouter une source de données partenaire à une passerelle SiteWise Edge existante](#cpa-existing-gateway) pour ajouter une source de données partenaire.

## Ajouter une source de données partenaire à une passerelle SiteWise Edge existante
<a name="cpa-existing-gateway"></a>

1. Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation de gauche, choisissez **Edge gateway** dans la section **Edge**.

1. Choisissez la passerelle SiteWise Edge à laquelle vous souhaitez connecter la source de données partenaire.

1. Sous **Sources de données**, choisissez **Ajouter une source de données**.

1. Sur l'écran **Ajouter une source de données**, choisissez un **type de source** pour sélectionner le partenaire qui connecte votre passerelle SiteWise Edge. Chaque source de données possède ses propres options de configuration. Il existe deux catégories de sources de données : les AWS sources et les sources partenaires.

   À l'aide d'une source de données partenaire, vous pouvez sélectionner une source par passerelle. Pour obtenir la liste des options d'intégration des partenaires de sources de données, consultez[SiteWise Options de source de données pour les partenaires Edge Gateway](connect-partner-data-source.md). Notez que vous pouvez ajouter jusqu'à 100 sources de données OPC UA (AWS sources). Pour commencer à utiliser les sources de données OPC UA, voir[Sources de données OPC UA pour les passerelles AWS IoT SiteWise Edge](configure-sources-opcua.md). 

1. Entrez le nom de la source.

1. Sélectionnez l'onglet de votre source de données ci-dessous et suivez la procédure de configuration.

------
#### [ CloudRail ]

   Une grande partie de la CloudRail configuration est effectuée dans le CloudRail portail après avoir enregistré la source de données pour votre passerelle SiteWise Edge. Il est toutefois nécessaire d'autoriser la connexion.

**Note**  
La CloudRail connexion n'est disponible que sous Linux.

   1. [Créez un CloudRail compte](https://devices.cloudrail.com/signup) pour commencer à vous connecter à AWS IoT SiteWise.

   1. Assurez-vous que Docker est installé sur votre passerelle. Pour de plus amples informations, veuillez consulter [Configuration Docker sur votre passerelle SiteWise Edge](cpa-install-docker.md).

   1. Lisez le contrat **d'autorisation d'accès et de déploiement**, puis choisissez **Autoriser**. Le fait de cocher cette case permet au AWS partenaire d'accéder à votre source de données et AWS de le déployer sur le composant du partenaire.

**Note**  
Le **préfixe de mesure (*facultatif)*** est défini dans votre CloudRail portail.

**Note**  
Le logiciel du partenaire est développé, maintenu et pris en charge par le AWS partenaire. AWS n'est pas responsable de l'interface, de la configuration ou du logiciel.

   Pour de plus amples informations, veuillez consulter [CloudRail](connect-partner-data-source.md#cp-cloudrail).

------
#### [ EasyEdge ]

   Une grande partie de la EasyEdge configuration est effectuée dans le EasyEdge portail après avoir enregistré la source de données pour votre passerelle SiteWise Edge. Il est toutefois nécessaire d'autoriser la connexion.

**Note**  
La EasyEdge connexion n'est disponible que sous Linux.

   1. [Créez un EasyEdge compte](https://accounts.easyedge.io/signup?partner=aws) pour commencer à vous connecter à AWS IoT SiteWise.

   1. Assurez-vous que Docker est installé sur votre passerelle. Pour de plus amples informations, veuillez consulter [Configuration Docker sur votre passerelle SiteWise Edge](cpa-install-docker.md).

   1. Lisez le contrat **d'autorisation d'accès et de déploiement**, puis choisissez **Autoriser**. Le fait de cocher cette case permet au AWS partenaire d'accéder à votre source de données et AWS de le déployer sur le composant du partenaire.

**Note**  
Le **préfixe de mesure (*facultatif)*** est défini dans votre EasyEdge portail.

**Note**  
Le logiciel du partenaire est développé, maintenu et pris en charge par le AWS partenaire. AWS n'est pas responsable de l'interface, de la configuration ou du logiciel.

   Pour de plus amples informations, veuillez consulter [EasyEdge](connect-partner-data-source.md#cp-easyedge).

------
#### [ Litmus Edge ]

   Vous pouvez activer la Litmus configuration de deux manières. Activez Litmus Edge directement AWS IoT SiteWise en utilisant les informations du Litmus Edge Manager portail. Vous pouvez également activer manuellement Litmus Edge pour AWS IoT SiteWise viaLitmus Edge Manager.

**Note**  
La Litmus Edge connexion n'est disponible que sous Linux.

    

**Pour l'activer à l'aide d'un code Litmus Edge d'activation sur AWS IoT SiteWise**

   Utilisez cette procédure lorsque vous ajoutez une source de Litmus Edge données avec un code Litmus Edge d'activation sur le Console AWS IoT SiteWise.

   1. Sélectionnez **Activer maintenant à l'aide d'un code**. Des options de configuration supplémentaires apparaissent.

   1. Entrez le Litmus Edge Manager pour vous connecter Litmus Edge à votre passerelle SiteWise Edge. Pour plus d'informations, voir [Étape 3a : Définir le point de terminaison de gestion des données et des appareils](https://docs.litmus.io/edgemanager/quickstart-guide/activate-an-edge-device/step-3-activation-request) dans la Litmus Edge Manager documentation.

   1. Fournissez le code Litmus Edge Manager d'activation pour l'activer Litmus Edge sur AWS IoT SiteWise

   1. Fournissez éventuellement AWS IoT SiteWise le **certificat Litmus Edge Manager CA**. Le certificat Litmus Edge empêche toute activation sur un site non autoriséLitmus Edge Manager.

   1. Assurez-vous que Docker est installé sur votre passerelle. Pour de plus amples informations, veuillez consulter [Configuration Docker sur votre passerelle SiteWise Edge](cpa-install-docker.md).
**Note**  
AWS IoT SiteWise déploie l'application partenaire en tant que conteneur Docker. L'application est déployée avec des `NET_ADMIN` fonctionnalités permettant de gérer le conteneur Litmus Edge Docker. Litmus Edge Manager Litmus Edgenécessite cet accès privilégié pour fonctionner sur vos appareils. Pour plus d'informations sur les exigences de Litmus Edge Docker, consultez la section [Installation de Docker](https://docs.litmus.io/litmusedge-v1/quickstart-guide/installation-and-deployments/docker-installation) dans le *QuickStart guide* de la documentation Litmus Edge. 

   1. Lisez le contrat **d'autorisation d'accès et de déploiement**, puis choisissez **Autoriser**. Le fait de cocher cette case permet au AWS partenaire d'accéder à votre source de données et AWS de le déployer sur le composant du partenaire.

    

**Pour activer manuellement via Litmus Edge**

   1. Sélectionnez **Activer ultérieurement Litmus Edge**.

   1. Assurez-vous que Docker est installé sur votre passerelle. Pour de plus amples informations, veuillez consulter [Configuration Docker sur votre passerelle SiteWise Edge](cpa-install-docker.md).
**Note**  
AWS IoT SiteWise déploie l'application partenaire en tant que conteneur Docker. L'application est déployée avec des `NET_ADMIN` fonctionnalités permettant de gérer le conteneur Litmus Edge Docker. Litmus Edge Manager Litmus Edgenécessite cet accès privilégié pour fonctionner sur vos appareils. Pour plus d'informations sur les exigences de Litmus Edge Docker, consultez la section [Installation de Docker](https://docs.litmus.io/litmusedge-v1/quickstart-guide/installation-and-deployments/docker-installation) dans le *QuickStart guide* de la documentation Litmus Edge. 

   1. Lisez le contrat **d'autorisation d'accès et de déploiement**, puis choisissez **Autoriser**. Le fait de cocher cette case permet au AWS partenaire d'accéder à votre source de données et AWS de le déployer sur le composant du partenaire.

   1. Une fois le déploiement terminé, suivez les instructions [d'accès à l'interface utilisateur Web de Litmus Edge](https://docs.litmus.io/litmusedge/quickstart-guide/access-the-litmus-edge-web-ui) figurant dans la Litmus Edge *QuickStart Guide*documentation.

**Note**  
Le logiciel du partenaire est développé, maintenu et pris en charge par le AWS partenaire. AWS n'est pas responsable de l'interface, de la configuration ou du logiciel.

   Pour de plus amples informations, veuillez consulter [Litmus Edge](connect-partner-data-source.md#cp-litmus).

------

1. Choisissez **Enregistrer**.

# SiteWise Options de source de données pour les partenaires Edge Gateway
<a name="connect-partner-data-source"></a>

AWS IoT SiteWise vous permet de connecter et d'ingérer des données provenant de diverses sources de données partenaires, telles que des équipements industriels, des capteurs et d'autres systèmes tiers. Pour connecter une source de données partenaire, vous devez suivre quelques étapes, notamment configurer la source de données à laquelle envoyer les données AWS IoT SiteWise, configurer les autorisations et l'authentification nécessaires, et mapper les données à vos modèles d'actifs. Ce processus garantit que les données de vos partenaires sont parfaitement intégrées dans votre AWS IoT SiteWise environnement, ce qui vous permet de les surveiller et de les analyser en même temps que vos autres sources de données.

Cette section répertorie les partenaires disponibles pour l'intégration de sources de données tierces sur les passerelles SiteWise Edge. Utilisez les informations ci-dessous pour configurer une source de données partenaire.

**Note**  
Vous pouvez ajouter une source de données pour chaque partenaire dans chaque passerelle

## CloudRail
<a name="cp-cloudrail"></a>

**Portail :**   
[https://devices.cloudrail.com/](https://devices.cloudrail.com/)

**Exigences**  
Pour plus d'informations sur CloudRail les exigences, consultez les [FAQ](https://cloudrail.com/faqs/) sur le CloudRail site Web.

**CloudRaildocumentation :**  
[Informatique de pointe : SiteWise Edge](https://devices.cloudrail.com/documentation?service=AWSIoTSitewiseEdge#awsiotsitewiseEdge1)

## EasyEdge
<a name="cp-easyedge"></a>

**Portail :**   
[https://studio.easyedge.io/](https://studio.easyedge.io/)

**Exigences**  
[EasyEdgeexigences](https://docs.easyedge.io/getting-started/requirements.html) — Informations sur les EasyEdge exigences, y compris les points de terminaison et les ports requis pour configurer le pare-feu. **Remarque** : vous aurez besoin d'un EasyEdge compte pour accéder à cette documentation.

**EasyEdgedocumentation :**  
[EasyEdgepour AWS](https://www.easyedge.io/easyedge-for-aws/)

## Litmus Edge
<a name="cp-litmus"></a>

**Accès à Litmus Edge Manager :**   
Pour accéder à Litmus Edge, créez un compte [Litmus Edge Manager](https://docs.litmus.io/edgemanager/quickstart-guide/access-to-litmus-edge-manager).

**Exigences**  
[Litmus EdgeExigences](https://docs.litmus.io/litmusedge/quickstart-guide/system-requirements) — Configurations recommandées et configuration système requise pour le déploiementLitmus Edge.

**Litmusdocumentation :**  
+ [Intégration à AWS IoT SiteWise](https://docs.litmus.io/litmusedge-v1/litmusedge-with-aws-iot-sitewise)
+ [Documentation Litmus Edge](https://docs.litmus.io/litmusedge/)

# AWS IoT Greengrass composants pour AWS IoT SiteWise Edge
<a name="sw-edge-components"></a>

SiteWise Edge utilise des AWS IoT Greengrass composants pour collecter, traiter et transmettre des données industrielles à la périphérie. Ces composants fonctionnent ensemble pour permettre le traitement local des données et une intégration parfaite avec le service AWS IoT SiteWise cloud.

** SiteWise Éditeur IoT**  
Le composant SiteWise éditeur IoT (`aws.iot.SiteWiseEdgePublisher`) est chargé de :  
+ Transmission sécurisée des données collectées vers le service AWS IoT SiteWise cloud
+ Gestion de la mise en mémoire tampon des données et des nouvelles tentatives en cas de problèmes de connectivité
Pour plus d'informations sur la configuration de l'éditeur pour SiteWise Edge, consultez[Configuration du composant AWS IoT SiteWise éditeur](configure-publisher-component.md). Et, pour plus d'informations sur le composant éditeur, consultez la section [IoT SiteWise Publisher](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-publisher-component.html) dans le *Guide du AWS IoT Greengrass Version 2 développeur*. 

** SiteWise Processeur IoT**  
Le composant SiteWise processeur IoT (`aws.iot.SiteWiseEdgeProcessor`) exécute les tâches suivantes :  
+ Exécution de transformations de données et de calculs à la périphérie
+ Implémentation des définitions et des calculs des propriétés des actifs localement
+ Réduction du volume de données en agrégeant ou en filtrant les données avant leur transmission
Pour plus d'informations sur le composant processeur, consultez la section [ SiteWise Processeur IoT](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-processor-component.html) dans le *Guide du AWS IoT Greengrass Version 2 développeur*.

**Collecteur IoT SiteWise OPC UA**  
Le composant collecteur IoT SiteWise OPC UA (`aws.iot.SiteWiseEdgeCollectorOpcua`) est conçu pour :  
+ Connectez-vous aux serveurs OPC UA dans les environnements industriels
+ Collectez efficacement des données à partir de sources de données OPC UA
+ Transformez les données OPC UA dans un format compatible avec AWS IoT SiteWise
Pour plus d'informations sur le composant collecteur OPC UA, voir [collecteur IoT SiteWise OPC UA](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) dans le guide du *AWS IoT Greengrass Version 2 développeur*.

**Simulateur de source de données IoT SiteWise OPC UA**  
Le composant simulateur de source de données IoT SiteWise OPC UA (`aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator`) fournit les fonctionnalités suivantes :  
+ Démarre un serveur OPC UA local qui génère des exemples de données
+ Simule une source de données qui peut être lue par le composant collecteur AWS IoT SiteWise OPC UA sur une passerelle AWS IoT SiteWise 
+ Permet d'explorer les AWS IoT SiteWise fonctionnalités à l'aide des exemples de données générés
Ce composant est particulièrement utile à des fins de test et de développement, car il vous permet de simuler des sources de données industrielles sans avoir besoin d'équipement physique.  
Pour plus d'informations sur le composant de simulation de source de données, voir le [simulateur de source de données IoT SiteWise OPC UA](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-opcua-data-source-simulator-component.html) dans le *guide du AWS IoT Greengrass Version 2 développeur*.

Ces AWS IoT Greengrass composants permettent d'activer les fonctionnalités SiteWise Edge. L' SiteWise éditeur IoT veille à ce que les données soient envoyées de manière fiable vers le cloud, le SiteWise processeur IoT gère les calculs locaux et l'optimisation des données, et le collecteur IoT SiteWise OPC UA facilite l'intégration aux protocoles industriels courants.

**Note**  
Pour utiliser ces composants, vous devez les avoir installés AWS IoT Greengrass V2 ou les installer ultérieurement sur vos appareils Edge. Il est important de configurer correctement chaque composant pour optimiser les performances d' SiteWise Edge.

# Filtrer les actifs sur une passerelle SiteWise Edge
<a name="filter-assets-ggv2"></a>

Vous pouvez utiliser le filtrage périphérique pour gérer plus efficacement vos actifs en n'envoyant qu'un sous-ensemble d'actifs à une passerelle SiteWise Edge spécifique pour une utilisation dans le traitement des données. Si vos actifs sont organisés dans une structure arborescente, ou parent-enfant, vous pouvez configurer une politique IAM attachée au rôle IAM d'une passerelle SiteWise Edge qui autorise uniquement l'envoi de la racine de l'arborescence, ou parent, et de ses enfants à une passerelle Edge spécifique. SiteWise 

**Note**  
Si vous organisez des actifs existants dans une arborescence, après avoir créé la structure, accédez à chaque actif existant que vous avez ajouté à la structure et choisissez **Modifier**, puis cliquez sur **Enregistrer** pour vous assurer que la AWS IoT SiteWise nouvelle structure est reconnue.

## Configurer le filtrage des bords
<a name="set-up-edge-filter-ggv2"></a>

Configurez le filtrage Edge sur votre passerelle SiteWise Edge en ajoutant la politique IAM suivante au rôle IAM de la passerelle SiteWise Edge, en la *<root-asset-id>* remplaçant par l'ID de la ressource racine que vous souhaitez envoyer à la passerelle SiteWise Edge.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "iotsitewise:DescribeAsset",
                "iotsitewise:ListAssociatedAssets"
            ],
            "Resource": "arn:aws:iotsitewise:*:*:asset/*",
            "Condition": {
                "StringNotLike": {
                    "iotsitewise:assetHierarchyPath": "/<root-asset-id>*"
                }
            }
        }
    ]
}
```

------

Si vous souhaitez supprimer des actifs se trouvant actuellement sur votre passerelle SiteWise Edge, connectez-vous à votre passerelle SiteWise Edge et exécutez la commande suivante pour forcer la passerelle SiteWise Edge à se synchroniser avec celle-ci AWS IoT SiteWise en supprimant le cache.

```
sudo rm /greengrass/v2/work/aws.iot.SiteWiseEdgeProcessor/sync-app/sync_resource_bundles/edge.json
```

# Configuration de la prise en charge des proxys et gestion des magasins de confiance pour AWS IoT SiteWise Edge
<a name="edge-apis-manage-trust-stores-proxy"></a>

Dans AWS IoT SiteWise Edge, configurez et gérez les magasins de confiance afin de configurer la prise en charge de proxy pour vos appareils Edge. Configurez d'abord la configuration du proxy, puis configurez les magasins de confiance. Vous pouvez configurer les magasins de confiance pendant l'installation de la passerelle ou manuellement une fois celle-ci établie. 
+ **Proxies** — Facilitez la connectivité entre vos appareils et AWS services périphériques dans divers environnements réseau.
+ **Trust Stores** : sécurisez les connexions en gérant les certificats fiables. Les configurations appropriées vous aident à respecter les politiques de sécurité de votre réseau, à permettre la communication dans des environnements réseau restreints et à optimiser le transfert de données entre les appareils de périphérie et les services cloud.

SiteWise Edge utilise plusieurs magasins de confiance pour différents types de composants, garantissant ainsi un flux de données sécurisé et efficace entre vos appareils Edge et le cloud. Vous pouvez configurer des magasins de confiance et des proxys sur une passerelle existante ou lors du processus d'installation lors de la création d'une nouvelle passerelle. 

## Exigences relatives aux configurations de Trust Store et de proxy
<a name="manage-trust-stores-proxy_implementation-requirements"></a>

Avant de configurer un trust store ou d'installer SiteWise Edge avec des paramètres de proxy, assurez-vous que vous remplissez les conditions requises. Les exigences de mise en œuvre varient en fonction de l'utilisation de vos composants et de vos exigences fonctionnelles.

**Exigences relatives à l'assistance par proxy**
+ URL de votre serveur proxy. L'URL doit inclure les informations utilisateur, le numéro de port de l'hôte. Par exemple, `scheme://[userinfo@]host[:port]`.
  + `scheme`— Doit être HTTP ou HTTPS
  + (Facultatif) `userinfo` — Informations sur le nom d'utilisateur et le mot de passe
  + `host`— Le nom d'hôte ou l'adresse IP du serveur proxy
  + `port`— Le numéro de port
+ Liste d'adresses permettant de contourner le proxy.
+ (Facultatif) Le fichier de certificat CA du proxy si vous utilisez un proxy HTTPS avec un certificat auto-signé.

**Exigences du Trust Store**
+ Pour bénéficier de toutes les fonctionnalités du pack de traitement des données avec le proxy HTTPS, vous devez mettre à jour les trois magasins de confiance.
+ Si vous utilisez uniquement le collecteur IoT SiteWise OPC UA et l' SiteWise éditeur IoT, mettez à jour les certificats AWS IoT Greengrass Core et Java Trust Stores vers la dernière version.

## Bonnes pratiques pour les configurations Edge de Trust Store et de serveur proxy
<a name="manage-trust-stores-proxy_best-practices"></a>

Pour une maintenance continue et pour maintenir le plus haut niveau de sécurité dans votre environnement périphérique :
+ Vérifiez et mettez à jour régulièrement les paramètres du proxy afin de les aligner sur les exigences de sécurité de votre réseau.
+ Surveillez la connectivité de la passerelle et le flux de données pour garantir une communication proxy appropriée
+ Gérez et mettez à jour les magasins de confiance conformément aux politiques de gestion des certificats de votre organisation
+ Vous pouvez mettre en œuvre et suivre nos meilleures pratiques recommandées pour sécuriser les communications dans les environnements périphériques, telles que :
+ Documentez les configurations de votre proxy et de votre magasin de confiance pour une visibilité opérationnelle
+ Suivez les pratiques de sécurité de votre organisation pour la gestion des informations d'identification

Ces pratiques permettent de garantir la sécurité et la fiabilité des opérations de vos passerelles SiteWise Edge tout en restant conformes à vos politiques de sécurité générales.

# Configurer les paramètres du proxy lors de l'installation de la passerelle AWS IoT SiteWise Edge
<a name="manage-trust-stores-proxy_config"></a>

Vous pouvez configurer AWS IoT SiteWise Edge pour qu'il fonctionne avec un serveur proxy lors de l'installation de la passerelle. Le script d'installation prend en charge les proxys HTTP et HTTPS et peut configurer automatiquement des magasins de confiance pour des connexions proxy sécurisées.

Lorsque vous exécutez le script d'installation avec les paramètres du proxy, celui-ci exécute plusieurs tâches importantes :
+ Valide le format et les paramètres de l'URL du proxy pour s'assurer qu'ils sont correctement spécifiés.
+ Télécharge et installe les dépendances requises via le proxy configuré.
+ Si un certificat d'autorité de certification proxy est fourni, il est ajouté au certificat d'autorité de certification AWS IoT Greengrass racine et importé dans Java KeyStore.
+ Configure AWS IoT Greengrass (utilisé par SiteWise Edge) pour utiliser le proxy pour toutes les connexions sortantes.
+ Termine l'installation d' SiteWise Edge avec les configurations de proxy et de trust store appropriées.

**Pour configurer les paramètres du proxy lors de l'installation du logiciel de passerelle**

1. Créez une passerelle SiteWise Edge. Pour plus d’informations, consultez [Créez une passerelle SiteWise Edge auto-hébergée](create-gateway-ggv2.md) et [Installez le logiciel de passerelle AWS IoT SiteWise Edge sur votre appareil local](install-gateway-software-on-local-device.md).

1. Exécutez le script d'installation avec les paramètres de proxy appropriés à votre environnement. Remplacez les espaces réservés par vos informations de proxy spécifiques 

   Remplacez chacun des éléments suivants :
   + `-p`, `--proxy-url` — URL du serveur proxy. L'URL doit être l'une `http` ou l'autre`https`.
   + `-n`, `--no-proxy` — Une liste d'adresses séparées par des virgules pour contourner le proxy.
   + (Facultatif)`-c`, `--proxy-ca-cert` — Chemin d'accès au fichier de certificat CA du proxy.
   + (Facultatif)`-j`, `--javastorepass` — Le KeyStore mot de passe Java. Le mot de passe par défaut est `changeit`.

------
#### [ Linux ]

   Pour les systèmes Linux, utilisez la structure de commande suivante :

   ```
   sudo ./install.sh -p proxy-url -n no-proxy-addresses [-c proxy-ca-cert-path] [-j javastorepass]
   ```

------
#### [ Windows ]

   Pour les Microsoft Windows systèmes qui l'utilisent PowerShell, utilisez cette structure de commande :

   ```
   .\install.ps1 -ProxyUrl proxy-url -NoProxyAddresses no-proxy-addresses [-ProxyCaCertPath proxy-ca-cert-path] [-JavaStorePass javastorepass]
   ```

------

## Résolution des problèmes lors de l'installation activée par proxy
<a name="manage-trust-stores-proxy_installation-process_troubleshooting"></a>

Pour plus d'informations sur la résolution des problèmes liés au trust store liés à une passerelle SiteWise Edge, consultez[Problèmes d'installation avec proxy](troubleshooting-gateway.md#troubleshoot-proxy-during-installation).

# Configurer manuellement les magasins de confiance pour la prise en charge des proxys HTTPS dans AWS IoT SiteWise Edge
<a name="manage-trust-stores-proxy_trust-store-locations-and-configuration"></a>

Lorsque vous configurez des composants AWS IoT SiteWise Edge pour qu'ils se connectent via un proxy HTTPS, ajoutez le certificat du serveur proxy aux magasins de confiance appropriés. SiteWise Edge utilise plusieurs magasins de confiance pour sécuriser les communications. Il existe trois magasins de confiance et leur utilisation dépend du type de composant SiteWise Edge utilisé dans l'implémentation de votre passerelle.

Les magasins de confiance sont automatiquement mis à jour pendant le processus d'installation lorsque les paramètres de proxy sont fournis.
+ [Configuration d'un magasin de confiance pour les composants AWS IoT Greengrass principaux](#manage-trust-stores-proxy_greengrass-core-components)— Le certificat CA AWS IoT Greengrass racine est inclus dans les magasins de confiance pour vérifier l'authenticité des AWS services.

  Ce trust store permet aux AWS IoT Greengrass composants de communiquer en toute sécurité avec les AWS services via le proxy tout en vérifiant l'authenticité de ces services.
+ [Configuration d'un magasin de confiance pour les composants basé sur Java](#manage-trust-stores-proxy_java-based-components)— Le Java KeyStore (JKS) est le principal magasin de confiance utilisé par les composants Java pour SSL/TLS les connexions. 

   Les applications Java s'appuient sur le JKS pour établir des connexions sécurisées. Par exemple, si vous utilisez l' SiteWise éditeur IoT ou le collecteur IoT SiteWise OPC UA, qui sont basés sur Java, vous devez configurer ce trust store. Cela garantit que ces composants peuvent communiquer en toute sécurité via le proxy HTTPS lors de l'envoi de données vers le cloud ou lors de la collecte de données à partir de serveurs OPC UA.
+ [Configuration du magasin de confiance des composants au niveau du système](#manage-trust-stores-proxy_system-level-components)— Lorsque vous utilisez des proxys HTTPS, leurs certificats doivent être ajoutés aux magasins de confiance appropriés pour permettre des connexions sécurisées.

  Lorsque vous utilisez des proxys HTTPS, leurs certificats doivent être ajoutés aux magasins de confiance appropriés pour permettre des connexions sécurisées. Cela est nécessaire car les composants au niveau du système, souvent écrits dans des langages tels que Rust ou Go, s'appuient sur le trust store du système plutôt que sur le JKS de Java. Par exemple, si vous utilisez des utilitaires système qui doivent communiquer via le proxy (pour les mises à jour logicielles ou la synchronisation de l'heure, par exemple), vous devez configurer le trust store au niveau du système. Cela garantit que ces composants et utilitaires peuvent établir des connexions sécurisées via le proxy.

## Configuration d'un magasin de confiance pour les composants AWS IoT Greengrass principaux
<a name="manage-trust-stores-proxy_greengrass-core-components"></a>

Pour les fonctions AWS IoT Greengrass principales qui utilisent l'autorité de certification racine d'Amazon :

1. Localisez le fichier de certificat à l'adresse `/greengrass/v2/AmazonRootCA1.pem`

1. Ajoutez le certificat racine du proxy HTTPS (auto-signé) à ce fichier.

```
-----BEGIN CERTIFICATE-----
MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK
\nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww
... content of proxy CA certificate ...
+vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui
GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216
gJMIADggEPADf2/m45hzEXAMPLE=
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg
ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW
... content of root CA certificate ...
o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa
5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy
rqXRfKoQnoZsG4q5WTP46EXAMPLE
-----END CERTIFICATE-----
```

### Configuration du proxy HTTPS sur une passerelle établie
<a name="manage-trust-stores-proxy_proxy-configuration"></a>

Vous pouvez ajouter la prise en charge du proxy à une passerelle établie en vous connectant au port 443 au lieu du port 8883. Pour plus d'informations sur l'utilisation d'un serveur proxy, voir [Connect sur le port 443 ou via un proxy réseau](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-alpn-network-proxy) dans le *Guide du AWS IoT Greengrass Version 2 développeur*. Si vous créez une nouvelle passerelle, vous pouvez définir la configuration du proxy lors de l'installation de la passerelle. Pour de plus amples informations, veuillez consulter [Configurer les paramètres du proxy lors de l'installation de la passerelle AWS IoT SiteWise Edge](manage-trust-stores-proxy_config.md).

Lorsque vous utilisez un proxy HTTPS avec AWS IoT Greengrass on SiteWise Edge, le logiciel choisit automatiquement entre HTTP et HTTPS pour les connexions proxy en fonction de l'URL fournie.

**Important**  
Mettez à jour tous les magasins de confiance requis avant de tenter de vous connecter via un proxy HTTPS.

## Configuration d'un magasin de confiance pour les composants basé sur Java
<a name="manage-trust-stores-proxy_java-based-components"></a>

Pour l' SiteWise éditeur IoT, le collecteur IoT SiteWise OPC UA et les services Java du pack de traitement de données, l'emplacement du magasin de confiance Java par défaut est `$JAVA_HOME/jre/lib/security/cacerts`

**Pour ajouter un certificat**

1. Créez un fichier pour stocker le certificat du serveur proxy, tel que`proxy.crt`.
**Note**  
Créez le fichier à l'avance à l'aide du certificat du serveur proxy.

1. Ajoutez le fichier au trust store de Java à l'aide de la commande suivante :

   ```
   sudo keytool -import -alias proxyCert -keystore /usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts -file proxy.crt
   ```

1. Lorsque vous y êtes invité, utilisez le mot de passe par défaut : `changeit`

## Configuration du magasin de confiance des composants au niveau du système
<a name="manage-trust-stores-proxy_system-level-components"></a>

Pour les composants écrits en Rust, Go et dans d'autres langages utilisant le System Trust Store :

------
#### [ Linux ]

Systèmes Linux : ajoutez des certificats à `/etc/ssl/certs/ca-certificates.crt`

------
#### [ Windows ]

Microsoft Windowssystèmes : pour configurer le magasin de confiance, suivez la procédure du [magasin de certificats](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/certificate-stores) décrite dans la documentation *Microsoft Ignite*.

Windows propose plusieurs magasins de certificats, y compris des magasins distincts pour les zones utilisateur et ordinateur, chacune comportant plusieurs sous-magasins. Pour la plupart des configurations SiteWise Edge, nous recommandons d'ajouter des certificats au `COMPUTER | Trusted Root Certification Authorities` magasin. Toutefois, en fonction de votre configuration spécifique et de vos exigences de sécurité, il se peut que vous deviez utiliser un autre magasin.

------

## Résolution des problèmes liés à Trust Store
<a name="manage-trust-stores-proxy_trust-stores-troubleshooting"></a>

Pour plus d'informations sur la résolution des problèmes liés au trust store liés à une passerelle SiteWise Edge, consultez[Problèmes liés à Trust Store](troubleshooting-gateway.md#troubleshoot-trust-stores).

# Utiliser AWS IoT SiteWise APIs sur le bord
<a name="edge-apis"></a>

AWS IoT SiteWise en fournit un sous-ensemble APIs, ainsi que des éléments spécifiques à la périphérie APIs, permettant une interaction fluide avec les modèles d'actifs et leurs actifs associés déployés en périphérie. Ces modèles d'actifs doivent être configurés pour fonctionner en périphérie. Pour plus d'informations, consultez [Configuration d'un modèle d'actif pour le traitement des données sur SiteWise Edge](edge-processing.md#process-gateway-data-edge) les instructions détaillées sur ce processus de configuration.

Une fois que vous les avez APIs configurés, vous pouvez récupérer des données complètes sur vos modèles d'actifs et vos actifs individuels. La récupération des informations sur le modèle d'actif, l'actif, le tableau de bord, le portail et le projet peut vous aider à surveiller les portails et les tableaux de bord déployés, et à accéder aux données des actifs collectées au niveau périphérique. Cela fournit un hôte central dans votre réseau pour les interactions AWS IoT SiteWise sans nécessiter un appel d'API Web. 

**Topics**
+ [Tous les appareils AWS IoT SiteWise Edge disponibles APIs](edge-apis-available.md)
+ [Edge uniquement APIs pour une utilisation avec des appareils Edge AWS IoT SiteWise](edge-local-apis.md)
+ [Activer CORS sur Edge AWS IoT SiteWise APIs](enable-cors-edge-apis.md)
+ [Configurer les délais d'expiration des sessions pour Edge AWS IoT SiteWise](edge-apis-session-timeout.md)
+ [Tutoriel : Répertorier les modèles d'actifs sur une passerelle AWS IoT SiteWise Edge](edge-apis-tutorial.md)

# Tous les appareils AWS IoT SiteWise Edge disponibles APIs
<a name="edge-apis-available"></a>

AWS IoT SiteWise propose une variété de périphériques APIs à utiliser en périphérie afin que vous puissiez effectuer des tâches localement sur l'appareil. Parmi les avantages disponibles, APIs citons la récupération de modèles d'actifs, la création et la mise à jour des propriétés des actifs et l'envoi de flux de données vers le cloud. En les exploitant APIs, vous pouvez créer des solutions capables de fonctionner dans des environnements où la connectivité réseau est intermittente ou limitée.

## Disponible AWS IoT SiteWise APIs
<a name="edge-apis-available-sw"></a>

Les éléments suivants AWS IoT SiteWise APIs sont disponibles sur les appareils Edge :
+ [ListAssetModels](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListAssetModels.html)
+ [DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html)
+ [ListAssets](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListAssets.html)
+ [DescribeAsset](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAsset.html)
+ [DescribeAssetProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetProperty.html)
+ [ListAssociatedAssets](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListAssociatedAssets.html)
+ [GetAssetPropertyAggregates](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyAggregates.html)
+ [GetAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyValue.html)
+ [GetAssetPropertyValueHistory](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyValueHistory.html)
+ [ListDashboards](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListDashboards.html)
+ [ListPortals](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListPortals.html)
+ [ListProjectAssets](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListProjectAssets.html)
+ [ListProjects](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListProjects.html)
+ [DescribeDashboard](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeDashboard.html)
+ [DescribePortal](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribePortal.html)
+ [DescribeProject](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeProject.html)

## Disponible uniquement en périphérie APIs
<a name="edge-apis-available-local"></a>

 APIs Les éléments suivants sont utilisés localement sur les appareils situés en périphérie :
+ [Authentifier](edge-local-apis.md#edge-local-apis-authenticate)— Utilisez cette API pour obtenir les informations d'identification temporaires SigV4 que vous utiliserez pour effectuer des appels d'API.

# Edge uniquement APIs pour une utilisation avec des appareils Edge AWS IoT SiteWise
<a name="edge-local-apis"></a>

En plus de ceux AWS IoT SiteWise APIs disponibles sur le bord, il existe des modèles spécifiques aux bords. Ces caractéristiques spécifiques aux APIs arêtes sont décrites ci-dessous.

## Authentifier
<a name="edge-local-apis-authenticate"></a>

Obtient les informations d'identification de la passerelle SiteWise Edge. Vous devez ajouter des utilisateurs locaux ou vous connecter à votre système via LDAP ou un groupe d'utilisateurs Linux. Pour plus d'informations sur l'ajout d'utilisateurs, consultez [LDAP](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app) ou [groupe d'utilisateurs Linux](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app).

### Syntaxe de demande
<a name="authenticate-request-syntax"></a>

```
POST /authenticate HTTP/1.1
Content-type: application/json
{
  "username": "string",
  "password": "string",
  "authMechanism": "string"
}
```

### Paramètres de demande d'URI
<a name="authenticate-request-parameters"></a>

La demande n’utilise pas de paramètres URI.

### Corps de la demande
<a name="authenticate-request-body"></a>

Cette demande accepte les données suivantes au format JSON.

**nom d’utilisateur**  
Le nom d'utilisateur utilisé pour valider l'appel de demande.  
Type : Chaîne  
Obligatoire : oui

**mot de passe**  
Le mot de passe de l'utilisateur demandant les informations d'identification.  
Type : Chaîne  
Obligatoire : oui

**authMechanism**  
Méthode d'authentification permettant de valider cet utilisateur sur l'hôte.  
Type : Chaîne  
Valeurs valides : `ldap`, `linux`, `winnt`  
Obligatoire : oui

### Syntaxe de réponse
<a name="authenticate-response-syntax"></a>

```
HTTP/1.1 200
Content-type: application/json
{
  "accessKeyId": "string",
  "secretAccessKey": "string",
  "sessionToken": "string",
  "region": "edge"
}
```

### Éléments de réponse
<a name="authenticate-response-elements"></a>

Si l’action aboutit, le service renvoie une réponse HTTP 200.

Les données suivantes sont renvoyées au format JSON.

**accessKeyId**  
L'ID de clé d'accès qui identifie les informations d'identification de sécurité temporaires.  
Contraintes de longueur : longueur minimale de 16. Longueur maximale de 128.  
Modèle : `[\w]*`

**secretAccessKey**  
La clé d'accès secrète qui peut être utilisée pour signer les demandes.  
Type : Chaîne

**sessionToken**  
Le jeton que les utilisateurs doivent transmettre à l'API du service pour utiliser les informations d'identification temporaires.  
Type : Chaîne

**region**  
La région que vous ciblez pour les appels d'API.  
Type : CONSTANT - `edge`

### Erreurs
<a name="authenticate-errors"></a>

**IllegalArgumentException**  
La demande a été rejetée car le corps du document fourni était mal formé. Le message d'erreur décrit l'erreur spécifique.  
Code d’état HTTP : 400

**AccessDeniedException**  
L'utilisateur ne dispose pas d'informations d'identification valides basées sur le fournisseur d'identité actuel. Le message d'erreur décrit le mécanisme d'authentification.  
Code d’état HTTP : 403

**TooManyRequestsException**  
La demande a atteint sa limite de tentatives d'authentification. Le message d'erreur indique le temps d'attente avant que de nouvelles tentatives d'authentification ne soient effectuées.  
Code d’état HTTP : 429

# Activer CORS sur Edge AWS IoT SiteWise APIs
<a name="enable-cors-edge-apis"></a>

L'activation du CORS (Cross-Origin Resource Sharing) sur AWS IoT SiteWise Edge APIs permet aux applications Web de communiquer directement avec les APIs différents domaines. Cela permet une intégration fluide, un échange de données en temps réel et un accès aux données entre domaines sans serveurs intermédiaires ni solutions de contournement. Les paramètres CORS peuvent être configurés pour spécifier les origines autorisées, garantissant ainsi un accès contrôlé entre les origines. 

**Note**  
CORS est disponible pour les versions 3.3.1 et ultérieures du composant. Cette fonctionnalité est disponible pour les versions 3.3.1 et ultérieures du composant. `aws.iot.SiteWiseEdgeProcessor` Pour plus d'informations, consultez la section [AWS IoT SiteWise processeur](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-processor-component.html) dans le *Guide du AWS IoT Greengrass Version 2 développeur*.

**Pour activer CORS sur Edge SiteWise APIs**

1. Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation, choisissez **Edge gateways**.

1. Sélectionnez la passerelle SiteWise Edge pour laquelle vous souhaitez activer CORS. Vous pouvez activer CORS sur le type de AWS IoT Greengrass V2 déploiement.

1. Dans la section **Configuration de la passerelle**, choisissez le périphérique **principal Greengrass** associé.

1. Dans l'onglet **Déploiements**, sous Appareils **Greengrass**, sélectionnez le lien de déploiement approprié.

1. Sous **Actions**, choisissez **Réviser**, puis **Réviser le déploiement**.
**Important**  
La création d'une configuration CORS révisée remplace la configuration actuelle de l'appareil.

1. À **l'étape 1, Spécifiez la cible**, fournissez un **nom** facultatif pour identifier le déploiement. 

1. À **l'étape 2, Sélection des composants - facultatif**, vous pouvez laisser toutes les sélections en cours telles quelles et choisir **Suivant**.

1. À **l'étape 3, Configuration des composants - facultatif**, sélectionnez **aws.iot. SiteWiseEdgeProcessor**, puis choisissez **Configurer le composant**.

1. Dans la section Mise à jour de la configuration, sous Configuration à fusionner, entrez le code JSON suivant :

   ```
   {
       "AWS_SITEWISE_EDGE_ACCESS_CONTROL_ALLOW_ORIGIN": "*"
   }
   ```
**Note**  
L'utilisation `*` comme valeur pour `AWS_SITEWISE_EDGE_ACCESS_CONTROL_ALLOW_ORIGIN` autorise toutes les origines. Pour les environnements de production, il est recommandé de spécifier l'origine exacte URLs pour une meilleure sécurité.

1. Choisissez **Confirmer**.

1. Choisissez **Suivant** pour passer aux étapes restantes jusqu'à ce que vous arriviez à l'**étape 5, Révision**.

1. Passez en revue vos modifications de configuration, puis choisissez **Deploy** pour appliquer les modifications à votre passerelle SiteWise Edge.
**Note**  
Vous pouvez également activer CORS en définissant la variable `AWS_SITEWISE_EDGE_ACCESS_CONTROL_ALLOW_ORIGIN` environnementale globale `*` sur votre AWS IoT SiteWise passerelle.

**Note**  
Pour un proxy authentifié, `userinfo` il doit être inclus dans le `url` champ de la configuration du proxy plutôt que sous forme de `password` champs `username` et séparés.

Une fois le déploiement terminé, CORS est activé sur votre API SiteWise Edge, ce qui permet aux origines spécifiées d'envoyer des demandes d'origine croisée à l'API.

# Configurer les délais d'expiration des sessions pour Edge AWS IoT SiteWise
<a name="edge-apis-session-timeout"></a>

SiteWise Edge vous permet de configurer les délais d'expiration des sessions pour l'API SiteWise Edge. Cette fonctionnalité améliore la sécurité en mettant automatiquement fin aux sessions inactives après une période spécifiée. Cette section vous guide tout au long du processus de configuration du délai d'expiration de session à l'aide du Console AWS IoT SiteWise.

**Note**  
La configuration du délai d'expiration de session est disponible pour les versions 3.4.0 et ultérieures du `aws.iot.SiteWiseEdgeProcessor` composant. Pour plus d'informations, consultez la section [AWS IoT SiteWise processeur](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-processor-component.html) dans le *Guide du AWS IoT Greengrass Version 2 développeur*.

**Pour configurer un délai d'expiration de session pour une passerelle SiteWise Edge**

1. Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. Dans le volet de navigation, choisissez **Edge gateways**.

1. Choisissez la passerelle SiteWise Edge sur laquelle vous souhaitez configurer le délai d'expiration de session.
**Note**  
Vous pouvez configurer le délai d'expiration de session en fonction du type de AWS IoT Greengrass V2 déploiement.

1. Dans la section **Configuration de la passerelle**, choisissez le périphérique **principal Greengrass** associé.

1. Dans l'onglet **Déploiements**, sous Appareils **Greengrass**, sélectionnez le lien de déploiement approprié.

1. Sous **Actions**, sélectionnez **Réviser**. Lisez l'avertissement, puis choisissez **Revise le déploiement**.
**Important**  
La création d'une configuration de délai d'expiration de session révisée remplace la configuration actuelle de l'appareil.

1. À **l'étape 1, Spécifiez la cible**, fournissez un **nom** facultatif pour identifier le déploiement révisé, puis choisissez **Next**.

1. À **l'étape 2, Sélection des composants - facultatif**, vous pouvez laisser toutes les sélections en cours telles quelles et choisir **Suivant**.

1. À **l'étape 3, Configuration des composants - facultatif**, sélectionnez **aws.iot. SiteWiseEdgeProcessor**, puis choisissez **Configurer le composant**.

1. Dans la section **Mise à jour de la configuration**, sous **Configuration à fusionner**, entrez le code JSON suivant :

   ```
   {
       "AWS_SITEWISE_EDGE_SESSION_TIMEOUT_MINUTES": "240"
   }
   ```

1. Définissez la valeur `AWS_SITEWISE_EDGE_SESSION_TIMEOUT_MINUTES` en minutes. Les valeurs de délai d'expiration des sessions peuvent être comprises entre 1 minute et 10080 minutes (7 jours). La valeur par défaut est de 240 minutes (4 heures).

1. Choisissez **Confirmer**.

1. Choisissez **Suivant** pour passer aux étapes restantes jusqu'à ce que vous arriviez à l'étape 5, **Révision**.

1. Passez en revue vos modifications de configuration, puis choisissez **Deploy** pour appliquer les modifications à votre passerelle SiteWise Edge.

**Note**  
Vous pouvez également configurer le délai d'expiration de session en définissant la variable environnementale globale **AWS\$1SITEWISE\$1EDGE\$1SESSION\$1TIMEOUT\$1MINUTES sur la valeur souhaitée (en minutes**) sur votre passerelle Edge. SiteWise 

Une fois le déploiement terminé, la nouvelle configuration du délai d'expiration de session est appliquée à votre API SiteWise Edge.

# Tutoriel : Répertorier les modèles d'actifs sur une passerelle AWS IoT SiteWise Edge
<a name="edge-apis-tutorial"></a>

Vous pouvez utiliser un sous-ensemble des éléments disponibles AWS IoT SiteWise APIs et des éléments spécifiques APIs à la périphérie pour interagir avec les modèles d'actifs et leurs actifs en périphérie. Ce didacticiel vous expliquera comment obtenir des informations d'identification temporaires sur une passerelle AWS IoT SiteWise Edge et comment obtenir une liste des modèles d'actifs sur la passerelle SiteWise Edge.

## Conditions préalables
<a name="edge-apis-tutorial-prerequisites"></a>

Dans les étapes de ce didacticiel, vous pouvez utiliser une variété d'outils. Pour utiliser ces outils, assurez-vous que les prérequis correspondants sont installés.

Pour suivre ce didacticiel, vous aurez besoin des éléments suivants :
+ Un déployé et en cours d'exécution [AWS IoT SiteWise Exigences relatives à la passerelle auto-hébergée Edge](configure-gateway-ggv2.md)
+ Accédez à votre passerelle SiteWise Edge sur le même réseau via le port 443.
+ [OpenSSL installé](https://www.openssl.org/)
+ (AWS OpsHub pour AWS IoT SiteWise) L'[AWS OpsHubAWS IoT SiteWise application](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app)
+ (curl) [curl](https://ec.haxx.se/install/) installé
+ (Python) [urllib3 installé](https://urllib3.readthedocs.io/en/stable/index.html)
+ (Python) [Python3 installé](https://www.python.org/downloads/)
+ (Python) [Boto3 installé](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)
+ (Python) [BotoCore](https://botocore.amazonaws.com/v1/documentation/api/latest/index.html)installé

## Étape 1 : obtenir un certificat signé du service SiteWise Edge Gateway
<a name="edge-apis-tutorial-gateway-cert"></a>

Pour établir une connexion TLS avec la passerelle APIs disponible sur le SiteWise périphérique, vous avez besoin d'un certificat fiable. Vous pouvez générer ce certificat à l'aide d'un OpenSSL ou pour AWS OpsHub . AWS IoT SiteWise

------
#### [ OpenSSL ]

**Note**  
[OpenSSL](https://www.openssl.org/) doit être installé pour exécuter cette commande.

Ouvrez un terminal et exécutez la commande suivante pour obtenir un certificat signé auprès de la passerelle SiteWise Edge. Remplacez `<sitewise_gateway_ip>` par l'adresse IP de la passerelle SiteWise Edge.

```
openssl s_client -connect <sitewise_gateway_ip>:443 </dev/null 2>/dev/null | openssl x509 -outform PEM > GatewayCert.pem
```

------
#### [ AWS OpsHub for AWS IoT SiteWise ]

Vous pouvez utiliser AWS OpsHub pour AWS IoT SiteWise. Pour de plus amples informations, veuillez consulter [Gérer les passerelles SiteWise Edge](manage-gateways-ggv2.md).

------

Le chemin absolu vers le certificat de passerelle SiteWise Edge téléchargé est utilisé dans ce didacticiel. Exécutez la commande suivante pour exporter le chemin complet de votre certificat, en le `<absolute_path_to_certificate>` remplaçant par le chemin d'accès au certificat :

```
export PATH_TO_CERTIFICATE='<absolute_path_to_certificate>'
```

## Étape 2 : obtenir le nom d'hôte de votre passerelle SiteWise Edge
<a name="edge-apis-tutorial-gateway-hostname"></a>

**Note**  
[OpenSSL](https://www.openssl.org/) doit être installé pour exécuter cette commande.

Pour terminer le didacticiel, vous aurez besoin du nom d'hôte de votre passerelle SiteWise Edge. Pour obtenir le nom d'hôte de votre passerelle SiteWise Edge, exécutez ce qui suit, en le `<sitewise_gateway_ip>` remplaçant par l'adresse IP de la passerelle SiteWise Edge :

```
openssl s_client -connect <sitewise_gateway_ip>:443 </dev/null 2>/dev/null | grep -Po 'CN = \K.*'| head -1
```

Exécutez la commande suivante pour exporter le nom d'hôte à utiliser ultérieurement, en le `<your_edge_gateway_hostname>` remplaçant par le nom d'hôte de votre passerelle SiteWise Edge :

```
export GATEWAY_HOSTNAME='<your_edge_gateway_hostname>'
```

## Étape 3 : obtenir des informations d'identification temporaires pour votre passerelle SiteWise Edge
<a name="edge-apis-tutorial-temporary-credentials"></a>

Maintenant que vous avez le certificat signé et le nom d'hôte de votre passerelle SiteWise Edge, vous devez obtenir des informations d'identification temporaires pour pouvoir exécuter APIs sur la passerelle. Vous pouvez obtenir ces informations d'identification via AWS OpsHub AWS IoT SiteWise ou directement depuis la passerelle SiteWise Edge à l'aide de APIs.

**Important**  
Les informations d'identification expirent toutes les 4 heures. Vous devez donc les obtenir juste avant d'utiliser la passerelle APIs on your SiteWise Edge. Ne mettez pas les informations d'identification en cache pendant plus de 4 heures.

### Obtenez des informations d'identification temporaires à l'aide AWS OpsHub de AWS IoT SiteWise
<a name="edge-apis-tutorial-temp-creds-opshub"></a>

**Note**  
L'[AWS IoT SiteWise application AWS OpsHub for](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app) doit être installée.

 AWS OpsHub Pour utiliser l' AWS IoT SiteWise application afin d'obtenir vos informations d'identification temporaires, procédez comme suit :

1. Connectez-vous à l'application.

1. Cliquez sur **Paramètres**.

1. Pour **Authentification**, choisissez **Copier les informations d'identification**.

1. Développez l'option adaptée à votre environnement et choisissez **Copier**.

1. Enregistrez les informations d'identification pour les utiliser ultérieurement.

### Obtenez des informations d'identification temporaires à l'aide de l'API de passerelle SiteWise Edge
<a name="edge-apis-tutorial-temp-creds-api"></a>

Pour utiliser l'API de passerelle SiteWise Edge afin d'obtenir les informations d'identification temporaires, vous pouvez utiliser un script Python ou un curl. Vous devez d'abord disposer d'un nom d'utilisateur et d'un mot de passe pour votre passerelle SiteWise Edge. Les passerelles SiteWise Edge utilisent l'authentification et l'autorisation SigV4. Pour plus d'informations sur l'ajout d'utilisateurs, consultez [LDAP](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app) ou [groupe d'utilisateurs Linux](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app). Ces informations d'identification seront utilisées dans les étapes suivantes pour obtenir les informations d'identification locales sur votre passerelle SiteWise Edge qui sont nécessaires pour utiliser le AWS IoT SiteWise APIs.

------
#### [ Python ]

**Note**  
Vous devez installer [urllib3 et [Python3](https://www.python.org/downloads/)](https://urllib3.readthedocs.io/en/stable/index.html).

**Pour obtenir les informations d'identification à l'aide de Python**

1. Créez un fichier appelé **get\$1credentials.py** et copiez-y le code suivant.

   ```
   '''
   The following demonstrates how to get the credentials from the SiteWise Edge gateway. You will need to add local users or connect your system to LDAP/AD
   https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#create-user-pool
   
   Example usage:
       python3 get_credentials.py -e https://<gateway_hostname> -c <path_to_certificate> -u '<gateway_username>' -p '<gateway_password>' -m '<method>'
   '''
   import urllib3
   import json
   import urllib.parse
   import sys
   import os
   import getopt
   
   """
   This function retrieves the AWS IoT SiteWise Edge gateway credentials.
   """
   def get_credentials(endpoint,certificatePath, user, password, method):
       http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs= certificatePath)
       encoded_body = json.dumps({
           "username": user,
           "password": password,
           "authMechanism": method,
       })
   
       url =  urllib.parse.urljoin(endpoint, "/authenticate")
   
       response = http.request('POST', url,
           headers={'Content-Type': 'application/json'}, 
           body=encoded_body)
       
       if response.status != 200:
           raise Exception(f'Failed to authenticate! Response status {response.status}')
   
       auth_data = json.loads(response.data.decode('utf-8'))
   
       accessKeyId = auth_data["accessKeyId"]
       secretAccessKey = auth_data["secretAccessKey"]
       sessionToken = auth_data["sessionToken"]
       region = "edge"
   
       return accessKeyId, secretAccessKey, sessionToken, region
   
   def print_help():
       print('Usage:')
       print(f'{os.path.basename(__file__)} -e <endpoint> -c <path/to/certificate> -u <user> -p <password> -m <method> -a <alias>')
       print('')
       print('-e, --endpoint   edge gateway endpoint. Usually the Edge gateway hostname.')
       print('-c, --cert_path path to downloaded gateway certificate')
       print('-u, --user       Edge user')
       print('-p, --password   Edge password')
       print('-m, --method     (Optional) Authentication method (linux, winnt, ldap), default is linux')
       sys.exit()
   
   
   def parse_args(argv):
       endpoint = ""
       certificatePath = None
       user = None
       password = None
       method = "linux"
       
       try:
           opts, args = getopt.getopt(argv, "he:c:u:p:m:", ["endpoint=","cert_path=", "user=", "password=", "method="])
       except getopt.GetoptError:
           print_help()
   
       for opt, arg in opts:
           if opt == '-h':
               print_help()
           elif opt in ("-e", "--endpoint"):
               endpoint = arg
           elif opt in ("-u", "--user"):
               user = arg
           elif opt in ("-p", "--password"):
               password = arg
           elif opt in ("-m", "--method"):
               method = arg.lower()
           elif opt in ("-c", "--cert_path"):
               certificatePath = arg
   
       if method not in ['ldap', 'linux', 'winnt']:
           print("not valid method parameter, required are ldap, linux, winnt")
           print_help()
   
       if (user == None or password == None):
           print("To authenticate against edge user, password have to be passed together, and the region has to be set to 'edge'")
           print_help()
       
       if(endpoint == ""):
           print("You must provide a valid and reachable gateway hostname")
           print_help()
   
       return endpoint,certificatePath, user, password, method
   
   
   def main(argv):
       # get the command line args
       endpoint, certificatePath, user, password, method = parse_args(argv)
       
       accessKeyId, secretAccessKey, sessionToken, region=get_credentials(endpoint, certificatePath, user, password, method)
   
       print("Copy and paste the following credentials into the shell, they are valid for 4 hours:")
       print(f"export AWS_ACCESS_KEY_ID={accessKeyId}")
       print(f"export AWS_SECRET_ACCESS_KEY={secretAccessKey}")
       print(f"export AWS_SESSION_TOKEN={sessionToken}")
       print(f"export AWS_REGION={region}")
       print()
       
       
       
   
   if __name__ == "__main__":
      main(sys.argv[1:])
   ```

1. Exécutez **get\$1credentials.py** depuis le terminal en remplaçant `<gateway_username>` et en utilisant `<gateway_password>` les informations d'identification que vous avez créées.

   ```
   python3 get_credentials.py -e https://$GATEWAY_HOSTNAME -c $PATH_TO_CERTIFICATE -u '<gateway_username>' -p '<gateway_password>' -m 'linux'
   ```

------
#### [ curl ]

**Note**  
Vous devez installer [Curl](https://ec.haxx.se/install/).

**Pour obtenir les informations d'identification à l'aide de curl**

1. Exécutez la commande suivante depuis le terminal en remplaçant <gateway\$1username>et en utilisant <gateway\$1password>les informations d'identification que vous avez créées.

   ```
   curl --cacert $PATH_TO_CERTIFICATE --location \
   -X POST https://$GATEWAY_HOSTNAME:443/authenticate \
   --header 'Content-Type: application/json' \
   --data-raw '{
       "username": "<gateway_username>",
       "password": "<gateway_password>",
       "authMechanism": "linux"
   }'
   ```

   Les résultats doivent avoir l’aspect suivant :

   ```
   {
       "username": "sweuser",
       "accessKeyId": "<accessKeyId>",
       "secretAccessKey": "<secretAccessKey>",
       "sessionToken": "<sessionToken>",
       "sessionExpiryTime": "2022-11-17T04:51:40.927095Z",
       "authMechanism": "linux",
       "role": "edge-user"
   }
   ```

1. Exécutez la commande suivante à partir de votre terminal.

   ```
   export AWS_ACCESS_KEY_ID=<accessKeyId>
   export AWS_SECRET_ACCESS_KEY=<secretAccessKey>
   export AWS_SESSION_TOKEN=<sessionToken>
   export AWS_REGION=edge
   ```

------

## Étape 4 : obtenir une liste des modèles d'actifs sur la passerelle SiteWise Edge
<a name="edge-apis-tutorial-get-asset-models"></a>

Maintenant que vous disposez d'un certificat signé, du nom d'hôte de votre passerelle SiteWise Edge et des informations d'identification temporaires pour votre passerelle SiteWise Edge, vous pouvez utiliser l'`ListAssetModels`API pour obtenir une liste des modèles d'actifs de votre passerelle SiteWise Edge.

------
#### [ Python ]

**Note**  
Vous devez installer [Python3](https://www.python.org/downloads/) et [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html). [BotoCore](https://botocore.amazonaws.com/v1/documentation/api/latest/index.html)

**Pour obtenir la liste des modèles d'actifs à l'aide de Python**

1. Créez un fichier appelé **list\$1asset\$1model.py** et copiez-y le code suivant.

   ```
   import json
   import boto3
   import botocore
   import os
   
   # create the client using the credentials
   client = boto3.client("iotsitewise", 
       endpoint_url= "https://"+ os.getenv("GATEWAY_HOSTNAME"),
       region_name=os.getenv("AWS_REGION"), 
       aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID"), 
       aws_secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"), 
       aws_session_token=os.getenv("AWS_SESSION_TOKEN"),
       verify=os.getenv("PATH_TO_CERTIFICATE"),
       config=botocore.config.Config(inject_host_prefix=False))
   
   # call the api using local credentials
   response = client.list_asset_models()
   print(response)
   ```

1. Exécutez **list\$1asset\$1model.py** depuis le terminal.

   ```
   python3 list_asset_model.py
   ```

------
#### [ curl ]

**Note**  
Vous devez installer [Curl](https://ec.haxx.se/install/).

**Pour obtenir la liste des modèles d'actifs à l'aide de curl**

Exécutez la commande suivante depuis le terminal.

```
curl \
  --request GET https://$GATEWAY_HOSTNAME:443/asset-models \
  --cacert $PATH_TO_CERTIFICATE \
  --aws-sigv4 "aws:amz:edge:iotsitewise" \
  --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
  -H "x-amz-security-token:$AWS_SESSION_TOKEN"
```

Les résultats doivent avoir l’aspect suivant :

```
{
    "assetModelSummaries": [
        {
            "arn": "arn:aws:iotsitewise:{region}:{account-id}:asset-model/{asset-model-id}",
            "creationDate": 1.669245291E9,
            "description": "This is a small example asset model",
            "id": "{asset-model-id}",
            "lastUpdateDate": 1.669249038E9,
            "name": "Some Metrics Model",
            "status": {
                "error": null,
                "state": "ACTIVE"
            }
        },
        .
        .
        .
    ],
    "nextToken": null
}
```

------