Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Azure Logic Apps (Tüketim + Standart)
Bazı senaryolar, HTTP veya HTTPS üzerinden diğer hizmet veya sistemlerdeki uç noktalara giden istekler gönderen bir mantıksal uygulama iş akışı oluşturmanızı gerektirebilir. Örneğin, belirli bir zamanlamaya göre bu uç noktayı denetleyerek web siteniz için bir hizmet uç noktasını izlemek istediğinizi varsayalım. Web sitenizin kapanması gibi belirli bir olay söz konusu uç noktada gerçekleştiğinde, bu olay iş akışınızı tetikler ve bu iş akışındaki eylemleri çalıştırır.
Uyarı
Bunun yerine gelen HTTPS çağrılarını alan ve yanıtlayan bir iş akışı oluşturmak için bkz. Azure Logic Apps'te HTTPS uç noktalarını kullanarak çağırabileceğiniz, tetikleyebileceğiniz veya iç içe yerleştirebileceğiniz iş akışları oluşturma. İstek yerleşik tetikleyicisini kullanmak için bkz. Azure Logic Apps'te iş akışlarına gelen HTTPS çağrılarını alma ve yanıtlama.
Bu kılavuzda, iş akışınızın diğer hizmetlere ve sistemlere giden çağrılar gönderebilmesi için HTTP tetikleyicisi ve HTTP eyleminin nasıl kullanılacağı gösterilmektedir, örneğin:
Yinelenen bir zamanlamaya göre bir uç noktayı kontrol etmek veya anket yapmak için, iş akışınızın ilk adımı olarak HTTP adlı yerleşik tetikleyiciyi ekleyin. Tetikleyici uç noktayı her denetleyişinde, tetikleyici uç noktaya bir istek çağırır veya gönderir. İş akışınızın çalıştırılıp çalıştırılmayacağını uç noktanın yanıtı belirler. Tetikleyici, uç noktanın yanıtından iş akışınızdaki eylemlere tüm içeriği geçirir.
İş akışınızda başka herhangi bir yerden uç noktayı çağırmak için HTTP adlı yerleşik eylemi ekleyin. Uç noktanın yanıtı, iş akışınızın kalan eylemlerinin nasıl çalıştığını belirler.
Önkoşullar
Bir Azure hesabı ve aboneliği Azure aboneliğiniz yoksa ücretsiz bir Azure hesabı için kaydolun.
Çağırmak istediğiniz hedef uç noktanın URL'si.
Dış uç noktayı çağırmak istediğiniz iş akışına sahip mantıksal uygulama kaynağı.
İş akışınızı HTTP tetikleyicisiyle başlatmak için boş bir iş akışınız olmalıdır. HTTP eylemini kullanmak için iş akışınız senaryonuza en uygun tetikleyiciyle başlayabilir. Bu makaledeki örnek iş akışları HTTP tetikleyicisini kullanır.
Mantıksal uygulama kaynağınız ve iş akışınız yoksa, istediğiniz mantıksal uygulamanın adımlarını izleyerek bunları şimdi oluşturun:
Bağlayıcı teknik referans
Tetikleyici ve eylem parametreleri hakkında teknik bilgi için şema başvuru kılavuzundaki aşağıdaki bölümlere bakın:
HTTP tetikleyicisi ekleme
Bu yerleşik tetikleyici, bir uç nokta için belirtilen URL'ye http çağrısı yapar ve bir yanıt döndürür.
Azure portalında Standart mantıksal uygulama kaynağınızı açın.
Kaynak kenar çubuğu menüsündeki İş Akışları'nın altında İş Akışları'nı ve ardından boş iş akışınızı seçin.
İş akışı kenar çubuğu menüsündeki Araçlar'ın altında iş akışını açmak için tasarımcıyı seçin.
Tetikleyici eklemek için genel adımları izleyerek IŞ akışınıza HTTP yerleşik tetikleyicisini ekleyin.
Bu örnek tetikleyiciyi HTTP tetikleyicisi olarak yeniden adlandırır - Tetikleyicinin daha açıklayıcı bir ada sahip olması için uç nokta URL'sini çağırın . Ayrıca, örnek daha sonra bir HTTP eylemi ekler ve iş akışınızdaki işlem adları benzersiz olmalıdır.
Hedef uç noktaya yapılan çağrıya eklemek istediğiniz HTTP tetikleyici parametrelerinin değerlerini sağlayın. Tetikleyicinin hedef uç noktayı denetlemesini istediğiniz sıklıkta yinelenmeyi ayarlayın.
Gelişmiş parametreler listesinden Kimlik Doğrulaması'nı seçin.
Hiçbiri dışında bir kimlik doğrulama türü seçerseniz, kimlik doğrulama ayarları seçiminize göre farklılık gösterir. HTTP için kullanılabilen kimlik doğrulama türleri hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
Tetikleyici tetiklendiğinde çalıştırmak istediğiniz diğer eylemleri ekleyin.
İşiniz bittiğinde iş akışınızı kaydedin. Tasarımcı araç çubuğunda Kaydet'i seçin.
HTTP eylemi ekleme
Bu yerleşik eylem, bir uç nokta için belirtilen URL'ye bir HTTPS veya HTTP çağrısı gönderir ve bir yanıtla döndürür.
Azure portalında Standart mantıksal uygulama kaynağınızı açın.
Kaynak kenar çubuğu menüsündeki İş Akışları'nın altında İş Akışları'nı ve ardından iş akışınızı seçin.
İş akışı kenar çubuğu menüsündeki Araçlar'ın altında iş akışını açmak için tasarımcıyı seçin.
Bu örnek, önceki bölümde eklenen HTTP tetikleyicisini kullanır.
Eylem eklemek için genel adımları izleyerek iş akışınıza HTTP yerleşik eylemini ekleyin.
Bu örnek, eylemi HTTP eylemi olarak yeniden adlandırır - Eylemin daha açıklayıcı bir ada sahip olması için uç nokta URL'sini çağırın . Ayrıca, iş akışınızdaki işlem adları benzersiz olmalıdır.
Hedef uç noktaya yapılan çağrıya eklemek istediğiniz HTTP eylem parametrelerinin değerlerini sağlayın.
Gelişmiş parametreler listesinden Kimlik Doğrulaması'nı seçin.
Hiçbiri dışında bir kimlik doğrulama türü seçerseniz, kimlik doğrulama ayarları seçiminize göre farklılık gösterir. HTTP için kullanılabilen kimlik doğrulama türleri hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
Tetikleyici tetiklendiğinde çalıştırmak istediğiniz diğer eylemleri ekleyin.
İşiniz bittiğinde iş akışınızı kaydedin. Tasarımcı araç çubuğunda Kaydet'i seçin.
Tetikleyici ve eylem çıkışları
HTTP tetikleyicisi veya eylemi aşağıdaki bilgileri döndürür:
| Mülkiyet | Türü | Açıklama |
|---|---|---|
headers |
JSON nesnesi | İstekten alınan üst bilgiler |
body |
JSON nesnesi | İstekten gövde içeriğine sahip nesne |
status code |
Tam sayı | İstekten gelen durum kodu |
| Durum kodu | Açıklama |
|---|---|
| 200 | Tamam |
| 202 | Kabul edildi |
| 400 | Hatalı istek |
| 401 | Yetkisiz |
| 403 | Yasak |
| 404 | Bulunamadı |
| beş yüz | İç sunucu hatası. Bilinmeyen bir hata oluştu. |
Giden aramalar için URL güvenliği
Aktarım Katmanı Güvenliği (TLS), otomatik olarak imzalanan sertifikalar veya Microsoft Entra ID Open Authentication gibi iş akışınızdan gelen giden çağrılar için şifreleme, güvenlik ve yetkilendirme hakkında bilgi için bkz. Diğer hizmetlere ve sistemlere giden çağrılar için erişim.
Tek kiracılı ortam için kimlik doğrulaması
Tek kiracılı Azure Logic Apps'te Standart mantıksal uygulama kaynağınız varsa ve aşağıdaki kimlik doğrulama türlerinden herhangi biriyle http işlemi kullanmak istiyorsanız, ilgili kimlik doğrulama türü için ek kurulum adımlarını tamamladığınızdan emin olun. Aksi takdirde çağrı başarısız olur.
TLS sertifikası: uygulama ayarını
WEBSITE_LOAD_ROOT_CERTIFICATESekleyin ve değerini TLS sertifikanızın parmak izi olarak ayarlayın.İstemci sertifikası veya Sertifika kimlik bilgisi türüne sahip Microsoft Entra Id Açık Kimlik Doğrulaması (Microsoft Entra ID OAuth): Uygulama ayarını
WEBSITE_LOAD_USER_PROFILEekleyin ve değeri 1 olarak ayarlayın.
TLS sertifika kimlik doğrulaması
Mantıksal uygulama kaynağınızın uygulama ayarlarında adlı
WEBSITE_LOAD_ROOT_CERTIFICATESuygulama ayarını ekleyin veya güncelleştirin. Belirli adımlar için bkz. Uygulama ayarlarını yönetme - local.settings.json.Ayar değeri için, TLS sertifikanızın parmak izini güvenilecek kök sertifika olarak sağlayın.
"WEBSITE_LOAD_ROOT_CERTIFICATES": "<thumbprint-for-TLS-certificate>"
Örneğin, Visual Studio Code'da çalışıyorsanız şu adımları izleyin:
Mantıksal uygulama projenizin local.settings.json dosyasını açın.
JSON nesnesinde
Valuesayarını ekleyin veyaWEBSITE_LOAD_ROOT_CERTIFICATESayarını güncelleyin.{ "IsEncrypted": false, "Values": { <...> "AzureWebJobsStorage": "UseDevelopmentStorage=true", "WEBSITE_LOAD_ROOT_CERTIFICATES": "<thumbprint-for-TLS-certificate>", <...> } }
Uyarı
Parmak izini bulmak için şu adımları izleyin:
- Mantıksal uygulama kaynak menünüzün Ayarlar'ın altında Sertifikalar'ı seçin.
- Kendi sertifikalarınızı getir (.pfx) veya Ortak anahtar sertifikalarınızı (.cer) seçin.
- Kullanmak istediğiniz sertifikayı bulun ve parmak izini kopyalayın.
Daha fazla bilgi için bkz. Parmak izini bulma - Azure App Service.
Daha fazla bilgi için bkz. Uygulama ayarlarını yönetme - local.settings.json.
Client sertifikası veya Microsoft Entra ID OAuth Sertifika kimlik bilgisi türü kimlik doğrulaması
Mantıksal uygulama kaynağınızın uygulama ayarlarında adlı
WEBSITE_LOAD_USER_PROFILEuygulama ayarını ekleyin veya güncelleştirin. Belirli adımlar için bkz. Uygulama ayarlarını yönetme - local.settings.jsonAyar değeri için
1belirtin."WEBSITE_LOAD_USER_PROFILE": "1"
Örneğin, Visual Studio Code'da çalışıyorsanız şu adımları izleyin:
Mantıksal uygulama projenizin local.settings.json dosyasını açın.
JSON nesnesinde
Valuesayarını ekleyin veyaWEBSITE_LOAD_USER_PROFILEayarını güncelleyin.{ "IsEncrypted": false, "Values": { <...> "AzureWebJobsStorage": "UseDevelopmentStorage=true", "WEBSITE_LOAD_USER_PROFILE": "1", <...> } }
Azure portalında çalışıyorsanız mantıksal uygulamanızı açın. Kenar çubuğu menüsündeki Ayarlar'ın altında Ortam değişkenleri'ni seçin. Uygulama ayarları'nın altında ayarı ekleyin veya düzenleyin.
Çok parçalı/form-veri türüne sahip içerik
HTTP isteklerinde türü olan multipart/form-data içeriği işlemek için, bu biçimi kullanarak HTTP isteğinin gövdesindeki $content-type ve $multipart özniteliklerini içeren bir JSON nesnesi ekleyebilirsiniz.
"body": {
"$content-type": "multipart/form-data",
"$multipart": [
{
"body": "<output-from-trigger-or-previous-action>",
"headers": {
"Content-Disposition": "form-data; name=file; filename=<file-name>"
}
}
]
}
Örneğin, sitenin API'sini kullanarak Excel dosyası için web sitesine HTTP POST isteği gönderen multipart/form-data türünü destekleyen bir iş akışınızın olduğunu varsayın. Aşağıdaki örnek, bu eylemin nasıl görünebileceğini gösterir:
Temel alınan iş akışı tanımında HTTP eyleminin JSON tanımını gösteren örnek aşağıda verilmiştir:
"HTTP_action": {
"inputs": {
"body": {
"$content-type": "multipart/form-data",
"$multipart": [
{
"body": "@trigger()",
"headers": {
"Content-Disposition": "form-data; name=file; filename=myExcelFile.xlsx"
}
}
]
},
"method": "POST",
"uri": "https://finance.contoso.com"
},
"runAfter": {},
"type": "Http"
}
Uygulama/x-www-form-urlencoded türüne sahip içerik
Bir HTTP isteğinin gövdesinde form-urlencoded bir veri sağlamak için, verinin application/x-www-form-urlencoded içerik türüne sahip olduğunu belirtmeniz gerekir. HTTP tetikleyicisine veya eylemine content-type üst bilgiyi ekleyin. Üst bilgi değerini application/x-www-form-urlencoded olarak ayarlayın.
Örneğin, türünü destekleyen application/x-www-form-urlencoded bir web sitesine HTTP POST isteği gönderen bir mantıksal uygulamanız olduğunu varsayalım. Bu eylem şöyle görünebilir:
Zaman uyumsuz istek-yanıt davranışı
Hem çok kiracılı hem de tek kiracılı Azure Logic Apps'teki durum bilgisi olan iş akışları için, tüm HTTP tabanlı eylemler varsayılan davranış olarak standart zaman uyumsuz işlem desenini izler. Bu düzen, BIR HTTP eylemi uç nokta, hizmet, sistem veya API'ye istek gönderdikten veya çağırdıktan sonra alıcının hemen 202 ACCEPTED yanıtı döndürdüğünü belirtir. Bu kod, alıcının isteği kabul ettiğini ancak işlenmesinin tamamlanmadığını onaylar. Yanıt, alıcı işlemi durdurup location olmayan başka bir yanıt döndürene kadar çağıranın zaman uyumsuz isteği yoklama veya denetleme için kullanabileceği URI'yi ve yenileme kimliğini belirten bir üst bilgi içerebilir. Ancak, çağıranın isteğin işlenmesini beklemesi gerekmez ve sonraki eylemi yürütmeye devam edebilir. Daha fazla bilgi için bkz . Zaman uyumlu ve zaman uyumsuz mesajlaşma.
Tek kiracılı Azure Logic Apps'teki durum bilgisi olmayan iş akışları için HTTP tabanlı eylemler zaman uyumsuz işlem desenini kullanmaz. Bunun yerine, yalnızca zaman uyumlu olarak çalışır, as-is202 ACCEPTED yanıtını döndürür ve iş akışı yürütmesinde bir sonraki adıma geçer. Yanıt bir location üst bilgi içeriyorsa, durum bilgisi olmayan bir iş akışı durumu denetlemek için belirtilen URI'yi yoklamaz. Standart zaman uyumsuz işlem desenini izlemek için bunun yerine durum bilgisi olan bir iş akışı kullanın.
HTTP eyleminin temel JSON tanımı zaman uyumsuz işlem desenini örtük olarak izler.
HTTP eylemi, tetikleyici haricinde, varsayılan olarak etkin olan bir Asenkron desen ayarına sahiptir. Bu ayar, çağıranın işlemin tamamlanmasını beklemediğini ve sonraki eyleme geçebileceğini ancak işleme durdurulana kadar durumu denetlemeye devam ettiğini belirtir. Devre dışı bırakılırsa, bu ayar çağıranın bir sonraki eyleme geçmeden önce işlemin tamamlanmasını beklediğini belirtir.
Asenkron desen ayarını bulmak için:
- İş akışı tasarımcısında HTTP eylemini seçin.
- Açılan bilgi bölmesinde Ayarlar'ı seçin.
- Ağ başlığı altındaAsenkron Desen ayarını bulun.
Zaman uyumsuz işlemleri devre dışı bırakma
Bazen, örneğin aşağıdakileri yapmak istediğinizde belirli senaryolarda HTTP eyleminin zaman uyumsuz davranışını devre dışı bırakmak isteyebilirsiniz:
- Uzun süre çalışan görevler için HTTP zaman aşımlarından kaçının
- Konum üst bilgilerini denetlemeyi devre dışı bırakma
Zaman uyumsuz desen ayarını kapatma
İş akışı tasarımcısında HTTP eylemini seçin ve açılan bilgi bölmesinde Ayarlar'ı seçin.
Ağ başlığı altındaAsenkron Desen ayarını bulun. Etkinleştirildiyse ayarı Kapalı olarak ayarlayın.
Eylemin JSON tanımında zaman uyumsuz deseni devre dışı bırakma
HTTP eyleminin temel JSON tanımında, eylemin DisableAsyncPattern bunun yerine zaman uyumlu işlem desenini izlemesi için işlem seçeneğini eylemin tanımına ekleyin. Daha fazla bilgi için bkz. Eylemleri zaman uyumlu bir işlem düzeninde çalıştırma.
Uzun süre çalışan görevler için HTTP zaman aşımlarından kaçının
HTTP isteklerinin zaman aşımı sınırı vardır. Bu sınır nedeniyle zaman aşımına uğracak uzun süre çalışan bir HTTP eyleminiz varsa, şu seçenekleriniz vardır:
HTTP eyleminin zaman uyumsuz işlem düzenini devre dışı bırakın ; böylece eylem sürekli olarak yoklamaz veya isteğin durumunu denetlemez. Bunun yerine eylem, istek işlemeyi tamamladıktan sonra alıcının durum ve sonuçlarla yanıt vermesini bekler.
HTTP eylemini, istek işleme tamamlandıktan sonra alıcının durum ve sonuçlarla yanıt vermesini bekleyen HTTP Web Kancası eylemiyle değiştirin.
Retry-After üst bilgisi ile yeniden deneme girişimleri arasında aralık ayarlama
Yeniden deneme girişimleri arasındaki saniye sayısını belirtmek için üst bilgiyi HTTP eylem yanıtına ekleyebilirsiniz Retry-After . Örneğin, hedef uç nokta durum kodunu döndürürse 429 - Too many requests , yeniden denemeler arasında daha uzun bir aralık belirtebilirsiniz. Başlık, durum kodu Retry-After ile de çalışır.
İşte Retry-After içeren HTTP eylem yanıtını gösteren aynı örnek:
{
"statusCode": 429,
"headers": {
"Retry-After": "300"
}
}
Sayfalandırma desteği
Bazen, hedef hizmet sonuçları her seferinde bir sayfa döndürerek yanıt verir. Yanıt nextLink veya @odata.nextLink özelliğini kullanarak bir sonraki sayfayı belirtiyorsa, HTTP eylemindeki Sayfalandırma ayarını etkinleştirebilirsiniz. Bu ayar , HTTP eyleminin bu bağlantıları otomatik olarak izlemesine ve sonraki sayfayı almasına neden olur. Ancak, yanıt bir sonraki sayfayı başka bir etiketle belirtirse, iş akışınıza bir döngü eklemeniz gerekebilir. Bu döngüyü o etiketi takip eder şekilde yapın ve etiket geçersiz hale gelene kadar her sayfayı manüel olarak alın.
Konum üst bilgilerini denetlemeyi devre dışı bırakma
Bazı uç noktalar, hizmetler, sistemler veya API'ler, üst bilgisi olmayan bir 202 ACCEPTED yanıtı döndürüyor. HTTP eyleminin location başlığı mevcut olmadığında isteğin durumunu sürekli olarak kontrol etmesini önlemek için şu seçenekleriniz olabilir:
HTTP eyleminin zaman uyumsuz işlem düzenini devre dışı bırakın ; böylece eylem sürekli olarak yoklamaz veya isteğin durumunu denetlemez. Bunun yerine eylem, istek işlemeyi tamamladıktan sonra alıcının durum ve sonuçlarla yanıt vermesini bekler.
HTTP eylemini, istek işleme tamamlandıktan sonra alıcının durum ve sonuçlarla yanıt vermesini bekleyen HTTP Web Kancası eylemiyle değiştirin.
Bilinen sorunlar
Atlanmış HTTP üst bilgileri
Bir HTTP tetikleyicisi veya eylemi bu üst bilgileri içeriyorsa, Azure Logic Apps bu üst bilgileri herhangi bir uyarı veya hata göstermeden oluşturulan istek iletisinden kaldırır:
-
Accept-*aşağıdakiler dışında üst bilgilerAccept-version Allow-
Content-*POST ve PUT işlemlerini kullandığınızda kabul edilenContent-Dispositionbaşlıkları hariçContent-EncodingveContent-Typedışındaki tüm üst bilgiler. Ancak, Azure Logic AppsGETişlemini kullandığınızda bu üst bilgileri kaldırır. -
Cookieüst bilgisi olsa da, Azure Logic Apps,Cookieözelliği kullanılarak belirtilen herhangi bir değeri kabul eder. ExpiresHostLast-ModifiedOriginSet-CookieTransfer-Encoding
Azure Logic Apps, bu üst bilgilerle HTTP tetikleyicisi veya eylemi kullanan mantıksal uygulamaları kaydetmenizi engellemese de, Azure Logic Apps bu üst bilgileri yoksayar.
Yanıt içeriği beklenen içerik türüyle eşleşmiyor
HTTP eylemi üst bilgi application/json olarak ayarlanmış arka uç API'sini Content-Type çağırırsa, HTTP eylemi BadRequest hatası oluşturur, ancak arka uçtan gelen yanıt aslında JSON biçiminde içerik içermez ve bu da iç JSON biçimi doğrulamasında başarısız olur.