빠른 시작: Bicep을 사용하여 IoT Hub DPS(Device Provisioning Service) 설정

Bicep 파일을 사용하여 디바이스를 프로비전하는 데 필요한 Azure 클라우드 리소스를 프로그래밍 방식으로 설정할 수 있습니다. 다음 단계에서는 Bicep 파일을 사용하여 IoT 허브 및 새 IoT Hub Device Provisioning Service 인스턴트를 만드는 방법을 보여 줍니다. 또한 IoT Hub도 Bicep 파일을 사용하여 DPS 리소스에 연결됩니다. 이 연결을 통해 구성한 할당 정책에 따라 DPS 리소스에서 디바이스를 허브에 할당할 수 있습니다.

Bicep은 선언적 구문을 사용하여 Azure 리소스를 배포하는 DSL(도메인 특정 언어)입니다. 간결한 구문, 신뢰할 수 있는 형식 안전성 및 코드 다시 사용에 대한 지원을 제공합니다. Bicep은 Azure에서 코드형 인프라 솔루션에 대한 최고의 제작 환경을 제공합니다.

이 빠른 시작에서는 Azure PowerShellAzure CLI를 사용하여 리소스 그룹을 만들고 Bicep 파일을 배포하는 데 필요한 프로그래밍 단계를 수행하지만, .NET, Ruby 또는 다른 프로그래밍 언어를 사용하여 이러한 단계를 간편하게 수행하고 Bicep 파일을 배포할 수 있습니다.

필수 조건

Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.

Bicep 파일 검토

이 빠른 시작에서 사용되는 Bicep 파일은 Azure 빠른 시작 템플릿에서 나온 것입니다.

참고 항목

현재 새 DPS 리소스로 등록을 만들 수 있는 Bicep 파일이 지원되지 않습니다. 이는 구현을 위해 고려되는 일반적이고 이해된 요청입니다.

@description('Specify the name of the Iot hub.')
param iotHubName string

@description('Specify the name of the provisioning service.')
param provisioningServiceName string

@description('Specify the location of the resources.')
param location string = resourceGroup().location

@description('The SKU to use for the IoT Hub.')
param skuName string = 'S1'

@description('The number of IoT Hub units.')
param skuUnits int = 1

var iotHubKey = 'iothubowner'

resource iotHub 'Microsoft.Devices/IotHubs@2021-07-02' = {
  name: iotHubName
  location: location
  sku: {
    name: skuName
    capacity: skuUnits
  }
  properties: {}
}

resource provisioningService 'Microsoft.Devices/provisioningServices@2022-02-05' = {
  name: provisioningServiceName
  location: location
  sku: {
    name: skuName
    capacity: skuUnits
  }
  properties: {
    iotHubs: [
      {
        connectionString: 'HostName=${iotHub.properties.hostName};SharedAccessKeyName=${iotHubKey};SharedAccessKey=${iotHub.listkeys().value[0].primaryKey}'
        location: location
      }
    ]
  }
}

위의 Bicep 파일에는 두 개의 Azure 리소스가 정의되어 있습니다.

Bicep 파일의 복사본을 main.bicep으로 로컬로 저장합니다.

Bicep 파일 배포

Azure 계정에 로그인하고 구독을 선택합니다.

  1. 명령 프롬프트에서 Azure에 로그인합니다.

    az login
    

    지침에 따라 코드를 사용하여 인증하고 웹 브라우저를 통해 Azure 계정에 로그인합니다.

  2. 여러 Azure 구독이 있는 경우 Azure에 로그인하면 자격 증명과 연결된 모든 Azure 계정에 대한 액세스를 허용합니다.

    az account list -o table
    

    다음 명령을 사용하여 IoT 허브 및 DPS 리소스를 만드는 명령을 실행하는 데 사용하려는 구독을 선택합니다. 이전 명령의 출력에서 구독 이름 또는 ID를 사용할 수 있습니다.

    az account set --subscription {your subscription name or id}
    
  3. 다음 명령을 사용하여 Bicep 파일을 배포합니다.

    명령에서 리소스 그룹 위치를 요구하는 메시지를 표시합니다. 먼저 다음 명령을 실행하여 사용할 수 있는 위치의 목록을 확인할 수 있습니다.

    az account list-locations -o table

    az group create --name exampleRG --location eastus
    az deployment group create --resource-group exampleRG --template-file main.bicep --parameters iotHubName={IoT-Hub-name} provisioningServiceName={DPS-name}
    

    {IoT-Hub-name}을 전역적으로 고유한 IoT Hub 이름으로 바꾸고 {DPS-name}을 전역적으로 고유한 DPS(Device Provisioning Service) 리소스 이름으로 바꿉니다.

    리소스를 만드는 데 몇 분 정도 걸립니다.

배포된 리소스 검토

  1. 배포를 확인하려면 다음 명령을 실행하고 출력에서 새 프로비저닝 서비스 및 IoT 허브를 찾습니다.

     az resource list -g exampleRg
    
  2. 허브가 이미 DPS 리소스에 연결되어 있는지 확인하려면 다음 명령을 실행합니다.

    az iot dps show --name <Your provisioningServiceName>
    

리소스 정리

이 컬렉션의 다른 빠른 시작은 이 빠른 시작을 기반으로 구성됩니다. 다음 빠른 시작 또는 자습서를 사용하여 계속하려는 경우 이 빠른 시작에서 만든 리소스를 정리하지 않습니다. 계속하지 않으려는 경우 Azure PowerShell 또는 Azure CLI를 사용하여 리소스 그룹 및 모든 해당 리소스를 삭제할 수 있습니다.

Azure Portal에서 리소스 그룹 및 모든 해당 리소스를 삭제하려면 리소스 그룹을 열고 리소스 그룹 삭제 및 위쪽을 선택하면 됩니다.

배포된 리소스 그룹을 삭제하려면 다음을 수행합니다.

az group delete --name exampleRG

Azure Portal, PowerShell, REST API 또는 지원되는 플랫폼 SDK를 사용하여 리소스 그룹 및 개별 리소스를 삭제할 수도 있습니다.

다음 단계

이 빠른 시작에서는 IoT 허브 및 Device Provisioning Service 인스턴스를 배포하고, 두 리소스를 연결했습니다. 이 설정을 사용하여 디바이스를 프로비저닝하는 방법을 알아보려면 디바이스를 만들기 위한 빠른 시작으로 계속 진행하세요.