자습서: IoT 플러그 앤 플레이 빠른 시작 및 자습서에 사용할 환경 설정

IoT 플러그 앤 플레이 빠른 시작 및 자습서를 완료하려면 먼저 Azure 구독에서 IoT 허브 및 DPS(Device Provisioning Service)를 구성해야 합니다. 또한 샘플 애플리케이션과 Azure IoT 탐색기 도구에서 사용하는 모델 파일의 로컬 복사본이 필요합니다.

필수 조건

Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

Azure CLI에 대한 환경 준비

리소스 만들기

다음과 같이 리소스에 대한 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-dpsmy-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

모델 파일 다운로드

빠른 시작 및 자습서에서는 온도 컨트롤러 및 자동 온도 조절기 디바이스의 샘플 모델 파일을 사용합니다. 이 샘플 모델 파일을 다운로드하는 방법은 다음과 같습니다.

  1. 모델이라는 폴더를 로컬 머신에 만듭니다.

  2. TemperatureController.json을 마우스 오른쪽 단추로 클릭하고 JSON 파일을 모델 폴더에 저장합니다.

  3. Thermostat.json을 마우스 오른쪽 단추로 클릭하고 JSON 파일을 모델 폴더에 저장합니다.

Azure IoT 탐색기 설치

빠른 시작 및 자습서에서는 Azure IoT 탐색기 도구를 사용합니다. Azure IoT 탐색기 릴리스로 이동하여 최신 릴리스의 자산 목록을 확장하세요. 사용 중인 운영 체제에 맞는 최신 버전의 애플리케이션을 다운로드하여 설치합니다.

도구를 처음으로 실행하면 IoT 허브 연결 문자열을 입력하라는 메시지가 표시됩니다. 앞에서 기록해 둔 연결 문자열을 사용합니다.

앞에서 다운로드한 모델 파일을 사용하도록 도구를 구성합니다. 도구의 홈페이지에서 IoT 플러그 앤 플레이 설정을 선택한 다음, + 추가 > 로컬 폴더를 선택합니다. 앞에서 만든 models 폴더를 선택합니다. 저장을 선택하여 설정을 저장합니다.

자세히 알아보려면 Azure IoT 탐색기 설치 및 사용을 참조하세요.

리소스 정리

모든 IoT 플러그 앤 플레이 빠른 시작과 자습서에서 IoT 허브 및 DPS 인스턴스를 사용할 수 있으므로 이 문서의 단계를 한 번만 완료하면 됩니다. 모두 마쳤으면 다음 명령을 사용하여 구독에서 리소스를 제거해도 됩니다.

az group delete --name my-pnp-resourcegroup

다음 단계

환경을 설정했으므로, 이제 다음과 같은 빠른 시작 또는 자습서 중 하나를 시도할 수 있습니다.