Öğretici: uçtan uca bir çözüm oluşturma

Bu Azure dijital TWINS öğreticisi, hizmetin işlevselliğini gösteren bir uçtan uca çözüm oluşturmayı açıklar. Ortamınızdaki canlı veriler tarafından yönetilen tam uçtan uca bir çözüm kurmak için, Azure dijital TWINS örneğinizi cihaz ve verilerin yönetimi için diğer Azure hizmetlerine bağlayabilirsiniz.

Bu öğreticide,...

  • Azure dijital TWINS örneği ayarlama
  • Örnek yapı senaryosu hakkında bilgi edinin ve önceden yazılmış bileşenleri oluşturun
  • Bir IoT Hub cihazından dijital ikizi özelliklerine sanal telemetri yönlendirmek Için bir Azure işlevleri uygulaması kullanma
  • Azure Işlevleri, uç noktaları ve rotalar ile dijital ikizi bildirimlerini işleyerek ikizi Graph aracılığıyla değişiklikleri yayma

Önkoşullar

Bu öğreticide yer alan adımları tamamlamak için öncelikle aşağıdaki önkoşulları tamamlamanız gerekir.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Gerekli kaynakları al

Bu öğreticiyi tamamlamak için geliştirme Visual Studio 2019, sürüm 16.5 veya sonraki bir sürümünü yükleyin. Daha eski bir sürümünüz zaten yüklüyse makinenize Visual Studio Yükleyicisi uygulamasını açabilir ve yüklemenizi güncelleştirmek için istemleri takip edin.

Not

Visual Studio 2019 yüklemenizin Azure Geliştirme İş Yükünü de içerir. Bu iş yükü, bir uygulamanın Azure işlevlerini yayımlamalarını ve diğer Azure geliştirme görevlerini gerçekleştirmelerini sağlar.

Öğretici, C# ile Azure Digital Twins bir örnek proje tarafından yönlendirildi. Örnek bağlantıya giderek ve başlığın altındaki Koda gözat düğmesini seçerek makinenize örnek projeyi alın. Bu sizi örnekler için GitHub, kod düğmesini ve ardından ZIP'i indir'i seçerek .zip olarak indirebilirsiniz.

GitHub'de digital-twins-samples GitHub zip olarak indirme adımlarını vurgulayan ekran görüntüsü.

Bu, .zip olarak makinenize bir digital-twins-samples-master.zip. Klasörün sıkıştırması açın ve dosyaları ayıklar.

Örnek Azure Digital Twins hazırlama

Bu makalede Azure Digital TWINS ile çalışmak için önce bir Azure dijital TWINS örneği ayarlamanız gerekir. Ayrıca, kullanmak için gerekli izinlere de ihtiyacınız vardır. Zaten ayarlanmış bir Azure dijital TWINS örneğiniz varsa, bunun yerine kullanabilirsiniz.

Aksi takdirde, örnek ayarlama ve kimlik doğrulamabölümündeki yönergeleri izleyin. Yönergeler, her adımı başarıyla tamamladığınızı doğrulamanıza yardımcı olacak bilgiler içerir.

Örneğinizi ayarladıktan sonra, aşağıdaki değerleri unutmayın. Örneğe daha sonra bağlanmak için bu değerlere ihtiyacınız olacak:

Ortamınızı Azure CLI’ye hazırlama

  • Azure Cloud Shell'Da Bash ortamını kullanın.

    Cloud Shell’i yeni bir pencerede başlatma

  • Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.

    • 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. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantıları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.

Cloud Shell oturum ayarlama

Açık bir Azure Digital Twins penceresinde Azure Cloud Shell başlamak için ilk olarak oturum açın ve kabuk bağlamını bu oturum için aboneliğinize ayarlayın. Komutlar için şu komutları Cloud Shell:

az login
az account set --subscription "<your-Azure-subscription-ID>"

İpucu

Yukarıdaki komutta yer alan kimlik yerine abonelik adını da kullanabilirsiniz.

Bu aboneliği Azure Digital Twins ile ilk kez kullandıysanız, Azure Digital Twins ad alanına kaydolabilirsiniz. (Emin değilsanız, geçmişte bir süre önce yapmış olsa bile yeniden çalıştırmak sorun değildir.)

az provider register --namespace 'Microsoft.DigitalTwins'

Ardından Cloud Shell ve diğer IoT hizmetleriyle etkileşime geçme komutlarını etkinleştirmek için Azure CLI için Microsoft Azure IoT Uzantısı'Azure Digital Twins ekleyin. Uzantının en son sürümüne sahip olduğundan emin olmak için şu komutu çalıştırın:

az extension add --upgrade --name azure-iot

Artık çalışma Azure Digital Twins ile çalışmaya Cloud Shell.

Kullanılabilir üst düzey komutlar listesini görmek için herhangi bir zamanda az dt --help çalıştırarak Azure Digital Twins doğruabilirsiniz.

Örnek projeyi yapılandırma

Ardından, Azure dijital TWINS örneğinizle etkileşime girebilen bir örnek istemci uygulaması ayarlayın.

Makinenizde daha önce Azure dijital TWINS uçtan uca örneklerden indirdiğiniz dosyaya gidin (ve henüz yapmadıysanız dosyayı ayıklayın.)

Klasörün içindeyken AdtSampleApp adresine gidin. Visual Studio 2019 ' de AdtE2ESample. sln 'yi açın.

Visual Studio 'da, dosyayı Düzenle penceresinde açmak için dosya üzerinde Sampleclientapp > appsettings.js seçin. Bu, projeyi çalıştırmak için gerekli yapılandırma değişkenlerine sahip bir önceden ayarlanmış JSON dosyası işlevi görür.

Dosya gövdesinde, instanceUrl Azure Digital TWINS örnek ana bilgisayar adı URL 'siyle değiştirin (aşağıda gösterildiği gibi ana bilgisayar adının önüne https:// ekleyerek).

{
  "instanceUrl": "https://<your-Azure-Digital-Twins-instance-host-name>"
}

Dosyayı kaydedin ve kapatın.

Sonra, Sampleclientapp' i oluştururken dosyayı çıkış dizinine kopyalamak üzere appsettings.js yapılandırın. Bunu yapmak için dosya üzerindeappsettings.js sağ seçin ve Özellikler' i seçin. Özellikler denetçisinde, Çıkış Dizinine Kopyala özelliğini arayın. Daha önceden bu değere ayarlanmamışsa değeri kopyalamak için değiştirin.

Visual Studio 'da appsettings.jsaçık ve ' çıkış dizinine Kopyala ' özelliklerine sahip Çözüm Gezgini ekran görüntüsü, özelliklerde vurgulanır.

Öğreticide kullanmaya devam etmek için AdtE2ESample projesini Visual Studio 'da açık tutun.

Yerel Azure kimlik bilgilerini ayarlama

Bu örnek Azure.Identity , yerel makinenizde çalıştırdığınızda Azure dijital TWINS örneğiyle kullanıcıların kimliğini doğrulamak için DefaultAzureCredential (kitaplığın parçası) kullanır. İstemci uygulamasının Azure dijital TWINS ile kimlik doğrulaması yapabilme yolları hakkında daha fazla bilgi için bkz. uygulama kimlik doğrulama kodu yazma.

İle DefaultAzureCredential , örnek, yerel ortamınızda, yerel bir Azure CLI veya Visual Studio ya da Visual Studio Code bir Azure oturum açma gibi kimlik bilgilerini arar. Bu nedenle, örnek için kimlik bilgilerini ayarlamak üzere bu mekanizmalardan biri aracılığıyla yerel olarak Azure 'da oturum açmanız gerekir.

Kod örneğini çalıştırmak için Visual Studio 'Yu veya Visual Studio Code kullanıyorsanız, Bu düzenleyicide Azure dijital TWINS örneğinize erişmek için kullanmak istediğiniz Azure kimlik bilgileriyle oturum açtığınızdan emin olun.

Aksi takdirde, Yerel Azure CLI 'yı yükleyebilir, makinenizde bir komut istemi başlatabilir ve az login Azure hesabınızda oturum açmak için komutunu çalıştırabilirsiniz. Oturum açtıktan sonra, kod örneğinizi çalıştırdığınızda otomatik olarak oturumunuzu açmanız gerekir.

Oluşturma senaryosuna başlayın

Bu öğreticide kullanılan örnek proje, bir kat, Oda ve bir termostat cihazı içeren gerçek dünya oluşturma senaryosunu temsil eder. Bu bileşenler, Azure dijital TWINS örneğinde dijital olarak temsil edilecek, daha sonra veri hareketini etkinleştirmek için IoT Hub, Event Gridve iki Azure işlevi ile bağlantılı olacak.

Tam senaryoyu temsil eden bir diyagram aşağıda verilmiştir.

Önce Azure dijital TWINS örneğini (diyagram içinde bölüm ) oluşturun, ardından telemetri veri akışını dijital TWINS (ok B) ile ayarlayın ve ardından Ikizi Graf (ok C) aracılığıyla veri yaymayı ayarlayın.

Çeşitli Azure hizmetleri aracılığıyla bir cihazdan Azure dijital TWINS 'e ve dışına akan verilerin akışını gösteren tam bina senaryosunun diyagramı.

Senaryo aracılığıyla çalışmak için daha önce indirdiğiniz önceden yazılmış örnek uygulamanın bileşenleriyle etkileşime geçebilirsiniz.

Yapı senaryosu AdtSampleApp örnek uygulaması tarafından uygulanan bileşenler şunlardır:

  • Cihaz kimlik doğrulaması
  • .Net (C#) SDK kullanım örnekleri ( commandloop. cs içinde bulunur)
  • Azure dijital TWINS API 'sini çağırmak için konsol arabirimi
  • Sampleclientapp -örnek bir Azure dijital TWINS çözümü
  • Samplefunctionsapp -Azure dijital TWINS grafınızı IoT Hub ve Azure dijital TWINS etkinliklerindeki telemetri temelinde güncelleştiren bir Azure işlevleri uygulaması

Önceden oluşturulmuş ikizi grafiğini oluşturma

İlk olarak, örnek projeden AdtSampleApp çözümünü kullanarak uçtan uca senaryonun Azure dijital TWINS parçasını (Bölüm A) oluşturursunuz:

Azure Digital TWINS örneği bölümünün vurgulandığı tam yapı senaryosu diyagramı 'nın bir alıntı diyagramı.

AdtE2ESample projesinin açık olduğu Visual Studio pencerenizde, araç çubuğunda bu düğmeyle projeyi çalıştırın:

sampleclientapp projesi açık olan Visual Studio start düğmesinin ekran görüntüsü.

Bir konsol penceresi açılır, kimlik doğrulama işlemi gerçekleştirebilir ve bir komut için bekler. Bu konsolda, örnek Azure dijital TWINS çözümünü oluşturmak için bir sonraki komutu çalıştırın.

Önemli

Azure dijital TWINS Örneğinizde zaten dijital TWINS ve ilişkiler varsa, bu komutun çalıştırılması onları siler ve örnek senaryoya ilişkin TWINS ve ilişkilerle değiştirilir.

SetupBuildingScenario

Bu komutun çıktısı, üç dijital TWINS 'Nin oluşturulup Azure dijital TWINS Örneğinizde bağlandığı bir dizi onay iletisi vardır: Floor1 adlı bir kat, room21 adlı bir oda ve thermostat67 adlı bir sıcaklık algılayıcısı. Bu dijital TWINS, gerçek dünyada bir ortamda mevcut olan varlıkları temsil eder.

İlişkiler aracılığıyla aşağıdaki ikizi grafiğinebağlanır. İkizi Graph, varlıkların ile nasıl etkileşime gireceğini ve birbirleriyle nasıl ilişkili olduğunu da kapsayan, ortamı bir bütün olarak temsil eder.

Floor1 room21 içerdiğini gösteren diyagram ve room21 içerir thermostat67.

Aşağıdaki komutu çalıştırarak oluşturulan TWINS 'i doğrulayabilirsiniz, bu, içerdiği tüm dijital TWINS için bağlı Azure dijital TWINS örneğini sorgular:

Query

Not

Grafınıza verilerde değişiklik olduktan sonra, değişiklikler sorgulara yansıtılamadan önce 10 saniyeye kadar bir gecikme olabilir.

DigitalTwins API'si değişiklikleri hemen yansıtıyor, bu nedenle anında yanıta ihtiyacınız varsa bir API isteği (DigitalTwins GetById) veya SDK çağrısı (GetDigitalTwin) kullanarak sorgu yerine ikiz verilerini edinin.

Artık projeyi çalıştırmayı durdurabilirsiniz. çözümü, öğreticinin tamamında kullanmaya devam edecek şekilde Visual Studio açık tutun.

Örnek işlev uygulamasını ayarlama

Sonraki adımda, bu öğreticide verileri işlemek için kullanılacak bir Azure işlevleri uygulaması ayarlanıyor. Samplefunctionsapp işlev uygulaması iki işlev içerir:

  • ProcessHubToDTEvents: gelen IoT Hub verilerini Işler ve Azure dijital TWINS 'i buna göre güncelleştirir
  • Processdtkabteddata: dijital TWINS 'ten gelen verileri Işler ve Azure dijital TWINS 'de üst TWINS 'i uygun şekilde güncelleştirir

bu bölümde, önceden yazılmış işlev uygulamasını yayımlayacaksınız ve işlev uygulamasının bir Azure Active Directory (azure AD) kimliği atayarak Azure dijital twıns 'e erişebildiğinden emin olacaksınız. Bu adımları tamamlamak, öğreticinin geri kalanının işlev uygulaması içindeki işlevleri kullanmasına izin verir.

AdtE2ESample projesinin açık olduğu Visual Studio penceresine geri döndüğünüzde, işlev uygulaması samplefunctionsapp proje dosyasında bulunur. Çözüm Gezgini bölmesinde görüntüleyebilirsiniz.

Bağımlılıkları Güncelleştir

Uygulamayı yayımlamadan önce, tüm dahil edilen paketlerin en son sürümüne sahip olduğunuzdan emin olmak için bağımlılıklarınızın güncel olduğundan emin olmanız iyi bir fikirdir.

Çözüm Gezgini bölmesinde samplefunctionsapp > bağımlılıklar' ı genişletin. paketler ' i sağ seçin ve NuGet paketlerini yönet... seçeneğini belirleyin.

samplefunctionsapp projesi için ' NuGet paketlerini yönet ' menü düğmesini gösteren Visual Studio ekran görüntüsü.

bunun yapılması, NuGet Paket Yöneticisi açar. Güncelleştirmeler sekmesini seçin ve güncelleştirme yapılacak herhangi bir paket varsa, tüm paketleri seçmek için kutuyu işaretleyin. Ardından Güncelleştir' i seçin.

NuGet Paket Yöneticisi tüm paketlerin güncelleştirilmesini nasıl seçileceğini gösteren Visual Studio ekran görüntüsü.

Uygulamayı yayımlama

İşlev uygulamasını Azure 'da yayımlamak için öncelikle bir depolama hesabı oluşturmanız, ardından Azure 'da işlev uygulaması oluşturmanız ve son olarak işlevleri Azure işlevi uygulamasında yayımlamanız gerekir. Bu bölümde, Azure CLı kullanılarak bu eylemler tamamlanır.

  1. Aşağıdaki komutu çalıştırarak bir Azure depolama hesabı oluşturun:

    az storage account create --name <name-for-new-storage-account> --location <location> --resource-group <resource-group> --sku Standard_LRS
    
  2. Aş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> --consumption-plan-location <location> --runtime dotnet --resource-group <resource-group>
    
  3. Daha sonra, işlevleri sıkıştırarak yeni Azure işlev uygulamanızda yayımlayabilirsiniz .

    1. Yerel makinenizde PowerShell gibi bir Terminal açın ve öğreticide daha önce indirdiğiniz dijital TWINS örnekleri deposuna gidin. İndirilen depo klasörünün içinde Digital-Twins-Samples-master\AdtSampleApp\SampleFunctionsApp adresine gidin.

    2. Terminalinizde, projeyi yayımlamak için aşağıdaki komutu çalıştırın:

      dotnet publish -c Release
      

      Bu komut projeyi digital-twins-samples-master\AdtSampleApp\SampleFunctionsApp\bin\Release\netcoreapp 3.1 \ Publish dizinine yayınlar.

    3. Digital-twins-samples-master\AdtSampleApp\SampleFunctionsApp\bin\Release\netcoreapp 3.1 \ Publish dizininde bulunan yayımlanmış dosyaların bir zip kopyasını oluşturun.

      PowerShell kullanıyorsanız, bu \publish dizinine tam yolu kopyalayarak ve aşağıdaki komuta yapıştırarak zip oluşturabilirsiniz:

      Compress-Archive -Path <full-path-to-publish-directory>\* -DestinationPath .\publish.zip
      

      Cmdlet 'i, bir Host. JSON dosyası ve bin, Processdtkabteddata ve ProcessHubToDTEvents dizinleri içeren, terminalinizdeki dizin konumunda bir publish.zip dosyası oluşturacaktır.

      PowerShell kullanmıyorsanız ve cmdlet 'e erişiminiz yoksa Compress-Archive , dosya Gezgini 'ni veya başka bir yöntemi kullanarak dosyaları zip etmeniz gerekir.

  4. Azure CLı 'da, yayımlanmış ve daraltı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>"
    

    Not

    Azure CLı 'yi yerel olarak kullanıyorsanız, makinenizde bulunan yolunu kullanarak doğrudan bilgisayarınızdaki ZIP dosyasına erişebilirsiniz.

    Azure Cloud Shell kullanıyorsanız, komutu çalıştırmadan önce ZIP dosyasını bu düğme ile Cloud Shell karşıya yükleyin:

    Dosyaların nasıl karşıya yükleneceğini vurgulamanın Azure Cloud Shell ekran görüntüsü.

    Bu durumda, dosya, Cloud Shell depolamanın kök dizinine yüklenir, böylece dosyanın parametresi için doğrudan adına --src (içinde olduğu gibi --src publish.zip ) başvurabilirsiniz.

    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 nesnesini çıktı olarak verir. Sonuç içinde bu alanı arayarak dağıtımın başarılı olduğunu doğrulayabilirsiniz:

    {
      ...
      "provisioningState": "Succeeded",
      ...
    }
    

Artık işlevleri Azure 'da bir işlev uygulamasına yayımladınız.

Sonra, işlev uygulamanızın Azure dijital TWINS örneğinize erişmek için doğru izinlere sahip olması gerekir. Bu erişimi bir sonraki bölümde yapılandıracaksınız.

İşlev uygulaması için izinleri yapılandırma

Her ikisi de Azure CLı kullanılarak gerçekleştirilen Azure dijital TWINS örneğinize erişmek için işlev uygulamasının ayarlanması gereken iki ayar vardır.

Erişim rolü ata

İlk ayar, işlev uygulamasını Azure dijital TWINS örneğinde Azure Digital TWINS veri sahibi rolünü verir. Bu rol, örnekte birçok veri düzlemi etkinliği gerçekleştirmek isteyen herhangi bir kullanıcı veya işlev için gereklidir. Azure dijital TWINS çözümleri Için güvenlikve rol atamaları hakkında daha fazla bilgi edinebilirsiniz.

  1. İşlev için sistem tarafından yönetilen kimliğin ayrıntılarını görmek için aşağıdaki komutu kullanın. Çıktıda PrincipalId alanını bir yere göz atın.

    az functionapp identity show --resource-group <your-resource-group> --name <your-function-app-name> 
    

    Not

    Bir kimliğin ayrıntılarını göstermek yerine sonuç boşsa, bu komutu kullanarak işlev için yeni bir sistem tarafından yönetilen kimlik oluşturun:

    az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>  
    

    Daha sonra çıktı, sonraki adım için gereken PrincipalId değeri de dahil olmak üzere kimliğin ayrıntılarını görüntüler.

  2. principalId değerini aşağıdaki komutta kullanarak işlev uygulamasının kimliğini Azure Digital Twins örneğinizin Azure Digital Twins Veri Sahibi rolüne atayın.

    az dt role-assignment create --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 verilir. İşlev uygulamasının artık Azure dijital TWINS örneğinizdeki verilere erişme izinleri vardır.

Uygulama ayarlarını yapılandırma

İkinci ayar, Azure dijital TWINS örneğinizin URL 'sini içeren işlev için bir ortam değişkeni oluşturur. İşlev kodu, örneğinizi ifade etmek için bu değişkenin değerini kullanacaktır. Ortam değişkenleri hakkında daha fazla bilgi için bkz. işlev uygulamanızı yönetme.

Aşağıdaki komutu çalıştırarak yer tutucuları kaynaklarınızın ayrıntılarına göre 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 için ayarların listesidir ve artık ADT_SERVICE_URL.

Sanal bir cihazdan sanal telemetri IoT Hub işleme

Bir Azure Digital Twins grafiği, gerçek cihazlardan gelen telemetri verileriyle yönlendirilen bir grafiktir.

Bu adımda, IoT Hub'de kayıtlı simülasyon termostat cihazı, Azure Digital Twins'da temsil eden dijital ikize bağlay Azure Digital Twins. Simülasyon cihazı telemetri verileri yayma sırasında veriler, dijital ikizde karşılık gelen bir güncelleştirmeyi tetikleyen ProcessHubToDTEvents Azure işlevi aracılığıyla yönlendirilmiş olur. Bu şekilde dijital ikiz, gerçek cihazın verileriyle güncel kalır. Bu Azure Digital Twins, olay verilerini bir yerden diğerine yönlendirme işlemi yönlendirme olayları olarak adlandırılan bir işlemdir.

Simülasyon telemetrisini işleme, 1.00.2019 senaryosunun bu bölümünde gerçekleşir (ok B):

Tam bina senaryosu diyagramından önceki öğeleri gösteren bölümü vurgulayan alıntının diyagramı Azure Digital Twins.

Bu cihaz bağlantısını ayarlamak için tamamlanacak eylemler şu şekildedir:

  1. Simülasyon cihazı yönetecek bir IoT hub'ı oluşturma
  2. Bağlan aboneliğini ayarerek IoT hub'larını uygun Azure işlevine bağlayın
  3. Sanal cihazı IoT hub'a kaydetme
  4. Simülasyon cihazı çalıştırma ve telemetri oluşturma
  5. Canlı Azure Digital Twins görmek için sorgu oluşturma

IoT Hub örneği oluşturma

Azure Digital Twins, cihazları ve verilerini yönetmeye IoT HubAzure hizmeti olan azure hizmeti ile birlikte çalışacak şekilde tasarlanmıştır. Bu adımda, bu öğreticide örnek cihazı yönetecek bir IoT hub'ı ayarlayabilirsiniz.

Yeni Azure Cloud Shell IoT hub'ı oluşturmak için şu komutu kullanın:

az iot hub create --name <name-for-your-IoT-hub> --resource-group <your-resource-group> --sku S1

Bu komutun çıkışı, oluşturulan IoT hub'ı hakkında bilgidir.

IoT hub'ınıza verdiği adı kaydedin. Bunu daha sonra kullanacaksınız.

Bağlan IoT hub'larını Azure işlevine bağlayın

Ardından, IoT hub'ını daha önce yayımlamıştınız işlev uygulamasında processHubToDTEvents Azure işlevine bağlayın; böylece veriler IoT Hub'de cihazdan işlev aracılığıyla akışa Azure Digital Twins.

Bunu yapmak için azure işlevi uç nokta olarak IoT Hub aboneliği oluşturabilirsiniz. Bu, işlevi bir işlevde olan olaylara "abone IoT Hub.

Bu Azure portal,üst arama çubuğunda adını arayarak yeni oluşturduğunuz IoT hub'ınıza gidin. Hub menüsünden Olaylar'ı seçin ve + Olay Aboneliği'ne tıklayın.

Olay aboneliğini Azure portal gösteren IoT Hub ekran görüntüsü.

Bu seçenek seçerek Olay Aboneliği Oluştur sayfası görüntülenir.

Olay aboneliği Azure portal gösteren ekran görüntüsü.

Alanları aşağıdaki gibi doldurun (varsayılan olarak doldurulan alanlara yer verilmiştir):

  • OLAY ABONELIĞI AYRıNTıLARı > Ad: Olay aboneliğinize bir ad girin.
  • KONU AYRINTILARI > Sistem Konusu Adı: Sistem konusu için kullanmak üzere bir ad girin.
  • OLAY TÜRLERI > Olay Türlerine Filtrele: Menü seçeneklerinden Cihaz Telemetrisi'ne tıklayın.
  • UÇ NOKTA AYRINTILARI > Uç Nokta Türü: Menü seçeneklerinden Azure İşlevi'ne tıklayın.
  • UÇ NOKTA AYRINTILARI > nokta: Uç nokta seçin bağlantısını seçin; bu bağlantı Azure İşlevi Seç penceresini açar: Azure işlevi seçme penceresini gösteren Azure portal olay aboneliğinin ekran görüntüsü.
    • Aboneliğinizi, Kaynak grubu, İşlev uygulamasını ve İşlevi ( ProcessHubToDTEvents) doldurun. Bu değerlerden bazıları aboneliği seçdikten sonra otomatik olarak doldurmak için kullanılabilir.
    • Seçimi Onayla'yı seçin.

Olay Aboneliği Oluştur sayfasına geri dönüp Oluştur'a tıklayın.

Sanal cihazı IoT Hub

Bu bölüm, termostat67 IoT Hub bir cihaz gösterimi oluşturur. Simülasyon cihazı bu gösterime bağlanacak ve telemetri olayları bu şekilde cihazdan cihaza IoT Hub. IoT hub'ı, önceki adımda yer alan abone olunan Azure işlevinin dinlediğini, olayları almaya ve işlemeye devam etmeye hazır olduğunu gösterir.

Bu Azure Cloud Shell aşağıdaki komutla IoT Hub bir cihaz oluşturun:

az iot hub device-identity create --device-id thermostat67 --hub-name <your-IoT-hub-name> --resource-group <your-resource-group>

Çıkış, oluşturulan cihazla ilgili bilgilerdir.

Simülasyonu yapılandırma ve çalıştırma

Şimdi cihaz simülatörünü yapılandırın ve IoT Hub örneğinize veri gönderin.

Başlangıç olarak şu komutla IoT hub bağlantı dizesini edinebilirsiniz:

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>

Simülatörü bu IoT hub'ını ve IoT hub cihazına bağlamak için bu değerleri yerel projenizin cihaz simülatörü koduna takabilirsiniz.

Yeni bir Visual Studio penceresinde ( indirilen çözüm klasöründen) Device Simulator > DeviceSimulator.sln'i açın.

Not

Şimdi biri DeviceSimulator.sln, biri de AdtE2ESample.sln ile olmak Visual Studio iki farklı pencereniz olması gerekir.

Bu Çözüm Gezgini penceresindeki Visual Studio/ AzureIoTHub.cs öğesini seçerek düzenleme penceresinde açın. Aşağıdaki bağlantı dizesi değerlerini yukarıda toplanmış değerlerle değiştirebilirsiniz:

iotHubConnectionString = <your-hub-connection-string>
deviceConnectionString = <your-device-connection-string>

Dosyayı kaydedin.

Şimdi, ayar istediğiniz veri simülasyonu sonuçlarını görmek için araç çubuğunda şu düğmeyi kullanarak DeviceSimulator projesini çalıştırın:

DeviceSimulator projesi Visual Studio başlat düğmesinin ekran görüntüsü.

Bir konsol penceresi açılır ve sanal sıcaklık telemetri iletileri görüntülenir. Bu iletiler daha IoT Hub azure işlevi tarafından alınarak işlenecekleri bir yere gönderilir.

Gönderilen sıcaklık telemetrisini gösteren cihaz simülatörü konsol çıkışının ekran görüntüsü.

Bu konsolda başka bir şey yapmak zorunda değil, sonraki adımları tamamlarken çalışır durumda bırakın.

Sonuçları aşağıdaki gibi Azure Digital Twins

Daha önce yayımlamıştınız ProcessHubToDTEvents işlevi, IoT Hub verilerini dinler ve termostat67 ikizin Temperature özelliğini güncelleştirmek için Azure Digital Twins API'sini arar.

Verileri Azure Digital Twins görmek için AdtE2ESample projesinin açık olduğu Visual Studio pencerenize gidin ve projeyi çalıştırın.

Açılan proje konsolu penceresinde aşağıdaki komutu çalıştırarak dijital ikiz termostat67 tarafından bildirilen sıcaklıkları elde edin:

ObserveProperties thermostat67 Temperature

İki saniyede bir konsola kaydedilen Azure Digital Twins sıcaklıkların canlı olarak güncelleştirilmiş olduğunu görüyorsanız.

Not

Cihazdan alınan verilerin ikize yayılması birkaç saniye sürebilir. Veriler gelmeden önce ilk birkaç sıcaklık okuması 0 olarak gösterebilirsiniz.

Dijital ikiz termostat67'den gelen sıcaklık iletilerinin günlüğünü gösteren konsol çıkışının ekran görüntüsü.

Canlı sıcaklıklar günlüğünün başarıyla çalıştığını doğruladıktan sonra her iki proje de çalıştırmayı durdur. Öğreticinin Visual Studio kullanmaya devam edeceğiz ve bu pencereleri açık tutacağız.

Grafik Azure Digital Twins olayları yayma

Bu öğreticide şimdiye kadar, dış cihaz Azure Digital Twins nasıl güncelleştirilebilir olduğunu gördünüz. Şimdi bir dijital ikizde yapılan değişikliklerin Azure Digital Twins grafı aracılığıyla nasıl yayılana bakarak ikizleri hizmet içi verilerden güncelleştirerek güncelleştirebilirsiniz.

Bunu yapmak için ProcessDTRoutedData Azure işlevini kullanarak bağlı Thermostat ikizi güncelleştirildiğinde oda ikizlerini güncelleştirin. Güncelleştirme işlevselliği, 1-24 senaryonun bu bölümünde gerçekleşir (ok C):

Tam bina senaryosu diyagramından bir alıntının diyagramı, aşağıdaki öğeleri gösteren bölümü vurgulayan Azure Digital Twins.

Bu veri akışını ayarlamak için tamamlanacak eylemler şu şekildedir:

  1. Azure hizmetleri arasında veri taşımayı etkinleştirmek için bir event grid konusu oluşturma
  2. Azure Digital Twins event grid konu başlığına bağlanan bir uç nokta oluşturma
  3. İkiz özelliği değişiklik Azure Digital Twins uç noktasına gönderen bir yol ayarlama
  4. Uç noktadaki event grid konusunu dinleyen, buraya gönderilen ikiz özelliği değişiklik olaylarını alan ve grafikteki diğer ikizleri uygun şekilde güncelleştirmeye sahip bir Azure işlevi ayarlayın

Olay Kılavuzu konusunu oluşturma

Event Grid , Azure hizmetlerinden gelen olayları Azure 'daki diğer yerlere yönlendirmeye ve sunmaya yardımcı olan bir Azure hizmetidir. Bir kaynaktan belirli olayları toplamak için bir olay Kılavuzu konusu oluşturabilir ve daha sonra aboneler, olayları geldiği şekilde almak için konu üzerinde dinleme yapabilir.

Azure Cloud Shell bir olay Kılavuzu 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 olay Kılavuzu konusu hakkında bilgi içermektedir. Daha sonra kullanacağınız için, olay kılavuzunuza verdiğiniz adı kaydedin.

Uç noktayı oluşturma

Daha sonra, Azure dijital TWINS 'de bir Event Grid uç noktası oluşturun ve bu, örneğinizi olay Kılavuzu konu başlığına bağlayacaktır. Olay kılavuzunuzun adını ve gerektiğinde diğer yer tutucu alanlarını doldurarak aşağıdaki komutu kullanın.

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 komutun çıktısı, oluşturduğunuz uç nokta hakkında bilgi.

provisioningStateÇıktıda alanı bulun ve değerin "başarılı" olup olmadığını kontrol edin.

Azure portal Cloud Shell uç nokta sorgusunun sonucunun, bir provisioningState ile başarılı olduğunu gösteren ekran görüntüsü.

Ayrıca "sağlama" da olabilir, yani uç noktanın oluşturulduğu anlamına gelir. Bu durumda, birkaç saniye bekleyin ve uç noktanın durumunu denetlemek için aşağıdaki komutu çalıştırın. "Başarılı" olarak görene kadar tekrarlayın provisioningState .

az dt endpoint show --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> 

Daha sonra kullanacağınız için uç noktanızın adını kaydedin.

Rotayı oluşturma

Ardından, az önce oluşturduğunuz Event Grid uç noktasına olayları gönderen bir Azure dijital TWINS yolu oluşturun.

Bu, aşağıdaki CLı komutuyla yapılabilir (uç noktanızın adını ve gerektiğinde diğer yer tutucu alanlarını doldurabilirsiniz). Bu komut, ikizi grafiğinde oluşan tüm olayları iletir. Filtrelerikullanarak olayları yalnızca belirli olanlarla 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 komutun çıktısı, oluşturduğunuz rota hakkında bazı bilgiler.

Not

Uç noktaların (önceki adımdan), bunları kullanan bir olay yolu ayarlamadan önce sağlanması gerekir. Uç noktalar hazırlanmadığı için yol oluşturma başarısız olursa birkaç dakika bekleyip yeniden deneyin.

Bağlan Azure işlevi

Ardından ProcessDTRoutedData Azure işlevini daha önce oluşturduğunuz event grid konu başlığına abone olarak ekleyin. Böylece telemetri verileri termostat67 ikizden event grid konu başlığından işlevine akarak Azure Digital Twins'ye geri döner ve room21 ikizlerini buna göre günceller.

Bunu yapmak için, daha önce oluşturduğunuz event grid Event Grid ProcessDTRoutedData Azure işlevinize veri gönderen bir Event Grid aboneliği oluşturacağız.

Bu Azure portalüst arama çubuğunda adını arayarak olay kılavuzu konu başlığınıza gidin. + Olay Aboneliği'ni seçin.

Olay Azure portal oluşturmanın nasıl görüntü Event Grid ekran görüntüsü.

Bu olay aboneliğini oluşturma adımları, ilk Azure işlevini bu öğreticinin önceki IoT Hub abone olmanıza benzer. Bu kez, dinlemeniz gereken olay türü olarak Cihaz Telemetrisi belirtmenize gerek yok ve farklı bir Azure işlevine bağlanın.

Olay Aboneliği Oluştur sayfasında, alanları aşağıdaki gibi doldurun (varsayılan olarak doldurulan alanlara yer verilmiştir):

  • OLAY ABONELIĞI AYRıNTıLARı > Ad: Olay aboneliğinize bir ad girin.
  • UÇ NOKTA AYRINTILARI > Uç Nokta Türü: Menü seçeneklerinden Azure İşlevi'ne tıklayın.
  • UÇ NOKTA AYRINTILARI > nokta: Uç nokta seçin bağlantısını seçin; bu bağlantı bir Azure İşlevi Seç penceresi açar:
    • Aboneliğinizi, Kaynak grubu, İşlev uygulamasını ve İşlevi(ProcessDTRoutedData) doldurun. Bu değerlerden bazıları aboneliği seçdikten sonra otomatik olarak doldurmak için kullanılabilir.
    • Seçimi Onayla'yı seçin.

Olay Aboneliği Oluştur sayfasına geri dönüp Oluştur'a tıklayın.

Simülasyonu çalıştırma ve sonuçları görme

Artık olaylar, ikizleri uygun şekilde güncelleştirmek için simülasyon cihazından Azure Digital Twins grafikten Azure Digital Twins özelliğine sahip olacaktır. Bu bölümde cihaz simülatörünü yeniden çalıştırarak ayarlamış olduğunuz olay akışının tamamını çalıştıracak ve canlı sonuçları görmek Azure Digital Twins sorgulayabilirsiniz

DeviceSimulator Visual Studio açık olduğu bir proje penceresine gidin ve projeyi çalıştırın.

Cihaz simülatörünü daha önce çalışırken olduğu gibi, bir konsol penceresi açılır ve sıcaklık simülasyonu telemetri iletileri görüntülenir. Bu olaylar, daha önce termostat67 ikizlerini güncelleştirmek için ayarda ayar akışında ve ardından yakın zamanda room21 ikizlerini eş eş olacak şekilde güncelleştirmek için ayar akışında ilerler.

Gönderilen sıcaklık telemetrisini gösteren cihaz simülatörü konsol çıkışının ekran görüntüsü.

Bu konsolda başka bir şey yapmak zorunda değil, sonraki adımları tamamlarken çalışır durumda bırakın.

Verileri Azure Digital Twins görmek için AdtE2ESample projesinin açık olduğu Visual Studio pencerenize gidin ve projeyi çalıştırın.

Açılan proje konsolu penceresinde aşağıdaki komutu çalıştırarak hem dijital ikiz termostat67 hem de dijital ikiz odası21 tarafından bildirilen sıcaklıkları elde edin.

ObserveProperties thermostat67 Temperature room21 Temperature

İki saniyede bir konsola kaydedilen Azure Digital Twins sıcaklıkların canlı olarak güncelleştirilmiş olduğunu görüyorsanız. room21 sıcaklığının termostat67 güncelleştirmeleri ile eşlenecek şekilde güncelleştiriliyor olduğunu fark edin.

Termostat ve oda sıcaklık iletilerinin günlüğünü gösteren konsol çıkışının ekran görüntüsü.

Örneğinizin canlı sıcaklıklar günlüğünün başarıyla çalıştığını doğruladıktan sonra her iki proje de çalıştırmayı durdur. Öğretici tamamlandıktan sonra Visual Studio pencerelerini de kapat bulabilirsiniz.

Gözden geçirme

Bu öğreticide yerleşik olarak edinen senaryonun bir gözden geçirmesini burada bulabilirsiniz.

  1. Örnek Azure Digital Twins bir zemini, bir odayı ve termostatı dijital olarak temsil eder (aşağıdaki diyagramda A bölümüyle gösterilmiştir)
  2. Simülasyon cihazı telemetrisi, ProcessHubToDTEvents Azure işlevinin telemetri olaylarını dinlediğini IoT Hub'ye gönderilir. ProcessHubToDTEvents Azure işlevi, termostat67'de Temperature özelliğini ayarlamak için bu olaylarla ilgili bilgileri kullanır (diyagramda B okunda).
  3. Azure Digital Twins özelliği değişiklik olayları, ProcessDTRoutedData Azure işlevinin olayları dinleyen bir olay kılavuzu konu başlığına yönlendirildi. ProcessDTRoutedData Azure işlevi, room21'de Temperature özelliğini ayarlamak için bu olaylarda yer alan bilgileri kullanır (diyagramda C oku).

Çeşitli Azure hizmetleri aracılığıyla bir cihazdan cihaza gelen ve bu cihazdan dışarı Azure Digital Twins gösteren tam bina senaryosunun diyagramı.

Kaynakları temizleme

Bu öğreticiyi tamamladıktan sonra, ne yapmak istediğinize bağlı olarak kaldırmak istediğiniz kaynakları seçebilirsiniz.

  • Bu öğreticide oluşturduğunuz kaynaklara ihtiyacınız yoksa az group delete komutuyla Azure Digital Twins örneğini ve diğer tüm kaynakları bu makaleden silebilirsiniz. Bu, kaynak grubunun yanı sıra bir kaynak grubunda yer alan tüm Azure kaynaklarını siler.

    Önemli

    Silinen kaynak grupları 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.

    komutunu Azure Cloud Shellve 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 ayar istediğiniz Azure Digital Twins örneğini kullanmaya devam etmek, ancak modellerinin, ikizlerinin ve ilişkilerinin bir bölümü veya hepsini temizlemek için, kaldırmak istediğiniz öğeleri silmek için bir Azure Cloud Shell penceresinde az dt CLI komutlarını kullanabilirsiniz.

    Bu seçenek bu öğreticide oluşturulan diğer Azure kaynaklarını (IoT Hub, Azure İşlevleri vb.) kaldırmaz. Her kaynak türüne uygun dt komutlarını kullanarak bunları tek tek silebilirsiniz.

Proje klasörünü yerel makineden de silmek istiyor olabilirsiniz.

Sonraki adımlar

Bu öğreticide, canlı cihaz verileriyle yönlendirilen Azure Digital Twins senaryoyu oluşturdunız.

Ardından, öğreticide üzerinde çalıştığın öğeler hakkında daha fazla bilgi edinmek için kavram belgelerine göz atabilirsiniz: