기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
OPC-UA 소스(CLI)를 구성합니다.
를 사용하여 에지 게이트웨이의 OPC-UA 데이터 소스를 정의할 수 있습니다 SiteWise . AWS CLI이렇게 하려면 OPC-UA 기능 구성 JSON 파일을 만들고 update-gateway-capability-configuration
이 기능에는 다음과 같은 네임스페이스가 있습니다.
iotsitewise:opcuacollector:2
요청 구문
{ "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
} } ] } ] }
요청 본문
- 소스
-
다음 정보를 포함하는 각 OPC-UA 원본 정의 구조의 목록입니다.
- 이름
-
고유하고 친숙한 원본 이름입니다.
- endpoint
-
다음 정보가 포함된 엔드포인트 구조입니다.
- 인증서 트러스트
-
다음 정보가 포함된 인증서 신뢰 정책 구조:
- type
-
원본에 대한 인증서 신뢰 모드입니다. 다음 중 하나를 선택합니다.
-
TrustAny
— SiteWise 엣지 게이트웨이는 OPC-UA 소스에 연결할 때 모든 인증서를 신뢰합니다. -
X509
— SiteWise 에지 게이트웨이는 OPC-UA 소스에 연결할 때 X.509 인증서를 신뢰합니다. 이 옵션을 선택하는 경우,certificateTrust
에certificateBody
을 정의해야 합니다.certificateTrust
에certificateChain
을 정의할 수도 있습니다.
-
- 인증서 기관
-
(선택 사항) X.509 인증서의 본문입니다.
certificateTrust
에서type
에 대해X509
을 선택하는 경우, 이 필드는 필수입니다. - 인증서 체인
-
(선택 사항) X.509 인증서에 대한 신뢰 체인입니다.
이 필드는
certificateTrust
에서type
에 대해X509
를 선택할 때만 사용합니다.
- 엔드포인트 URI
-
OPC-UA 원본의 로컬 엔드포인트입니다. 로컬 엔드포인트를 예를 들면
opc.tcp://203.0.113.0:49320
과 같습니다. - 보안 정책
-
OPC-UA 원본에서 읽은 메시지를 보호할 수 있도록 사용할 보안 정책입니다. 다음 중 하나를 선택합니다.
-
NONE
— SiteWise 에지 게이트웨이는 OPC-UA 소스의 메시지를 보호하지 않습니다. 다른 보안 정책을 선택하는 것이 좋습니다. 이 옵션을 선택하는 경우,messageSecurityMode
에 대해NONE
을 선택해야 합니다 -
BASIC256_SHA256
—Basic256Sha256
보안 정책. -
AES128_SHA256_RSAOAEP
—Aes128_Sha256_RsaOaep
보안 정책. -
AES256_SHA256_RSAPSS
—Aes256_Sha256_RsaPss
보안 정책. -
BASIC128_RSA15
— (더 이상 사용되지 않음)Basic128Rsa15
보안 정책은 더 이상 안전한 것으로 간주되지 않으므로 OPC-UA 사양에서 더 이상 사용되지 않습니다. 다른 보안 정책을 선택하는 것이 좋습니다. 자세한 내용은 Basic128Rsa15를 참조하세요. -
BASIC256
— (더 이상 사용되지 않음)Basic256
보안 정책은 더 이상 안전한 것으로 간주되지 않으므로 OPC-UA 사양에서 더 이상 사용되지 않습니다. 다른 보안 정책을 선택하는 것이 좋습니다. 자세한 내용은 Basic256를 참조하세요.
중요
이외의
NONE
보안 정책을 선택하는 경우SIGN
또는SIGN_AND_ENCRYPT
정책을 선택해야 합니다messageSecurityMode
. 또한 SiteWise Edge 게이트웨이를 신뢰하도록 원본 서버를 구성해야 합니다. 자세한 정보는 OPC-UA 원본 서버가 에지 게이트웨이를 신뢰하도록 지원 SiteWise 을 참조하세요. -
- 메시지 SecurityMode
-
OPC-UA 원본에 대한 연결을 보호하는 데 사용할 메시지 보안 모드입니다. 다음 중 하나를 선택합니다.
-
NONE
— SiteWise 에지 게이트웨이는 OPC-UA 소스에 대한 연결을 보호하지 않습니다. 다른 메시지 보안 모드를 선택하는 것이 좋습니다. 이 옵션을 선택하는 경우,securityPolicy
에 대해NONE
을 선택해야 합니다 -
SIGN
— SiteWise 에지 게이트웨이와 OPC-UA 소스 간에 전송되는 데이터는 서명되지만 암호화되지는 않습니다. -
SIGN_AND_ENCRYPT
– 게이트웨이와 OPC-UA 원본 간 전송 중 데이터는 서명되고 암호화됩니다.
중요
NONE
이외의 메시지 보안 모드를 선택하는 경우NONE
이외의securityPolicy
를 선택해야 합니다. 또한 원본 서버가 SiteWise Edge 게이트웨이를 신뢰하도록 구성해야 합니다. 자세한 정보는 OPC-UA 원본 서버가 에지 게이트웨이를 신뢰하도록 지원 SiteWise 을 참조하세요. -
- ID 제공자
-
다음 정보가 포함된 자격 증명 공급자 구조입니다.
- type
-
원본에 필요한 인증 보안 인증의 유형입니다. 다음 중 하나를 선택합니다.
-
Anonymous
– 원본에 연결하려면 인증이 필요하지 않습니다. -
Username
– 원본에 연결하려면 사용자 이름과 암호가 필요합니다. 이 옵션을 선택하는 경우,identityProvider
에usernameSecretArn
을 정의해야 합니다.
-
- 사용자 이름 SecretArn
-
(선택 사항) 시크릿의 ARN. AWS Secrets Manager SiteWise 에지 게이트웨이는 이 소스에 연결할 때 이 암호의 인증 자격 증명을 사용합니다. 암호를 소스 인증에 사용하려면 SiteWise 에지 게이트웨이의 IoT SiteWise 커넥터에 암호를 연결해야 합니다. 자세한 정보는 데이터 소스 인증 구성을 참조하세요.
identityProvider
에서type
에 대해Username
을 선택하는 경우, 이 필드는 필수입니다.
- 노드 FilterRules
-
클라우드로 전송할 OPC-UA 데이터 스트림 경로를 정의하는 노드 필터 규칙 구조 목록입니다. AWS 노드 필터를 사용하면 모델링하는 데이터에 대한 경로만 포함함으로써 SiteWise Edge 게이트웨이의 시작 시간과 CPU 사용량을 줄일 수 있습니다. AWS IoT SiteWise기본적으로 SiteWise Edge 게이트웨이는 로 시작하는 경로를 제외한 모든 OPC-UA 경로를 업로드합니다.
/Server/
OPC-UA 노드 필터를 정의하려면 노드 경로와*
및**
와일드카드 문자를 사용하면 됩니다. 자세한 내용은 OPC-UA 노드 필터 사용 섹션을 참조하세요.각 목록 구조에는 다음 정보가 포함되어야 합니다.
- action
-
이 노드 필터 규칙에 대한 작업입니다. 다음과 같은 옵션을 선택할 수 있습니다.
-
INCLUDE
— SiteWise 에지 게이트웨이에는 이 규칙과 일치하는 데이터 스트림만 포함됩니다.
-
- 정의
-
다음 정보가 포함된 노드 필터 규칙 구조:
- type
-
이 규칙의 노드 필터 경로 유형입니다. 다음과 같은 옵션을 선택할 수 있습니다.
-
OpcUaRootPath
— SiteWise 에지 게이트웨이는 OPC-UA 경로 계층 구조의 루트를 기준으로 이 노드 필터 경로를 평가합니다.
-
- 루트패스
-
OPC-UA 경로 계층의 루트에 대해 평가할 노드 필터 경로입니다. 이 경로는
/
로 시작되어야 합니다.
- 측정 접두사 DataStream
-
원본의 모든 데이터 스트림 앞에 추가할 문자열입니다. SiteWise Edge 게이트웨이는 이 소스의 모든 데이터 스트림에 이 접두사를 추가합니다. 데이터 스트림 접두사를 사용하여 서로 다른 소스에서 이름이 같은 데이터 스트림을 구분합니다. 각 데이터 스트림은 계정 내에서 고유한 이름을 가져야 합니다.
- 프로퍼티/그룹
-
(선택 사항) 프로토콜에서 요청한
deadband
및scanMode
을 정의하는 속성 그룹 목록입니다.- 이름
-
속성 그룹의 이름입니다. 고유 식별자여야 합니다.
- 데드밴드
-
deadband
구조에는 다음 정보가 포함되어 있습니다.- type
-
지원되는 데드밴드 유형입니다. 허용되는 값은
ABSOLUTE
및PERCENT
입니다. - USD 상당
-
데드밴드의 값입니다.
type
가ABSOLUTE
인 경우 이 값은 단위가 없는 이중 값입니다.type
가PERCENT
인 경우 이 값은1
과100
사이의 두 배입니다. - 구민
-
(선택 사항)
PERCENT
데드밴드를 사용할 때의 엔지니어링 단위 최소값입니다. OPC-UA 서버에 엔지니어링 유닛이 구성되어 있지 않은 경우 이를 설정합니다. - 에구맥스
-
(선택 사항)
PERCENT
데드밴드를 사용할 때의 엔지니어링 단위 최대값입니다. OPC-UA 서버에 엔지니어링 유닛이 구성되어 있지 않은 경우 이를 설정합니다. - 타임아웃 (밀리초)
-
타임아웃까지 남은 시간 (밀리초). 최소값은
100
입니다.
- 스캔 모드
-
scanMode
구조에는 다음 정보가 포함되어 있습니다.- type
-
scanMode
의 지원되는 유형입니다. 허용되는 값은POLL
및EXCEPTION
입니다. - 속도
-
스캔 모드의 샘플링 간격입니다.
- 노드 FilterRule 정의
-
(선택 사항) 속성 그룹에 포함할 노드 경로 목록입니다. 속성 그룹은 겹칠 수 없습니다. 이 필드에 값을 지정하지 않으면 그룹에 루트 아래의 모든 경로가 포함되므로 추가 속성 그룹을 생성할 수 없습니다.
nodeFilterRuleDefinitions
구조에는 다음 정보가 포함되어 있습니다.- type
-
지원되는 유형은
OpcUaRootPath
뿐입니다. 이것은rootPath
값이 OPC-UA 브라우징 공간의 루트에 상대적인 경로임을 지정합니다. - 루트 경로
-
속성 그룹에 포함할 경로(루트에 대한 경로)를 지정하는 쉼표로 구분된 목록입니다.
기능 구성 예제
다음 예제는 JSON 파일에 저장된 페이로드에서 OPC-UA SiteWise 에지 게이트웨이 기능 구성을 정의합니다.
aws iotsitewise update-gateway-capability-configuration \ --capability-namespace "iotsitewise:opcuacollector:2" \ --capability-configuration file://opc-ua-configuration.json
예 : OPC-UA 소스 구성
다음 opc-ua-configuration.json
파일은 안전하지 않은 기본 OPC-UA 원본 구성을 정의합니다.
{ "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": "" } ] }
예 : 정의된 속성 그룹이 있는 OPC-UA 소스 구성
다음 opc-ua-configuration.json
파일은 정의된 속성 그룹이 있는 안전하지 않은 기본 OPC-UA 소스 구성을 정의합니다.
{ "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 } } ] } ] }
예 : 속성을 포함한 OPC-UA 소스 구성
다음 opc-ua-configuration.json
의 JSON 예제는 다음 속성을 가진 OPC-UA 원본 구성을 정의합니다.
-
모든 인증서를 신뢰합니다.
-
BASIC256
보안 정책을 사용하여 메시지를 보호합니다. -
SIGN_AND_ENCRYPT
모드를 사용하여 연결을 보호합니다. -
Secrets Manager 암호에 저장된 인증 보안 인증을 사용합니다.
-
경로가
/WindFarm/2/WindTurbine/
로 시작하는 데이터 스트림을 제외한 데이터 스트림을 필터링합니다. -
모든 데이터 스트림 경로의 첫 부분에
/Washington
을 추가하여 다른 영역에서 이 “Wind Farm #2”와 “Wind Farm #2”를 구분합니다.
{ "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" } ] }
예 : 인증서 신뢰를 사용하는 OPC-UA 소스 구성
다음 opc-ua-configuration.json
의 JSON 예제는 다음 속성을 가진 OPC-UA 원본 구성을 정의합니다.
-
지정된 X.509 인증서를 신뢰합니다.
-
BASIC256
보안 정책을 사용하여 메시지를 보호합니다. -
SIGN_AND_ENCRYPT
모드를 사용하여 연결을 보호합니다.
{ "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": "" } ] }