통신 테스트 - AWS IoT Greengrass

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 것이 좋습니다.

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

통신 테스트

  1. 컴퓨터와 AWS IoT Greengrass 코어 장치가 동일한 네트워크를 사용하여 인터넷에 연결되어 있는지 확인합니다.

    1. AWS IoT Greengrass 코어 디바이스에서 다음 명령을 실행하여 해당 IP 주소를 찾습니다.

      hostname -I
    2. 컴퓨터에서 코어의 IP 주소를 사용하여 다음 명령을 실행합니다. Ctrl + C를 사용하여 ping 명령을 중지할 수 있습니다.

      ping IP-address

      다음과 비슷한 출력은 컴퓨터와 AWS IoT Greengrass 코어 장치 간의 통신 성공 (패킷 손실 0%) 을 나타냅니다.

      성공적인 ping 명령 출력
      참고

      실행 중인 AWS IoT Greengrass EC2 인스턴스를 ping할 수 없는 경우 인스턴스의 인바운드 보안 그룹 규칙이 Echo 요청 메시지에 대한 ICMP 트래픽을 허용하는지 확인하십시오. 자세한 내용은 Amazon EC2 사용 설명서의 보안 그룹에 규칙 추가를 참조하십시오.

      Windows 호스트 컴퓨터에 어드밴스 보안 앱을 갖춘 Windows 방화벽에서 인바운드 에코 요청(예: File and Printer Sharing(파일 및 프린터 공유)(에코 요청 - ICMPv4-In))을 허용하는 인바운드 규칙을 활성화하거나 생성해야 할 수도 있습니다.

  2. AWS IoT 엔드포인트 가져오기.

    1. AWS IoT 콘솔의 탐색 창에서 설정을 선택합니다.

    2. 장치 데이터 엔드포인트에서 엔드포인트의 값을 기록해 둡니다. 이 값을 사용하여 다음 단계의 명령에서 AWS_IOT_ENDPOINT 자리 표시자를 바꿉니다.

      참고
  3. 컴퓨터 ( AWS IoT Greengrass 코어 장치 아님) 에서 두 개의 명령줄 (터미널 또는 명령 프롬프트) 창을 엽니다. 한 창은 HelloWorld _Publisher 클라이언트 장치를 나타내고 다른 창은 _Subscriber 클라이언트 장치를 나타냅니다. HelloWorld

    실행 시 엔드포인트의 AWS IoT Greengrass 코어 위치에 대한 정보 수집을 basicDiscovery.py 시도합니다. 이 정보는 클라이언트 장치가 코어를 발견하고 성공적으로 연결한 후 저장됩니다. 이 경우 향후 메시징 및 작업이 로컬에서 실행될 수 있습니다(인터넷 연결 필요 없음).

    참고

    MQTT 연결에 사용되는 클라이언트 ID는 클라이언트 장치의 사물 이름과 일치해야 합니다. basicDiscovery.py 스크립트는 MQTT 연결의 클라이언트 ID를 스크립트 실행 시 지정한 사물 이름으로 설정합니다.

    basicDiscovery.py 파일이 포함된 폴더에서 다음 명령을 실행하면 상세한 스크립트 사용 정보를 알 수 있습니다.

    python basicDiscovery.py --help
  4. HelloWorld_Publisher 클라이언트 장치 창에서 다음 명령을 실행합니다.

    • path-to-certs-folder를 인증서, 키 및 basicDiscovery.py를 포함하는 폴더의 경로로 바꿉니다.

    • AWS_IOT_ENDPOINT를 엔드포인트로 바꿉니다.

    • 게시자 CertId 인스턴스를 HelloWorld _Publisher 클라이언트 디바이스의 파일 이름에 있는 인증서 ID로 교체합니다.

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert publisherCertId-certificate.pem.crt --key publisherCertId-private.pem.key --thingName HelloWorld_Publisher --topic 'hello/world/pubsub' --mode publish --message 'Hello, World! Sent from HelloWorld_Publisher'

    Published topic 'hello/world/pubsub': {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}와 같은 항목을 포함하는 다음과 비슷한 출력 화면이 보여야 합니다.

    참고

    스크립트가 error: unrecognized arguments 메시지를 반환하는 경우 --topic--message 파라미터의 작은따옴표를 큰따옴표로 변경하고 명령을 다시 실행합니다.

    연결 문제를 해결하려면 수동 IP 감지를 사용합니다.

    게시자 출력 스크린샷
  5. HelloWorld_Subscriber 클라이언트 디바이스 창에서 다음 명령을 실행합니다.

    • path-to-certs-folder를 인증서, 키 및 basicDiscovery.py를 포함하는 폴더의 경로로 바꿉니다.

    • AWS_IOT_ENDPOINT를 엔드포인트로 바꿉니다.

    • 구독자 CertId 인스턴스를 HelloWorld _Subscriber 클라이언트 디바이스의 파일 이름에 있는 인증서 ID로 교체합니다.

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert subscriberCertId-certificate.pem.crt --key subscriberCertId-private.pem.key --thingName HelloWorld_Subscriber --topic 'hello/world/pubsub' --mode subscribe

    Received message on topic hello/world/pubsub: {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}와 같은 항목을 포함하는 다음 출력 화면이 보여야 합니다.

    구독자 출력 스크린샷

HelloWorld_Subscriber 창에 메시지가 누적되지 않도록 하려면 HelloWorld_Publisher 창을 닫습니다.

기업 네트워크에 대한 테스트는 코어 연결을 방해할 수 있습니다. 차선책으로서 엔드포인트를 수동으로 입력할 수 있습니다. 이렇게 하면 basicDiscovery.py 스크립트가 코어 디바이스의 올바른 IP 주소에 연결됩니다. AWS IoT Greengrass

수동으로 엔드포인트를 입력하려면
  1. AWS IoT 콘솔 탐색 창의 관리에서 Greengrass 장치를 확장한 다음 그룹 (V1) 을 선택합니다.

  2. Greengrass 그룹에서 사용자 그룹을 선택합니다.

  3. MQTT 브로커 엔드포인트를 수동으로 관리하도록 코어를 구성하십시오. 다음을 따릅니다.

    1. 그룹 구성 페이지에서 Lambda 함수 탭을 선택합니다.

    2. 시스템 Lambda 함수에서 IP 감지기를 선택한 다음 편집을 선택합니다.

    3. IP 감지기 설정 편집에서 MQTT 브로커 엔드포인트 수동 관리를 선택한 다음 저장을 선택합니다.

  4. 코어의 MQTT 브로커 엔드포인트를 입력합니다. 다음을 따릅니다.

    1. 개요에서 Greengrass 코어를 선택합니다.

    2. MQTT 브로커 엔드포인트에서 엔드포인트 관리를 선택합니다.

    3. 엔드포인트 추가를 선택하고 엔드포인트 값이 하나뿐인지 확인합니다. 이 값은 AWS IoT Greengrass 코어 디바이스의 포트 8883의 IP 주소 엔드포인트여야 합니다 (예:). 192.168.1.4

    4. 업데이트를 선택합니다.