자습서: IoT 플러그 앤 플레이 빠른 시작 및 자습서에 사용할 환경 설정
IoT 플러그 앤 플레이 빠른 시작 및 자습서를 완료하려면 먼저 Azure 구독에서 IoT 허브 및 DPS(Device Provisioning Service)를 구성해야 합니다. 또한 샘플 애플리케이션과 Azure IoT 탐색기 도구에서 사용하는 모델 파일의 로컬 복사본이 필요합니다.
Important
이 문서에서는 공유 액세스 서명을 사용하여 서비스에 연결하는 단계를 설명합니다. 이 인증 방법은 테스트와 평가에 편리하지만, Microsoft Entra ID나 관리 ID를 사용하여 서비스를 인증하는 것이 더 안전한 방식입니다. 자세한 내용은 보안 모범 사례 > 클라우드 보안을 참조하세요.
필수 조건
Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
Azure CLI에 대한 환경 준비
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
리소스 만들기
다음과 같이 리소스에 대한 Azure 리소스 그룹을 만듭니다.
az group create --name my-pnp-resourcegroup --location centralus
IoT Hub를 만듭니다. 다음 명령은 우리가 만들려는 IoT 허브의 이름으로 my-pnp-hub
를 사용합니다. my-pnp-hub
대신 사용할 고유한 IoT 허브 이름을 선택합니다.
az iot hub create --name my-pnp-hub --resource-group my-pnp-resourcegroup --sku F1 --partition-count 2
DPS 인스턴스를 만듭니다. 다음 명령은 우리가 만들려는 DPS 인스턴스의 이름으로 my-pnp-dps
를 사용합니다. my-pnp-dps
대신 사용할 고유한 DPS 인스턴스 이름을 선택합니다.
az iot dps create --name my-pnp-dps --resource-group my-pnp-resourcegroup
DPS 인스턴스를 IoT 허브에 연결하려면 다음 명령을 사용합니다. my-pnp-dps
및 my-pnp-hub
를 앞에서 선택한 고유한 이름으로 바꿉니다.
hubConnectionString=$(az iot hub connection-string show -n my-pnp-hub --key primary --query connectionString -o tsv)
az iot dps linked-hub create --dps-name my-pnp-dps --resource-group my-pnp-resourcegroup --location centralus --connection-string $hubConnectionString
설정 검색
일부 빠른 시작 및 자습서에서는 IoT 허브에 연결 문자열을 사용합니다. Azure IoT 탐색기 도구를 설정할 때에도 연결 문자열이 필요합니다. 지금 연결 문자열을 검색하여 적어 둡니다. my-pnp-hub
를 IoT 허브에 대해 선택한 고유한 이름으로 바꿉니다.
az iot hub connection-string show -n my-pnp-hub --key primary --query connectionString
대부분의 빠른 시작 및 자습서에서는 DPS 구성의 ID 범위를 사용합니다. 지금 ID 범위를 검색하고 적어 둡니다. my-pnp-dps
를 DPS 인스턴스에 대해 선택한 고유한 이름으로 바꿉니다.
az iot dps show --name my-pnp-dps --query properties.idScope
모든 빠른 시작 및 자습서에서는 DPS 디바이스 등록을 사용합니다. 다음 명령을 사용하여 DPS 인스턴스에 my-pnp-device
개별 디바이스 등록을 만듭니다. my-pnp-dps
를 DPS 인스턴스에 대해 선택한 고유한 이름으로 바꿉니다. 빠른 시작 및 자습서에서 사용할 등록 ID와 기본 키 값을 기록해 둡니다.
az iot dps enrollment create --attestation-type symmetrickey --dps-name my-pnp-dps --resource-group my-pnp-resourcegroup --enrollment-id my-pnp-device --device-id my-pnp-device --query '{registrationID:registrationId,primaryKey:attestation.symmetricKey.primaryKey}'
환경 변수 만들기
DPS(Device Provisioning Service)를 사용하여 IoT 허브에 연결하도록 빠른 시작 및 자습서의 샘플을 구성하는 다음과 같은 5개의 환경 변수를 만듭니다.
- IOTHUB_DEVICE_SECURITY_TYPE:
DPS
값입니다. - IOTHUB_DEVICE_DPS_ID_SCOPE: 앞에서 기록해 둔 DPS ID 범위입니다.
- IOTHUB_DEVICE_DPS_DEVICE_ID:
my-pnp-device
값입니다. - IOTHUB_DEVICE_DPS_DEVICE_KEY: 앞에서 기록해 둔 등록 기본 키입니다.
- IOTHUB_DEVICE_DPS_ENDPOINT:
global.azure-devices-provisioning.net
값입니다.
서비스 샘플은 연결할 허브 및 디바이스를 식별하려면 다음과 같은 환경 변수가 필요합니다.
- IOTHUB_CONNECTION_STRING: 이전에 기록한 IoT 허브 연결 문자열입니다.
- IOTHUB_DEVICE_ID:
my-pnp-device
.
예를 들어 Linux bash 셸에서는 다음과 같습니다.
export IOTHUB_DEVICE_SECURITY_TYPE="DPS"
export IOTHUB_DEVICE_DPS_ID_SCOPE="<Your ID scope>"
export IOTHUB_DEVICE_DPS_DEVICE_ID="my-pnp-device"
export IOTHUB_DEVICE_DPS_DEVICE_KEY="<Your enrolment primary key>"
export IOTHUB_DEVICE_DPS_ENDPOINT="global.azure-devices-provisioning.net"
export IOTHUB_CONNECTION_STRING="<Your IoT hub connection string>"
export IOTHUB_DEVICE_ID="my-pnp-device"
Windows 명령줄에서는 다음과 같습니다.
set IOTHUB_DEVICE_SECURITY_TYPE=DPS
set IOTHUB_DEVICE_DPS_ID_SCOPE=<Your ID scope>
set IOTHUB_DEVICE_DPS_DEVICE_ID=my-pnp-device
set IOTHUB_DEVICE_DPS_DEVICE_KEY=<Your enrolment primary key>
set IOTHUB_DEVICE_DPS_ENDPOINT=global.azure-devices-provisioning.net
set IOTHUB_CONNECTION_STRING=<Your IoT hub connection string>
set IOTHUB_DEVICE_ID=my-pnp-device
모델 파일 다운로드
빠른 시작 및 자습서에서는 온도 컨트롤러 및 자동 온도 조절기 디바이스의 샘플 모델 파일을 사용합니다. 이 샘플 모델 파일을 다운로드하는 방법은 다음과 같습니다.
모델이라는 폴더를 로컬 머신에 만듭니다.
TemperatureController.json을 마우스 오른쪽 단추로 클릭하고 JSON 파일을 모델 폴더에 저장합니다.
Thermostat.json을 마우스 오른쪽 단추로 클릭하고 JSON 파일을 모델 폴더에 저장합니다.
Azure IoT 탐색기 설치
빠른 시작 및 자습서에서는 Azure IoT 탐색기 도구를 사용합니다. Azure IoT 탐색기 릴리스로 이동하여 최신 릴리스의 자산 목록을 확장하세요. 사용 중인 운영 체제에 맞는 최신 버전의 애플리케이션을 다운로드하여 설치합니다.
도구를 처음으로 실행하면 IoT 허브 연결 문자열을 입력하라는 메시지가 표시됩니다. 앞에서 기록해 둔 연결 문자열을 사용합니다.
앞에서 다운로드한 모델 파일을 사용하도록 도구를 구성합니다. 도구의 홈페이지에서 IoT 플러그 앤 플레이 설정을 선택한 다음, + 추가 > 로컬 폴더를 선택합니다. 앞에서 만든 models 폴더를 선택합니다. 저장을 선택하여 설정을 저장합니다.
자세히 알아보려면 Azure IoT 탐색기 설치 및 사용을 참조하세요.
리소스 정리
모든 IoT 플러그 앤 플레이 빠른 시작과 자습서에서 IoT 허브 및 DPS 인스턴스를 사용할 수 있으므로 이 문서의 단계를 한 번만 완료하면 됩니다. 모두 마쳤으면 다음 명령을 사용하여 구독에서 리소스를 제거해도 됩니다.
az group delete --name my-pnp-resourcegroup
다음 단계
환경을 설정했으므로, 이제 다음과 같은 빠른 시작 또는 자습서 중 하나를 시도할 수 있습니다.