Öğretici: Mantıksal uygulamalar'ı kullanarak Azure IOT Hub olayları hakkında e-posta bildirimleri göndermeTutorial: Send email notifications about Azure IoT Hub events using Logic Apps

Azure Event Grid, aşağı akış iş uygulamalarınızda eylemler tetikleyerek IoT Hub'daki olaylara karşılık vermenize olanak tanır.Azure Event Grid enables you to react to events in IoT Hub by triggering actions in your downstream business applications.

Bu makale IoT Hub ve Event Grid kullanan örnek bir yapılandırmada size yol gösterir.This article walks through a sample configuration that uses IoT Hub and Event grid. Sonuna geldiğinizde, IoT hub'ınıza her cihaz eklendiğinde bildirim e-postası gönderecek şekilde ayarlanmış bir Azure mantıksal uygulamanız olacaktır.By the end, you will have an Azure logic app set up to send a notification email every time a device is added to your IoT hub.

ÖnkoşullarPrerequisites

  • Azure Logic Apps tarafından desteklenen Office 365 Outlook, Outlook.com veya Gmail gibi bir e-posta sağlayıcısından alınmış e-posta hesabı.An email account from any email provider that is supported by Azure Logic Apps, like Office 365 Outlook, Outlook.com, or Gmail. Bu e-posta hesabı olay bildirimlerini göndermek için kullanılır.This email account is used to send the event notifications. Desteklenen Logic App bağlayıcılarının tam listesi için bkz. Bağlayıcılara genel bakışFor a complete list of supported Logic App connectors, see the Connectors overview
  • Etkin bir Azure hesabı.An active Azure account. Hesabınız yoksa ücretsiz bir hesap oluşturabilirsiniz.If you don't have one, you can create a free account.
  • Azure'da bir IoT Hub'ı.An IoT Hub in Azure. Henüz oluşturmadıysanız, yönergeler için bkz. IoT Hub'ı kullanmaya başlama.If you haven't created one yet, see Get started with IoT Hub for a walkthrough.

Mantıksal uygulama oluşturmaCreate a logic app

İlk olarak, bir mantıksal uygulama oluşturun ve sanal makineniz için kaynak grubunu izleyen bir Olay kılavuzu tetikleyicisi ekleyin.First, create a logic app and add an Event grid trigger that monitors the resource group for your virtual machine.

Mantıksal uygulama kaynağı oluşturmaCreate a logic app resource

  1. Azure portalında Kaynak oluştur > Tümleştirme > Mantıksal Uygulama’yı seçin.In the Azure portal, select Create a resource > Integration > Logic App.

    Mantıksal uygulama oluşturma

  2. Mantıksal uygulamanıza aboneliğiniz içinde benzersiz olan bir ad verin, ardından IoT Hub'ınızla aynı aboneliği, kaynak grubunu ve konumu seçin.Give your logic app a name that's unique in your subscription, then select the same subscription, resource group, and location as your IoT hub.

  3. Oluştur'u seçin.Select Create.

  4. Kaynak oluşturulduktan sonra mantıksal uygulamanıza gidin.Once the resource is created, navigate to your logic app.

  5. Logic Apps tasarımcı, daha hızlı bir şekilde başlamak için ortak desenlere ilişkin şablonlar gösterir.The Logic Apps Designer shows you templates for common patterns so you can get started faster. Mantıksal uygulamanızı sıfırdan oluşturabilmek için Logic App Tasarımcısı'nda Şablonlar'ın altından Boş Mantıksal Uygulama'yı seçin.In the Logic App Designer under Templates, choose Blank Logic App so that you can build your logic app from scratch.

Tetikleyici seçmeSelect a trigger

Tetikleyici, mantıksal uygulamanızı başlatan belirli bir olaydır.A trigger is a specific event that starts your logic app. Bu öğreticide, iş akışını başlatan tetikleyici HTTP üzerinden bir istek alır.For this tutorial, the trigger that sets off the workflow is receiving a request over HTTP.

  1. Bağlayıcılar ve tetikleyiciler arama çubuğunda HTTP yazın.In the connectors and triggers search bar, type HTTP.

  2. Tetikleyici olarak İstek - Bir HTTP isteği alındığında'yı seçin.Select Request - When an HTTP request is received as the trigger.

    HTTP istek tetikleyicisini seçme

  3. Şema oluşturmak için örnek yük kullanma öğesini seçin.Select Use sample payload to generate schema.

    HTTP istek tetikleyicisini seçme

  4. Aşağıdaki örnek JSON kodunu metin kutusuna yapıştırın ve Bitti'yi seçin:Paste the following sample JSON code into the text box, then select Done:

    [{
      "id": "56afc886-767b-d359-d59e-0da7877166b2",
      "topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
      "subject": "devices/LogicAppTestDevice",
      "eventType": "Microsoft.Devices.DeviceCreated",
      "eventTime": "2018-01-02T19:17:44.4383997Z",
      "data": {
        "twin": {
          "deviceId": "LogicAppTestDevice",
          "etag": "AAAAAAAAAAE=",
          "deviceEtag": "null",
          "status": "enabled",
          "statusUpdateTime": "0001-01-01T00:00:00",
          "connectionState": "Disconnected",
          "lastActivityTime": "0001-01-01T00:00:00",
          "cloudToDeviceMessageCount": 0,
          "authenticationType": "sas",
          "x509Thumbprint": {
            "primaryThumbprint": null,
            "secondaryThumbprint": null
          },
          "version": 2,
          "properties": {
            "desired": {
              "$metadata": {
                "$lastUpdated": "2018-01-02T19:17:44.4383997Z"
              },
              "$version": 1
            },
            "reported": {
              "$metadata": {
                "$lastUpdated": "2018-01-02T19:17:44.4383997Z"
              },
              "$version": 1
            }
          }
        },
        "hubName": "egtesthub1",
        "deviceId": "LogicAppTestDevice"
      },
      "dataVersion": "1",
      "metadataVersion": "1"
    }]
    
  5. İsteğinize Uygulama/JSON olarak ayarlanmış bir Content-Type üst bilgisi eklemeyi unutmayın önerisinin bulunduğu bir açılan bildirim alabilirsiniz.You may receive a pop-up notification that says, Remember to include a Content-Type header set to application/json in your request. Bu öneriyi güvenle yoksayabilir ve sonraki bölüme geçebilirsiniz.You can safely ignore this suggestion, and move on to the next section.

Bir eylem oluşturunCreate an action

Eylemler, tetikleyici mantıksal uygulama iş yükünü başlattıktan sonra gerçekleşen adımlardır.Actions are any steps that occur after the trigger starts the logic app workflow. Bu öğreticide, e-posta sağlayıcınızdan bir e-posta bildirimi gönderme eylemi kullanılır.For this tutorial, the action is to send an email notification from your email provider.

  1. Yeni adım'ı seçin.Select New step. Bu işlemin ardından, Eylem seçin penceresi açılır.This will open a window to Choose an action.

  2. E-posta'yı arayın.Search for Email.

  3. E-posta sağlayıcınıza uygun bağlayıcıyı bulun ve seçin.Based on your email provider, find and select the matching connector. Bu öğreticide Office 365 Outlook kullanılır.This tutorial uses Office 365 Outlook. Diğer e-posta sağlayıcılarının adımları da bunlara benzer.The steps for other email providers are similar.

    E-posta sağlayıcısının bağlayıcısını seçme

  4. E-posta gönder eylemini seçin.Select the Send an email action.

  5. İstenirse, e-posta hesabınızda oturum açın.If prompted, sign in to your email account.

  6. E-posta şablonunuzu oluşturun.Build your email template.

    • Kime: Bildirim e-postalarını alacak olan e-posta adresini girin.To: Enter the email address to receive the notification emails. Bu öğreticide, test etmek için erişebileceğiniz bir e-posta hesabı kullanın.For this tutorial, use an email account that you can access for testing.
    • Konu ve Gövde: E-postanızın metnini yazın.Subject and Body: Write the text for your email. Olay verileri temelinde dinamik içerik eklemek için seçici aracından JSON özelliklerini seçin.Select JSON properties from the selector tool to include dynamic content based on event data.

    E-posta şablonunuz, aşağıdaki örneğe benzer görünebilir:Your email template may look like this example:

    E-posta bilgilerini doldurma

  7. Mantıksal uygulamanızı kaydedin.Save your logic app.

HTTP URL'sini kopyalamaCopy the HTTP URL

Logic Apps Tasarımcısı'ndan çıkmadan önce, mantıksal uygulamalarınızın tetikleyici için dinlediği URL'yi kopyalayın.Before you leave the Logic Apps Designer, copy the URL that your logic apps is listening to for a trigger. Bu URL'yi, Event Grid'i yapılandırmak için kullanırsınız.You use this URL to configure Event Grid.

  1. Bir HTTP isteği alındığında tetikleyici yapılandırma kutusunu tıklayarak genişletin.Expand the When a HTTP request is received trigger configuration box by clicking on it.

  2. Yanındaki kopyala düğmesini seçerek HTTP POST URL değerini kopyalayın.Copy the value of HTTP POST URL by selecting the copy button next to it.

    HTTP POST URL değerini kopyalama

  3. Sonraki bölümde başvurabilmek için bu URL'yi saklayın.Save this URL so that you can refer to it in the next section.

IoT Hub olayları için aboneliği yapılandırmaConfigure subscription for IoT Hub events

Bu bölümde, IoT Hub'ınızı gerçekleşen olayları yayımlamak için yapılandıracaksınız.In this section, you configure your IoT Hub to publish events as they occur.

  1. Azure portalında IoT Hub'ınıza gidin.In the Azure portal, navigate to your IoT hub.

  2. Olaylar'ı seçin.Select Events.

    Event Grid ayrıntılarını açma

  3. Olay aboneliği’ni seçin.Select Event subscription.

    Yeni olay aboneliği oluşturma

  4. Olay aboneliğini aşağıdaki değerlerle oluşturun:Create the event subscription with the following values:

    • Olay Türü: Tüm olay türlerine abone ol'un işaretini kaldırın ve menüde Cihaz Oluşturuldu'yu seçin.Event Type: Uncheck Subscribe to all event types and select Device Created from the menu.

    • Uç Nokta Ayrıntıları: Uç Nokta Türü olarak Web Kancası'nı seçin, Uç nokta seçin'e tıklayın, mantıksal uygulamanızdan kopyaladığınız URL'yi yapıştırın ve seçimi onaylayın.Endpoint Details: Select Endpoint Type as Web Hook and click on select endpoint and paste the URL that you copied from your logic app and confirm selection.

      uç nokta URL'si seçme

    • Olay Aboneliği Ayrıntıları: Açıklayıcı bir ad girin ve Olay Kılavuz Şeması'nı seçinEvent Subscription Details: Provide a descriptive name and select Event Grid Schema

    İşiniz bittiğinde, form aşağıdaki örnekteki gibi görünmelidir:When you're done, the form should look like the following example:

    Örnek olay aboneliği formu

  5. Olay aboneliğini buraya kaydedebilir ve IoT Hub'ınızda oluşturulan her cihaz için bildirimler alabilirsiniz.You could save the event subscription here, and receive notifications for every device that is created in your IoT hub. Bu öğreticide, belirli cihazları filtrelemek için isteğe bağlı alanları kullanalım.For this tutorial, though, let's use the optional fields to filter for specific devices. Formun üst kısmında ek özellikler ' i seçin.Select Additional Features at the top of the form.

  6. Aşağıdaki filtreleri oluşturun:Create the following filters:

    • Konu Şununla Başlar: Building1 içindeki cihaz olaylarını filtrelemek için devices/Building1_ değerini girin.Subject Begins With: Enter devices/Building1_ to filter for device events in building 1.
    • Konu Şununla Biter: Sıcaklıkla ilgili cihaz olaylarını filtrelemek için _Temperature değerini girin.Subject Ends With: Enter _Temperature to filter for device events related to temperature.
  7. Olay aboneliğini kaydetmek için Oluştur'u seçin.Select Create to save the event subscription.

Yeni cihaz oluşturmaCreate a new device

Olay bildirim e-postasını tetiklemek için yeni bir cihaz oluşturarak mantıksal uygulamanızı test edin.Test your logic app by creating a new device to trigger an event notification email.

  1. IoT Hub'ınızda IoT Cihazları'nı seçin.From your IoT hub, select IoT Devices.
  2. Add (Ekle) seçeneğini belirleyin.Select Add.
  3. Cihaz Kimliği için Building1_Floor1_Room1_Temperature girin.For Device ID, enter Building1_Floor1_Room1_Temperature.
  4. Kaydet’i seçin.Select Save.
  5. Olay abonelik filtrelerini test etmek için farklı cihaz kimlikleri olan birden çok cihaz ekleyebilirsiniz.You can add multiple devices with different device IDs to test the event subscription filters. Şu örnekleri deneyin:Try these examples:
    • Building1_Floor1_Room1_LightBuilding1_Floor1_Room1_Light
    • Building1_Floor2_Room2_TemperatureBuilding1_Floor2_Room2_Temperature
    • Building2_Floor1_Room1_TemperatureBuilding2_Floor1_Room1_Temperature
    • Building2_Floor1_Room1_LightBuilding2_Floor1_Room1_Light

IoT Hub'ınıza birkaç cihaz ekledikten sonra, hangisinin mantıksal uygulamayı tetiklediğini görmek için e-postanızı gözden geçirin.Once you've added a few devices to your IoT hub, check your email to see which ones triggered the logic app.

Azure CLI kullanmaUse the Azure CLI

Azure portalı kullanmak yerine, IoT Hub adımlarını Azure CLI'yi kullanarak gerçekleştirebilirsiniz.Instead of using the Azure portal, you can accomplish the IoT Hub steps using the Azure CLI. Ayrıntılar için, Azure CLI'nin olay aboneliği oluşturma ve IoT cihazı oluşturma sayfalarına bakınFor details, see the Azure CLI pages for creating an event subscription and creating an IoT device

Kaynakları temizlemeClean up resources

Bu öğreticide Azure aboneliğinize ücret uygulanmasına neden olan kaynaklar kullanılmıştır.This tutorial used resources that incur charges on your Azure subscription. Öğreticideki denemeleriniz ve sonuçlarınızın testi bittiğinde, korumak istemediğiniz kaynakları devre dışı bırakın veya silin.When you're done trying out the tutorial and testing your results, disable or delete resources that you don't want to keep.

Mantıksal uygulamanızda yapılan çalışmayı kaybetmek istemiyorsanız, bunu silmek yerine devre dışı bırakın.If you don't want to lose the work on your logic app, disable it instead of deleting it.

  1. Mantıksal uygulamanıza gidin.Navigate to your logic app.
  2. Genel Bakış dikey penceresinde Sil'i veya Devre Dışı Bırak'ı seçin.On the Overview blade select Delete or Disable.

Her aboneliğin tek bir ücretsiz IoT Hub'ı olabilir.Each subscription can have one free IoT hub. Bu öğretici için ücretsiz bir hub oluşturduysanız, ücretleri önlemek için bunu silmeniz gerekmez.If you created a free hub for this tutorial, then you don't need to delete it to prevent charges.

  1. IoT Hub'ınıza gidin.Navigate to your IoT hub.
  2. Genel Bakış dikey penceresinde Sil'i seçin.On the Overview blade select Delete.

IoT Hub'ınızı korusanız bile, oluşturduğunuz olay aboneliğini silmek isteyebilirsiniz.Even if you keep your IoT hub, you may want to delete the event subscription that you created.

  1. IoT Hub'ınızda Event Grid'i seçin.In your IoT hub, select Event Grid.
  2. Kaldırmak istediğiniz olay aboneliğini seçin.Select the event subscription that you want to remove.
  3. Sil’i seçin.Select Delete.

Sonraki adımlarNext steps