AWS IoT Greengrass Version 1 는 2023년 6월 30일에 수명 연장 단계에 들어갔습니다. AWS IoT Greengrass V1 관리형 정책에 대한 자세한 정보는 섹션을 참조하세요. 이 날짜 이후에는 기능, 개선 사항, 버그 수정 또는 보안 패치를 제공하는 업데이트를 릴리스하지 AWS IoT Greengrass V1 않습니다. 에서 실행되는 디바이스는 중단 AWS IoT Greengrass V1 되지 않으며 계속 작동하고 클라우드에 연결됩니다. 로 마이그레이션 AWS IoT Greengrass Version 2하는 것이 좋으며, 이로 인해 추가 플랫폼에 대한 중요한 새로운 기능과 지원이 추가됩니다. https://docs.aws.amazon.com/greengrass/v2/developerguide/operating-system-feature-support-matrix.html
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
테스트 러너를 위한 설정 구성
사용자 지정 테스트 도구 모음을 실행하려면 테스트 러너가 실행하려는 테스트 도구 모음을 기반으로 설정을 구성해야 합니다. 설정은
폴더에 있는 JSON 구성 파일 템플릿을 기반으로 지정됩니다. 필요한 경우 테스트 러너는 IDT가 AWS 클라우드에 연결하는 데 사용할 AWS 보안 인증도 설정해야 합니다.<device-tester-extract-location>
/configs/
테스트 작성자는 테스트 도구 모음을 디버깅하도록 이러한 파일을 구성해야 합니다. 테스트 러너가 테스트 도구 모음을 실행하는 데 필요한 대로 다음 설정을 구성할 수 있도록 지침을 제공해야 합니다.
device.json 구성
device.json
파일은 테스트가 실행되는 장치에 대한 정보가 필요합니다(예: IP 주소, 로그인 정보, 운영 체제, CPU 아키텍처).
테스트 러너는
폴더에 있는 다음 템플릿 <device-tester-extract-location>
/configs/device.json
파일을 사용하여 이 정보를 제공할 수 있습니다.
[ { "id": "
<pool-id>
", "sku": "<pool-sku>
", "features": [ { "name": "<feature-name>
", "value": "<feature-value>
", "configs": [ { "name": "<config-name>
", "value":"<config-value>
" } ], } ], "devices": [ { "id": "<device-id>
", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>
", "port":<port-number>
, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>
", // pki "privKeyPath": "/path/to/private/key
", // password "password": "<password>
", } }, // uart "serialPort": "<serial-port>
", // docker "containerId": "<container-id>
", "containerUser": "<container-user-name>
", } } ] } ]
여기 설명된 것처럼 값이 포함된 모든 필드는 필수입니다.
id
-
장치 풀이라고 하는 장치 모음을 고유하게 식별하는 사용자 정의 영숫자 ID입니다. 풀에 속한 장치의 하드웨어는 서로 동일해야 합니다. 테스트 제품군을 실행할 때 풀에 있는 장치는 워크로드를 병렬화하는 데 사용됩니다. 다양한 테스트를 실행하기 위해 여러 장치가 사용됩니다.
sku
-
테스트 대상 장치를 고유하게 식별하는 영숫자 값입니다. SKU는 정규화된 장치를 추적하는 데 사용됩니다.
참고
AWS Partner 장치 카탈로그에 보드를 등록하려면 여기서 지정하는 SKU가 목록 등록 프로세스에 사용하는 SKU와 일치해야 합니다.
features
-
선택 사항입니다. 장치의 지원되는 기능이 포함된 배열입니다. 장치 기능은 테스트 도구 모음에서 구성한 사용자 정의 값입니다.
device.json
파일에 포함할 기능 이름 및 값에 대한 정보를 테스트 러너에게 제공해야 합니다. 예를 들어, 다른 장치의 MQTT 서버 역할을 하는 장치를 테스트하려는 경우 이름이MQTT_QOS
로 지정된 기능에 대해 지원되는 특정 수준을 검증하도록 테스트 로직을 구성할 수 있습니다. 테스트 러너는 이 기능 이름을 제공하고 기능 값을 장치에서 지원하는 QOS 수준으로 설정합니다. 제공된 정보는devicePool.features
쿼리를 사용하여 IDT 컨텍스트에서 검색하거나pool.features
쿼리를 사용하여 상태 머신 컨텍스트에서 검색할 수 있습니다.features.name
-
기능의 이름입니다.
features.value
-
지원되는 기능 값.
features.configs
-
필요한 경우 기능에 대한 구성 설정.
features.config.name
-
구성 설정의 이름입니다.
features.config.value
-
지원되는 설정값.
devices
-
테스트할 풀의 장치 배열입니다. 최소 1개 이상의 장치가 필요합니다.
devices.id
-
테스트 대상 장치의 고유한 사용자 정의 식별자입니다.
connectivity.protocol
-
이러한 장치와 통신하는 데 사용되는 통신 프로토콜입니다. 풀의 각 장치는 동일한 프로토콜을 사용해야 합니다.
현재 지원되는 값은
uart
물리적 장치의 경우 및,docker
Docker 컨테이너의 경우ssh
입니다. connectivity.ip
-
테스트 대상 장치의 IP 입니다.
이 속성은
connectivity.protocol
이ssh
로 설정된 경우에만 적용됩니다. connectivity.port
-
선택 사항입니다. SSH 연결하는 데 사용하는 포트 번호입니다.
기본값은 4입니다.
이 속성은
connectivity.protocol
이ssh
로 설정된 경우에만 적용됩니다. connectivity.auth
-
연결에 대한 인증 정보입니다.
이 속성은
connectivity.protocol
이ssh
로 설정된 경우에만 적용됩니다.connectivity.auth.method
-
지정된 연결 프로토콜을 통해 장치에 액세스하는 데 사용되는 인증 방법입니다.
지원되는 값은 다음과 같습니다.
-
pki
-
password
-
connectivity.auth.credentials
-
인증에 사용되는 자격 증명입니다.
connectivity.auth.credentials.password
-
테스트 대상 장치에 로그인하기 위해 사용하는 암호입니다.
이 값은
connectivity.auth.method
가password
로 설정된 경우에만 적용됩니다. connectivity.auth.credentials.privKeyPath
-
테스트 대상 장치에 로그인하는 데 사용하는 프라이빗 키의 전체 경로입니다.
이 값은
connectivity.auth.method
가pki
로 설정된 경우에만 적용됩니다. connectivity.auth.credentials.user
-
테스트 대상 장치에 로그인하기 위한 사용자 이름입니다.
connectivity.serialPort
-
선택 사항입니다. 장치가 연결된 직렬 포트입니다.
이 속성은
connectivity.protocol
이uart
로 설정된 경우에만 적용됩니다. connectivity.containerId
-
테스트 대상 Docker 컨테이너의 컨테이너 ID 또는 이름입니다.
이 속성은
connectivity.protocol
이docker
로 설정된 경우에만 적용됩니다. connectivity.containerUser
-
선택 사항입니다. 컨테이너 내부 사용자의 사용자 이름입니다. 기본값은 Dockerfile에 제공된 사용자입니다.
기본값은 4입니다.
이 속성은
connectivity.protocol
이docker
로 설정된 경우에만 적용됩니다.
참고
테스트 러너가 테스트를 위해 잘못된 장치 연결을 구성했는지 확인하기 위해 상태 머신 컨텍스트에서
pool.Devices[0].Connectivity.Protocol
을 검색하고 이를Choice
상태에서 예상한 값과 비교할 수 있습니다. 잘못된 프로토콜이 사용된 경우LogMessage
상태를 사용하여 메시지를 인쇄하고Fail
상태로 전환하세요.또는 오류 처리 코드를 사용하여 잘못된 장치 유형에 대한 테스트 실패를 보고할 수 있습니다.
(선택 사항) userdata.json 구성
userdata.json
파일에는 테스트 도구 모음에 필요하지만 device.json
파일에 지정되지 않은 모든 추가 정보가 들어 있습니다. 이 파일의 형식은 테스트 도구 모음에 정의된 userdata_scheme.json 파일에 따라 달라집니다. 테스트 작성자인 경우, 이 정보를 작성한 테스트 도구 모음을 실행할 사용자에게 제공해야 합니다.
(선택 사항) resource.json 구성
resource.json
파일에는 리소스 장치로 사용될 모든 장치에 대한 정보가 들어 있습니다. 리소스 장치는 테스트 대상 장치의 특정 기능을 테스트하는 데 필요한 장치입니다. 예를 들어 장치의 Bluetooth 기능을 테스트하려면 리소스 장치를 사용하여 장치가 제대로 연결될 수 있는지 테스트할 수 있습니다. 리소스 장치는 선택 사항이며 필요한 만큼 리소스 장치를 요청할 수 있습니다. 테스트 작성자는 test.json 파일을 사용하여 테스트에 필요한 리소스 장치 기능을 정의합니다. 그런 다음 테스트 러너는 resource.json
파일을 사용하여 필수 기능을 갖춘 리소스 장치 풀을 제공합니다. 이 정보를 작성한 테스트 도구 모음을 실행할 사용자에게 제공해야 합니다.
테스트 러너는
폴더에 있는 다음 템플릿 <device-tester-extract-location>
/configs/resource.json
파일을 사용하여 이 정보를 제공할 수 있습니다.
[ { "id": "
<pool-id>
", "features": [ { "name": "<feature-name>
", "version": "<feature-value>
", "jobSlots":<job-slots>
} ], "devices": [ { "id": "<device-id>
", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>
", "port":<port-number>
, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>
", // pki "privKeyPath": "/path/to/private/key
", // password "password": "<password>
", } }, // uart "serialPort": "<serial-port>
", // docker "containerId": "<container-id>
", "containerUser": "<container-user-name>
", } } ] } ]
여기 설명된 것처럼 값이 포함된 모든 필드는 필수입니다.
id
-
장치 풀이라고 하는 장치 모음을 고유하게 식별하는 사용자 정의 영숫자 ID입니다. 풀에 속한 장치의 하드웨어는 서로 동일해야 합니다. 테스트 제품군을 실행할 때 풀에 있는 장치는 워크로드를 병렬화하는 데 사용됩니다. 다양한 테스트를 실행하기 위해 여러 장치가 사용됩니다.
features
-
선택 사항입니다. 장치의 지원되는 기능이 포함된 배열입니다. 이 필드에 필요한 정보는 테스트 도구 모음의 test.json 파일에 정의되어 있으며, 실행할 테스트와 이 테스트를 실행하는 방법을 결정합니다. 테스트 도구 모음에 기능이 필요하지 않은 경우에는 이 필드가 필요하지 않습니다.
features.name
-
기능의 이름입니다.
features.version
-
기능 버전.
features.jobSlots
-
장치를 동시에 사용할 수 있는 테스트 수를 나타내는 설정입니다. 기본값은
1
입니다.
devices
-
테스트할 풀의 장치 배열입니다. 최소 1개 이상의 장치가 필요합니다.
devices.id
-
테스트 대상 장치의 고유한 사용자 정의 식별자입니다.
connectivity.protocol
-
이러한 장치와 통신하는 데 사용되는 통신 프로토콜입니다. 풀의 각 장치는 동일한 프로토콜을 사용해야 합니다.
현재 지원되는 값은
uart
물리적 장치의 경우 및,docker
Docker 컨테이너의 경우ssh
입니다. connectivity.ip
-
테스트 대상 장치의 IP 입니다.
이 속성은
connectivity.protocol
이ssh
로 설정된 경우에만 적용됩니다. connectivity.port
-
선택 사항입니다. SSH 연결하는 데 사용하는 포트 번호입니다.
기본값은 4입니다.
이 속성은
connectivity.protocol
이ssh
로 설정된 경우에만 적용됩니다. connectivity.auth
-
연결에 대한 인증 정보입니다.
이 속성은
connectivity.protocol
이ssh
로 설정된 경우에만 적용됩니다.connectivity.auth.method
-
지정된 연결 프로토콜을 통해 장치에 액세스하는 데 사용되는 인증 방법입니다.
지원되는 값은 다음과 같습니다.
-
pki
-
password
-
connectivity.auth.credentials
-
인증에 사용되는 자격 증명입니다.
connectivity.auth.credentials.password
-
테스트 대상 장치에 로그인하기 위해 사용하는 암호입니다.
이 값은
connectivity.auth.method
가password
로 설정된 경우에만 적용됩니다. connectivity.auth.credentials.privKeyPath
-
테스트 대상 장치에 로그인하는 데 사용하는 프라이빗 키의 전체 경로입니다.
이 값은
connectivity.auth.method
가pki
로 설정된 경우에만 적용됩니다. connectivity.auth.credentials.user
-
테스트 대상 장치에 로그인하기 위한 사용자 이름입니다.
connectivity.serialPort
-
선택 사항입니다. 장치가 연결된 직렬 포트입니다.
이 속성은
connectivity.protocol
이uart
로 설정된 경우에만 적용됩니다. connectivity.containerId
-
테스트 대상 Docker 컨테이너의 컨테이너 ID 또는 이름입니다.
이 속성은
connectivity.protocol
이docker
로 설정된 경우에만 적용됩니다. connectivity.containerUser
-
선택 사항입니다. 컨테이너 내부 사용자의 사용자 이름입니다. 기본값은 Dockerfile에 제공된 사용자입니다.
기본값은 4입니다.
이 속성은
connectivity.protocol
이docker
로 설정된 경우에만 적용됩니다.
(선택 사항) config.json 구성
config.json
파일 형식의 IDT용 구성 정보가 들어 있습니다. 일반적으로 테스트 러너는 IDT에 대한 AWS 사용자 보안 인증 및 선택적으로 AWS 리전을 제공하는 경우를 제외하고는 이 파일을 수정할 필요가 없습니다. 필요한 권한이 있는 AWS 보안 인증이 제공되면 AWS IoT Device Tester는 사용량 지표를 수집하여 AWS에 제출합니다. 이는 옵트인 기능이며 IDT 기능을 개선하는 데 사용됩니다. 자세한 내용은 IDT 사용량 지표 단원을 참조하십시오.
테스트 러너는 다음 방법 중 하나로 AWS 보안 인증을 구성할 수 있습니다.
-
보안 인증 파일
IDT는 AWS CLI와 동일한 자격 증명 파일을 사용합니다. 자세한 내용은 구성 및 자격 증명 파일을 참조하십시오.
자격 증명 파일의 위치는 사용하는 운영 체제에 따라 달라집니다.
-
macOS, Linux의 경우:
~/.aws/credentials
-
Windows:
C:\Users\
UserName
\.aws\credentials
-
-
환경 변수
환경 변수는 운영 체제에서 유지 관리하고 시스템 명령에서 사용하는 변수입니다. SSH 세션 중에 정의된 변수는 해당 세션이 종료된 후에는 사용할 수 없습니다. IDT는
AWS_ACCESS_KEY_ID
및AWS_SECRET_ACCESS_KEY
환경 변수를 사용하여 AWS 보안 인증을 저장할 수 있습니다.Linux, macOS 또는 Unix에서 이러한 변수를 설정하려면 export를 사용합니다.
export AWS_ACCESS_KEY_ID=
<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
Windows에서 이러한 변수를 설정하려면 set을 사용합니다.
set AWS_ACCESS_KEY_ID=
<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
IDT용 AWS 보안 인증을 구성하기 위해 테스트 러너는
폴더에 있는 <device-tester-extract-location>
/configs/config.json
파일에서 auth
섹션을 편집합니다.
{ "log": { "location": "
logs
" }, "configFiles": { "root": "configs
", "device": "configs/device.json
" }, "testPath": "tests
", "reportPath": "results
", "awsRegion": "<region>
", "auth": { "method": "file | environment", "credentials": { "profile": "<profile-name>
" } } } ]
여기 설명된 것처럼 값이 포함된 모든 필드는 필수입니다.
참고
이 파일의 모든 경로는 <device-tester-extract-location>
을 기준으로 정의됩니다.
log.location
-
<device-tester-extract-location>
에 있는 로그 폴더의 경로. configFiles.root
-
구성 파일이 포함된 폴더 경로입니다.
configFiles.device
-
device.json
파일 경로입니다. testPath
-
테스트 도구 모음이 들어 있는 폴더의 경로.
reportPath
-
IDT에서 테스트 도구 모음을 실행한 후 테스트 결과를 포함할 폴더의 경로입니다.
awsRegion
-
선택 사항입니다. 테스트 도구 모음에서 사용할 AWS 리전. 설정하지 않으면 테스트 도구 모음은 각 테스트 도구 모음에 지정된 기본 리전을 사용합니다.
auth.method
-
IDT가 AWS 보안 인증을 검색하는 데 사용하는 메서드입니다. 지원되는 값은 보안 인증 파일에서 보안 인증을 검색하는
file
와(과) 환경 변수를 사용하여 보안 인증을 검색하는environment
입니다. auth.credentials.profile
-
보안 인증 파일에서 사용할 보안 인증 프로필. 이 속성은
auth.method
이file
로 설정된 경우에만 적용됩니다.