Aracılığıyla paylaş


Azure Logic Apps'ten çağırabileceğiniz özel web API'leri ve REST API'leri için desenler

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

Azure Logic Apps, mantıksal uygulama iş akışlarında kullanabileceğiniz 1.400'den fazla bağlayıcı sunsa da bağlayıcı olarak kullanılamamış API'leri, sistemleri ve hizmetleri çağırmak isteyebilirsiniz. İş akışlarında kullanılacak eylemleri ve tetikleyicileri sağlayan kendi API'lerinizi oluşturabilirsiniz. İş akışlarından çağırabileceğiniz kendi API'lerinizi oluşturmak istemenizin diğer nedenleri şunlardır:

  • Geçerli sistem tümleştirme ve veri tümleştirme iş akışlarınızı genişletin.
  • Müşterilerin profesyonel veya kişisel görevleri yönetmek için hizmetinizi kullanmasına yardımcı olun.
  • Hizmetiniz için erişim, bulunabilirlik ve kullanımı genişletin.

Temel olarak, bağlayıcılar eklenebilir arabirimler için REST, belgeler için OpenAPI meta veri biçimi ve veri değişimi biçimi olarak JSON kullanan web API'leridir. Bağlayıcılar HTTP uç noktaları üzerinden iletişim kuran REST API'leri olduğundan, .NET, Java, Python veya Node.js gibi bağlayıcılar oluşturmak için herhangi bir dili kullanabilirsiniz. API barındırma için en iyi, en kolay ve en ölçeklenebilir yollardan birini sağlayan bir hizmet olarak platform (PaaS) teklifi olan Azure Uygulaması Service'te de API'lerinizi barındırabilirsiniz.

Özel API'lerin mantıksal uygulama iş akışıyla çalışması için API'niz iş akışlarında belirli görevleri gerçekleştiren eylemler sağlayabilir. API'niz, yeni veriler veya bir olay belirtilen koşulu karşıladığında iş akışı çalıştırması başlatan bir tetikleyici olarak da görev yapabilir. Bu konu başlığında, API'nizin sağlamasını istediğiniz davranışa bağlı olarak API'nizde eylem ve tetikleyici oluşturmak için izleyebileceğiniz yaygın desenler açıklanmaktadır.

API'lerinizi, yüksek oranda ölçeklenebilir ve kolay API barındırma sağlayan bir hizmet olarak platform (PaaS) teklifi olan Azure Uygulaması Service'te barındırabilirsiniz.

İpucu

API'lerinizi web uygulamaları olarak dağıtabilirsiniz ancak API'lerinizi API uygulamaları olarak dağıtmayı göz önünde bulundurun. Bu, bulutta ve şirket içinde API'leri oluştururken, barındırırken ve kullanırken işinizi kolaylaştırır. API'lerinizdeki herhangi bir kodu değiştirmeniz gerekmez; yalnızca kodunuzu bir API uygulamasına dağıtın. Örneğin, şu dillerle oluşturulmuş API uygulamaları oluşturmayı öğrenin:

Özel API'lerin özel bağlayıcılardan farkı nedir?

Özel API'ler ve özel bağlayıcılar , eklenebilir arabirimler için REST, belgeler için OpenAPI meta veri biçimi ve veri değişimi biçimi olarak JSON kullanan web API'leridir. Bu API'ler ve bağlayıcılar HTTP uç noktaları üzerinden iletişim kuran REST API'leri olduğundan, özel API'ler ve bağlayıcılar oluşturmak için .NET, Java, Python veya Node.js gibi herhangi bir dili kullanabilirsiniz.

Özel API'ler bağlayıcı olmayan API'leri çağırmanıza ve HTTP + Swagger, Azure API Management veya App Services ile çağırabileceğiniz uç noktalar sağlamanıza olanak tanır. Özel bağlayıcılar özel API'ler gibi çalışır ancak şu özniteliklere de sahiptir:

  • Azure'da Logic Apps Bağlayıcısı kaynakları olarak kaydedildi.
  • Logic Apps Tasarımcısı'nda Microsoft tarafından yönetilen bağlayıcıların yanında simgelerle birlikte görünür.
  • Yalnızca mantıksal uygulamaların dağıtıldığı bölgede aynı Microsoft Entra kiracısına ve Azure aboneliğine sahip bağlayıcı yazarları ve mantıksal uygulama kaynak kullanıcıları tarafından kullanılabilir.

Microsoft sertifikası için kayıtlı bağlayıcıları da aday olarak belirleyebilirsiniz. Bu işlem, kayıtlı bağlayıcıların genel kullanım ölçütlerine uygun olduğunu doğrular ve bu bağlayıcıları Power Automate ve Microsoft Power Apps'teki kullanıcılar için kullanılabilir hale getirir.

Daha fazla bilgi için aşağıdaki belgeleri gözden geçirin:

Yararlı araçlar

Özel API, API'nin işlemlerini ve parametrelerini açıklayan bir OpenAPI belgesine de sahip olduğunda mantıksal uygulamalarla en iyi şekilde çalışır. Swashbuckle gibi birçok kitaplık Swagger dosyasını sizin için otomatik olarak oluşturabilir. Görünen adlar, özellik türleri vb. için Swagger dosyasına ek açıklama eklemek için, Swagger dosyanızın mantıksal uygulamalarla iyi çalışması için TRex'i de kullanabilirsiniz.

Eylem desenleri

Mantıksal uygulamaların görevleri gerçekleştirmesi için özel API'nizin eylemler sağlaması gerekir. API'nizdeki her işlem bir eylemle eşler. Temel eylem, HTTP isteklerini kabul eden ve HTTP yanıtları döndüren bir denetleyicidir. Örneğin, bir iş akışı web uygulamanıza veya API uygulamanıza bir HTTP isteği gönderir. Uygulamanız daha sonra iş akışının işleyebileceği içerikle birlikte bir HTTP yanıtı döndürür.

Standart bir eylem için API'nize bir HTTP isteği yöntemi yazabilir ve bu yöntemi bir Swagger dosyasında açıklayabilirsiniz. Ardından API'nizi doğrudan bir HTTP eylemi veya HTTP + Swagger eylemiyle çağırabilirsiniz. Varsayılan olarak, yanıtlar istek zaman aşımı sınırı içinde döndürülmelidir.

Standart eylem deseni

API'niz daha uzun süre çalışan görevleri tamamlarken iş akışının beklemesini sağlamak için, API'niz bu konuda açıklanan zaman uyumsuz yoklama desenini veya zaman uyumsuz web kancası desenini izleyebilir. Bu desenlerin farklı davranışlarını görselleştirmenize yardımcı olan bir benzetme için bir pastaneden özel pasta sipariş etme sürecini düşünün. Yoklama düzeni, pastanenin hazır olup olmadığını denetlemek için her 20 dakikada bir pastaneyi çağırdığınız davranışı yansıtır. Web kancası deseni, pastane pastayı hazırladığında sizi arayabilmeleri için sizin telefon numaranızı istediği durumu yansıtır.

Yoklama eylemi deseniyle uzun süreli görevler gerçekleştirin

API'nizin istek zaman aşımı sınırından daha uzun çalıştırabilecek görevleri gerçekleştirmesini sağlamak için zaman uyumsuz yoklama desenini kullanabilirsiniz. Bu desen, API'nizin ayrı bir iş parçacığında çalışmasını sağlar, ancak Azure Logic Apps altyapısına etkin bir bağlantı sağlar. Bu şekilde, API'niz çalışmayı bitirmeden önce iş akışı zaman aşımına uğramaz veya iş akışındaki bir sonraki adımla devam etmez.

Genel desen aşağıdadır:

  1. Altyapının API'nizin isteği kabul ettiğini ve çalışmaya başladığını bildiğinden emin olun.
  2. Motor iş durumunu sorgulama isteklerinde bulunduğunda, API'niz görevi tamamladığında motoru bu konuda bilgilendirin.
  3. İş akışının devam edebilmesi için ilgili verileri altyapıya döndürebilirsiniz.

Şimdi yoklama desenine önceki fırın benzetmesini uygulayın ve bir fırın çağırıp teslimat için özel bir pasta sipariş ettiğinizi düşünün. Pasta yapma işlemi zaman alır ve pastane pasta üzerinde çalışırken telefonda beklemek istemezsiniz. Fırın siparişinizi onaylar ve pastanın durumu için her 20 dakikada bir aramanızı sağlar. 20 dakika geçtikten sonra pastaneyi ararsınız, ama size pastanızın yapılmadığını ve 20 dakika içinde aramanız gerektiğini söyler. Bu ileri geri işlemi siz arayana kadar devam eder ve fırın siparişinizin hazır olduğunu söyler ve pastanızı teslim eder.

Şimdi bu yoklama düzenini yeniden eşleyelim. Pastane özel API'nizi temsil ederken, siz pasta müşterisi Azure Logic Apps altyapısını temsil eder. Altyapı API'nizi bir istekle çağırdığında, API'niz isteği onaylar ve altyapının iş durumunu denetleyebileceği zaman aralığıyla yanıt verir. Altyapı, API'niz işin yapıldığına yanıt verene ve mantıksal uygulamanıza veri döndürene kadar iş durumunu denetlemeye devam eder ve ardından iş akışı devam eder.

Sorgulama eylem deseni

API'nizin izlemesi gereken ve API'nin perspektifinden açıklanan belirli adımlar şunlardır:

  1. API'niz çalışmaya başlamak için bir HTTP isteği aldığında, bu adımda ileride açıklanacak 202 ACCEPTED üst bilgisiyle hemen bir HTTP location yanıtı döndürün. Bu yanıt, Azure Logic Apps altyapısının API'nizin isteği aldığını, istek yükünü (veri girişi) kabul ettiğini ve şimdi işlendiğini bilmesini sağlar.

    Yanıt şu 202 ACCEPTED üst bilgileri içermelidir:

    • Gerekli: location Azure Logic Apps altyapısının API'nizin iş durumunu denetleyebileceği bir URL'nin mutlak yolunu belirten üst bilgi

    • İsteğe bağlı: Motorun retry-after URL'sini iş durumu için kontrol etmeye başlamadan önce beklemesi gereken saniye sayısını belirten bir üst bilgi.

      Varsayılan olarak, altyapı, bir saniye sonra location URL'sini yoklar. Farklı bir aralık belirtmek için retry-after üst bilgisini ve sonraki ankete kadar geçen saniye sayısını ekleyin.

  2. Belirtilen süre geçtikten sonra Azure Logic Apps motoru, iş durumunu denetlemek için location URL'sini yoklar. API'nizin bu denetimleri gerçekleştirmesi ve şu yanıtları döndürmesi gerekir:

    • İş tamamlanırsa, yanıt yüküyle birlikte bir HTTP 200 OK yanıtı (sonraki adım için giriş) döndürin.

    • İş hala işleniyorsa, aynı üst bilgilere sahip başka bir HTTP 202 ACCEPTED yanıtı döndür.

API'niz bu deseni izlediğinde, iş durumunu denetlemeye devam etmek için iş akışı tanımında hiçbir şey yapmanız gerekmez. Motor bir HTTP 202 ACCEPTED yanıtı ve geçerli bir location üst bilgi aldığında, motor zaman uyumsuz desene uyar ve API'niz 202 olmayan bir yanıt döndürene kadar location üst bilgiyi denetler.

İpucu

Zaman uyumsuz bir desen örneği için GitHub'da bu zaman uyumsuz denetleyici yanıt örneğini gözden geçirin.

Uzun süre çalışan görevleri web kancası eylem modeliyle gerçekleştirin

Alternatif olarak, uzun süre çalışan görevler ve zaman uyumsuz işleme için webhook desenini kullanabilirsiniz. Bu düzen iş akışını duraklatır ve iş akışına devam etmeden önce API'nizden bir "geri çağırma" işleminin tamamlanmasını bekler. Bu geri çağırma, bir olay gerçekleştiğinde URL'ye ileti gönderen bir HTTP POST'tır.

Şimdi web kancası desenine önceki fırın benzetmesini uygulayın ve bir fırın çağırıp teslimat için özel bir pasta sipariş ettiğinizi düşünün. Pasta yapma işlemi zaman alır ve pastane pasta üzerinde çalışırken telefonda beklemek istemezsiniz. Fırın siparişinizi onaylar, ancak bu kez, pasta bittiğinde sizi arayabilmeleri için telefon numaranızı verirsiniz. Bu kez fırın siparişinizin ne zaman hazır olduğunu söyler ve pastanızı teslim eder.

Bu webhook desenini geri haritaladığımızda, pastane özel API'nizi temsil ederken, pasta alan müşteri olarak siz Azure Logic Apps motorunu temsil edersiniz. Motor API'nizi bir istekle çağırır ve bir "geri arama" URL'si içerir. İş tamamlandığında, API'niz altyapıyı bilgilendirmek ve verileri mantıksal uygulamanıza döndürmek için URL'yi kullanır ve ardından iş akışına devam eder.

Bu düzen için denetleyicinizde iki uç nokta ayarlayın: subscribe ve unsubscribe

  • subscribe uç nokta: Yürütme iş akışında API'nizin eylemine ulaştığında Azure Logic Apps altyapısı uç noktayı çağırır subscribe . Bu adım, iş akışının API'nizin depolayacağı bir geri çağırma URL'si oluşturmasına ve ardından iş tamamlandığında API'nizden geri çağırmayı beklemesine neden olur. Ardından, API'niz bir HTTP POST kullanarak URL'ye geri çağrı yapar ve döndürülen içeriği ve üst bilgileri mantıksal uygulamaya girdi olarak aktarır.

  • unsubscribe uç noktası: İş akışı çalıştırması iptal edilirse, Azure Logic Apps altyapısı unsubscribe uç noktasını çağırır. Ardından API'niz geri çağırma URL'sinin kaydını kaldırıp gerekli işlemleri durdurabilir.

Webhook hareket modeli

İş akışı tasarımcısı şu anda Swagger aracılığıyla web kancası uç noktalarını bulmayı desteklememektedir. Bu model için bir Web Kancası eylemi eklemeniz ve isteğiniz için URL'yi, başlıkları ve gövdeyi belirtmeniz gerekir. Ayrıca bkz. İş akışı eylemleri ve tetikleyicileri. Örnek bir web kancası deseni için GitHub'da bu web kancası tetikleyici örneğini gözden geçirin.

Diğer ipuçları ve notlar şunlardır:

  • Geri çağırma URL'sini geçirmek için, önceki alanlardan @listCallbackUrl() herhangi birinde iş akışı işlevini gerektiği gibi kullanabilirsiniz.

  • Hem mantıksal uygulama kaynağına hem de abone olunan hizmete sahipseniz, geri çağırma URL'si çağrıldıktan sonra unsubscribe uç noktasını çağırmanız gerekmez. Azure Logic Apps çalışma zamanı, aksi takdirde, başka çağrı beklenmediğini belirtmek ve sunucu tarafında kaynak temizliği yapılmasına izin vermek için unsubscribe uç noktasını çağırmak zorundadır.

Tetikleyici desenleri

Özel API'niz, yeni veriler veya bir olay belirtilen koşulu karşıladığında bir iş akışı çalıştırması başlatan bir tetikleyici görevi görebilir. Bu tetikleyici, hizmet uç noktanızdaki yeni verileri veya olayları düzenli olarak denetleyebilir veya bekleyip dinleyebilir. Yeni veriler veya bir olay belirtilen koşulu karşılıyorsa, tetikleyici çalışır ve bu tetikleyiciyi izleyen mantık uygulamasını başlatır. Mantıksal uygulamaları bu şekilde başlatmak için API'niz yoklama tetikleyicisini veya web kancası tetikleyici desenini izleyebilir. Bu desenler, yoklama eylemleri ve webhook eylemleri için karşılık gelenlere benzer. Ayrıca tetikleyiciler için kullanım ölçümü hakkında daha fazla bilgi edinin.

Yoklama tetikleyici deseniyle yeni verileri veya olayları düzenli olarak kontrol et

Yoklama tetikleyicisi, bu konuda daha önce açıklanan yoklama eylemine çok benzer. Azure Logic Apps altyapısı, tetikleyici uç noktasını düzenli aralıklarla çağırır ve yeni veriler veya olaylar için denetler. Motor, belirtilen koşulunuza uyan yeni veri veya bir olay bulursa tetikleyici çalışır. Ardından altyapı, verileri giriş olarak işleyen bir iş akışı örneği oluşturur.

Anket tetikleyici deseni

Not

Hiçbir iş akışı örneği oluşturulmasa bile her yoklama isteği bir eylem yürütmesi olarak sayılır. Aynı verilerin birden çok kez işlenmesini önlemek için tetikleyicinizin zaten okunmuş ve mantıksal uygulamaya geçirilen verileri temizlemesi gerekir.

Aşağıda, API'nin perspektifinden açıklanan yoklama tetikleyicisi için belirli adımlar verilmiştır:

Yeni veri veya olay mı buldunuz? API yanıtı
Bulundu Yanıt yüküyle bir HTTP 200 OK durumu döndür (sonraki adım için giriş).
Bu yanıt bir iş akışı örneği oluşturur ve iş akışını başlatır.
Bulunamadı 202 ACCEPTED üst bilgisi ve location üst bilgisi ile bir HTTP retry-after durumu döndürün.
Tetikleyiciler için üst location bilgi genellikle "zaman damgası" olan bir triggerState sorgu parametresi de içermelidir. API'niz iş akışının en son tetiklendiği zamanı izlemek için bu tanımlayıcıyı kullanabilir.

Örneğin, hizmetinizi düzenli aralıklarla yeni dosyalar için denetlemek için şu davranışlara sahip bir yoklama tetikleyicisi oluşturabilirsiniz:

İstek şunları içerir triggerState: ? API yanıtı
Hayır HTTP 202 ACCEPTED durumu ve başlığı, location geçerli saate ve triggerState aralığı 15 saniye olarak ayarlanmış şekilde döndürülür.
Evet DateTime sonrası eklenen dosyalar için triggerState hizmetinizi kontrol edin.
Bulunan dosya sayısı API yanıtı
Tek dosya HTTP 200 OK durumunu ve içerik yükünü geri dön, döndürülen dosya için triggerState'yi DateTime olarak güncelleyin ve retry-after aralığını 15 saniyeye ayarlayın.
Birden çok dosya Bir seferde bir dosya ve bir HTTP 200 OK durumu döndürün, triggerState'i güncelleyin ve retry-after aralığını 0 saniye olarak ayarlayın.
Bu adımlar motorun daha fazla veri olduğunu ve motorun üst bilgideki URL'den hemen veri istemesi gerektiğini bildirir. location
Dosya yok HTTP 202 ACCEPTED durumunu döndür, triggerState değiştirme ve retry-after aralığını 15 saniyeye ayarla.

İpucu

Örnek bir yoklama tetikleyicisi deseni için GitHub'daki bu yoklama tetikleyicisi denetleyicisi örneğini gözden geçirin.

Web kancası tetikleyici deseniyle yeni verileri veya olayları bekleme ve dinleme

Web tetikleyicisi, hizmet uç noktanızda yeni veri veya olayları izleyen ve bekleyen bir push tetikleyicidir. Yeni veriler veya bir olay belirtilen koşulu karşılıyorsa, tetikleyici tetikler ve verileri giriş olarak işleyen bir iş akışı örneği oluşturur. Web kancası tetikleyicileri, bu konuda daha önce açıklanan web kancası eylemlerine çok benzer ve ve subscribe uç noktalarıyla ayarlanır.

  • subscribe uç nokta: Mantıksal uygulamanıza bir web kancası tetikleyicisi ekleyip kaydettiğinizde, Azure Logic Apps altyapısı subscribe uç noktasını çağırır. Bu adım, iş akışının API'nizin depoacağı bir geri çağırma URL'si oluşturmasına neden olur. Belirtilen koşula uyan yeni veriler veya bir olay olduğunda, API'niz URL'ye bir HTTP POST ile geri çağrır. İçerik yükü ve üst bilgiler mantıksal uygulamaya giriş olarak aktarılır.

  • unsubscribe uç nokta: Web kancası tetikleyicisi veya mantıksal uygulama kaynağının tamamı silinirse, Azure Logic Apps motoru unsubscribe uç noktayı çağırır. Ardından API'niz geri çağırma URL'sinin kaydını kaldırıp gerekli işlemleri durdurabilir.

Webhook tetikleyici deseni

İş akışı tasarımcısı şu anda Swagger aracılığıyla web kancası uç noktalarını bulmayı desteklememektedir. Bu nedenle bu model için bir Webhook tetikleyicisi eklemeniz ve isteğiniz için URL'yi, başlıkları ve gövdeyi belirtmeniz gerekir. Ayrıca bkz. HTTPWebhook tetikleyicisi. Örnek bir web kancası düzeni için GitHub'da bu web kancası tetikleyici denetleyicisi örneğini gözden geçirin.

Diğer ipuçları ve notlar şunlardır:

  • Geri çağırma URL'sini geçirmek için, önceki alanlardan @listCallbackUrl() herhangi birinde iş akışı işlevini gerektiği gibi kullanabilirsiniz.

  • Aynı verilerin birden çok kez işlenmesini önlemek için tetikleyicinizin zaten okunmuş ve mantıksal uygulamaya geçirilen verileri temizlemesi gerekir.

  • Hem mantıksal uygulama kaynağına hem de abone olunan hizmete sahipseniz, geri çağırma URL'si çağrıldıktan sonra unsubscribe uç noktasını çağırmanız gerekmez. Aksi takdirde, Logic Apps çalışma zamanı, başka çağrı beklenmediğini belirtmek ve sunucu tarafında kaynak temizlemeye izin vermek amacıyla unsubscribe uç noktasını çağırmalıdır.

Mantıksal uygulamalardan API'lerinize yapılan çağrılar için güvenliği geliştirme

Özel API'lerinizi oluşturduktan sonra, api'lerinizi mantıksal uygulamalardan güvenli bir şekilde çağırabilmeniz için kimlik doğrulamasını ayarlayın. Mantıksal uygulamalardan özel API'lere yapılan çağrılar için güvenliği geliştirmeyi öğrenin.

API'lerinizi dağıtma ve çağırma

Kimlik doğrulamasını ayarladıktan sonra API'leriniz için dağıtımı ayarlayın. Mantıksal uygulamalardan özel API'leri dağıtmayı ve çağırmayı öğrenin.

Özel API'leri Azure'da yayımlama

Özel API'lerinizi diğer Azure Logic Apps kullanıcıları için kullanılabilir hale getirmek için güvenlik eklemeniz ve bunları Azure Logic Apps bağlayıcısı olarak kaydetmeniz gerekir. Daha fazla bilgi için bkz. Özel bağlayıcılara genel bakış.

Özel API'lerinizi Logic Apps, Power Automate ve Microsoft Power Apps'teki tüm kullanıcıların kullanımına açmak için güvenlik eklemeli, API'lerinizi Azure Logic Apps bağlayıcısı olarak kaydetmeli ve Bağlayıcılarınızı Microsoft Azure Sertifikalı programı için aday olarak atamalısınız.

Sonraki adımlar