Öğ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.
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:
- Örneğin ana bilgisayar adı. Ana bilgisayar adını Azure Portal bulabilirsiniz.
- Örneği oluşturmak için kullandığınız Azure aboneliği . Adı veya KIMLIĞI çalışır durumda. Aboneliğinizi, Azure Portalörneğinizin genel bakış sayfasında bulabilirsiniz.
Ortamınızı Azure CLI’ye hazırlama
Azure Cloud Shell'Da Bash ortamını kullanın.
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.
Öğ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.
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:
AdtE2ESample projesinin açık olduğu Visual Studio pencerenizde, araç çubuğunda bu düğmeyle projeyi çalıştırın:
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.
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.
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.
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.
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_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> --consumption-plan-location <location> --runtime dotnet --resource-group <resource-group>Daha sonra, işlevleri sıkıştırarak yeni Azure işlev uygulamanızda yayımlayabilirsiniz .
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.
Terminalinizde, projeyi yayımlamak için aşağıdaki komutu çalıştırın:
dotnet publish -c ReleaseBu komut projeyi digital-twins-samples-master\AdtSampleApp\SampleFunctionsApp\bin\Release\netcoreapp 3.1 \ Publish dizinine yayınlar.
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.zipCmdlet '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.
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:
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.
İş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.
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):
Bu cihaz bağlantısını ayarlamak için tamamlanacak eylemler şu şekildedir:
- Simülasyon cihazı yönetecek bir IoT hub'ı oluşturma
- Bağlan aboneliğini ayarerek IoT hub'larını uygun Azure işlevine bağlayın
- Sanal cihazı IoT hub'a kaydetme
- Simülasyon cihazı çalıştırma ve telemetri oluşturma
- 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.
Bu seçenek seçerek Olay Aboneliği Oluştur sayfası görüntülenir.
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 > Uç 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ğ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:
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.
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.
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):
Bu veri akışını ayarlamak için tamamlanacak eylemler şu şekildedir:
- Azure hizmetleri arasında veri taşımayı etkinleştirmek için bir event grid konusu oluşturma
- Azure Digital Twins event grid konu başlığına bağlanan bir uç nokta oluşturma
- İkiz özelliği değişiklik Azure Digital Twins uç noktasına gönderen bir yol ayarlama
- 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.
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.
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 > Uç 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.
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.
Ö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.
- Ö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)
- 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).
- 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).
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:
