샘플 애플리케이션, 스크립트, 템플릿 - AWS Panorama

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

샘플 애플리케이션, 스크립트, 템플릿

이 가이드의 GitHub 리포지토리는 AWS Panorama 디바이스용 샘플 애플리케이션, 스크립트 및 템플릿을 제공합니다. 이러한 샘플을 사용하여 모범 사례를 알아보고 개발 워크플로우를 자동화하십시오.

샘플 애플리케이션

샘플 애플리케이션은 AWS Panorama 기능 사용 및 일반적인 컴퓨터 비전 작업을 보여줍니다. 이러한 샘플 애플리케이션에는 설정 및 배포를 자동화하는 스크립트와 템플릿이 포함되어 있습니다. 최소 구성으로 명령줄에서 애플리케이션을 배포하고 업데이트할 수 있습니다.

  • aws-panorama-sample – 분류 모델을 사용한 기본 컴퓨터 비전입니다. 를 사용하여 지표 AWS SDK for Python (Boto) 를 CloudWatch에 업로드하고, 사전 처리 및 추론 방법을 계측하고, 로깅을 구성합니다.

  • 디버그 서버 - 디바이스의 인바운드 포트를 열고 트래픽을 애플리케이션 코드 컨테이너로 전달합니다. 멀티스레딩을 사용하여 애플리케이션 코드, HTTP 서버 및 HTTP 클라이언트를 동시에 실행할 수 있습니다.

  • 사용자 지정 모델 - 코드에서 모델을 내보내고 SageMaker AI Neo로 컴파일하여 AWS Panorama 어플라이언스와의 호환성을 테스트합니다. Python 개발, Docker 컨테이너 또는 Amazon EC2 인스턴스에서 로컬로 빌드합니다. 특정 TensorFlow 또는 Python 버전용 Keras의 내장된 모든 애플리케이션 모델을 내보내고 컴파일합니다.

더 많은 샘플 애플리케이션을 보려면 aws-panorama-samples 리포지토리를 방문하십시오.

유틸리티 스크립트

util-scripts 디렉터리의 스크립트는 AWS Panorama 리소스를 관리하거나 개발 워크플로를 자동화합니다.

  • provision-device.sh – 디바이스를 프로비저닝합니다.

  • check-updates.sh – 어플라이언스 소프트웨어 업데이트를 확인하고 적용합니다.

  • reboot-device.sh – 디바이스를 재부팅합니다.

  • register-camera.sh – 카메라를 등록합니다.

  • deregister-camera.sh – 카메라 노드를 삭제합니다.

  • view-logs.sh – 애플리케이션 인스턴스의 로그를 볼 수 있습니다.

  • pause-camera.sh – 카메라 스트림을 일시 중지하거나 재개합니다.

  • push.sh – 애플리케이션을 빌드, 업로드, 배포합니다.

  • rename-package.sh – 노드 패키지 이름을 바꿉니다. 디렉토리 이름, 구성 파일 및 애플리케이션 매니페스트를 업데이트합니다.

  • samplify.sh – 계정 ID를 예제 계정 ID로 바꾸고 백업 구성을 복원하여 로컬 구성을 제거합니다.

  • update-model-config.sh – 설명자 파일을 업데이트한 후 모델을 애플리케이션에 다시 추가합니다.

  • cleanup-patches.sh – 이전 패치 버전의 등록을 취소하고 Amazon S3에서 해당 매니페스트를 삭제합니다.

사용 세부 정보는 README를 참조하십시오.

AWS CloudFormation 템플릿

cloudformation-templates 디렉터리의 AWS CloudFormation 템플릿을 사용하여 애플리케이션에 대한 AWS Panorama 리소스를 생성합니다.

  • alarm-application.yml – 애플리케이션의 오류를 모니터링하는 경보를 생성합니다. 애플리케이션 인스턴스에서 오류가 발생하거나 5분 동안 실행이 중지되면 경보가 알림 이메일을 보냅니다.

  • alarm-device.yml – 디바이스의 연결을 모니터링하는 경보를 생성합니다. 디바이스가 5분 동안 메트릭 전송을 중단하면 경보가 알림 이메일을 보냅니다.

  • application-role.yml – 애플리케이션 역할을 생성합니다. 이 역할에는 CloudWatch로 지표를 전송할 수 있는 권한이 포함됩니다. 애플리케이션에서 사용하는 다른 API 작업에 대한 권한을 정책 설명에 추가하십시오.

  • vpc-appliance.yml - AWS Panorama 어플라이언스에 대한 프라이빗 서브넷 서비스 액세스 권한이 있는 VPC를 생성합니다. 어플라이언스를 VPC에 연결하려면 AWS Direct Connect 또는를 사용합니다 AWS Site-to-Site VPN.

  • vpc-endpoint.yml - 서비스에 대한 프라이빗 서브넷 서비스 액세스 권한이 있는 VPC를 생성합니다 AWS Panorama . VPC 내부의 리소스는 인터넷에 연결하지 않고도 AWS Panorama 에 연결하여 AWS Panorama 리소스를 모니터링하고 관리할 수 있습니다.

이 디렉터리의 create-stack.sh 스크립트는 AWS CloudFormation 스택을 생성합니다. 다양한 수의 인수를 사용합니다. 첫 번째 인수는 템플릿 이름이고 나머지 인수는 템플릿의 파라미터에 대한 오버라이드입니다.

예를 들어 다음 명령은 애플리케이션 역할을 생성합니다.

$ ./create-stack.sh application-role

더 많은 샘플과 도구

aws-panorama-samples 리포지토리에는 더 많은 샘플 애플리케이션과 유용한 도구가 있습니다.

  • 애플리케이션 – 다양한 모델 아키텍처 및 사용 사례를 위한 샘플 애플리케이션입니다.

  • 카메라 스트림 검증 – 카메라 스트림을 검증합니다.

  • PanoJupyter – AWS Panorama 어플라이언스에서 upyterLab을 실행합니다.

  • Sideloading – 애플리케이션 컨테이너를 구축하거나 배포하지 않고도 애플리케이션 코드를 업데이트할 수 있습니다.

AWS 커뮤니티는에 대한 도구와 지침도 개발했습니다 AWS Panorama. GitHub에서 다음 오픈소스 프로젝트를 확인해 보십시오.

  • cookiecutter-panorama - AWS Panorama 애플리케이션을 위한 Cookiecutter 템플릿입니다.

  • 백팩 — 런타임 환경 세부 정보, 프로파일링 및 추가 비디오 출력 옵션에 액세스하기 위한 Python 모듈입니다.