Azure CLI kullanarak yolları ve uç noktaları oluşturma ve silme
Bu makalede, Azure CLI kullanarak Azure IoT Hub yollarını ve uç noktalarını yönetme adımları gösterilmektedir. Azure Event Hubs, Azure Service Bus kuyrukları ve konuları, Azure Depolama ve Cosmos DB için yollar ve uç noktalar oluşturmak için Azure CLI'yi kullanmayı öğrenin.
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 simülasyon cihazı üzerinde test etme adımları için bkz . Öğretici: IoT Hub ileti yönlendirmesini kullanarak cihaz verilerini Azure Depolama'ya gönderme.
Önkoşullar
Makalede açıklanan yordamlar aşağıdaki kaynakları kullanır:
- Azure CLI
- IoT hub'ı
- Azure'da uç nokta hizmeti
Azure CLI
Bu makalede IoT Hub ve diğer Azure hizmetleriyle çalışmak için Azure CLI kullanılmaktadır. Azure CLI'ya nasıl erişebileceğinizi seçebilirsiniz:
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.
IoT Hub
Azure aboneliğinizde bir IoT hub'ı olmalıdır. Henüz bir hub'ına sahip değilseniz IoT hub'ı oluşturma makalesindeki adımları izleyebilirsiniz.
Uç nokta hizmeti
Yola uç nokta olarak kullanmak için en az bir Azure hizmetine daha ihtiyacınız vardır. Uç nokta, cihaz iletilerini ve olay günlüklerini alır.
Yönlendirilen cihaz ve olay verilerini almak için uç nokta olarak hangi Azure hizmetini kullanmak istediğinize karar verin: olay hub'ı, Hizmet kuyruğu veya konusu, depolama hesabı veya Cosmos DB kapsayıcısı. Kullanmayı seçtiğiniz hizmet için uç nokta hizmeti oluşturma adımlarını tamamlayın.
Event Hubs ad alanı ve olay hub'ı oluşturun. Daha fazla bilgi için bkz . Hızlı Başlangıç: Azure CLI kullanarak olay hub'ı oluşturma.
IoT Hub'a olay hub'ına veri gönderme izni vermek için kullanılacak bir yetkilendirme kuralı oluşturun.
İpucu
Parametrenin
name
değeriRootManageSharedAccessKey
Yönet, Gönder, Dinle taleplerine (erişim) izin veren varsayılan addır. Talepleri kısıtlamak istiyorsanız parametresinename
kendi benzersiz adınızı verin ve bayrağını--rights
ve ardından taleplerden birini ekleyin. Örneğin,--name my-name --rights Send
.az eventhubs eventhub authorization-rule create --resource-group my-resource-group --namespace-name my-routing-namespace --eventhub-name my-event-hubs --name RootManageSharedAccessKey
Daha fazla bilgi için bkz . Azure Event Hubs'a erişimi yetkilendirme.
Uç nokta oluşturma
Tüm IoT Hub yolları, yönlendirilen cihaz ve olay verilerini alacak bir uç noktaya işaret eder. Aynı uç noktaya birden fazla yol işaret edebilir. IoT Hub şu anda Olay hub'ları, Service Bus kuyrukları veya konuları, Depolama ve Cosmos DB için uç noktaları desteklemektedir. Uç noktanızı oluşturmadan önce uç noktanız için kullandığınız hizmetin bir örneğinin Azure aboneliğinizde bulunması gerekir.
Not
Bu makalede, Azure CLI için azure-iot uzantısının 0.19.0 sürümünde kullanıma sunulan az iot hub message-endpoint komut grubu kullanılmaktadır. Azure-iot uzantısının önceki sürümleri, benzer ve hala desteklenen ancak Cosmos DB uç noktalarının oluşturulmasını desteklemeyen az iot hub routing-endpoint komut grubunu kullanıyordu.
Azure-iot uzantısının en son sürümüne güncelleştirmek için aşağıdaki komutu kullanın:
az extension update --name azure-iot
Event Hubs uç noktası oluşturmak için önkoşullarda oluşturduğunuz yetkilendirme kuralını kullanın.
Yetkilendirme kuralınızı listelemek için az eventhubs eventhub authorization-rule keys list komutunu kullanın. Yer tutucu parametreleri için aşağıdaki değerleri sağlayın:
parametre değer eventhub_group Olay hub'ının kaynak grubu. eventhub_namespace Event Hubs ad alanının adı. eventhub_name Olay hub'ının adı. rule_name Olay hub'ının yetkilendirme kuralının adı. Örneği önkoşullara kopyaladıysanız, bu addır RootManageSharedAccessKey
.az eventhubs eventhub authorization-rule keys list --resource-group {eventhub_group} --namespace-name {eventhub_namespace} --eventhub-name my-event-hubs --name {rule_name}
Olay hub'ınızı çıkıştan bağlantı dizesi kopyalayın.
Özel uç noktanızı oluşturmak için az iot hub message-endpoint create eventhub komutunu kullanın. Yer tutucu parametreleri için aşağıdaki değerleri sağlayın:
parametre değer iothub_name Bu uç noktanın oluşturulduğu IoT hub'ının adı. endpoint_name Yeni uç nokta için benzersiz bir ad. eventhub_subscription Olay hub'ının abonelik kimliği. Olay hub'ı IoT hub'ı ile aynı abonelikteyse bu bağımsız değişken dışarıda bırakılabilir. eventhub_group Olay hub'ının kaynak grubu. Olay hub'ı IoT hub'ı ile aynı kaynak grubundaysa bu bağımsız değişken dışarıda bırakılabilir. eventhub_connection_string Olay hub'ı yetkilendirme kuralından kopyaladığınız bağlantı dizesi. az iot hub message-endpoint create eventhub --hub-name {iothub_name} --endpoint-name {endpoint_name} --connection-string "{eventhub_connection_string}" --endpoint-subscription-id {eventhub_subscription} --endpoint-resource-group {eventhub_group}
Uç noktayı silme
IoT hub'ınızdan bir uç noktayı silmek istiyorsanız az iot hub message-endpoint delete komutunu kullanın. Bu komutla tek bir uç noktayı silebilir, tek bir türdeki tüm uç noktaları silebilir veya hub'dan tüm uç noktaları silebilirsiniz.
Örneğin, aşağıdaki komut Bir IoT hub'ında Depolama kaynaklarına işaret eden tüm uç noktaları siler:
az iot hub message-endpoint delete --hub-name {iothub_name} --endpoint-type storage-container
IoT Hub yolu 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. İsteğe bağlı olarak, iletileri veya olayları uç noktaya gitmeden önce filtrelemek için ileti yollarına sorgular ekleyebilirsiniz.
Not
Bu makalede, Azure CLI için azure-iot uzantısının 0.19.0 sürümünde kullanıma sunulan az iot hub message-route komut grubu kullanılmaktadır. Azure-iot uzantısının önceki sürümleri, benzer ve hala desteklenen az iot hub route komut grubunu kullanıyordu.
Azure-iot uzantısının en son sürümüne güncelleştirmek için aşağıdaki komutu kullanın:
az extension update --name azure-iot
Bu uç noktayı kullanarak yeni bir IoT Hub yolu oluşturmak için az iot hub message-route create komutunu kullanın. Yer tutucu parametreleri için aşağıdaki değerleri sağlayın:
parametre değer iothub_name Bu yolun oluşturulduğu IoT hub'ının adı. route_name Yeni yol için benzersiz bir ad. endpoint_name Yolun veri göndereceği uç noktanın adı. data_source Yolun kaynağı. Kabul edilen değerler şunlardır: deviceconnectionstateevents
,devicejoblifecycleevents
,devicelifecycleevents
,devicemessages
,digitaltwinchangeevents
,invalid
, veyatwinchangeevents
.az iot hub message-route create --hub-name {iothub_name} --route-name {route_name} --endpoint-name {endpoint_name} --source {data_source}
Yeni yolun IoT hub'ınızda olduğunu onaylamak için az iot hub message-route list komutunu kullanarak IoT hub'ınızdaki tüm yolları görün:
az iot hub message-route list --hub-name {iothub_name}
Azure CLI'da şu örneğe benzer bir yanıt görmeniz gerekir:
[ { "condition": "true", "endpointNames": [ "endpoint_name" ], "isEnabled": true, "name": "route_name", "source": "DeviceConnectionStateEvents" } ]
IoT Hub yolunu güncelleştirme
Bir yolun bazı özelliklerini oluşturulduktan sonra güncelleştirebilirsiniz. Mevcut bir yolun kaynağını, uç noktasını, koşulunu veya etkin durumunu değiştirebilirsiniz.
Bir yolun ayrıntılarını görüntülemek için az iot hub message-route show komutunu kullanın.
az iot hub message-route show --hub-name {iothub_name} --route-name {route_name}
Bir yolun özelliklerini güncelleştirmek için az iot hub message-route update komutunu kullanın. Örneğin, aşağıdaki komut yolun kaynağını güncelleştirir.
az iot hub message-route update --hub-name {iothub_name} --route-name {route_name} --source devicejoblifecycleevents
IoT Hub yolunu silme
IoT hub'ınızdan bir yolu silmek için az iot hub message-route delete komutunu kullanın.
Yol silindiğinde uç nokta silinmez çünkü diğer yollar aynı uç noktaya işaret edebilir. Bir uç noktayı silmek istiyorsanız, bunu bir yolu silmekten ayrı olarak yapabilirsiniz.
az iot hub message-route delete --hub-name {iothub_name} --route-name {route_name}
Geri dönüş yolunu yönetme
Geri dönüş yolu, var olan yollardan herhangi birinde sorgu koşullarını karşılamayen tüm iletileri kaynaktan devicemessages
yerleşik uç noktaya gönderir.
IoT hub'ınızdaki geri dönüş yolunun durumunu görmek için az iot hub message-route fallback show komutunu kullanın.
az iot hub message-route fallback show --hub-name {iothub_name}
IoT hub'ınızdaki geri dönüş yolunu etkinleştirmek veya devre dışı bırakmak için az iot hub message-route fallback set komutunu kullanın.
az iot hub message-route fallback set --hub-name {iothub_name} --enabled {true_false}
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.