Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Digital Twins eğitimi, hizmetin işlevselliğini gösteren uçtan uca bir çözüm nasıl oluşturulacağını açıklıyor. Tam bir uçtan uca çözüm kurmak için çevrenizden gelen canlı verilerden yararlanarak Azure Digital Twins örneğinizi diğer Azure hizmetlerine bağlayabilir ve cihazlar ile verilerin yönetimini gerçekleştirebilirsiniz.
Bu öğreticide, siz...
- Azure Digital Twins örneği oluşturun
- Örnek bina senaryosunu öğrenin ve önceden yazılmış bileşenleri oluşturun.
- IoT Hub cihazından sanal cihaz verilerini dijital ikiz özelliklerine yönlendirmek için Azure İşlevleri uygulamasını kullanma
- İkiz grafik üzerinden değişiklikleri yaymak için Azure Functions, uç noktalar ve yönlendirmelerle dijital ikiz bildirimlerini işleyin.
Önkoşullar
Bu eğitime başlamadan önce, şu ön koşullarla başlayın:
- Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Bu öğreticide .NET kullanılır. . NET'i İndir'den birden çok platform için .NET SDK'sının en son sürümünü indirebilirsiniz.
Sonra, kalan ön koşulları ayarlamak için bu bölümün geri kalanına devam edin.
Örnek kaynakları alma
Öğretici, C# dilinde yazılmış uçtan uca bir Azure Digital Twins örnek projesi tarafından desteklenir. Örnek bağlantıya gidip başlığın altındaki Koda gözat düğmesini seçerek makinenizdeki örnek projeyi alın.
Bu eylem sizi örnekler için GitHub deposuna götürür. Bu depoyu kod düğmesini ve ardından ZIP İndir'i seçerek .zip olarak indirebilirsiniz.
Bu eylem makinenizedigital-twins-samples-main.zipolarak bir .zip klasörü indirir. Klasörün sıkıştırmasını açın ve dosyaları çıkarın.
Azure Digital Twins örneği hazırlama
Bu makalede Azure Digital Twins ile çalışmak için bir Azure Digital Twins örneğine ve bunu kullanmak için gerekli izinlere sahip olmanız gerekir. Zaten bir Azure Digital Twins örneği kuruluysa, o örneği kullanabilir ve bir sonraki bölüme geçebilirsiniz. Aksi takdirde, Örnek ve kimlik doğrulaması ayarlama başlığındaki yönergeleri izleyin. Talimatlar, her adımı başarıyla tamamladığınızı doğrulamanıza yardımcı olacak bilgileri içerir.
Örneğinizi ayarladıktan sonra, sunucu örneğinin ana bilgisayar adını not edin. Azure portalında ana bilgisayar adını bulabilirsiniz.
Çevrenizi Azure CLI için hazırlayın
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell'i kullanmaya başlama.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS'ta çalışıyorsanız, Azure CLI'yi bir Docker konteynerinde çalıştırmayı düşünün. 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'da 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 kullanarak Azure'da kimlik doğrulaması.
Yönergeleri aldığınızda, Azure CLI uzantısını ilk kullanımda yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma ve yönetme.
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.
CLI oturumunu başlat
CLI'da Azure Digital Twins ile çalışmaya başlamak için ilk yapmanız gereken oturum açmak ve cli bağlamını bu oturum için aboneliğinize ayarlamaktır. Bu komutları CLI pencerenizde çalıştırın:
az login
az account set --subscription "<your-Azure-subscription-ID>"
İpucu
Önceki komuttaki kimlik yerine abonelik adınızı da kullanabilirsiniz.
Bu aboneliği Azure Digital Twins ile ilk kez kullanıyorsanız, Azure Digital Twins ad alanına kaydolmak için aşağıdaki komutu çalıştırın. (Emin değilseniz, geçmişte bir süre çalıştırmış olsanız bile yeniden çalıştırmanızda problem yok.)
az provider register --namespace 'Microsoft.DigitalTwins'
Ardından Azure Digital Twins ve diğer IoT hizmetleriyle etkileşime yönelik komutları etkinleştirmek üzere Azure CLI için Microsoft Azure IoT Uzantısı'nı ekleyebilirsiniz. Bu komutu çalıştırarak uzantının en son sürümüne sahip olduğunuzdan emin olun:
az extension add --upgrade --name azure-iot
Artık Azure CLI'da Azure Digital Twins ile çalışmaya hazırsınız.
Kullanılabilir en üst düzey Azure Digital Twins komutlarının listesini görmek için istediğiniz zaman komutunu çalıştırarak az dt --help bu durumu doğrulayabilirsiniz.
Örnek projeyi yapılandırın
Ardından, Azure Digital Twins örneğinizle etkileşimde bulunacak bir örnek istemci uygulaması ayarlayın.
Makinenizde daha önce Azure Digital Twins uçtan uca örneklerden indirdiğiniz klasöre gidin (henüz yapmadıysanız sıkıştırmasını açın).
Klasörün içine girdikten sonra digital-twins-samples-main\AdtSampleApp\SampleClientApp konumuna gidin ve appsettings.json dosyasını açın. Bu JSON dosyası, projenin çalışması için gerekli bir yapılandırma değişkeni içerir.
Dosya gövdesinde instanceUrl ifadesini, hosting adının önüne https:// ekleyerek Azure Digital Twins örneği ana bilgisayar adı URL'siyle değiştirin (aşağıda gösterildiği gibi).
{
"instanceUrl": "https://<your-Azure-Digital-Twins-instance-host-name>"
}
Dosyayı kaydedin ve kapatın.
Yerel Azure kimlik bilgilerini kurun
Bu örnek, örneği yerel makinenizde çalıştırdığınızda Azure Digital Twins örneğiyle kimlik doğrulaması yapmak için DefaultAzureCredential (kitaplığın bir parçası Azure.Identity ) kullanır.
DefaultAzureCredential birçok kimlik doğrulama seçeneğinden biridir. bir istemci uygulamasının Azure Digital Twins ile kimlik doğrulaması yapmanın farklı yolları hakkında daha fazla bilgi için bkz. Uygulama kimlik doğrulama kodu yazma.
DefaultAzureCredential kullanarak, bu örnek yerel ortamınızda, yerel Azure CLI veya Visual Studio veya Visual Studio Code'da Azure oturum açma gibi kimlik bilgilerini arar. Bu nedenle, örnek için kimlik bilgilerini ayarlamak üzere bu mekanizmalardan biri aracılığıyla Azure'a yerel olarak oturum açmalısınız.
Kod örneklerini çalıştırmak için Visual Studio veya Visual Studio Code kullanıyorsanız, Azure Digital Twins örneğine erişmek için kullanmak istediğiniz Azure kimlik bilgileriyle bu düzenleyicide oturum açtığınızdan emin olun. Yerel bir CLI penceresi kullanıyorsanız, Azure hesabınıza giriş yapmak için az login komutunu çalıştırın. Oturum açtıktan sonra kod örneğiniz çalıştığında kimliğinizi otomatik olarak doğrular.
Binayı Kurma Senaryosuna Başlayın
Bu eğitimde kullanılan örnek proje, bir kat, bir oda ve bir termostat cihazı içeren gerçek dünya bina senaryosunu temsil etmektedir. Bu bileşenler, verilerin taşınmasına olanak tanımak için IoT Hub, Event Grid ve iki Azure işlevine bağlı bir Azure Digital Twins örneğinde dijital olarak temsil edilir.
Aşağıdaki diyagram tam senaryoyu temsil etmektedir.
Önce Azure Digital Twins örneğini oluşturursunuz (diyagramda A bölümü ), ardından cihaz veri akışını dijital ikizlere ayarlarsınız (B oku) ve ardından ikiz grafı (ok C) aracılığıyla veri yayma özelliğini ayarlarsınız.
Senaryoyu çalışmak için, daha önce indirdiğiniz önceden yazılmış örnek uygulamanın bileşenleri ile etkileşime geçersiniz.
İşte bina senaryosu AdtSampleApp örnek uygulaması tarafından uygulanan bileşenler:
- Cihaz kimlik doğrulaması
- .NET (C#) SDK kullanım örnekleri ( CommandLoop.cs bulunur)
- Azure Digital Twins API'sini çağırmak için konsol arayüzü
- SampleClientApp - Örnek bir Azure Digital Twins çözümü
- SampleFunctionsApp - IoT Hub ve Azure Digital Twins olaylarından gelen cihaz verilerine dayalı olarak Azure Digital Twins grafiğinizi güncelleyen bir Azure Functions uygulaması.
Önceden oluşturulmuş ikiz grafiği başlat
İlk olarak, uçtan uca senaryonun Azure Digital Twins parçasını derlemek için örnek projeden AdtSampleApp çözümünü kullanırsınız (bölüm A):
Yerel bir konsol penceresi açın ve digital-twins-samples-main\AdtSampleApp\SampleClientApp klasörüne gidin. SampleClientApp projesini şu dotnet komutuyla çalıştırın:
dotnet run
Proje çalışmaya başlar, kimlik doğrulamasını yürütür ve bir komut bekler. Bu konsolda, örnek Azure Digital Twins çözümünün örneğini oluşturmak için sonraki komutu çalıştırın.
Önemli
Eğer Azure Digital Twins örneğinizde zaten dijital ikizler ve ilişkiler varsa, bu komutu çalıştırmak onları siler ve örnek senaryo için olan ikizler ve ilişkiler ile değiştirir.
SetupBuildingScenario
Bu komutun çıktısı, Azure Digital Twins örneğinizde üç dijital ikiz oluşturulup bağlandıkça bir dizi onay iletisidir: floor1 adlı bir kat, room21 adlı bir oda ve thermostat67 adlı sıcaklık sensörü. Bu dijital ikizler, gerçek dünyadaki bir ortamda var olacak varlıkları temsil eder.
Aşağıdaki ikiz grafiğine ilişkilerle ilişkilendirilirler. İkiz grafik, varlıkların birbirleriyle nasıl etkileşimde bulunduklarını ve birbirlerine nasıl ilişki kurduklarını da içeren, çevreyi bir bütün olarak temsil eder.
Azure Digital Twins hizmetine bağlı örnekte yer alan tüm dijital ikizleri sorgulayan aşağıdaki komutu çalıştırarak oluşturulan ikizleri doğrulayabilirsiniz.
Query
Artık projeyi çalıştırmayı durdurabilirsiniz. Bu uygulamayı eğitimin ilerleyen kısmında tekrar kullanacağınız için, konsol penceresini bu konumda açık bırakın.
Örnek işlev uygulamasını kurun
Sonraki adım, bu öğretici boyunca verileri işlemek için kullanılacak bir Azure İşlevleri uygulaması ayarlamaktır. İşlev uygulaması, SampleFunctionsApp, iki işlev içerir:
- ProcessHubToDTEvents: Gelen IoT Hub verilerini işler ve Azure Digital Twins'i uygun şekilde güncelleştirir
- ProcessDTRoutedData: Dijital ikizlerden gelen verileri işler ve Azure Digital Twins'deki üst ikizleri buna göre güncelleştirir
Bu bölümde, önceden yazılmış fonksiyon uygulamasını yayınlar ve Microsoft Entra kimliği atayarak fonksiyon uygulamasının Azure Dijital İkizlerine erişebilmesini sağlarsınız.
İşlev uygulaması, indirdiğiniz örnek projenin bir parçasıdır ve digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp klasöründe bulunur.
Uygulamayı yayımla
Azure'a işlev uygulaması yayımlamak için, önce bir depolama hesabı oluşturmanız, ardından Azure'da işlev uygulamasını oluşturmanız ve son olarak işlevleri Azure işlev uygulamasına yayımlamanız gerekir. Bu bölüm, bu eylemleri Azure CLI kullanarak tamamlar. Her bir komutta, açılı ayraçlar içerisindeki yer tutucuları kendi kaynaklarınızın detaylarıyla değiştirin.
Azure depolama hesabı oluşturmak için aşağıdaki komutu çalıştırın:
az storage account create --name <name-for-new-storage-account> --location <location> --resource-group <resource-group> --sku Standard_LRSAşağıdaki komutu çalıştırarak bir Azure işlev uygulaması oluşturun:
az functionapp create --name <name-for-new-function-app> --storage-account <name-of-storage-account-from-previous-step> --functions-version 4 --consumption-plan-location <location> --runtime dotnet-isolated --resource-group <resource-group>Sonraki adımda, işlevleri sıkıştırarak yeni Azure işlev uygulamanıza yayınlamalısınız.
Makinenizde bir konsol penceresi açın (yerel Azure CLI kullanıyorsanız, aynı pencere olabilir) ve indirilen örnek projenizin içindeki digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp klasörüne gidin.
Konsolda, projeyi yerel olarak yayımlamak için aşağıdaki komutu çalıştırın:
dotnet publish -c Release -o publishBu komut projeyi digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp\publish dizininde yayımlar .
Tercih ettiğiniz yöntemi kullanarak digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp\publishdizininde bulunan yayımlanmış dosyaların zip'ini oluşturun. Sıkıştırılmış klasörü publish.zipolarak adlandırın.
Önemli
Sıkıştırılmış klasörün yayımlama klasörünün kendisi için ek bir katman içermediğinden emin olun. Yalnızca yayımlama klasörünün içindeki içeriği içermelidir.
Zip içeriklerinin nasıl görünebileceğine ilişkin bir görüntü aşağıdadır (.NET sürümünüze bağlı olarak değişebilir).
Son adım Azure CLI'da gerçekleştirilir.
Azure CLI'de, yayımlanan ve sıkıştırılmış işlevleri Azure işlev uygulamanıza dağıtmak için aşağıdaki komutu çalıştırın:
az functionapp deployment source config-zip --resource-group <resource-group> --name <name-of-your-function-app> --src "<full-path-to-publish.zip>"İpucu
Azure CLI'yi yerel olarak kullanıyorsanız, bilgisayarınızdaki ZIP dosyasına makinenizdeki yolunu kullanarak doğrudan erişebilirsiniz.
Azure Cloud Shell kullanıyorsanız komutu çalıştırmadan önce şu düğmeyle ZIP dosyasını Cloud Shell'e yükleyin:
Bu durumda, dosya Cloud Shell depolamanızın ana dizinine yüklenir, böylece dosyayı komutun
--srcparametresi için doğrudan adını kullanarak belirtebilirsiniz (örneğin,--src publish.zip).Başarılı bir dağıtım, durum kodu 202 ile yanıt verir ve yeni işlevinizin ayrıntılarını içeren bir JSON nesnesi çıktısı sağlar. Sonuç olarak şu alanı arayarak dağıtımın başarılı olduğunu onaylayabilirsiniz:
"provisioningState": "Succeeded",
İşlevler artık Azure'daki bir işlev uygulamasında yayımlanmalıdır. Her iki işlevin de başarıyla yayımlandığını doğrulamak için aşağıdaki CLI komutlarını kullanabilirsiniz. Her bir komutta kaynak grubunuz ve işlev uygulamanızın adı için yer tutucular bulunur. Komutlar, yayımladığınız ProcessDTRoutedData ve ProcessHubToDTEvents işlevleri hakkındaki bilgileri yazdırır.
az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name ProcessDTRoutedData
az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name ProcessHubToDTEvents
Sonraki adımda, işlev uygulamanızın Azure Digital Twins örneğinize erişebilmesi için doğru izinlere sahip olması gerekir. Bu erişimi bir sonraki bölümde yapılandırıyorsunuz.
İşlev uygulaması için izinleri yapılandırın
Fonksiyon uygulamasının Azure Digital Twins örneğinize erişebilmesi için ayarlanması gereken iki yapılandırma vardır ve bu iki işlem de Azure CLI kullanılarak gerçekleştirilebilir.
Erişim rolü atama
İlk ayar işlev uygulamasına Azure Digital Twins örneğindeki Azure Digital Twins Veri Sahibi rolünü verir. Bu rol, instance üzerinde birçok veri düzlemi etkinliği gerçekleştirmek isteyen herhangi bir kullanıcı veya işlev için gereklidir. Azure Digital Twins çözümleri için Güvenlik bölümünde güvenlik ve rol atamaları hakkında daha fazla bilgi edinebilirsiniz.
İşlev için sistem tarafından atanan bir kimlik oluşturmak için aşağıdaki komutu kullanın. Çıktı, sistem atanmış kimliğin detaylarını gösterir. Sonraki adımda kullanmak üzere çıktıdaki principalId alanını not alın.
az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>İşlev uygulamasının kimliğini Azure Digital Twins örneğinizin Azure Digital Twins Veri Sahibi rolüne atamak için aşağıdaki komuttaki principalId değerini kullanın.
az dt role-assignment create --resource-group <your-resource-group> --dt-name <your-Azure-Digital-Twins-instance> --assignee "<principal-ID>" --role "Azure Digital Twins Data Owner"
Bu komutun sonucu, oluşturduğunuz rol ataması hakkında bilgi elde edilir. Artık işlev uygulamasının, Azure Digital Twins örneğinizdeki verilere erişim izni var.
Uygulama ayarını yapılandırma
İkinci ayar, Azure Digital Twins örneğinizin URL'si ile fonksiyon için bir ortam değişkeni oluşturur. Fonksiyon kodu, örneğinize atıfta bulunmak için bu değişkenin değerini kullanır. Ortam değişkenleri hakkında daha fazla bilgi için bkz. İşlev uygulamanızı yönetme.
Aşağıdaki komutu çalıştırın ve yer tutucuları kaynaklarınızın ayrıntılarıyla doldurun.
az functionapp config appsettings set --resource-group <your-resource-group> --name <your-function-app-name> --settings "ADT_SERVICE_URL=https://<your-Azure-Digital-Twins-instance-host-name>"
Çıktı, Azure İşlevi ayarlarının bir listesidir ve artık ADT_SERVICE_URL adlı bir giriş içermelidir.
IoT Hub cihazından simüle edilmiş cihaz verilerini işleyin
Genellikle, gerçek cihazlardan gelen cihaz verileri, Azure Digital Twins grafiğini yönlendirir.
Bu adımda, IoT Hub'a kaydedilmiş bir simüle edilmiş termostat cihazını, Azure Digital Twins'te onu temsil eden dijital ikize bağlarsınız. Simülasyon cihazı veri yaydıkça veriler, dijital ikizde ilgili bir güncelleştirmeyi tetikleyen ProcessHubToDTEvents Azure işlevi aracılığıyla yönlendirilir. Bu şekilde, dijital ikiz gerçek cihazın verileriyle güncel kalır. Azure Digital Twins'de olay verilerini bir yerden diğerine yönlendirme işlemine yönlendirme olayları denir.
Simülasyon cihazı verilerinin işlenmesi, uçtan uca senaryonun bu bölümünde gerçekleşir (B oku):
Bu cihaz bağlantısını ayarlamak için gerçekleştirmeniz gereken işlemler şunlardır:
- Simüle edilmiş cihazı yöneten bir IoT hub'ı oluşturun.
- IoT hub'ı uygun Azure fonksiyonuna, bir olay aboneliği ayarlayarak bağlayın.
- Simüle edilmiş cihazı IoT merkezinde kaydedin.
- Simülasyon cihazını çalıştırma ve cihaz verileri oluşturma
- Azure Digital Twins'i sorgulayarak canlı sonuçları görün
Bir IoT Hub örneği oluşturun
Azure Digital Twins, cihazları ve verilerini yönetmeye yönelik bir Azure hizmeti olan IoT Hub ile birlikte çalışacak şekilde tasarlanmıştır. Bu adımda, bu eğitimdeki örnek cihazı yöneten bir IoT hub kuruyorsunuz.
Azure CLI'de yeni bir IoT hub oluşturmak için bu komutu kullanın:
az iot hub create --name <name-for-your-IoT-hub> --resource-group <your-resource-group> --sku S1
Bu komutun çıktısı, oluşturulan IoT hub'ı hakkındaki bilgilerdir.
Daha sonra kullanmak için IoT hub'ınızın adını kaydedin.
IoT hub'ı Azure işlevine bağla
Ardından, daha önce yayımladığınız işlev uygulamasında IoT hub'ınızı ProcessHubToDTEvents Azure işlevine bağlayın. Bu bağlantı, verilerin IoT Hub'daki cihazdan, Azure Digital Twins'i güncelleyen fonksiyon aracılığıyla akmasına izin verir.
Bunu yapmak için, Azure işlevini uç nokta olarak belirleyerek IoT Hub'ınızda bir olay aboneliği oluşturursunuz. Bu, işlevi IoT Hub'da gerçekleşen olaylara abone yapar.
Etkinlik aboneliğini oluşturmak için aşağıdaki CLI komutunu kullanın. Etkinlik aboneliği için bir ad girmeniz için bir yer tutucu vardır ve abonelik kimliğinizi, kaynak grubunuzu, IoT hub adınızı ve fonksiyon uygulamanızın adını girmeniz için de yer tutucular vardır.
az eventgrid event-subscription create --name <name-for-hub-event-subscription> --event-delivery-schema eventgridschema --source-resource-id /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Devices/IotHubs/<your-IoT-hub> --included-event-types Microsoft.Devices.DeviceTelemetry --endpoint-type azurefunction --endpoint /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app>/functions/ProcessHubToDTEvents
Çıkış, oluşturduğunuz olay aboneliği hakkındaki bilgileri gösterir. İşlemin başarıyla tamamlandığını, sonuç provisioningState değerini kontrol ederek onaylayabilirsiniz.
"provisioningState": "Succeeded",
İpucu
Komut bir kaynak sağlayıcısı hatası döndürürse Microsoft.EventGrid'i aboneliğinize kaynak sağlayıcısı olarak ekleyin. Kaynak sağlayıcısını kaydetme bölümündeki yönergeleri izleyerek bu kaynak sağlayıcısını aboneliğinize eklemek için Azure portalını kullanabilirsiniz.
Sanal cihazı IoT Hub'a kaydetme
Bu bölüm, IoT Hub'da thermostat67 kimliğine sahip bir cihaz temsili oluşturur. Simüle edilmiş cihaz, cihaz verilerinin cihazdan IoT Hub'a nasıl aktığına dair bu temsil ile bağlantı kurar. IoT hub'ı, önceki adımda abone olunan Azure işlevinin dinlediği, olayları almaya ve işlemeye devam etmeye hazır olduğu yerdir.
Azure CLI'de aşağıdaki komutu kullanarak IoT Hub'da bir cihaz oluşturun:
az iot hub device-identity create --device-id thermostat67 --hub-name <your-IoT-hub-name> --resource-group <your-resource-group>
Çıktı, oluşturulan cihaz hakkındaki bilgidir.
Simülasyonu yapılandır ve çalıştır
Önemli
Bu makale, simetrik anahtar kimlik doğrulama olarak da adlandırılan paylaşılan erişim imzası kullanarak bir cihazı bağlama adımlarını içermektedir. Bu kimlik doğrulama yöntemi test ve değerlendirme için uygundur, ancak bir cihazı X.509 sertifikaları kullanarak doğrulamak daha güvenli bir yaklaşımdır. Daha fazla bilgi edinmek için bkz . IoT çözümleri > için en iyi güvenlik yöntemleri Bağlantı güvenliği.
Ardından, cihaz simülatörünü, veriyi IoT Hub örneğinize gönderecek şekilde yapılandırın.
Aşağıdaki komutu kullanarak IoT hub bağlantı dizisini alarak başlayın. Bağlantı dizesi değeri ile HostName=başlar.
az iot hub connection-string show --hub-name <your-IoT-hub-name>
Ardından şu komutla cihaz bağlantı dizesini alın:
az iot hub device-identity connection-string show --device-id thermostat67 --hub-name <your-IoT-hub-name>
Ardından, bu değerleri yerel projenizdeki cihaz simülatörü koduna yerleştirerek simülatörü bu IoT hub ve IoT hub cihazına bağlayın.
Yerel makinenizde indirilen örnek klasöre ve digital-twins-samples-main\DeviceSimulator\DeviceSimulator klasörüne gidin. Düzenlemek üzere AzureIoTHub.cs dosyasını açın. Aşağıdaki bağlantı dizesi değerlerini önceden topladığınız değerlere değiştirin.
private const string iotHubConnectionString = "<your-hub-connection-string>";
//...
private const string deviceConnectionString = "<your-device-connection-string>";
Dosyayı kaydedin.
Şimdi, ayarladığınız veri benzetiminin sonuçlarını görmek için yeni bir yerel konsol penceresi açın ve digital-twins-samples-main\DeviceSimulator\DeviceSimulator konumuna gidin.
Uyarı
Şimdi iki açık konsol pencereniz olmalıdır: biri DeviceSimulator\DeviceSimulator klasörüne açık ve diğeri önceden açılmış olan AdtSampleApp\SampleClientApp klasörüne açık.
Aygıt simülatör projesini çalıştırmak için aşağıdaki dotnet komutunu kullanın:
dotnet run
Proje çalışmaya başlar ve simüle edilmiş sıcaklık cihazı veri mesajlarını göstermeye başlar. Bu mesajlar IoT Hub'a gönderiliyor, burada Azure işlevi tarafından alınarak işleniyorlar.
Bu konsolda başka bir şey yapmanıza gerek yok, ancak bir sonraki adımları tamamlarken onu çalışır durumda bırakın.
Sonuçları Azure Digital Twins'te görün
Daha önce yayımladığınız ProcessHubToDTEvents işlevi IoT Hub verilerini dinler ve termostat67 ikizinde Temperature özelliği güncelleştirmek için bir Azure Digital Twins API'sini çağırır.
Azure Digital Twins tarafındaki verileri görmek için AdtSampleApp\SampleClientApp klasörüne açık olan diğer konsol pencerenize geçin.
SampleClientApp projesini ile dotnet runçalıştırın.
dotnet run
Proje çalışmaya başladıktan ve komutları kabul ettikten sonra, dijital ikiz termostat67 tarafından bildirilen sıcaklıkları almak için aşağıdaki komutu çalıştırın:
ObserveProperties thermostat67 Temperature
Azure Digital Twins örneğinizden gelen canlı olarak güncellenen sıcaklıkların her iki saniyede bir konsola kaydedildiğini görmelisiniz. Ürettikleri değerlerin veri simülatörünün oluşturduğu değerleri yansıtması gerekir (Değerlerin uyumlu olduğunu doğrulamak için konsol pencerelerini yan yana yerleştirebilirsiniz).
Uyarı
Cihazdan gelen verilerin ikize yayılması birkaç saniye sürebilir. İlk birkaç sıcaklık okuması, verilerin gelmeye başlamasından önce 0 olarak görünebilir.
Canlı sıcaklık kaydının başarılı bir şekilde çalıştığını doğruladıktan sonra, her iki projeyi çalıştırmayı durdurabilirsiniz. Eğitimde daha sonra tekrar kullanacağınız için konsol pencerelerini açık tutun.
Graf üzerinden Azure Digital Twins olaylarını yaymak
Bu öğreticide şu ana kadar, Azure Digital Twins'in harici cihaz verilerinden nasıl güncellenebileceğini görebilirsiniz. Sonraki olarak, bir dijital ikizin değişikliklerinin Azure Digital Twins grafiği boyunca nasıl yayılabileceğini göreceksiniz—başka bir deyişle, servis içi verilerden ikizlerin nasıl güncelleneceğini.
Bunu yapmak için, bağlı Termostat ikizi güncellendiğinde bir Oda ikizini güncellemek için ProcessDTRoutedData Azure fonksiyonunu kullanırsınız. Güncelleştirme işlevi, uçtan uca senaryonun bu bölümünde gerçekleşir (ok C):
İşte bu veri akışını ayarlamak için yapmanız gereken işlemler:
- Azure hizmetleri arasında veri taşımayı etkinleştirmek için Event Grid konusu oluşturma
- Azure Digital Twins'de örneği Event Grid konusuna bağlayan bir uç nokta oluşturma
- Azure Digital Twins içinde ikiz özelliği değişiklik olaylarını uç noktaya gönderen bir yol yapılandırın
- Uç noktadaki Event Grid konusunu dinleyen, oraya gönderilen ikiz özelliği değişiklik olaylarını alan ve grafikteki diğer ikizleri uygun şekilde güncelleştiren bir Azure işlevi ayarlayın.
Etkinlik Grid konusunu oluşturun
Event Grid , Olayları Azure hizmetlerinden Azure içindeki diğer yerlere yönlendirmeye ve teslim etmeye yardımcı olan bir Azure hizmetidir. Bir kaynaktan belirli olayları toplamak için bir Event Grid konusu oluşturabilirsiniz ve ardından aboneler bu olayları almak için konuyu dinleyebilir.
Azure CLI'de, bir Event Grid konusu oluşturmak için aşağıdaki komutu çalıştırın:
az eventgrid topic create --resource-group <your-resource-group> --name <name-for-your-event-grid-topic> --location <region>
Bu komutun çıktısı, oluşturduğunuz Event Grid konusuyla ilgili bilgilerdir. Event Grid konu başlığınıza girdiğiniz adı kaydedin çünkü daha sonra kullanacaksınız.
Uç nokta oluştur
Azure Digital Twins'te bir Event Grid uç noktası oluşturun, bu uç nokta örneğinizin Event Grid konusuna bağlanmasını sağlayacaktır. Aşağıdaki komutu kullanarak, bir önceki adımda belirttiğiniz Event Grid konusunun adını ve gerektiğinde diğer yer tutucu alanları doldurun.
az dt endpoint create eventgrid --dt-name <Azure-Digital-Twins-instance> --eventgrid-resource-group <your-resource-group> --eventgrid-topic <your-event-grid-topic> --endpoint-name <name-for-your-Azure-Digital-Twins-endpoint>
Bu komuttan elde edilen çıktı, oluşturduğunuz uç nokta hakkında bilgi vermektedir.
Çıktıda provisioningState alanını arayın ve değerinin "Succeeded" olduğundan emin olun.
Ayrıca "Provisioning" yazısı görünebilir, bu da uç noktanın hâlâ oluşturulmakta olduğunu ifade eder. Eğer öyleyse, birkaç saniye bekleyin ve uç noktanın durumunu kontrol etmek için aşağıdaki komutu çalıştırın. "provisioningState 'Başarılı' gösterene kadar tekrarlayın."
az dt endpoint show --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint>
Uç noktanızın adını kaydedin çünkü daha sonra kullanacaksınız.
Rotayı oluştur
Sıradaki adım: Oluşturduğunuz Event Grid uç noktasına olayları gönderen bir Azure Digital Twins rotası oluşturun.
Aşağıdaki CLI komutunu, önceki adımdan uç noktanızın adını ve gerekli diğer yer tutucu alanları doldurarak kullanın. Bu komut, ikiz grafikte meydana gelen tüm olayları iletir.
İpucu
Filtreleri kullanarak, isterseniz olayları yalnızca belirli olaylarla sınırlayabilirsiniz.
az dt route create --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> --route-name <name-for-your-Azure-Digital-Twins-route>
Bu komuttan elde edilen çıktı, oluşturduğunuz rota hakkında bazı bilgiler içerir.
Uyarı
Önceki aşamadan gelen uç noktaların sağlanması işlemi tamamlanmadan, bu uç noktaları kullanan bir olay rotası ayarlayamazsınız. Yönlendirme oluşturma, uç noktalar hazır olmadığı için başarısız olursa, birkaç dakika bekleyin ve ardından tekrar deneyin.
Azure işlevini bağlama
Ardından, ProcessDTRoutedData Azure işlevini daha önce oluşturduğunuz Event Grid konusuna abone edin. Bu abonelik, simüle edilen cihaz verilerinin thermostat67 ikizinden Event Grid konusuna, oradan da işlevine akmasını sağlar. Bu süreç, verilerin Azure Digital Twins'e geri dönmesini ve oda21 ikizini buna göre güncellemesini içerir.
Bunu yapmak için, daha önce oluşturduğunuz Event Grid konusundan ProcessDTRoutedData Azure işlevinize veri gönderen bir Event Grid aboneliği oluşturursunuz.
Etkinlik aboneliğini oluşturmak için aşağıdaki CLI komutunu kullanın. Bu etkinlik aboneliği için bir ad girmeniz için bir yer tutucu vardır ve abone IP'nizi, kaynak grubunuzu, Event Grid konunuzun adını ve işlev uygulamanızın adını girmeniz için de yer tutucular bulunmaktadır.
az eventgrid event-subscription create --name <name-for-topic-event-subscription> --event-delivery-schema eventgridschema --source-resource-id /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.EventGrid/topics/<your-event-grid-topic> --endpoint-type azurefunction --endpoint /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app>/functions/ProcessDTRoutedData
Simülasyonu çalıştır ve sonuçları gör
Artık, olaylar simüle edilmiş cihazdan Azure Digital Twins'a ve uygun şekilde ikizleri güncellemek için Azure Digital Twins grafiği aracılığıyla akma yeteneğine sahip olmalıdır. Bu bölümde, kurduğunuz tam olay akışını başlatmak için cihaz simülatörünü tekrar çalıştırın ve Azure Digital Twins'i sorgulayarak canlı sonuçları görün.
DeviceSimulator\DeviceSimulator klasörüne açık olan konsol pencerenize gidin ve ile dotnet runcihaz simülatörü projesini çalıştırın.
İlk kez cihaz simülatörünü çalıştırdığınızda olduğu gibi, proje çalışmaya başlar ve simüle edilmiş sıcaklık cihazı veri mesajlarını görüntüler. Bu olaylar, daha önce kurduğunuz akışı takip ederek thermostat67 ikizini güncellemeye, ardından yakın zamanda kurduğunuz akışı takip ederek room21 ikizini eşleşmesi için güncellemeye gidiyor.
Bu konsolda başka bir şey yapmanıza gerek yok, ancak bir sonraki adımları tamamlarken onu çalışır durumda bırakın.
Azure Digital Twins tarafındaki verileri görmek için AdtSampleApp\SampleClientApp klasörüne açık olan diğer konsol pencerenize gidin ve ile dotnet run projesini çalıştırın.
Proje çalışmaya başladıktan ve komutları kabul etmeye başladığında, hem dijital ikiz termostat67'nin hem de dijital ikiz oda21'in bildirdiği sıcaklıkları almak için aşağıdaki komutu çalıştırın.
ObserveProperties thermostat67 Temperature room21 Temperature
Azure Digital Twins örneğinizden gelen canlı olarak güncellenen sıcaklıkların her iki saniyede bir konsola kaydedildiğini görmelisiniz. Oda21 için sıcaklığın, termostat67'nin güncellemelerine uygun olacak şekilde güncellenmekte olduğunu fark ediniz.
Örneğinizden canlı sıcaklık günlüğünün başarıyla çalıştığını doğruladıktan sonra her iki projenin de çalıştırılmasını durdurabilirsiniz. Artık öğretici tamamlandığına göre her iki konsol penceresini de kapatabilirsiniz.
İnceleme
İşte bu öğreticide oluşturduğunuz senaryonun bir incelemesi.
- Azure Digital Twins örneği bir katı, odayı ve termostatı dijital olarak temsil eder (aşağıdaki diyagramda A bölümüyle gösterilir)
- Sanal cihaz verileri, ProcessHubToDTEvents Azure işlevinin cihaz veri olaylarını dinlediği IoT Hub'a gönderilir.
ProcessHubToDTEvents Azure işlevi, termostat67'deki belirli bir özelliği ayarlamak için bu olaylardaki bilgileri kullanır (aşağıdaki diyagramda
Temperature). - Azure Digital Twins'deki özellik değişikliği olayları, ProcessDTRoutedData Azure işlevinin olayları dinlediği bir Event Grid konusuna yönlendirilir.
ProcessDTRoutedData Azure işlevi, bu olaylardaki bilgileri kullanarak room21 üzerindeki özelliğini ayarlar
Temperature(aşağıdaki diyagramda C oku).
Kaynakları temizle
Bu eğitimi tamamladıktan sonra, bir sonraki adımda ne yapmak istediğinize bağlı olarak hangi kaynakları kaldırmak istediğinizi seçebilirsiniz.
Bu öğreticide oluşturduğunuz kaynaklardan herhangi birine ihtiyacınız yoksa az group delete CLI komutunu kullanarak Azure Digital Twins örneğini ve bu makalede belirtilen tüm diğer kaynakları silebilirsiniz. Bu işlem, kaynak grubundaki tüm Azure kaynaklarının yanı sıra kaynak grubunun kendisini de siler.
Önemli
Bir kaynak grubunu silmek geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun.
Azure Cloud Shell'i veya yerel cli penceresini açın ve kaynak grubunu ve içerdiği her şeyi silmek için aşağıdaki komutu çalıştırın.
az group delete --name <your-resource-group>
Bu makalede ayarladığınız Azure Digital Twins örneğini kullanmaya devam etmek, ancak modellerinin, ikizlerinin ve ilişkilerinin bazılarını veya tümünü temizlemek istiyorsanız, kaldırmak istediğiniz öğeleri silmek için az dt CLI komutlarını kullanabilirsiniz.
Bu seçenek, bu öğreticide oluşturulan diğer Azure kaynaklarından hiçbirini (IoT Hub, Azure Functions uygulaması vb.) kaldırmaz. Her kaynak türü için uygun dt komutlarını kullanarak bu kaynakları tek tek silebilirsiniz.
Proje klasörünü yerel makinadan da silebilirsiniz.
Sonraki Adımlar
Bu eğitimde, canlı cihaz verileri ile desteklenen Azure Dijital İkizlerini gösteren uçtan uca bir senaryo oluşturduğunuz.
Ardından, eğitimde üzerinde çalıştığınız unsurlar hakkında daha fazla bilgi edinmek için kavram belgelerine göz atmaya başlayın.