Configuration d'une source OPC-UA (CLI) - AWS IoT SiteWise

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.

Configuration d'une source OPC-UA (CLI)

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-configurationcommande pour mettre à jour la configuration de la passerelle SiteWise Edge. Vous devez définir toutes vos sources OPC-UA dans une configuration de capacité unique.

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" "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 }, "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

sources

Liste des structures de définition de source OPC-UA contenant chacune les informations suivantes :

nom

Nom unique et convivial pour la source.

point de terminaison

Structure de point de terminaison contenant les informations suivantes :

Certificat Trust

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.

Organisme de certification

(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.

URI du point de terminaison

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.

Politique de sécurité

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 Basic128Rsa15.

  • 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, consultez Basic256.

Important

Si vous choisissez une politique de sécurité autre queNONE, vous devez choisir SIGN ou SIGN_AND_ENCRYPT pourmessageSecurityMode. Vous devez également configurer votre serveur source pour qu'il fasse confiance à la passerelle SiteWise Edge. Pour plus d’informations, consultez Permettre à vos serveurs sources OPC-UA de faire confiance à la passerelle Edge SiteWise .

message SecurityMode

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 pas chiffrées.

  • SIGN_AND_ENCRYPT— Les données en transit entre la passerelle et la source OPC-UA sont signées et cryptées.

Important

Si vous choisissez un mode de sécurité des messages autre queNONE, vous devez en choisir un securityPolicy autre queNONE. Vous devez également configurer votre serveur source pour qu'il fasse confiance à la passerelle SiteWise Edge. Pour plus d’informations, consultez Permettre à vos serveurs sources OPC-UA de faire confiance à la passerelle Edge SiteWise .

Fournisseur d'identité

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.

nom d'utilisateur SecretArn

(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 plus d’informations, consultez Configuration de l'authentification des sources de données.

Ce champ est obligatoire si vous choisissez Username pour type dans identityProvider.

nœud FilterRules

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 des filtres de nœud OPC-UA, vous pouvez utiliser les chemins de nœud ou les caractères génériques * et **. Pour plus d’informations, consultez Utilisation des filtres de nœuds OPC-UA.

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.

définition

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.

Trajectoire racine

Chemin du filtre de nœud à évaluer par rapport à la racine de la hiérarchie des chemins OPC-UA. Ce chemin doit commencer par/.

DataStreamPréfixe de mesure

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.

Groupes de propriétés

(Facultatif) La liste des groupes de propriétés qui définissent deadband et scanMode demandés par le protocole.

nom

Nom du groupe de propriétés. Il doit s'agir d'un identifiant unique.

bandeau

deadbandStructure qui contient les informations suivantes :

type

Les types de deadband pris en charge. Les valeurs acceptées sont ABSOLUTE etPERCENT.

valeur

La valeur du deadband. Dans ce cas typeABSOLUTE, cette valeur est un double sans unité. Dans ce cas typePERCENT, cette valeur est un double compris entre 1 et100.

Gumin

(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.

Délai d'expiration en millisecondes

Durée en millisecondes avant le délai d'expiration. Le minimum est100.

Mode de numérisation

scanModeStructure qui contient les informations suivantes :

type

Les types pris en charge descanMode. Les valeurs acceptées sont POLL etEXCEPTION.

taux

Intervalle d'échantillonnage pour le mode de numérisation.

FilterRuleDéfinitions des nœuds

(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

OpcUaRootPathest 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.

Trajectoire racine

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 des capacités

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
Exemple : 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": "" } ] }
Exemple : 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 } } ] } ] }
Exemple : configuration de la source OPC-UA avec propriétés

L'exemple JSON suivant pour opc-ua-configuration.json définit une configuration 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 #2 » et un « parc éolien #2 » 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" } ] }
Exemple : configuration de source OPC-UA avec certificat de confiance

L'exemple JSON suivant pour opc-ua-configuration.json définit une configuration 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": "" } ] }