İkizden ikize olay işlemeyi ayarlama

Bu makalede, grafikteki bir dijital ikiz güncelleştirildiğinde bu bilgilerden etkilenen grafikteki ilişkili ikizlerin de güncelleştirilebilmesi için ikizden ikize olay gönderme işlemi gösterilmektedir. Bu olay işleme, IoT Hub gibi dış kaynaklardan Azure Digital Twins'e ulaşan verilerin grafın tamamına yayıldığı tam olarak bağlı bir Azure Digital Twins grafiği oluşturmanıza yardımcı olur.

Bu ikizden ikize olay işlemeyi ayarlamak için ikiz yaşam döngüsü olaylarını izleyen bir Azure işlevi oluşturacaksınız. İşlev, grafikteki diğer ikizleri hangi olayların etkilemesi gerektiğini tanır ve etkilenen ikizleri uygun şekilde güncelleştirmek için olay verilerini kullanır.

Önkoşullar

İkizden ikize işlemeyi ayarlamak için birlikte çalışabileceğiniz bir Azure Digital Twins örneği gerekir. Örnek oluşturma yönergeleri için bkz . Azure Digital Twins örneği ve kimlik doğrulaması ayarlama. Örnek arasında veri göndermek istediğiniz en az iki ikiz içermelidir.

İsteğe bağlı olarak, ikizleriniz için IoT Hub aracılığıyla otomatik telemetri alımını da ayarlamak isteyebilirsiniz. Bu işlem, ikizden ikize veri göndermek için gerekli değildir, ancak ikiz grafiğinin canlı cihaz telemetrisi tarafından yönlendirildiği eksiksiz bir çözümün önemli bir parçasıdır.

Uç noktaya ikiz olayları gönderme

İkizden ikize olay işlemeyi ayarlamak için, Azure Digital Twins'de bir uç nokta ve bu uç noktaya giden bir yol oluşturarak işe başlayın. Bir güncelleştirmeden geçen ikizler, güncelleştirme olayları hakkındaki bilgileri uç noktaya göndermek için yolu kullanır (Event Grid bunları daha sonra alıp işlenmek üzere bir Azure işlevine geçirebilir).

Event Grid konusunu oluşturma

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 olayları almak için konuyu dinleyebilir.

Azure CLI'da aşağıdaki komutu çalıştırarak bir Event Grid konusu oluşturun:

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 konusu hakkındaki bilgilerdir. Event Grid konu başlığınıza girdiğiniz adı kaydedin çünkü daha sonra kullanacaksınız.

Uç noktayı oluşturma

Ardından Azure Digital Twins'de örneğinizi Event Grid konunuza bağlayacak bir Event Grid uç noktası oluşturun. Önceki adımdaki Event Grid konunuzun 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 bilgidir.

Çıktıdaki provisioningState alanı arayın ve değerin "Başarılı" olup olmadığını denetleyin.

Screenshot of the result of the endpoint query in the Cloud Shell of the Azure portal, showing the endpoint with a provisioningState of Succeeded.

"Sağlama" da diyebilir, yani uç nokta hala oluşturulmakta. Öyleyse, birkaç saniye bekleyin ve uç noktanın durumunu denetlemek için aşağıdaki komutu çalıştırın. "Başarılı" ifadesini gösterene provisioningState kadar yineleyin.

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.

Yolu oluşturma

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

Önceki adımdaki uç noktanızın adını ve gerektiğinde diğer yer tutucu alanlarını doldurarak aşağıdaki CLI komutunu kullanın. Bu komut, ikiz grafiğinde gerçekleşen tüm olayları iletir.

Bahşiş

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 komutun çıkışı, oluşturduğunuz yol hakkında bazı bilgilerdir.

Dekont

Bunları kullanan bir olay yolu ayarlayabilmeniz için önce uç noktaların (önceki adımdaki) sağlama işleminin tamamlanmış olması gerekir. Uç noktalar hazır olmadığı için yol oluşturma işlemi başarısız olursa, birkaç dakika bekleyip yeniden deneyin.

İkizleri güncelleştirmek için Azure işlevi oluşturma

Ardından uç noktayı dinleyecek ve rota üzerinden gönderilen ikiz olaylarını alacak bir Azure işlevi oluşturun. İşlevin mantığı, diğer ikizlerin güncelleştirilmesi gereken diğer ikizleri belirlemek ve ardından güncelleştirmeleri gerçekleştirmek için olaylardaki bilgileri kullanmalıdır.

  1. İlk olarak yeni bir Azure İşlevleri projesi oluşturun.

    Bunu Visual Studio kullanarak yapabilirsiniz (yönergeler için bkz. Visual Studio kullanarak Azure İşlevleri geliştirme), Visual Studio Code (yönergeler için bkz. Visual Studio Code kullanarak Azure'da C# işlevi oluşturma) veya Azure CLI (yönergeler için bkz. Komut satırından Azure'da C# işlevi oluşturma).

  2. Projenize aşağıdaki paketleri ekleyin (Visual Studio NuGet paket yöneticisini veya komut satırı aracında dotnet add package komutunu kullanabilirsiniz).

  3. İşlevinizin mantığını doldurun. Başlamanıza yardımcı olması için azure-digital-twins-getting-started deposundaki çeşitli senaryoların örnek işlev kodunu görüntüleyebilirsiniz.

  4. tercih ettiğiniz yöntemi kullanarak işlevi Azure'da yayımlayın.

    İşlevi Visual Studio kullanarak yayımlama yönergeleri için bkz. Visual Studio kullanarak Azure İşlevleri geliştirme. İşlevi Visual Studio Code kullanarak yayımlama yönergeleri için bkz. Visual Studio Code kullanarak Azure'da C# işlevi oluşturma. İşlevi Azure CLI kullanarak yayımlama yönergeleri için bkz. Komut satırından Azure'da C# işlevi oluşturma.

İşlevi yayımlama işlemi tamamlandıktan sonra, yayımlama işleminin başarılı olduğunu doğrulamak için bu Azure CLI komutunu kullanabilirsiniz. Kaynak grubunuz için yer tutucular, işlev uygulamanızın adı ve belirli işlevinizin adı vardır. komutu işlevinizle ilgili bilgileri yazdırır.

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

İşlev uygulamasını yapılandırma

İşlevinizin Azure Digital Twins'e erişebilmesi için önce örnek hakkında bazı bilgilere ve erişim iznine ihtiyacı vardır. Bu bölümde işlev için bir erişim rolü atayacaksınız ve uygulama ayarlarını örneği bulup erişebilecek şekilde yapılandıracaksınız.

Azure Cloud Shell'de veya yerel bir Azure CLI'da aşağıdaki komutları çalıştırın.

Dekont

Bu bölüm, izin verme ve temsilci atama dahil olmak üzere Azure kaynaklarına kullanıcı erişimini yönetme izinleri olan bir Azure kullanıcısı tarafından tamamlanmalıdır. Bu gereksinimi karşılayan yaygın roller Sahip, Hesap yöneticisi veya Kullanıcı Erişimi Yönetici istrator ve Katkıda Bulunan birleşimidir. Azure Digital Twins rolleri için izin gereksinimleri hakkında daha fazla bilgi için bkz . Örnek ve kimlik doğrulaması ayarlama.

Erişim rolü atama

Azure işlevine bir taşıyıcı belirtecin geçirilmesi gerekir. Taşıyıcı belirtecinin geçirildiğinden emin olmak için işlev uygulamasına Azure Digital Twins örneğiniz için Azure Digital Twins Veri Sahibi rolünü verin. Bu rol işlev uygulamasına örnekte veri düzlemi etkinlikleri gerçekleştirme izni verir.

  1. İşleviniz için sistem tarafından yönetilen bir kimlik oluşturmak için aşağıdaki komutu kullanın (işlevin zaten bir kimliği varsa, bu komut ayrıntılarını yazdırır). Çıktıdaki principalId alanı not alın. Sonraki adımda işleve izin verebilmek için işleve başvurmak için bu kimliği kullanacaksınız.

    az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>	
    
  2. İşleve principalIdAzure Digital Twins örneğinizin Azure Digital Twins Veri Sahibi rolünü vermek için aşağıdaki komuttaki değeri kullanın.

    az dt role-assignment create --dt-name <your-Azure-Digital-Twins-instance> --assignee "<principal-ID>" --role "Azure Digital Twins Data Owner"
    

Uygulama ayarlarını yapılandırma

Ardından, Azure Digital Twins örneğinizin URL'sini işleviniz için bir ortam değişkeni ayarlayarak erişilebilir hale getirin.

Bahşiş

Azure Digital Twins örneğinin URL'si, örneğinizin ana bilgisayar adının başına https:// eklenerek oluşturulur. Ana bilgisayar adını ve örneğinizin tüm özelliklerini görmek için komutunu çalıştırın az dt show --dt-name <your-Azure-Digital-Twins-instance>.

Aşağıdaki komut, örneğinize erişmesi gereken her durumda işlevinizin kullanacağı örneğinizin URL'si için bir ortam değişkeni ayarlar.

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>"

İşlevi uç noktaya Bağlan

Ardından Azure işlevinizi daha önce oluşturduğunuz Event Grid uç noktasına abone yapın. Bunun yapılması, verilerin Event Grid konusu aracılığıyla güncelleştirilmiş bir ikizden işleve akmasını sağlar ve bu da olay bilgilerini kullanarak gerektiğinde diğer ikizleri güncelleştirebilir.

Azure işlevinize abone olmak için daha önce oluşturduğunuz Event Grid konusundan Azure işlevinize veri gönderen bir Event Grid aboneliği oluşturacaksınız.

Abonelik kimliğiniz, kaynak grubunuz, işlev uygulamanız ve işlev adınız için yer tutucuları doldurarak aşağıdaki CLI komutunu kullanın.

az eventgrid event-subscription create --name <name-for-your-event-subscription> --source-resource-id /subscriptions/<subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.EventGrid/topics/<your-event-grid-topic> --endpoint-type azurefunction --endpoint /subscriptions/<subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app-name>/functions/<function-name> 

Artık işleviniz Event Grid konu başlığınız aracılığıyla olayları alabilir. Veri akışı kurulumu tamamlandı.

Sonuçları test edin ve doğrulayın

Son adım, bir ikizi güncelleştirerek ve ilgili ikizlerin Azure işlevinizdeki mantığa göre güncelleştirilip güncelleştirildiğini denetleyerek akışın çalıştığını doğrulamaktır.

İşlemi başlatmak için olay akışının kaynağı olan ikizini güncelleştirin. Güncelleştirmeyi yapmak için Azure CLI, Azure Digital Twins SDK veya Azure Digital Twins REST API'lerini kullanabilirsiniz.

Ardından ilgili ikiz için Azure Digital Twins örneğinizi sorgula. Azure CLI veya Azure Digital Twins REST API'leri ve SDK'sını kullanabilirsiniz. İkizin verileri aldığını ve beklendiği gibi güncelleştirildiğini doğrulayın.

Sonraki adımlar

Bu makalede, Azure Digital Twins'de ikizden ikize olay işlemeyi ayarlarsınız. Ardından, IoT Hub cihazlarından gelen telemetriye göre bu akışı otomatik olarak tetikleyen bir Azure işlevi ayarlayın: IoT Hub'dan telemetri alma.