빠른 시작: 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 PowerShell 및 Azure CLI를 사용하여 리소스 그룹을 만들고 Bicep 파일을 배포하는 데 필요한 프로그래밍 단계를 수행하지만, .NET, Ruby 또는 다른 프로그래밍 언어를 사용하여 이러한 단계를 간편하게 수행하고 Bicep 파일을 배포할 수 있습니다.
필수 조건
Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.
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 PowerShell을 로컬로 사용하도록 선택하는 경우:
- 최신 버전의 Az PowerShell 모듈을 설치합니다.
- Connect-AzAccount cmdlet을 사용하여 Azure 계정에 로그인합니다.
- Azure Cloud Shell을 사용하도록 선택하는 경우:
- 자세한 내용은 Azure Cloud Shell 개요를 참조하세요.
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 리소스가 정의되어 있습니다.
- Microsoft.Devices/iothubs: 새 Azure IoT Hub를 만듭니다.
- Microsoft.Devices/provisioningservices: 이미 연결된 새 IoT Hub로 새 Azure IoT Hub Device Provisioning Service를 만듭니다.
Bicep 파일의 복사본을 main.bicep으로 로컬로 저장합니다.
Bicep 파일 배포
Azure 계정에 로그인하고 구독을 선택합니다.
명령 프롬프트에서 Azure에 로그인합니다.
az login
지침에 따라 코드를 사용하여 인증하고 웹 브라우저를 통해 Azure 계정에 로그인합니다.
여러 Azure 구독이 있는 경우 Azure에 로그인하면 자격 증명과 연결된 모든 Azure 계정에 대한 액세스를 허용합니다.
az account list -o table
다음 명령을 사용하여 IoT 허브 및 DPS 리소스를 만드는 명령을 실행하는 데 사용하려는 구독을 선택합니다. 이전 명령의 출력에서 구독 이름 또는 ID를 사용할 수 있습니다.
az account set --subscription {your subscription name or id}
다음 명령을 사용하여 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) 리소스 이름으로 바꿉니다.
리소스를 만드는 데 몇 분 정도 걸립니다.
배포된 리소스 검토
배포를 확인하려면 다음 명령을 실행하고 출력에서 새 프로비저닝 서비스 및 IoT 허브를 찾습니다.
az resource list -g exampleRg
허브가 이미 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 인스턴스를 배포하고, 두 리소스를 연결했습니다. 이 설정을 사용하여 디바이스를 프로비저닝하는 방법을 알아보려면 디바이스를 만들기 위한 빠른 시작으로 계속 진행하세요.