에 대한 IDT 문제 해결AWS IoT GreengrassV2 - AWS IoT Greengrass

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

에 대한 IDT 문제 해결AWS IoT GreengrassV2

IDT를 위한AWS IoT GreengrassV2는 오류 유형에 따라 다양한 위치에 오류를 기록합니다. IDT는 콘솔, 로그 파일 및 테스트 보고서에 오류를 기록합니다.

오류를 찾을 수 있는 위치

테스트가 실행되는 동안 콘솔에 높은 수준의 오류가 표시되고, 모든 테스트가 완료되면 실패한 테스트의 요약이 표시됩니다.awsiotdevicetester_report.xml테스트 실패의 원인이 된 모든 오류의 요약이 들어 있습니다. IDT는 테스트 실행 중에 콘솔에 표시되는 테스트 실행용 UUID가 있는 디렉터리에 각 테스트 실행의 로그 파일을 저장합니다.

IDT 테스트 로그 디렉터리는 다음과 같습니다.<device-tester-extract-location>/results/<execution-id>/logs/. 이 디렉토리에는 표에 표시된 다음 파일이 들어 있습니다. 이는 디버깅에 유용합니다.

파일 설명
test_manager.log

테스트가 실행되는 동안 콘솔에 기록된 로그입니다. 이 파일 끝에 있는 결과 요약에는 실패한 테스트 목록이 포함되어 있습니다.

이 파일의 경고 및 오류 로그에서 실패에 대한 일부 정보를 확인할 수 있습니다.

test-group-id/test-case-id/test-name.log 테스트 그룹의 특정 테스트에 대한 세부 로그 Greengrass 구성 요소를 배포하는 테스트의 경우 테스트 케이스 로그 파일이 호출됩니다.greengrass-test-run.log.
test-group-id/test-case-id/greengrass.log 에 대한 상세 로그AWS IoT Greengrass코어 소프트웨어. IDT는 설치 테스트를 실행할 때 테스트 대상 기기에서 이 파일을 복사합니다.AWS IoT Greengrass디바이스의 코어 소프트웨어. 이 로그 파일의 메시지에 대한 자세한 내용은 을 참조하십시오.문제 해결 AWS IoT Greengrass V2.
test-group-id/test-case-id/component-name.log 테스트 실행 중에 배포된 Greengrass 구성 요소에 대한 세부 로그입니다. IDT는 특정 구성 요소를 배포하는 테스트를 실행할 때 테스트 대상 장치의 구성 요소 로그 파일을 복사합니다. 각 구성 요소 로그 파일의 이름은 배포된 구성 요소의 이름과 일치합니다. 이 로그 파일의 메시지에 대한 자세한 내용은 을 참조하십시오.문제 해결 AWS IoT Greengrass V2.

다음에 대한 IDT 문제 해결AWS IoT GreengrassV2 오류

IDT를 실행하기 전에AWS IoT Greengrass올바른 구성 파일을 준비하세요. 구문 분석 및 구성 오류가 발생하는 경우 첫 번째 단계는 환경에 적합한 구성 템플릿을 찾아 사용하는 것입니다.

그래도 문제가 발생할 경우 다음 디버깅 프로세스를 참조하십시오.

별칭 해상도 오류

사용자 지정 테스트 스위트를 실행하면 콘솔과 테스트 스위트에서 다음 오류가 표시될 수 있습니다.test_manager.log.

Couldn't resolve placeholders: couldn't do a json lookup: index out of range

이 오류는 IDT 테스트 오케스트레이터에서 구성된 별칭이 제대로 확인되지 않거나 확인된 값이 구성 파일에 없는 경우 발생할 수 있습니다. 이 오류를 해결하려면 다음을 확인하십시오.device.jsonuserdata.json 테스트 스위트에 필요한 올바른 정보를 포함하세요. 에 필요한 구성에 대한 자세한 내용은AWS IoT Greengrass검증은 다음을 참조하십시오.AWS IoT Greengrass 검증 제품군을 실행하도록 IDT 설정을 구성합니다..

충돌 오류

를 실행할 때 다음 오류가 표시될 수 있습니다.AWS IoT Greengrass둘 이상의 장치에서 검증 제품군을 동시에 실행할 수 있습니다.

ConflictException: Component [com.example.IDTHelloWorld : 1.0.0] for account [account-id] already exists with state: [DEPLOYABLE] { RespMetadata: { StatusCode: 409, RequestID: “id” }, Message_: “Component [com.example.IDTHelloWorld : 1.0.0] for account [account-id] already exists with state: [DEPLOYABLE]” }

에 대한 동시 테스트 실행은 아직 지원되지 않습니다.AWS IoT Greengrass검증 제품군. 각 장치에 대해 검증 제품군을 순차적으로 실행합니다.

테스트를 시작할 수 없음 오류

테스트를 시작하려고 할 때 발생한 실패를 가리키는 오류가 발생할 수 있습니다. 몇 가지 원인이 있을 수 있으므로 다음을 수행하십시오.

  • 실행 명령의 풀 이름이 실제로 존재하는지 확인하십시오. IDT는 사용자 계정에서 직접 풀 이름을 참조합니다.device.json파일.

  • 풀에 있는 디바이스에 올바른 구성 파라미터가 있는지 확인합니다.

Docker 자격 이미지에 오류가 있습니다.

Docker 애플리케이션 관리자 자격 테스트에서는 다음을 사용합니다.amazon/amazon-ec2-metadata-mockAmazon ECR의 컨테이너 이미지를 사용하여 테스트 대상 디바이스를 검증합니다.

테스트 대상 디바이스의 Docker 컨테이너에 이미지가 이미 있는 경우 다음 오류가 발생할 수 있습니다.

The Docker image amazon/amazon-ec2-metadata-mock:version already exists on the device.

이전에 이 이미지를 다운로드하고 실행한 경우amazon/amazon-ec2-metadata-mock디바이스의 컨테이너, 검증 테스트를 실행하기 전에 테스트 대상 디바이스에서 이 이미지를 제거해야 합니다.

자격 증명을 읽지 못했습니다.

Windows 장치를 테스트할 때 다음과 같은 문제가 발생할 수 있습니다.Failed to read credential에 오류가 발생했습니다.greengrass.log테스트 대상 장치에 연결하는 데 사용하는 사용자가 해당 장치의 자격 증명 관리자에 설정되어 있지 않은 경우 파일을 저장합니다.

이 오류를 해결하려면 테스트 대상 장치의 자격 증명 관리자에서 IDT 사용자의 사용자 및 암호를 구성하십시오.

자세한 정보는 Windows 장치의 사용자 자격 증명을 구성합니다.을 참조하세요.

다음과 같은 오류 안내 PreInstalled 그린그래스

IDT를 실행하는 동안 PreInstalled 그린그래스, 다음과 같은 오류가 발생하는 경우Guice또는ErrorInCustomProvider, 파일이 있는지 확인userdata.json가 있습니다InstalledDirRootOnDevice그린그래스 설치 폴더로 설정되었습니다. IDT가 파일을 확인합니다.effectiveConfig.yaml아래에<InstallationDirRootOnDevice>/config/effectiveConfig.yaml.

자세한 정보는 Windows 장치의 사용자 자격 증명을 구성합니다.을 참조하세요.

잘못된 서명 예외

Lambda 자격 테스트를 실행할 때 다음과 같은 문제가 발생할 수 있습니다.invalidsignatureexceptionIDT 호스트 시스템에서 네트워크 액세스 문제가 발생하는 경우 오류가 발생합니다. 라우터를 재설정하고 테스트를 다시 실행하세요.

기계 학습 자격 오류

기계 학습 (ML) 자격 테스트를 실행할 때 장치가 요구 사항을 충족하지 않으면 자격 인증이 실패할 수 있습니다.요구 사항배포하려면AWS-ML 구성 요소 제공. ML 자격 오류를 해결하려면 다음을 수행하십시오.

  • 구성 요소 로그에서 테스트 실행 중에 배포된 구성 요소의 오류 세부 정보를 찾아보세요. 구성 요소 로그는 다음 위치에 있습니다.<device-tester-extract-location>/results/<execution-id>/logs/<test-group-id>디렉터리.

  • 추가-Dgg.persist=installed.software인수를 에test.json실패한 테스트 케이스에 대한 파일입니다. The test.json파일은 다음 위치에 있습니다.<device-tester-extract-location>/tests/GGV2Q_version directory.

오픈 테스트 프레임워크 (OTF) 배포 실패

OTF 테스트에서 배포가 완료되지 않는 경우 상위 폴더에 설정된 권한이 원인일 수 있습니다.TempResourcesDirOnDeviceInstallationDirRootOnDevice. 이 폴더의 권한을 올바르게 설정하려면 다음 명령을 실행합니다. 바꾸기folder-name상위 폴더의 이름으로

sudo chmod 755 folder-name

구문 분석 오류

JSON 구성에 오타가 있으면 구문 분석 오류가 발생할 수 있습니다. 대부분의 경우 문제는 JSON 파일에서 대괄호, 쉼표 또는 따옴표를 생략한 결과입니다. IDT는 JSON 확인을 수행하고 디버깅 정보를 인쇄합니다. IDT는 오류가 발생한 줄, 줄 번호, 구문 오류의 열 번호를 인쇄합니다. 이 정보만으로도 오류를 수정하는 데 충분하지만 여전히 오류를 찾을 수 없는 경우 IDE, Atom 또는 Sublime과 같은 텍스트 편집기 또는 JSONLint와 같은 온라인 도구를 통해 수동으로 유효성 검사를 수행할 수 있습니다.

권한 거부 오류

IDT는 테스트 대상 디바이스에서 다양한 디렉터리와 파일에 대해 작업을 수행합니다. 이러한 작업 일부에는 루트 액세스가 필요합니다. 이러한 작업을 자동화하기 위해서는 IDT가 암호 입력 없이 sudo를 사용하여 명령을 실행할 수 있어야 합니다.

암호 입력 없이 sudo 액세스를 허용하려면 다음 단계를 수행합니다.

참고

userusername은 IDT가 테스트 대상 디바이스에 액세스하는 데 사용하는 SSH 사용자를 나타냅니다.

  1. sudo 그룹에 SSH 사용자를 추가하려면 sudo usermod -aG sudo <ssh-username>을 사용하십시오.

  2. 변경 사항을 적용하려면 로그아웃했다가 로그인하십시오.

  3. /etc/sudoers 파일을 열고 파일 끝에 다음 줄을 추가합니다. <ssh-username> ALL=(ALL) NOPASSWD: ALL

    참고

    모범 사례로, /etc/sudoers를 편집할 때는 sudo visudo를 사용하는 것이 좋습니다.

검증 보고서 생성 오류

IDT는 네 가지 최신 버전을 지원합니다.major.minor의 버전AWS IoT Greengrass제출할 수 있는 검증 보고서를 생성하기 위한 V2 검증 세트 (GGV2Q)AWS Partner Network디바이스를 다음 목록에 포함시키려면AWS Partner기기 카탈로그. 이전 버전의 검증 제품군에서는 검증 보고서가 생성되지 않습니다.

지원 정책에 대해 궁금한 점이 있으면 문의하십시오.AWS Support.

필수 파라미터 누락 오류

IDT가 새 기능을 추가하면 구성 파일이 변경될 수 있습니다. 기존 구성 파일을 사용하면 구성이 손상될 수 있습니다. 이 문제가 발생할 경우 /results/<execution-id>/logs 아래의 <test_case_id>.log 파일에 누락된 모든 파라미터가 명시적으로 나열됩니다. 또한 IDT는 JSON 구성 파일 스키마의 유효성을 검사하여 지원되는 최신 버전을 사용하고 있는지 확인합니다.

macOS의 보안 예외

macOS 호스트 컴퓨터에서 IDT를 실행하면 IDT 실행이 차단됩니다. IDT를 실행하려면 IDT 런타임 기능의 일부인 실행 파일에 보안 예외를 부여하십시오. 호스트 컴퓨터에 경고 메시지가 표시되면 해당하는 각 실행 파일에 대해 다음을 수행하십시오.

IDT 실행 파일에 보안 예외 허용하기

  1. macOS 컴퓨터의 Apple 메뉴에서 열기시스템 환경설정.

  2. 고르세요보안 및 개인 정보그 다음엔일반탭에서 잠금 아이콘을 선택하여 보안 설정을 변경합니다.

  3. 차단된 경우devicetester_mac_x86-64메시지를 찾아보세요"devicetester_mac_x86-64" was blocked from use because it is not from an identified developer.그리고 선택하세요아무튼 허용.

  4. 관련된 모든 실행 파일을 검토할 때까지 IDT 테스트를 재개하십시오.

SSH 연결 오류

IDT가 테스트 대상 기기에 연결할 수 없는 경우 연결 실패가 기록됩니다./results/<execution-id>/logs/<test-case-id>.log. 테스트 대상 장치에 연결하는 것은 IDT가 수행하는 첫 번째 작업 중 하나이기 때문에 SSH 메시지는 이 로그 파일의 맨 위에 표시됩니다.

대부분의 Windows 구성에서는 PuTTY 터미널 애플리케이션을 사용하여 Linux 호스트에 연결합니다. 이 애플리케이션을 사용하려면 표준 PEM 개인 키 파일을 PPK라는 전용 Windows 형식으로 변환해야 합니다. SSH를 다음과 같이 구성하는 경우device.json파일에는 PEM 파일을 사용하십시오. PPK 파일을 사용하는 경우 IDT는 PPK 파일을 사용하여 SSH 연결을 생성할 수 없습니다.AWS IoT Greengrass기기 및 테스트를 실행할 수 없습니다.

IDT v4.4.0부터 테스트 중인 기기에서 SFTP를 활성화하지 않은 경우 로그 파일에 다음 오류가 표시될 수 있습니다.

SSH connection failed with EOF

이 오류를 해결하려면 디바이스에서 SFTP를 활성화하세요.

스트림 매니저 자격 오류

스트림 관리자 자격 테스트를 실행하면 다음과 같은 오류가 표시될 수 있습니다.com.aws.StreamManagerExport.log파일.

Failed to upload data to S3

이 오류는 스트림 관리자가 다음을 사용할 때 발생할 수 있습니다.AWS의 자격 증명~/root/.aws/credentialsIDT가 테스트 대상 기기로 내보내는 환경 자격 증명을 사용하는 대신 기기에 파일을 저장하세요. 이 문제를 방지하려면 다음을 삭제하십시오.credentials디바이스에서 파일을 저장하고 자격 테스트를 다시 실행하세요.

제한 시간 오류

각 테스트 제한 시간의 기본값에 적용되는 제한 시간 배수를 지정하여 각 테스트의 제한 시간을 늘릴 수 있습니다. 이 플래그에 대해 구성된 값은 1.0보다 크거나 같아야 합니다.

제한 시간 승수를 사용하려면 테스트를 실행할 때 --timeout-multiplier 플래그를 사용합니다. 예시:

./devicetester_linux run-suite --suite-id GGV2Q_1.0.0 --pool-id DevicePool1 --timeout-multiplier 2.5

자세한 내용을 보려면 run-suite --help를 실행하십시오.

일부 타임아웃 오류는 구성 문제로 인해 IDT 테스트 케이스를 완료할 수 없을 때 발생합니다. 타임아웃 멀티플라이어를 늘려서는 이러한 오류를 해결할 수 없습니다. 테스트 실행의 로그를 사용하여 기본 구성 문제를 해결하십시오.

  • MQTT 또는 Lambda 구성 요소 로그에 다음이 포함된 경우Access denied오류, Greengrass 설치 폴더에 올바른 파일 권한이 없을 수 있습니다. 설치 경로에 정의한 설치 경로의 각 폴더에 대해 다음 명령을 실행합니다.userdata.json파일.

    sudo chmod 755 folder-name
  • 그린그래스 로그에 Greengrass CLI 배포가 완료되지 않은 것으로 나타나면 다음을 수행하십시오.

    • 다음을 확인하십시오.bash테스트 대상 장치에 설치되었습니다.

    • 만약userdata.json파일에 다음이 포함되어 있습니다.GreengrassCliVersion구성 파라미터, 제거하세요. 이 매개변수는 IDT v4.1.0 이상 버전에서 더 이상 사용되지 않습니다. 자세한 정보는 userdata.json을 구성합니다.을 참조하세요.

  • Lambda 배포 테스트가 “Lambda 게시 검증 중: 시간 초과”라는 오류 메시지와 함께 실패하고 테스트 로그 파일에 오류가 발생한 경우 (idt-gg2-lambda-function-idt-<resource-id>.log) 라고 적혀 있습니다.Error: Could not find or load main class com.amazonaws.greengrass.runtime.LambdaRuntime., 다음과 같이 하세요.

    • 어떤 폴더가 사용되었는지 확인하십시오.InstallationDirRootOnDevice에서userdata.json파일.

    • 장치에 올바른 사용자 권한이 설정되어 있는지 확인하세요. 자세한 내용은 을 참조하십시오.디바이스의 사용자 권한 구성.

버전 확인 오류

IDT는 다음과 같은 경우 다음 오류를 발생시킵니다.AWSIDT 사용자의 사용자 자격 증명에는 필요한 IAM 권한이 없습니다.

Failed to check version compatibility

The AWS필요한 IAM 권한이 없는 사용자