준비
여기에서는 프로젝트의 전반적인 목표와 연습을 위한 리소스 준비 방법에 대해 토론합니다.
프로젝트 개요
이 모듈에서는 DPS(Device Provisioning Service) 인스턴스 및 IoT 허브와 같이 이 모듈을 완료하는 데 필요한 Azure 리소스를 만드는 것부터 시작합니다. 그런 다음 Azure Cloud Shell 내에서 OpenSSL을 사용하여 X.509 루트 CA 인증서를 생성하고 루트 인증서를 사용하여 DPS 내에서 그룹 등록을 구성합니다. 그리고 루트 인증서를 사용하여 시뮬레이션된 디바이스 코드 내에서 디바이스를 IoT 허브에 프로비전하는 데 사용하는 두 개의 디바이스 인증서를 생성합니다. 그리고 디바이스 코드 내에서 디바이스 초기 구성을 수행하는 데 사용되는 디바이스 쌍 속성 액세스를 구현합니다. 그런 다음 시뮬레이션된 디바이스를 테스트합니다. 이 모듈을 완료하려면 전체 그룹 등록을 프로비전 해제합니다.
설치
이 모듈의 일부로 다음 리소스가 만들어집니다.
- Azure IoT 허브
- Azure IoT Hub Device Provisioning Service 인스턴스
- C#에서 시뮬레이션된 두 개의 디바이스
클라우드 리소스
이 단계별 프로젝트를 완료하려면 서로 연결된 IoT 허브와 Device Provisioning Service 인스턴스가 필요합니다. 이러한 서비스 인스턴스를 만드는 데 몇 분 정도 걸릴 수 있습니다.
샌드박스 활성화 단추를 클릭하여 시작합니다. 샌드박스는 이 웹 페이지에 표시되는 Azure 리소스 그룹을 자동으로 만듭니다. 다음 단계에서 이 프로젝트에 대한 추가 리소스를 만듭니다. 리소스 그룹 이름은 코드 단계 내에서 사용되는 위치에서 자동으로 대체됩니다.
참고 항목
샌드박스 Azure Cloud Shell은 20분 동안 작업이 없으면 시간 초과됩니다. 샌드박스를 계속 사용할 수 있고 Cloud Shell을 다시 활성화할 수 있지만 명령줄 및 환경 변수는 손실됩니다. IoT Hub 및 Device Provisioning Service 인스턴스가 작동하고 사용 가능합니다. 필요할 때 예정된 Cloud Shell 명령에서 값을 계속 참조하고 입력할 수 있도록 이 페이지 끝에 있는 지침에 따라 이러한 값을 복사합니다.
Azure CLI용 Azure IoT 확장을 설치합니다.
az extension add --name azure-iot
전역적으로 고유해야 하는 리소스 이름에 사용할 임의 숫자로 suffix라는 변수를 만듭니다.
let suffix=$RANDOM*$RANDOM echo $suffix
Azure 샌드박스에서 만들어진 리소스 그룹 이름에 IoT 허브를 만듭니다.
az iot hub create --name hub-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
Azure 샌드박스에서 만들어진 리소스 그룹에 DPS 인스턴스를 만듭니다.
az iot dps create --name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
두 리소스를 연결하기 위해 DPS 인스턴스에 제공하는 허브 연결 문자열을 IoT 허브에서 가져옵니다.
hubConnectionString=$(az iot hub connection-string show --hub-name hub-$suffix --key-type primary --query connectionString -o tsv) echo $hubConnectionString
IoT 허브를 DPS 인스턴스에 연결된 허브로 추가합니다. IoT 허브를 연결한다는 것은 DPS 인스턴스가 해당 IoT 허브에 디바이스를 프로비전할 수 있다는 의미입니다.
az iot dps linked-hub create --dps-name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --connection-string $hubConnectionString
배포가 완료되면 텍스트 편집기 도구를 엽니다. 20분 후에 샌드박스 시간이 초과되는 경우를 대비하여 텍스트 편집기를 사용하여 Azure 리소스와 연결된 구성 값을 저장합니다. 텍스트 편집기에서 다음 단위 페이지에 사용할 다음 이름과 값을 저장합니다.
속성 값 리소스 그룹 이름 이 웹 페이지에 나열됨 접미사 $suffix
에 저장됩니다. 예를 들어,$suffix
의 값은586732230
입니다.IoT 허브 연결 문자열 $hubConnectionString
에 저장됨IoT Hub 이름 hub-$suffix
. 예:hub-586732230
.DPS 이름 dps-$suffix
. 예:dps-586732230
.DPS ID 범위 5단계에서 실행한 az iot dps create
명령에서 반환된 JSON 데이터의idScope
값입니다. 예를 들어,idScope
의 값은0ne0000000
입니다.
개발 리소스
Device Provisioning Service를 통해 IoT 디바이스 프로비전을 시뮬레이션하려면 개발 컴퓨터에서 두 개의 C# 애플리케이션을 실행합니다. 개발 컴퓨터에서 다음 필수 구성 요소를 준비합니다.