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 fonte OPC-UA (CLI)
Você pode definir fontes de dados OPC-UA em um recurso de gateway. Você deve definir todas as origens OPC-UA em uma única configuração de recursos.
Para obter mais informações sobre como definir fontes com oAWS Command Line Interface, consulteConfigurar fontes de dados (AWS CLI).
Esse recurso tem as seguintes versões.
Versão | Namespace |
---|---|
1 | iotsitewise:opcuacollector:1 |
Parâmetros de configuração da capacidade OPC-UA
Ao definir origens OPC-UA em uma configuração de recursos, especifique as seguintes informações no documento JSON capabilityConfiguration
:
sources
-
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:
certificateTrust
-
Uma estrutura de política de confiança de certificado que contém as seguintes informações:
type
-
O modo de confiança do certificado para a origem. Escolha uma das seguintes opções:
-
TrustAny
— O gateway confia em qualquer certificado quando se conecta à fonte OPC-UA. -
X509
— O gateway confia em um certificado X.509 quando se conecta à fonte OPC-UA. Se você escolher essa opção, deverá definircertificateBody
emcertificateTrust
. Também é possível definircertificateChain
emcertificateTrust
.
-
certificateBody
-
(Opcional) O corpo de um certificado X.509.
Esse campo será obrigatório se você escolher
X509
paratype
emcertificateTrust
. certificateChain
-
(Opcional) A cadeia de confiança para um certificado X.509.
Esse campo é usado somente se você escolher
X509
paratype
emcertificateTrust
.
endpointUri
-
O endpoint local da fonte OPC-UA. Por exemplo, seu endpoint local pode ser semelhante a
opc.tcp://203.0.113.0:49320
. securityPolicy
-
A política de segurança a ser usada para proteger as mensagens que são lidas da fonte OPC-UA. Escolha uma das seguintes opções:
-
NONE
— O gateway não protege mensagens da fonte OPC-UA. Recomenda-se escolher uma política de segurança diferente. Se você escolher essa opção, também deverá escolherNONE
paramessageSecurityMode
. -
BASIC256_SHA256
— A políticaBasic256Sha256
de segurança. -
AES128_SHA256_RSAOAEP
— A políticaAes128_Sha256_RsaOaep
de segurança. -
AES256_SHA256_RSAPSS
— A políticaAes256_Sha256_RsaPss
de segurança. -
BASIC128_RSA15
— (Obsoleto) A política deBasic128Rsa15
segurança está obsoleta na especificação OPC-UA porque não é mais considerada segura. Recomenda-se escolher uma política de segurança diferente. Para obter mais informações, consulte Basic128Rsa15. -
BASIC256
— (Obsoleto) A política deBasic256
segurança está obsoleta na especificação OPC-UA porque não é mais considerada segura. Recomenda-se escolher 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
, você deve escolherSIGN
ouSIGN_AND_ENCRYPT
paramessageSecurityMode
. Você também deve configurar o servidor de origem para confiar no gateway. Para obter mais informações, consulte Permitir que os servidores de origem confiem no gateway. -
messageSecurityMode
-
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 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á escolherNONE
parasecurityPolicy
. -
SIGN
— Os dados em trânsito entre o gateway 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 fonte OPC-UA são assinados e criptografados.
Importante Se você escolher um modo de segurança de mensagem diferente de
NONE
, deverá escolhersecurityPolicy
outro que nãoNONE
. Você também deve configurar o servidor de origem para confiar no gateway. Para obter mais informações, consulte Permitir que os servidores de origem confiem no gateway. -
identityProvider
-
Uma estrutura de provedor de identidade que contém as seguintes informações:
type
-
O tipo de credenciais de autenticação exigidas pela origem. Escolha uma das seguintes opções:
-
Anonymous
— A fonte não requer autenticação para se conectar. -
Username
— A fonte requer um nome de usuário e uma senha para fazer a conexão. Se você escolher essa opção, deverá definirusernameSecretArn
emidentityProvider
.
-
usernameSecretArn
-
(Opcional) O ARN de umAWS Secrets Manager segredo. O gateway usa as credenciais de autenticação nesse segredo quando ele se conecta a essa origem. Você deve anexar segredos ao SiteWise conector de IoT do seu gateway para usá-los na autenticação de origem. Para obter mais informações, consulte Configurar a autenticação de origem.
Esse campo será obrigatório se você escolher
Username
paratype
emidentityProvider
.
nodeFilterRules
-
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 aAWS nuvem. Você pode usar filtros de nó para reduzir o tempo de inicialização e o uso da CPU do gateway, incluindo somente caminhos para os dados modelados no AWS IoT SiteWise. Por padrão, os gateways fazem upload de todos os caminhos do OPC-UA, exceto dos 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 obter mais informações, consulte Usar filtros de nó OPC-UA.Cada estrutura na lista deve conter as seguintes informações:
action
-
A ação para essa regra de filtro de nó. Você pode escolher a seguinte opção:
-
INCLUDE
— O gateway inclui somente fluxos de dados que correspondem a essa regra.
-
definition
-
Uma estrutura de regra de filtro de nó que contém as seguintes informações:
type
-
O tipo de caminho do filtro de nó para essa regra. Você pode escolher a seguinte opção:
-
OpcUaRootPath
— O gateway avalia esse caminho de filtro de nós em relação à raiz da hierarquia de caminhos OPC-UA.
-
rootPath
-
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
/
.
measurementDataStreamPrefix
-
Uma sequência de caracteres para anexar a todos os fluxos de dados da fonte. O gateway adiciona esse prefixo a todos os streams de dados dessa origem. 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.
propertyGroups
-
(Opcional) A lista de grupos de propriedades que definem o
deadband
escanMode
solicitado pelo protocolo.name
-
O nome do grupo de propriedades. Esse deve ser um identificador exclusivo.
deadband
-
A
deadband
estrutura que contém as seguintes informações:type
-
Os tipos de banda morta suportados. Os valores aceitos são
ABSOLUTE
PERCENT
e. value
-
O valor da faixa morta. Quando
type
éABSOLUTE
, esse valor é um dobro sem unidade. Quandotype
éPERCENT
, esse valor é o dobro entre1
100
e. eguMin
-
(Opcional) O mínimo da unidade de engenharia ao usar uma
PERCENT
faixa morta. 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
PERCENT
faixa morta. Você define isso se o servidor OPC-UA não tiver unidades de engenharia configuradas. timeoutMilliseconds
-
A duração em milissegundos antes do tempo limite. O mínimo é
100
.
scanMode
-
A
scanMode
estrutura que contém as seguintes informações:type
-
Os tipos suportados de
scanMode
. Os valores aceitos sãoPOLL
EXCEPTION
e. rate
-
O intervalo de amostragem para o modo de varredura.
nodeFilterRuleDefinitions
-
(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:type
-
OpcUaRootPath
é o único tipo suportado. Isso especifica que o valor derootPath
é um caminho relativo à raiz do espaço de navegação OPC-UA. rootPath
-
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 a partir de uma carga armazenada em um arquivo JSON.
aws iotsitewise update-gateway-capability-configuration \ --capability-namespace "iotsitewise:opcuacollector:1" \ --capability-configuration file://opc-ua-configuration.json
exemplo : Configuração da fonte OPC-UA
Oopc-ua-configuration.json
arquivo a seguir 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 fonte OPC-UA com grupos de propriedades definidos
Oopc-ua-configuration.json
arquivo a seguir 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 fonte 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
BASIC256
segurança 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
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
BASIC256
segurança 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": "" } ] }