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
Bir Azure hesabı ve aboneliği Aboneliğiniz yoksa ücretsiz bir hesap oluşturun.
Service Bus ad alanı. Ad alanınız yoksa önce ad alanınızı oluşturun. Daha fazla bilgi için bkz. Azure Service Bus nedir?
İşlevleriniz için bir kapsayıcı olan işlev uygulaması. İşlev uygulamanız yoksa, önce işlev uygulamanızı oluşturun ve Çalışma Zamanı yığını özelliği için .NET'i seçtiğinizden emin olun.
Mantıksal uygulama iş akışları oluşturma hakkında temel bilgiler. Daha fazla bilgi için bkz . Çok kiracılı Azure Logic Apps'te örnek bir Tüketim mantıksal uygulaması iş akışı oluşturma.
Mantıksal uygulama iş akışı oluşturma
Azure portal Boş Mantıksal Uygulama şablonunu seçerek bir Tüketim boş mantıksal uygulaması oluşturun.
Tasarımcı açıldıktan sonra tasarımcı arama kutusunun altında Yerleşik'i seçin. Arama kutusuna request yazın.
Tetikleyiciler listesinden HTTP isteği alındığında adlı tetikleyiciyi seçin.
İ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.
Şema belirtmek için İstek Gövdesi JSON Şeması kutusuna şemayı girin.
Şemanız yoksa ancak JSON biçiminde bir örnek yükünüz varsa, bu yükten bir şema oluşturabilirsiniz.
İstek tetikleyicisinde Şema oluşturmak için örnek yükü kullan'ı seçin.
Örnek bir JSON yükü girin veya yapıştırın altında örnek yükünüzü girin ve Bitti'yi seçin.
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" } } } } }
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.
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.
İşlev oluşturma
Ardından kuyruğu dinleyen ve bir ileti geldiğinde İstek tetikleyicisinde uç noktayı çağıran işlevi oluşturun.
Azure portal işlev uygulamanızı açın.
İşlev uygulaması gezinti menüsünde İşlevler'i seçin. İşlevler bölmesinde Oluştur'u seçin.
Ş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. İş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.
Ş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:
Kuyruk iletisinden gelen iletiyi kullanarak işlevi tetikleme.
Eşzamanlı olarak çalışan olası işlevler, yüksek birimler veya ağır yükler nedeniyle , deyimiyle
using
HTTPClient sınıfının örneğini oluşturmaktan ve istek başına doğrudan HTTPClient örnekleri oluşturmaktan kaçının. Daha fazla bilgi için bkz. Dayanıklı HTTP istekleri uygulamak için HttpClientFactory kullanma.Mümkünse HTTP istemcilerinin örneğini yeniden kullanın. Daha fazla bilgi için bkz. Azure İşlevleri'de bağlantıları yönetme.
Aşağıdaki örnek, yöntemini zaman uyumsuz modda kullanır
Task.Run
. Daha fazla bilgi için bkz. Async ve await ile zaman uyumsuz programlama. Örnekte ileti içerik türü de kullanılırapplication/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:
Azure portal Service Bus ad alanınızı açın.
Service Bus ad alanı gezinti menüsünde Kuyruklar'ı seçin.
Daha önce bir Service Bus bağlantısı kullanarak işlevinize bağladığınız Service Bus kuyruğunuzu seçin.
Kuyruk gezinti menüsünde Service Bus Gezgini'ni ve ardından araç çubuğunda İleti gönder'i seçin.
İleti gönder bölmesinde Service Bus kuyruğunuza gönderilecek iletiyi belirtin.
Bu ileti mantıksal uygulama iş akışınızı tetikler.