Configurar uma origem OPC-UA (CLI) - AWS IoT SiteWise

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar uma origem OPC-UA (CLI)

Você pode definir fontes de dados OPC-UA para um gateway SiteWise Edge usando o. AWS CLI Para fazer isso, crie um arquivo JSON de configuração de capacidade OPC-UA e use o update-gateway-capability-configurationcomando para atualizar a configuração do gateway SiteWise Edge. Você deve definir todas as origens OPC-UA em uma única configuração de recursos.

Esse recurso tem o seguinte namespace.

  • iotsitewise:opcuacollector:2

Sintaxe da solicitação

{ "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 } } ] } ] }

Corpo da solicitação

fontes

Uma lista de estruturas de definição de fonte OPC-UA que contêm as seguintes informações:

name

Um nome exclusivo e amigável para a origem.

endpoint

Uma estrutura de endpoint que contém as seguintes informações:

Certificado de confiança

Uma estrutura de política de confiança de certificado que contém as seguintes informações:

tipo

O modo de confiança do certificado para a origem. Escolha uma das seguintes opções:

  • TrustAny— O gateway SiteWise Edge confia em qualquer certificado quando se conecta à fonte OPC-UA.

  • X509— O gateway SiteWise Edge confia em um certificado X.509 quando se conecta à fonte OPC-UA. Se você escolher essa opção, deverá definir certificateBody em certificateTrust. Também é possível definir certificateChain em certificateTrust.

Organismo certificado

(Opcional) O corpo de um certificado X.509.

Esse campo será obrigatório se você escolher X509 para type em certificateTrust.

Cadeia de Certificados

(Opcional) A cadeia de confiança para um certificado X.509.

Esse campo é usado somente se você escolher X509 para type em certificateTrust.

URI do ponto final

O endpoint local da fonte OPC-UA. Por exemplo, seu endpoint local pode ser semelhante a opc.tcp://203.0.113.0:49320.

Política de segurança

A política de segurança a ser usado para que você possa proteger mensagens que são lidas na origem OPC-UA. Escolha uma das seguintes opções:

  • NONE— O gateway SiteWise Edge não protege as mensagens da fonte OPC-UA. Recomendamos que você escolha uma política de segurança diferente. Se você escolher essa opção, também deverá escolher NONE para messageSecurityMode.

  • BASIC256_SHA256 – A política de segurança de Basic256Sha256.

  • AES128_SHA256_RSAOAEP – A política de segurança de Aes128_Sha256_RsaOaep.

  • AES256_SHA256_RSAPSS – A política de segurança de Aes256_Sha256_RsaPss.

  • BASIC128_RSA15 – (Obsoleto) A política de segurança Basic128Rsa15 está obsoleta na especificação de OPC-UA porque não é mais considerada segura. Recomendamos que você escolha uma política de segurança diferente. Para obter mais informações, consulte Basic128Rsa15.

  • BASIC256 – (Obsoleto) A política de segurança Basic256 está obsoleta na especificação de OPC-UA porque não é mais considerada segura. Recomendamos que você escolha uma política de segurança diferente. Para obter mais informações, consulte Basic256.

Importante

Se você escolher uma política de segurança diferente de NONE, deverá escolher SIGN ou SIGN_AND_ENCRYPT para messageSecurityMode. Você também deve configurar seu servidor de origem para confiar no gateway SiteWise Edge. Para ter mais informações, consulte Permitindo que seus servidores de origem OPC-UA confiem no SiteWise gateway Edge.

mensagem SecurityMode

O modo de segurança de mensagens a ser usado para proteger conexões com a fonte OPC-UA. Escolha uma das seguintes opções:

  • NONE— O gateway SiteWise Edge não protege as conexões com a fonte OPC-UA. Recomendamos que você escolha um modo de segurança de mensagem diferente. Se você escolher essa opção, também deverá escolher NONE para securityPolicy.

  • SIGN— Os dados em trânsito entre o gateway SiteWise Edge e a fonte OPC-UA são assinados, mas não criptografados.

  • SIGN_AND_ENCRYPT – Os dados em trânsito entre o gateway e a origem OPC-UA são assinados e criptografados.

Importante

Se você escolher um modo de segurança de mensagem diferente deNONE, deverá escolher securityPolicy outro que NONE. Você também deve configurar seu servidor de origem para confiar no gateway SiteWise Edge. Para ter mais informações, consulte Permitindo que seus servidores de origem OPC-UA confiem no SiteWise gateway Edge.

Provedor de identidade

Uma estrutura de provedor de identidade que contém as seguintes informações:

tipo

O tipo de credenciais de autenticação exigidas pela origem. Escolha uma das seguintes opções:

  • Anonymous – A origem não requer autenticação para conectar-se.

  • Username – A origem requer um nome de usuário e senha para conectar-se. Se você escolher essa opção, deverá definir usernameSecretArn em identityProvider.

nome de usuário SecretArn

(Opcional) O ARN de um AWS Secrets Manager segredo. O gateway SiteWise Edge usa as credenciais de autenticação nesse segredo quando se conecta a essa fonte. Você deve anexar segredos ao SiteWise conector IoT do seu gateway SiteWise Edge para usá-los na autenticação de origem. Para ter mais informações, consulte Configurar a autenticação da fonte de dados.

Esse campo será obrigatório se você escolher Username para type em identityProvider.

nodo FilterRules

Uma lista de estruturas de regras de filtro de nós que definem os caminhos do fluxo de dados OPC-UA a serem enviados para a AWS nuvem. Você pode usar filtros de nós para reduzir o tempo de inicialização e o uso da CPU do gateway SiteWise Edge, incluindo apenas caminhos para os dados nos quais você modela AWS IoT SiteWise. Por padrão, os gateways do SiteWise Edge carregam todos os caminhos OPC-UA, exceto aqueles que começam com. /Server/ Para definir os filtros de nó do OPC-UA, é possível usar caminhos de nó e os caracteres curinga * e **. Para ter mais informações, consulte Usando filtros de nó OPC-UA.

Cada estrutura na lista deve conter as seguintes informações:

ação

A ação para essa regra de filtro de nó. Você pode escolher a seguinte opção:

  • INCLUDE— O gateway SiteWise Edge inclui somente fluxos de dados que correspondem a essa regra.

definição

Uma estrutura de regra de filtro de nó que contém as seguintes informações:

tipo

O tipo de caminho do filtro de nó para essa regra. Você pode escolher a seguinte opção:

  • OpcUaRootPath— O gateway SiteWise Edge avalia esse caminho de filtro de nó em relação à raiz da hierarquia de caminhos OPC-UA.

Caminho raiz

O caminho do filtro de nó a ser avaliado em relação à raiz da hierarquia de caminhos OPC-UA. Esse caminho deve começar com /.

DataStreamPrefixo de medição

Uma string que deve preceder todos os fluxos de dados da origem. O gateway SiteWise Edge adiciona esse prefixo a todos os fluxos de dados dessa fonte. Use um prefixo de stream de dados para distinguir entre streams de dados que têm o mesmo nome de origens diferentes. Cada stream de dados deve ter um nome exclusivo na conta.

Grupos de propriedades

(Opcional) A lista de grupos de propriedades que definem deadband e scanMode são solicitados pelo protocolo.

name

O nome do grupo de propriedade. Esse deve ser um identificador exclusivo.

faixa morta

A estrutura de deadband contém as seguintes informações:

tipo

Os tipos de deadband compatíveis. Os valores aceitos são ABSOLUTE e PERCENT.

value

O valor da deadband. Quando type é ABSOLUTE, esse valor é um duplo sem unidade. Quando type é PERCENT, esse valor é o dobro entre 1 e 100.

Geumin

(Opcional) O mínimo da unidade de engenharia ao usar uma deadband de PERCENT. Você define isso se o servidor OPC-UA não tiver unidades de engenharia configuradas.

Egumax

(Opcional) O máximo da unidade de engenharia ao usar uma deadband de PERCENT. Você define isso se o servidor OPC-UA não tiver unidades de engenharia configuradas.

Tempo limite em milissegundos

A duração em milissegundos antes do tempo limite. O mínimo é 100.

Modo de digitalização

A estrutura de scanMode contém as seguintes informações:

tipo

Os tipos compatíveis de scanMode. Os valores aceitos são POLL e EXCEPTION.

taxa

O intervalo de amostragem para o modo de verificação.

FilterRuleDefinições de nós

(Opcional) Uma lista de caminhos de nós a serem incluídos no grupo de propriedades. Os grupos de propriedades não podem se sobrepor. Se você não especificar um valor para esse campo, o grupo conterá todos os caminhos abaixo da raiz e você não poderá criar grupos de propriedades adicionais. A estrutura nodeFilterRuleDefinitions contém as seguintes informações:

tipo

OpcUaRootPath é o único tipo compatível. Isso especifica que o valor de rootPath é um caminho relativo à raiz do espaço de navegação de OPC-UA.

Caminho raiz

Uma lista delimitada por vírgulas que especifica os caminhos (em relação à raiz) a serem incluídos no grupo de propriedades.

Exemplos de configuração de recurso

O exemplo a seguir define uma configuração de capacidade de gateway OPC-UA SiteWise Edge a partir de uma carga armazenada em um arquivo JSON.

aws iotsitewise update-gateway-capability-configuration \ --capability-namespace "iotsitewise:opcuacollector:2" \ --capability-configuration file://opc-ua-configuration.json
exemplo : configuração da origem OPC-UA

O seguinte arquivo de opc-ua-configuration.json define uma configuração de origem OPC-UA básica e insegura.

{ "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": "" } ] }
exemplo : configuração da origem OPC-UA com grupos de propriedades definidos

O seguinte arquivo de opc-ua-configuration.json define uma configuração de origem OPC-UA básica e insegura com grupos de propriedades definidos.

{ "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 } } ] } ] }
exemplo : configuração da origem OPC-UA com propriedades

O seguinte exemplo JSON para opc-ua-configuration.json define uma configuração de fonte OPC-UA com as seguintes propriedades:

  • Confia em qualquer certificado.

  • Usa a política de segurança de BASIC256 para proteger as mensagens.

  • Usa o modo SIGN_AND_ENCRYPT para proteger conexões.

  • Usa credenciais de autenticação armazenadas em um segredo do Secrets Manager.

  • Filtra stream de dados, com exceção daqueles cujo caminho começa com /WindFarm/2/WindTurbine/.

  • Adiciona /Washington ao início de cada caminho de stream de dados para distinguir entre este “Parque eólico nº 2" e um “Parque eólico nº 2" em outra área.

{ "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" } ] }
exemplo : Configuração da fonte OPC-UA com certificado confiável

O seguinte exemplo JSON para opc-ua-configuration.json define uma configuração de fonte OPC-UA com as seguintes propriedades:

  • Confia em um determinado certificado X.509.

  • Usa a política de segurança de BASIC256 para proteger as mensagens.

  • Usa o modo SIGN_AND_ENCRYPT para proteger conexões.

{ "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": "" } ] }