Öğretici: Event Grid ve Logic Apps kullanarak Azure IoT Hub olayları hakkında e-posta bildirimleri gönderme

Azure Event Grid, aşağı akış iş uygulamalarınızda eylemler tetikleyerek IoT Hub'daki olaylara karşılık vermenize olanak tanır.

Bu makalede IoT Hub ve Event Grid kullanan bir örnek yapılandırmada yol gösterir. Sonunda, bir cihaz IoT hub'ınıza her bağlandığında veya bağlantı kestiğinde bildirim e-postası göndermek için ayarlanmış bir Azure mantıksal uygulamanız vardır. Event Grid, kritik cihazların bağlantısının kesilmesi hakkında zamanında bildirim almak için kullanılabilir. Ölçümlerin ve Tanılamaların günlüklerde/uyarılarda gösterilmesi birkaç dakika (örneğin 20 dakika veya daha fazla) sürebilir. Kritik altyapı için daha uzun işleme süreleri kabul edilemez.

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

Ön koşullar

  • Office 365 Outlook veya Outlook.com gibi Azure Logic Apps tarafından desteklenen herhangi bir e-posta sağlayıcısından gelen bir e-posta hesabı. Bu e-posta hesabı olay bildirimlerini göndermek için kullanılır.
  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

IoT hub oluşturma

Portaldaki Azure Cloud Shell terminalini kullanarak hızla yeni bir IoT hub'ı oluşturabilirsiniz.

  1. Azure Portal oturum açın.

  2. Sayfanın sağ üst kısmında Cloud Shell düğmesini seçin.

    Screenshot of how to open the Azure Cloud Shell from the Azure portal.

  3. Yeni bir kaynak grubu oluşturmak için şu komutu çalıştırın:

    az group create --name {your resource group name} --location westus
    
  4. IoT hub'ı oluşturmak için aşağıdaki komutu çalıştırın:

    az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1 
    
  5. Cloud Shell terminalini simge durumuna küçültün. Öğreticinin ilerleyen bölümlerinde kabuğa geri döneceksiniz.

Mantıksal uygulama oluşturma

Ardından bir mantıksal uygulama oluşturun ve IoT hub'ından gelen istekleri işleyen bir HTTP Event Grid tetikleyicisi ekleyin.

Mantıksal uygulama kaynağı oluşturma

  1. Azure portalında Kaynak oluştur'u seçin, ardından arama kutusuna "mantıksal uygulama" yazın ve return'u seçin. Sonuçlardan Mantıksal Uygulama'ya tıklayın.

    Screenshot of how to select the logic app from a list of resources.

  2. Sonraki ekranda, olşutur'yi seçin.

  3. Mantıksal uygulamanıza aboneliğinizde benzersiz bir ad verin, ardından IoT hub'ınız ile aynı aboneliği, kaynak grubunu ve konumu seçin. Tüketim planı türünü seçin.

    Screenshot of how to configure your logic app.

  4. Gözden geçir ve oluştur’u seçin.

  5. Ayarlarınızı doğrulayın ve oluştur'u seçin.

  6. Kaynak oluşturulduktan sonra Kaynağa git'i seçin.

  7. Logic Apps Tasarım Aracı sayfayı aşağı kaydırarak Şablonlar'ı görün. Mantıksal uygulamanızı sıfırdan oluşturabilmeniz için Boş Mantıksal Uygulama'yı seçin.

    Screenshot of the Logic App Designer templates.

Tetikleyici seçme

Tetikleyici, mantıksal uygulamanızı başlatan belirli bir olaydır. Bu öğreticide, iş akışını başlatan tetikleyici HTTP üzerinden bir istek alır.

  1. Bağlayıcılar ve tetikleyiciler arama çubuğunda HTTP yazın.

  2. Sonuçları kaydırın ve İstek - Tetikleyici olarak bir HTTP isteği alındığında'ı seçin.

    Select HTTP request trigger

  3. Şema oluşturmak için örnek yük kullan öğesini seçin.

    Use sample payload

  4. Aşağıdakini json kopyalayın ve yer tutucu değerlerini kendi yer tutucunuzla <> değiştirin.

  5. Cihaz bağlı olay şeması JSON'unu metin kutusuna yapıştırın ve bitti'yi seçin:

      [{  
       "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
       "topic": "/SUBSCRIPTIONS/<azure subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
       "subject": "devices/LogicAppTestDevice",
       "eventType": "Microsoft.Devices.DeviceConnected",
       "eventTime": "2018-06-02T19:17:44.4383997Z",
       "data": {
           "deviceConnectionStateEventInfo": {
             "sequenceNumber":
               "000000000000000001D4132452F67CE200000002000000000000000000000001"
           },
         "hubName": "<hub name>",
         "deviceId": "LogicAppTestDevice",
         "moduleId" : "DeviceModuleID"
       }, 
       "dataVersion": "1",
       "metadataVersion": "1"
     }]
    

    Önemli

    JSON kod parçacığını Doğrudan İstek Gövdesi JSON Şeması kutusuna değil, Şema oluşturmak için örnek yükü kullan bağlantısı tarafından sağlanan kutuya yapıştırdığınızdan emin olun. Örnek yük bağlantısı, JSON parçacığını temel alarak JSON içeriği oluşturmanın bir yolunu sağlar. İstek gövdesinde biten son JSON, JSON kod parçacığından farklıdır.

    Bu olay, bir cihaz bir IoT hub'ına bağlandığında yayımlanır.

Dekont

İsteğinize application/json olarak ayarlanmış bir content-Type üst bilgisi eklemeyi unutmayın ifadesini içeren bir açılır bildirim alabilirsiniz. Bu öneriyi güvenle yoksayabilir ve sonraki bölüme geçebilirsiniz.

Bir işlem oluşturma

Eylemler, tetikleyici mantıksal uygulama iş yükünü başlattıktan sonra gerçekleşen adımlardır. Bu öğreticide, e-posta sağlayıcınızdan bir e-posta bildirimi gönderme eylemi kullanılır.

  1. Yeni adım'ı seçin. Bir eylem seçmenizi isteyen bir pencere görüntülenir.

  2. Outlook'u arayın.

  3. E-posta sağlayıcınıza uygun bağlayıcıyı bulun ve seçin. Bu öğreticide Outlook.com kullanılır. Diğer e-posta sağlayıcılarının adımları da bunlara benzer. Alternatif olarak, oturum açma adımını atlamak için Office 365 Outlook'u kullanın.

    Select email provider connector

  4. E-posta gönder (V2) eylemini seçin.

  5. Oturum aç'ı seçin ve e-posta hesabınızda oturum açın. Uygulamanın bilgilerinize erişmesine izin vermek için Evet'i seçin.

  6. E-posta şablonunuzu oluşturun.

    • Kime: Bildirim e-postalarını alacak olan e-posta adresini girin. Bu öğreticide, test için erişebileceğiniz bir e-posta hesabı kullanın.

    • Konu: Konu metnini doldurun. Konu metin kutusuna tıkladığınızda, eklenecek dinamik içeriği seçebilirsiniz. Örneğin, bu öğreticide kullanılır IoT Hub alert: {eventType}. Dinamik içerik'i göremiyorsanız Dinamik içerik görünümünü açmak veya kapatmak için Dinamik içerik ekle köprüsüne tıklayın.

    öğesini seçtikten eventTypesonra şu ana kadarki e-posta formu çıkışını görürsünüz. E-postanızın gövdesini düzenlemek için Gönder ve e-posta (V2) öğesini seçin.

    Screenshot of the condensed body output form.

    • Gövde: E-postanızın metnini yazın. Olay verilerine göre dinamik içerik eklemek için seçici aracından JSON özelliklerini seçin. Dinamik içeriği göremiyorsanız, Gövde metin kutusu altındaki Dinamik içerik ekle köprüsünü seçin. İstediğiniz alanları göstermezse, önceki eylemden alanları dahil etmek için Dinamik içerik ekranındaki Daha fazla seçeneğine tıklayın.

    E-posta şablonunuz, aşağıdaki örneğe benzer görünebilir:

    Screenshot of how to create an event email in the template.

  7. Logic Apps Tasarımcısı’nda Kaydet’i seçin.

HTTP URL'sini kopyalama

Logic Apps Tasarım Aracı ayrılmadan önce mantıksal uygulamanızın tetikleyici için dinlediği URL'yi kopyalayın. Bu URL'yi, Event Grid'i yapılandırmak için kullanırsınız.

  1. Bir HTTP isteği alındığında tetikleyici yapılandırma kutusunu tıklayarak genişletin.

  2. Yanındaki kopyala düğmesini seçerek HTTP POST URL değerini kopyalayın.

    Copy the HTTP POST URL

  3. Sonraki bölümde başvurabilmek için bu URL'yi saklayın.

IoT Hub olayları için aboneliği yapılandırma

Bu bölümde, IoT Hub'ınızı gerçekleşen olayları yayımlamak için yapılandıracaksınız.

  1. Azure portalında IoT Hub'ınıza gidin. Azure panonuzdan IoT Hub'ı seçip kaynak listesinden IoT hub örneğinizi seçerek IoT hub'ınızı bulabilirsiniz.

  2. Olaylar'ı seçin.

    Open the Event Grid details

  3. Olay aboneliği’ni seçin.

    Create new event subscription

  4. Olay aboneliğini aşağıdaki değerlerle oluşturun:

    1. OLAY ABONELİK AYRINTILARI bölümünde:

      1. Olay aboneliği için bir ad belirtin.
      2. Olay Şeması için Event Grid Şeması'nı seçin.
    2. KONU AYRINTILARI bölümünde:

      1. Konu türü'nün IoT Hub olarak ayarlandığını doğrulayın.
      2. IoT hub adının Kaynak alanındaki değer olarak ayarlandığını doğrulayın.
      3. Sizin için oluşturulacak sistem konusu için bir ad girin. Sistem konuları hakkında bilgi edinmek için bkz . Sistem konularına genel bakış.
    3. OLAY TÜRLERİ bölümünde:

      1. Olay Türlerine Filtrele açılan menüsünü seçin.

      2. Cihaz Oluşturuldu ve Cihaz Silindi onay kutularının seçimini kaldırın ve yalnızca Cihaz Bağlan ve Cihaz Bağlantısı Kesik onay kutularını seçili bırakın.

        select subscription event types

    4. UÇ NOKTA AYRINTILARI bölümünde:

      1. Uç Nokta Türü'nü Web Kancası olarak seçin.
      2. Bir uç nokta seçin'i seçin ve mantıksal uygulamanızdan kopyaladığınız URL’yi yapıştırıp seçimi onaylayın.

      select endpoint url

      İşiniz bittiğinde, bölme aşağıdaki örnekteki gibi görünmelidir:

      Screenshot of your 'Create Event Subscription' page in the Azure portal.

  5. Oluştur seçeneğini belirleyin.

Telemetriye bağlanan ve telemetri gönderen yeni bir cihazın benzetimini yapın

Azure CLI'yi kullanarak cihaz bağlantısının benzetimini hızlı bir şekilde yaparak mantıksal uygulamanızı test edin.

  1. Terminalinizi yeniden açmak için Cloud Shell düğmesini seçin.

  2. Simülasyon cihazı kimliği oluşturmak için aşağıdaki komutu çalıştırın:

    az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
    

    İşlem bir dakika sürebilir. Konsolunuz oluşturulduktan sonra konsolunuzda bir JSON çıktısı görürsünüz.

  3. Cihazınızı IoT Hub'a bağlama ve telemetri gönderme benzetimini yapmak için aşağıdaki komutu çalıştırın:

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  4. Simülasyon cihazı IoT Hub'a bağlandığında size "Cihaz Bağlan ed" olayını bildiren bir e-posta alırsınız.

  5. Simülasyon tamamlandığında size "DeviceDisconnected" olayını bildiren bir e-posta gönderilir.

    Screenshot of the email you should receive.

Kaynakları temizleme

Bu öğreticide Azure aboneliğinize ücret uygulanmasına neden olan kaynaklar kullanılmıştır. Öğreticiyi denemeyi ve sonuçlarınızı test etme işlemini tamamladığınızda, saklamak istemediğiniz kaynakları devre dışı bırakın veya silin.

Bu öğreticide oluşturulan tüm kaynakları silmek için kaynak grubunu silin.

  1. Kaynak grupları'nı ve ardından bu öğretici için oluşturduğunuz kaynak grubunu seçin.

  2. Kaynak grubu bölmesinde Kaynak grubunu sil'i seçin. Kaynak grubu adını girmeniz istenir ve ardından bunu silebilirsiniz. Burada bulunan tüm kaynaklar da kaldırılır.

Sonraki adımlar

Desteklenen Mantıksal Uygulama bağlayıcısı tam listesi için bkz.