Share via


Azure İşlevleri ile mantıksal uygulama iş akışlarını çağırarak uzun süre çalışan görevleri ayarlama

Şunlar için geçerlidir: Azure Logic Apps (Tüketim)

Uzun süre çalışan bir dinleyici veya görev dağıtmanız gerektiğinde, İstek tetikleyicisini kullanan ve bu tetikleyiciyi çağırıp iş akışını çalıştırmak için Azure İşlevleri bir mantıksal uygulama iş akışı oluşturabilirsiniz.

Örneğin, bir Azure Service Bus kuyruğuna gelen iletileri dinleyen bir işlev oluşturabilirsiniz. Bu olay gerçekleştiğinde işlev, iş akışınızı otomatik olarak çalıştırmak için anında iletme tetikleyicisi olarak çalışan İstek tetikleyicisini çağırır.

Bu nasıl yapılır kılavuzu, İstek tetikleyicisiyle başlayan bir mantıksal uygulama iş akışının nasıl oluşturulacağını gösterir. Ardından Service Bus kuyruğu dinleyen bir işlev oluşturursunuz. Kuyruğa bir ileti geldiğinde işlev, iş akışınızı çalıştırmak için İstek tetikleyicisi tarafından oluşturulan uç noktayı çağırır.

Not

Bu davranışı Tüketim veya Standart mantıksal uygulama iş akışı kullanarak uygulayabilirsiniz ancak bu örnek Tüketim iş akışıyla devam eder.

Önkoşullar

Mantıksal uygulama iş akışı oluşturma

  1. Azure portal Boş Mantıksal Uygulama şablonunu seçerek bir Tüketim boş mantıksal uygulaması oluşturun.

  2. Tasarımcı açıldıktan sonra tasarımcı arama kutusunun altında Yerleşik'i seçin. Arama kutusuna request yazın.

  3. Tetikleyiciler listesinden HTTP isteği alındığında adlı tetikleyiciyi seçin.

    Portalda tasarımcının ekran görüntüsü. Arama kutusu 'http isteği' içeriyor. 'Tetikleyiciler' altında 'HTTP isteği alındığında' vurgulanır.

    İstek tetikleyicisi ile isteğe bağlı olarak kuyruk iletisiyle kullanmak üzere bir JSON şeması girebilirsiniz. JSON şemaları tasarımcının giriş verilerinin yapısını anlamasına yardımcı olur ve çıkışları iş akışınızda kullanmanızı kolaylaştırır.

  4. Şema belirtmek için İstek Gövdesi JSON Şeması kutusuna şemayı girin.

    HTTP isteği tetikleyicisinin ayrıntılarının ekran görüntüsü. 'İstek Gövdesi JSON Şeması' kutusunda bazı JSON kodları görünür.

    Şemanız yoksa ancak JSON biçiminde bir örnek yükünüz varsa, bu yükten bir şema oluşturabilirsiniz.

    1. İstek tetikleyicisinde Şema oluşturmak için örnek yükü kullan'ı seçin.

    2. Örnek bir JSON yükü girin veya yapıştırın altında örnek yükünüzü girin ve Bitti'yi seçin.

      HTTP isteği tetikleyicisinin ayrıntılarının ekran görüntüsü. 'Örnek bir JSON yükü girin veya yapıştırın' altında bazı yük verileri görünür durumdadır.

      Daha önce resimde gösterilen örnek yük, tetikleyicide görünen aşağıdaki şemayı oluşturur:

      {
         "type": "object",
         "properties": {
            "address": {
               "type": "object",
               "properties": {
                  "number": {
                     "type": "integer"
                  },
                  "street": {
                     "type": "string"
                  },
                  "city": {
                     "type": "string"
                  },
                  "postalCode": {
                     "type": "integer"
                  },
                  "country": {
                     "type": "string"
                  }
               }
            }
         }
      }
      
  5. Tetikleyicinin altına, alınan iletiyi işlemek için kullanmak istediğiniz diğer eylemleri ekleyin.

    Örneğin, Office 365 Outlook bağlayıcısı ile e-posta gönderen bir eylem ekleyebilirsiniz.

  6. Mantıksal uygulama iş akışınızı kaydedin.

    Bu adım, iş akışınızda İstek tetikleyicisi için geri çağırma URL'sini oluşturur. Daha sonra, Azure Service Bus Kuyruğu tetikleyicisinin kodunda bu geri çağırma URL'sini kullanacaksınız. Geri çağırma URL'si HTTP POST URL özelliğinde görünür.

    HTTP isteği tetikleyicisinin ayrıntılarının ekran görüntüsü. 'HTTP POST URL'si' öğesinin yanında bir URL görünür.

İşlev oluşturma

Ardından kuyruğu dinleyen ve bir ileti geldiğinde İstek tetikleyicisinde uç noktayı çağıran işlevi oluşturun.

  1. Azure portal işlev uygulamanızı açın.

  2. İşlev uygulaması gezinti menüsünde İşlevler'i seçin. İşlevler bölmesinde Oluştur'u seçin.

    İşlev uygulaması menüsünde 'İşlevler' vurgulanmış bir işlev uygulamasının ekran görüntüsü. 'İşlevler' sayfası açılır ve 'Oluştur' vurgulanır.

  3. Şablon seçin'in altında Kuyruk tetikleyicisi Azure Service Bus adlı şablonu seçin. Şablon seçiminize göre farklı seçenekleri gösteren Şablon ayrıntıları bölümü göründükten sonra aşağıdaki bilgileri sağlayın:

    Özellik Değer Açıklama
    Yeni İşlev <işlev-adı> İşleviniz için bir ad girin.
    Service Bus bağlantısı <Service-Bus bağlantısı> Service Bus SDK OnMessageReceive() dinleyicisini kullanan Service Bus kuyruğunuzun bağlantısını ayarlamak için Yeni'yi seçin.
    Kuyruk adı <kuyruk-adı> Kuyruğunuzun adını girin.

    'Azure Service Bus Kuyruk tetikleyicisi' vurgulanmış ve şablon örneği ayrıntılarının girilmiş olduğu 'İşlev oluştur' bölmesinin ekran görüntüsü.

  4. İşiniz bittiğinde Oluştur'u seçin.

    Azure portal artık yeni Azure Service Bus Kuyruğu tetikleyici işlevinizin Genel Bakış sayfası gösterilir.

  5. Şimdi, daha önce oluşturduğunuz mantıksal uygulama iş akışının uç noktasını çağırmak için temel bir işlev yazın. İşlevinizi yazmadan önce aşağıdaki noktaları gözden geçirin:

    Aşağıdaki örnek, yöntemini zaman uyumsuz modda kullanırTask.Run. Daha fazla bilgi için bkz. Async ve await ile zaman uyumsuz programlama. Örnekte ileti içerik türü de kullanılır application/json , ancak bu türü gerektiği gibi değiştirebilirsiniz.

    using System;
    using System.Threading.Tasks;
    using System.Net.Http;
    using System.Text;
    
    // Set up the URI for the logic app workflow. You can also get this value on the logic app's 'Overview' pane, under the trigger history, or from an environment variable.
    private static string logicAppUri = @"https://prod-05.westus.logic.azure.com:443/workflows/<remaining-callback-URL>";
    
    // Reuse the instance of HTTP clients if possible. For more information, see https://learn.microsoft.com/azure/azure-functions/manage-connections.
    private static HttpClient httpClient = new HttpClient();
    
    public static async Task Run(string myQueueItem, TraceWriter log) 
    {
       log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
       var response = await httpClient.PostAsync(logicAppUri, new StringContent(myQueueItem, Encoding.UTF8, "application/json")); 
    }
    

Mantıksal uygulama iş akışınızı test etme

Test etmek için aşağıdaki adımları veya başka bir aracı kullanarak Service Bus kuyruğunuza bir ileti ekleyin:

  1. Azure portal Service Bus ad alanınızı açın.

  2. Service Bus ad alanı gezinti menüsünde Kuyruklar'ı seçin.

    Service Bus ad alanının ekran görüntüsü. Gezinti menüsünde 'Kuyruklar' vurgulanır.

  3. Daha önce bir Service Bus bağlantısı kullanarak işlevinize bağladığınız Service Bus kuyruğunuzu seçin.

  4. Kuyruk gezinti menüsünde Service Bus Gezgini'ni ve ardından araç çubuğunda İleti gönder'i seçin.

    Portalda 'İleti gönder' seçeneğinin vurgulandığı Service Bus kuyruğu sayfasının ekran görüntüsü. Gezinti menüsünde 'Service Bus Gezgini' vurgulanır.

  5. İleti gönder bölmesinde Service Bus kuyruğunuza gönderilecek iletiyi belirtin.

    Bu ileti mantıksal uygulama iş akışınızı tetikler.

Sonraki adımlar