Hızlı Başlangıç: ARM şablonuyla IoT Hub Cihazı Sağlama Hizmeti'ni (DPS) ayarlama
Cihazlarınızı sağlamak için gerekli Azure bulut kaynaklarını program aracılığıyla ayarlamak için bir Azure Resource Manager şablonu (ARM şablonu) kullanabilirsiniz. Bu adımlar, ARM şablonuyla ioT hub'ı ve yeni bir IoT Hub Cihazı Sağlama Hizmeti oluşturmayı gösterir. Iot Hub'ı da şablonu kullanarak DPS kaynağına bağlanır. Bu bağlama, DPS kaynağının yapılandırdığınız ayırma ilkelerine göre cihazları hub'a atamasını sağlar.
Azure Resource Manager şablonu, projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Dağıtımı oluşturmak için programlama komutlarının sırasını yazmadan hedeflenen dağıtımınızı açıklarsınız.
Bu hızlı başlangıçta, kaynak grubu oluşturmak ve şablonu dağıtmak için gerekli programlı adımları gerçekleştirmek için Azure portalı ve Azure CLI kullanılmaktadır. Ancak, bu adımları gerçekleştirmek ve şablonunuzu dağıtmak için PowerShell, .NET, Ruby veya diğer programlama dillerini de kullanabilirsiniz.
Ortamınız önkoşulları karşılıyorsa ve ARM şablonlarını kullanmayı zaten biliyorsanız Azure'a Dağıt düğmesini seçtiğinizde şablon Azure portalında dağıtım için açılır.
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Önkoşullar
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
Şablonu gözden geçirme
Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır.
Not
Şu anda yeni DPS kaynaklarıyla kayıt oluşturmak için ARM şablonu desteği yoktur. Bu, uygulama için dikkate alınmakta olan yaygın ve anlaşılır bir istektir.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.12.40.16777",
"templateHash": "13184692430416822033"
}
},
"parameters": {
"iotHubName": {
"type": "string",
"metadata": {
"description": "Specify the name of the Iot hub."
}
},
"provisioningServiceName": {
"type": "string",
"metadata": {
"description": "Specify the name of the provisioning service."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specify the location of the resources."
}
},
"skuName": {
"type": "string",
"defaultValue": "S1",
"metadata": {
"description": "The SKU to use for the IoT Hub."
}
},
"skuUnits": {
"type": "int",
"defaultValue": 1,
"metadata": {
"description": "The number of IoT Hub units."
}
}
},
"variables": {
"iotHubKey": "iothubowner"
},
"resources": [
{
"type": "Microsoft.Devices/IotHubs",
"apiVersion": "2021-07-02",
"name": "[parameters('iotHubName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('skuName')]",
"capacity": "[parameters('skuUnits')]"
},
"properties": {}
},
{
"type": "Microsoft.Devices/provisioningServices",
"apiVersion": "2022-02-05",
"name": "[parameters('provisioningServiceName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('skuName')]",
"capacity": "[parameters('skuUnits')]"
},
"properties": {
"iotHubs": [
{
"connectionString": "[format('HostName={0};SharedAccessKeyName={1};SharedAccessKey={2}', reference(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').hostName, variables('iotHubKey'), listkeys(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').value[0].primaryKey)]",
"location": "[parameters('location')]"
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName'))]"
]
}
]
}
Önceki şablonda iki Azure kaynağı tanımlanmıştır:
- Microsoft.Devices/IotHubs: Yeni bir Azure IoT hub'ı oluşturur.
- Microsoft.Devices/provisioningServices: Zaten bağlı olan yeni IoT hub'ı ile yeni bir Azure IoT Hub Cihazı Sağlama Hizmeti oluşturur.
Şablonu dağıtma
Portal ile dağıtma
Azure'da oturum açmak ve şablonu dağıtım için açmak için aşağıdaki görüntüyü seçin. Şablon yeni bir IoT hub'ı ve DPS kaynağı oluşturur. Yeni IoT hub'ı DPS kaynağına bağlıdır.
Aşağıdaki değerleri seçin veya girin ve Gözden Geçir + Oluştur'u seçin.
Aşağıdaki alanlar için aksi belirtilmedikçe, Iot Hub ve DPS kaynağını oluşturmak için varsayılan değeri kullanın.
Alan Açıklama Abonelik Azure aboneliği seçin. Kaynak grubu Yeni oluştur'u seçin, kaynak grubu için benzersiz bir ad girin ve ardından Tamam'ı seçin. Bölge Kaynaklarınız için bir bölge seçin. Örneğin, Doğu ABD. Dayanıklılık ve güvenilirlik için Kullanılabilirlik Alanları destekleyen bölgelerden birine dağıtmanızı öneririz. Iot Hub Adı IoT Hub için .azure-devices.net ad alanında genel olarak benzersiz olması gereken bir ad girin. Dağıtımı doğrularken sonraki bölümde hub adı gerekir. Sağlama Hizmeti Adı Yeni Cihaz Sağlama Hizmeti (DPS) kaynağı için bir ad girin. Adın .azure-devices-provisioning.net ad alanı içinde genel olarak benzersiz olması gerekir. Dağıtımı doğrularken sonraki bölümde DPS adı gerekir. Sonraki ekranda terimleri okuyun. Tüm koşulları kabul ediyorsanız Oluştur'u seçin.
Dağıtımın tamamlanması birkaç dakika sürer.
Azure portalına ek olarak Azure PowerShell, Azure CLI ve REST API'yi de kullanabilirsiniz. Diğer dağıtım yöntemlerini öğrenmek için bkz . Şablonları dağıtma.
Azure CLI ile dağıtma
Azure CLI'nin kullanılması için 2.6 veya üzeri bir sürüm gerekir. Azure CLI'yi yerel olarak çalıştırıyorsanız şu komutu çalıştırarak sürümünüzü doğrulayın: az --version
Azure hesabınızda oturum açın ve aboneliğinizi seçin.
Azure CLI'yi portalda çalıştırmak yerine yerel olarak çalıştırıyorsanız oturum açmanız gerekir. Komut isteminde oturum açmak için oturum açma komutunu çalıştırın:
az login
Kodu kullanarak kimlik doğrulaması gerçekleştirmek için yönergeleri uygulayın ve bir web tarayıcısı üzerinden Azure hesabınızda oturum açın.
Birden fazla Azure aboneliğiniz varsa Azure’da oturum açtığınızda, kimlik bilgilerinizle ilişkili tüm Azure hesaplarınıza erişim izni elde edersiniz. Kullanabileceğiniz Azure hesaplarını listelemek için aşağıdaki komutu kullanın:
az account list -o table
IoT hub'ınızı ve DPS kaynaklarınızı oluşturmak üzere komutları çalıştırmak için kullanmak istediğiniz aboneliği seçmek için aşağıdaki komutu kullanın. Önceki komutun çıkışında yer alan abonelik adını veya kimliği kullanabilirsiniz:
az account set --subscription {your subscription name or id}
Aşağıdaki komutları kopyalayıp CLI isteminize yapıştırın. Ardından Enter tuşunu seçerek komutları yürütebilirsiniz.
İpucu
Komutlar bir kaynak grubu konumu ister. Önce komutunu çalıştırarak kullanılabilir konumların listesini görüntüleyebilirsiniz:
az account list-locations -o table
read -p "Enter a project name that is used for generating resource names:" projectName && read -p "Enter the location (i.e. centralus):" location && templateUri="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.devices/iothub-device-provisioning/azuredeploy.json" && resourceGroupName="${projectName}rg" && az group create --name $resourceGroupName --location "$location" && az deployment group create --resource-group $resourceGroupName --template-uri $templateUri && echo "Press [ENTER] to continue ..." && read
Komutlar sizden aşağıdaki bilgileri ister. Her değeri belirtin ve Enter tuşunu seçin.
Parametre Açıklama Proje adı Bu parametrenin değeri, tüm kaynakları barındıracak bir kaynak grubu oluşturmak için kullanılır. Dize rg
, kaynak grubu adınızın değerinin sonuna eklenir.konum Bu değer, tüm kaynakların oluşturulduğu bölgedir. iotHubName IoT Hub için .azure-devices.net ad alanında genel olarak benzersiz olması gereken bir ad girin. Dağıtımı doğrularken sonraki bölümde hub adı gerekir. provisioningServiceName Yeni Cihaz Sağlama Hizmeti (DPS) kaynağı için bir ad girin. Adın .azure-devices-provisioning.net ad alanı içinde genel olarak benzersiz olması gerekir. Dağıtımı doğrularken sonraki bölümde DPS adı gerekir. Azure CLI, şablonu dağıtmak için kullanılır. Azure CLI'ya ek olarak Azure PowerShell, Azure portalı ve REST API'sini de kullanabilirsiniz. Diğer dağıtım yöntemlerini öğrenmek için bkz . Şablonları dağıtma.
Dağıtılan kaynakları gözden geçirme
Dağıtımı doğrulamak için aşağıdaki komutu çalıştırarak kaynakları listeleyin ve çıktıda yeni sağlama hizmetini ve IoT hub'ını arayın:
az resource list -g "${projectName}rg"
Hub'ın DPS kaynağına zaten bağlı olduğunu doğrulamak için aşağıdaki DPS uzantısı show komutunu çalıştırın.
az iot dps show --name <Your provisioningServiceName>
Üyeye bağlı
iotHubs
hub'lara dikkat edin.
Kaynakları temizleme
Bu koleksiyondaki diğer hızlı başlangıçlar, bu hızlı başlangıcı temel alır. Sonraki hızlı başlangıçlarla veya öğreticilerle çalışmaya devam etmek istiyorsanız, bu hızlı başlangıçta oluşturulan kaynakları temizlemeyin. Devam etmek istemiyorsanız, kaynak grubunu ve tüm kaynaklarını silmek için Azure portalını veya Azure CLI'yi kullanabilirsiniz.
Bir kaynak grubunu ve tüm kaynaklarını Azure portalından silmek için kaynak grubunu açıp Kaynak grubunu sil'i ve üstteki öğesini seçmeniz gerekir.
Azure CLI kullanılarak dağıtılan kaynak grubunu silmek için:
az group delete --name "${projectName}rg"
Aşağıdaki seçeneklerden herhangi birini kullanarak kaynak gruplarını ve tek tek kaynakları da silebilirsiniz:
- Azure portal
- PowerShell
- REST API'leri
- Azure Resource Manager veya IoT Hub Cihazı Sağlama Hizmeti için yayımlanan desteklenen platform SDK'ları
Sonraki adımlar
Bu hızlı başlangıçta bir IoT hub'ı ve Bir Cihaz Sağlama Hizmeti örneği dağıttınız ve iki kaynağı bağladınız. Bu kurulumu kullanarak cihaz sağlamayı öğrenmek için cihaz oluşturma hızlı başlangıcına geçin.