Azure Resource Manager'ı kullanarak yolları ve uç noktaları oluşturma ve silme
Makale
Bu makalede Azure IoT Hub şablonunuzu dışarı aktarma, IoT hub'ınıza yol ekleme ve ardından Azure CLI veya Azure PowerShell kullanarak şablonu IoT hub'ınıza yeniden dağıtma adımları gösterilmektedir. Yollar ve uç noktalar oluşturmak için bir Azure Resource Manager şablonu kullanın. IoT Hub, uç nokta olarak aşağıdaki Azure hizmetlerini destekler:
Depolama kapsayıcıları
Event Hubs
Service Bus kuyrukları
Service Bus konuları
Cosmos DB
Azure Resource Manager şablonları , kaynakları bir JSON dosyası kullanarak tanımlamak istediğinizde kullanışlıdır. Her Azure kaynağında, bu kaynakta kullanılan bileşenleri tanımlayan bir şablon vardır. Tüm Azure kaynak şablonlarını dışarı aktarabilirsiniz.
Önemli
Kaynak dağıtmak için Resource Manager şablonu kullandığınızda, şablon dağıttığınız türdeki mevcut kaynakların yerini alır.
Yeni bir IoT hub'ı oluşturduğunuzda, mevcut dağıtılan kaynağın üzerine yazmak önemli değildir. Yeni bir IoT hub'ı oluşturmak için, zaten dağıtılmış olan bir IoT hub'ından mevcut bir şablonu dışarı aktarmak yerine gerekli özelliklere sahip temel bir şablon kullanabilirsiniz.
Ancak, mevcut bir IoT hub'ına yol eklerseniz, güncelleştirilmiş şablonu dağıttıktan sonra tüm mevcut kaynakların ve özelliklerin bağlı kalmasını sağlamak için IoT hub'ınızdan dışarı aktardığınız bir şablon kullanın. Zaten dağıtılmış olan kaynaklar değiştirilmez. Örneğin, daha önce dağıttığınız dışarı aktarılan bir Resource Manager şablonu, ioT hub'ınız için depolama alanına bağladıysanız depolama bilgilerini içerebilir.
IoT Hub'da yönlendirmenin nasıl çalıştığı hakkında daha fazla bilgi edinmek için bkz . Farklı uç noktalara cihazdan buluta ileti göndermek için IoT Hub ileti yönlendirmeyi kullanma. Depolama alanına ileti gönderen bir yol ayarlama ve ardından sanal bir cihazda test etme adımlarını görmek için bkz . Öğretici: IoT Hub ileti yönlendirmesini kullanarak cihaz verilerini Azure Depolama'ya gönderme.
Önkoşullar
İletileri yönlendirmek istediğiniz uç nokta türüne göre bu makalenin önkoşullarını gözden geçirin.
(Önerilen) Event Hubs ad alanı için rol tabanlı erişim denetimi izinlerine sahip yönetilen kimlik. Daha fazla bilgi için bkz . Event Hubs kaynaklarına erişmek için Microsoft Entra Id ile yönetilen kimliğin kimliğini doğrulama.
Service Bus kuyruğu kaynağı. Yeni bir Service Bus kuyruğu oluşturmanız gerekiyorsa bkz . Hızlı Başlangıç: Resource Manager şablonu kullanarak Service Bus ad alanı ve kuyruk oluşturma.
Service Bus konu kaynağı. Yeni bir Service Bus konusu oluşturmanız gerekiyorsa bkz . Hızlı Başlangıç: Resource Manager şablonu kullanarak konu ve abonelikle Service Bus ad alanı oluşturma.
(Önerilen) Cosmos DB hesabı için rol tabanlı erişim denetimi izinlerine sahip yönetilen kimlik. Daha fazla bilgi için bkz . NoSQL için Azure Cosmos DB ile veri düzlemi rol tabanlı erişim denetimini kullanma.
Azure Resource Manager şablonu
Bu makalede, IoT Hub ve diğer Azure hizmetleriyle çalışmak için Azure portalında bir Azure Resource Manager şablonu kullanılmaktadır. Resource Manager şablonlarını kullanma hakkında daha fazla bilgi edinmek için bkz . Azure Resource Manager şablonları nedir?
Yönlendirme oluşturma
IoT Hub'da, ileti göndermek veya olayları yakalamak için bir yol oluşturabilirsiniz. Her yolun bir veri kaynağı ve bir uç noktası vardır. Veri kaynağı, iletilerin veya olay günlüklerinin kaynaklandığı yerdir. Uç nokta, iletilerin veya olay günlüklerinin sona erdiği yerdir. IoT hub'ınızda yeni bir yol oluşturduğunuzda veri kaynağı ve uç nokta için konumları seçersiniz. Ardından, uç noktaya gitmeden önce iletileri veya olayları filtrelemek için yönlendirme sorgularını kullanırsınız.
IoT hub yolunuz için uç nokta olarak bir olay hub'ı, Service Bus kuyruğu veya konu başlığı ya da Azure depolama hesabı kullanabilirsiniz. Uç noktanızı oluşturmak için kullandığınız hizmetin önce Azure hesabınızda mevcut olması gerekir.
IoT hub'ınızın Resource Manager şablonunu dışarı aktarma
İlk olarak, IoT hub'ınızdan bir Resource Manager şablonunu dışarı aktarın. Şablonu IoT hub'ınızdan dışarı aktararak uç nokta ekleyebilir, kaynakları yönlendirebilir ve mevcut ayarı kaybetmeden yeniden dağıtabilirsiniz.
Azure portalında IoT hub'ınıza gidin. Otomasyon altındaki kaynak menüsünde Şablonu dışarı aktar'ı seçin.
Şablonu dışarı aktar'da, Şablon sekmesinde şu adımları tamamlayın:
IoT hub'ınız için oluşturulan JSON dosyasını görüntüleyin.
Parametreleri ekle onay kutusunu temizleyin.
JSON dosyasının yerel bir kopyasını indirmek için İndir'i seçin.
Şablonda, IoT hub'ınıza özellik veya hizmet eklemek için kullanabileceğiniz çeşitli yer tutucular vardır. Bu makale için, yalnızca içinde veya altında routingiç içe yerleştirilmiş özelliklere değer ekleyin.
Şablona uç nokta ekleme
Her yol, iletilerin veya olay günlüklerinin sona erdiği bir uç noktayı gösterir. IoT hub'ınızda yolun başvurabileceği bir uç nokta oluşturun. IoT hub yolunuz için uç nokta olarak olay hub'ı, Service Bus kuyruğu veya konusu, Azure depolama hesabı veya Cosmos DB kapsayıcısı kullanabilirsiniz. Uç noktanızı oluşturmak için kullandığınız hizmetin önce Azure hesabınızda mevcut olması gerekir.
IoT hub'ınızın ileti veya günlük gönderdiği tüm uç nokta kaynakları için erişim izinlerine sahip olması gerekir. Yönetilen kimlikleri ve Microsoft Entra Kimliğini kullanarak veya bağlantı dizesi kullanarak erişim sağlayabilirsiniz. Microsoft, daha güvenli bir seçenek olarak Entra ID ile kimlik doğrulaması yapmanızı önerir.
JSON'yi Event Hubs kaynağınız hakkında aşağıdaki bilgilerle güncelleştirin:
Özellik
Değer
endpointUri
(Kimlik doğrulama türü ; identityBased aksi takdirde silin.) Event Hubs ad alanınızın biçimindeki ana bilgisayar adı sb://<eventhubs_namespace_name>.servicebus.windows.net
entityPath
(Kimlik doğrulama türü ; identityBased aksi takdirde silin.) Olay hub'ınızın adı.
authenticationType
identityBased veya keyBased. Microsoft, daha güvenli bir seçenek olarak kimlik tabanlı kimlik doğrulaması önerir.
identity
(Kimlik doğrulama türü identityBased.) IoT Hub'ınız sistem tarafından atanan yönetilen kimlik etkinleştirildiyse, kullanıcı tarafından atanan yönetilen kimliği veya sistem tarafından atanan yönetilen kimliği kullanabilirsiniz.
Kullanıcı tarafından atananlar için: Olay hub'ınıza erişim izinlerine sahip yönetilen kimliğin dış kimliği biçimindedir /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>.
Sistem tarafından atananlar için: Kimlik parametresini boş bir liste olarak bırakın. Örneğin "identity": {},
connectionString
(Kimlik doğrulama türü keyBased.) Olay hub'ınızın paylaşılan erişim ilkelerinden <connection_string>;EntityPath=<event_hub_name>. birinin birincil bağlantı dizesi Azure portalından bağlantı dizesi değerini alabilir ve ardından varlık yolunu ekleyebilirsiniz.
Adı
Uç noktanızı adlandırmak için benzersiz bir değer sağlayın.
id
Boş dize olarak bırakın. Uç noktayı oluşturduğunuzda Azure hizmeti bir değer sağlar.
subscriptionId
Olay hub'ınızı içeren aboneliğin kimliği.
resourceGroup
Olay hub'ınızı içeren kaynak grubunun adı.
İpucu
Gizli dizi yönetimi için bir parametre dosyası oluşturabilir veya Dağıtım sırasında güvenli parametre değerlerini geçirmek için Azure Key Vault'u kullanabilirsiniz.
JSON'yi Service Bus kaynağınız hakkında aşağıdaki bilgilerle güncelleştirin:
Özellik
Değer
endpointUri
(Kimlik doğrulama türü ; identityBased aksi takdirde silin.) Service Bus ad alanınızın biçimindeki ana bilgisayar adı sb://<service_bus_namespace_name>.servicebus.windows.net
entityPath
(Kimlik doğrulama türü ; identityBased aksi takdirde silin.) Service Bus kuyruğunuzun adı.
authenticationType
identityBased veya keyBased. Microsoft, daha güvenli bir seçenek olarak kimlik tabanlı kimlik doğrulaması önerir.
identity
(Kimlik doğrulama türü identityBased.) IoT Hub'ınız sistem tarafından atanan yönetilen kimlik etkinleştirildiyse, kullanıcı tarafından atanan yönetilen kimliği veya sistem tarafından atanan yönetilen kimliği kullanabilirsiniz.
Kullanıcı tarafından atananlar için: Service Bus'ınıza erişim izinlerine sahip yönetilen kimliğin dış kimliği biçimindedir /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>.
Sistem tarafından atananlar için: Kimlik parametresini boş bir liste olarak bırakın. Örneğin "identity": {},
connectionString
(Kimlik doğrulama türü keyBased.) Service Bus'ın paylaşılan erişim ilkelerinden <connection_string>;EntityPath=<service_bus_queue_name>. birinin birincil bağlantı dizesi Azure portalından bağlantı dizesi değerini alabilir ve ardından varlık yolunu ekleyebilirsiniz.
Adı
Uç noktanızı adlandırmak için benzersiz bir değer sağlayın.
id
Boş dize olarak bırakın. Uç noktayı oluşturduğunuzda Azure hizmeti bir değer sağlar.
subscriptionId
Service Bus'ınızı içeren aboneliğin kimliği.
resourceGroup
Service Bus'ınızı içeren kaynak grubunun adı.
İpucu
Gizli dizi yönetimi için bir parametre dosyası oluşturabilir veya Dağıtım sırasında güvenli parametre değerlerini geçirmek için Azure Key Vault'u kullanabilirsiniz.
JSON'yi Service Bus kaynağınız hakkında aşağıdaki bilgilerle güncelleştirin:
Özellik
Değer
endpointUri
(Kimlik doğrulama türü ; identityBased aksi takdirde silin.) Service Bus ad alanınızın biçimindeki ana bilgisayar adı sb://<service_bus_namespace_name>.servicebus.windows.net
entityPath
(Kimlik doğrulama türü ; identityBased aksi takdirde silin.) Service Bus konunuzun adı.
authenticationType
identityBased veya keyBased. Microsoft, daha güvenli bir seçenek olarak kimlik tabanlı kimlik doğrulaması önerir.
identity
(Kimlik doğrulama türü identityBased.) IoT Hub'ınız sistem tarafından atanan yönetilen kimlik etkinleştirildiyse, kullanıcı tarafından atanan yönetilen kimliği veya sistem tarafından atanan yönetilen kimliği kullanabilirsiniz.
Kullanıcı tarafından atananlar için: Service Bus'ınıza erişim izinlerine sahip yönetilen kimliğin dış kimliği biçimindedir /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>.
Sistem tarafından atananlar için: Kimlik parametresini boş bir liste olarak bırakın. Örneğin "identity": {},
connectionString
(Kimlik doğrulama türü keyBased.) Service Bus'ın paylaşılan erişim ilkelerinden <connection_string>;EntityPath=<service_bus_topic_name>. birinin birincil bağlantı dizesi Azure portalından bağlantı dizesi değerini alabilir ve ardından varlık yolunu ekleyebilirsiniz.
Adı
Uç noktanızı adlandırmak için benzersiz bir değer sağlayın.
id
Boş dize olarak bırakın. Uç noktayı oluşturduğunuzda Azure hizmeti bir değer sağlar.
subscriptionId
Service Bus'ınızı içeren aboneliğin kimliği.
resourceGroup
Service Bus'ınızı içeren kaynak grubunun adı.
İpucu
Gizli dizi yönetimi için bir parametre dosyası oluşturabilir veya Dağıtım sırasında güvenli parametre değerlerini geçirmek için Azure Key Vault'u kullanabilirsiniz.
JSON'yi Depolama kaynağınız hakkında aşağıdaki bilgilerle güncelleştirin:
Özellik
Değer
containerName
Depolama hesabınızda verilerin yazılacağı mevcut kapsayıcının adı.
fileNameFormat
Dosya adlarının kapsayıcıda nasıl yazıldığından. Varsayılan biçimi yeniden düzenleyebilirsiniz, ancak tüm öğeleri tutmanız gerekir. Varsayılan dosya türü şeklindedir .avro. JSON kodlamasını seçerseniz dosya türünü olarak .json değiştirin.
batchFrequencyInSeconds
maxChunkSizeInBytes
encoding
Avro veya JSON
endpointUri
(Kimlik doğrulama türü ; identityBased aksi takdirde silin.) Depolama hesabınızın biçimindeki ana bilgisayar adı https://<storage_account_name>.blob.core.windows.net/
authenticationType
identityBased veya keyBased. Microsoft, daha güvenli bir seçenek olarak kimlik tabanlı kimlik doğrulaması önerir.
identity
(Kimlik doğrulama türü identityBased.) IoT Hub'ınız sistem tarafından atanan yönetilen kimlik etkinleştirildiyse, kullanıcı tarafından atanan yönetilen kimliği veya sistem tarafından atanan yönetilen kimliği kullanabilirsiniz.
Kullanıcı tarafından atananlar için: Service Bus'ınıza erişim izinlerine sahip yönetilen kimliğin dış kimliği biçimindedir /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>.
Sistem tarafından atananlar için: Kimlik parametresini boş bir liste olarak bırakın. Örneğin "identity": {},
connectionString
(Kimlik doğrulama türü keyBased.) Depolama hesabınızın paylaşılan erişim ilkelerinden birinin birincil bağlantı dizesi. bağlantı dizesi değerini Azure portalından alabilirsiniz.
Adı
Uç noktanızı adlandırmak için benzersiz bir değer sağlayın.
id
Boş dize olarak bırakın. Uç noktayı oluşturduğunuzda Azure hizmeti bir değer sağlar.
subscriptionId
Service Bus'ınızı içeren aboneliğin kimliği.
resourceGroup
Service Bus'ınızı içeren kaynak grubunun adı.
İpucu
Gizli dizi yönetimi için bir parametre dosyası oluşturabilir veya Dağıtım sırasında güvenli parametre değerlerini geçirmek için Azure Key Vault'u kullanabilirsiniz.
Cosmos DB kaynağınız hakkında aşağıdaki bilgilerle JSON'yi güncelleştirin:
Özellik
Değer
endpointUri
Cosmos DB hesabınızın biçimindeki ana bilgisayar adı https://<cosmos_db_account_name>.documents.azure.com
veritabanıAdı
Cosmos DB hesabınızdaki mevcut bir veritabanının adı.
containerName
Cosmos DB veritabanınızda verilerin yazılacağı mevcut kapsayıcının adı.
authenticationType
identityBased veya keyBased. Microsoft, daha güvenli bir seçenek olarak kimlik tabanlı kimlik doğrulaması önerir.
identity
(Kimlik doğrulama türü identityBased.) IoT Hub'ınız sistem tarafından atanan yönetilen kimlik etkinleştirildiyse, kullanıcı tarafından atanan yönetilen kimliği veya sistem tarafından atanan yönetilen kimliği kullanabilirsiniz.
Kullanıcı tarafından atananlar için: Service Bus'ınıza erişim izinlerine sahip yönetilen kimliğin dış kimliği biçimindedir /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>.
Sistem tarafından atananlar için: Kimlik parametresini boş bir liste olarak bırakın. Örneğin "identity": {},
primaryKey
(Kimlik doğrulama türü keyBased.) Cosmos DB hesabınızdaki birincil anahtar. Anahtar değerini Azure portalından alabilirsiniz.
secondaryKey
(Kimlik doğrulama türü keyBased.) Cosmos DB hesabınızdan birincil bağlantı dizesi. Anahtar değerini Azure portalından alabilirsiniz.
partitionKeyName
Her Cosmos DB belgesine eklenecek yapay bölüm anahtarı için bir ad.
partitionKeyTemplate
Bölüm anahtarı şablonu şu öğelerden en az birini içermelidir: {iothub}, {deviceid}, {YYYY}, {MM}, {DD}.
Adı
Uç noktanızı adlandırmak için benzersiz bir değer sağlayın.
subscriptionId
Service Bus'ınızı içeren aboneliğin kimliği.
resourceGroup
Service Bus'ınızı içeren kaynak grubunun adı.
İpucu
Gizli dizi yönetimi için bir parametre dosyası oluşturabilir veya Dağıtım sırasında güvenli parametre değerlerini geçirmek için Azure Key Vault'u kullanabilirsiniz.
JSON dosyasında, altında "routing"iç içe yerleştirilmiş özelliğini bulun "routes": [] ve yeni bir yol ekleyin.
Dikkat
için "routes" mevcut değerleri aşağıdaki kod örneklerinde kullanılan yol değerleriyle değiştirirseniz, dağıttığınızda mevcut yollar kaldırılır. Mevcut yolları korumak için yeni yol nesnesini "routes" listeye ekleyin.
Azure Cloud Shell bir web tarayıcısında çalıştığından, dağıtım komutunu çalıştırmadan önce şablon dosyasını karşıya yükleyebilirsiniz. Dosya karşıya yüklendiğinde, parametresinde kullanmak template-file için yalnızca şablon dosya adına (dosya yolunun tamamı yerine) ihtiyacınız vardır.
Dağıtım başarısız olursa, oluşturduğunuz kaynaklar hakkında bilgi almak için anahtarını kullanın -verbose .
-debug Hata ayıklama hakkında daha fazla bilgi edinmek için anahtarını kullanın.
Dağıtımı onaylama
Şablonunuzun Azure'a başarıyla dağıtıldığını onaylamak için Azure portalında kaynak grubu kaynağınıza gidin. Şablonu dağıtımlarınızın listesinde görmek için Ayarlar'ın altındaki kaynak menüsünde Dağıtımlar'ı seçin.
Azure portalında yeni yolunuzu görüntülemek için IoT Hub kaynağınıza gidin.
İleti yönlendirme bölmesindeki Yollar sekmesinde, yolunuzun listelendiğini onaylayın.
Sonraki adımlar
Bu nasıl yapılır makalesinde Event Hubs, Service Bus kuyrukları ve konuları ve Azure Depolama için yol ve uç nokta oluşturmayı öğrendiniz.
İleti yönlendirme hakkında daha fazla bilgi edinmek için bkz . Öğretici: IoT Hub ileti yönlendirmeyi kullanarak cihaz verilerini Azure Depolama'ya gönderme. Öğreticide bir depolama yolu oluşturacak ve IoT hub'ınızdaki bir cihazla test edebilirsiniz.