Azure Logic Apps'teki iş akışlarından dış HTTP veya HTTPS uç noktalarını çağırma
Ş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.
Not
Bunun yerine gelen HTTPS çağrılarını alıp 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 ve yerleşik İstek tetikleyicisi ve Yanıt eylemi.
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ı denetlemek veya yoklamak için HTTP tetikleyicisini iş akışınızın ilk adımı olarak 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 bir yerden uç noktayı çağırmak için HTTP eylemini 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
Hedef uç noktayı çağırmak istediğiniz mantıksal uygulama iş akışı. HTTP tetikleyicisiyle başlamak için boş bir iş akışı gerekir. HTTP eylemini kullanmak için iş akışınızı istediğiniz tetikleyiciyle başlatın. Bu örnekte, ilk adım olarak HTTP tetikleyicisi kullanılır.
Bağlan veya teknik başvuru
Tetikleyici ve eylem parametreleri hakkında teknik bilgi için 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ı ve boş iş akışınızı tasarımcıda açın.
İş akışınıza HTTP adlı yerleşik tetikleyiciyi eklemek için bu genel adımları izleyin.
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.
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 konulara bakın:
Diğer kullanılabilir parametreleri eklemek için Gelişmiş parametreler listesini açın ve istediğiniz parametreleri seçin.
Tetikleyici tetiklendiğinde çalıştırmak istediğiniz diğer eylemleri ekleyin.
Tamamladığınızda, 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 http çağrısı yapar ve bir yanıt döndürür.
Azure portalında Tüketim mantığı uygulamanızı ve iş akışınızı tasarımcıda açın.
Bu örnek, ilk adım olarak önceki bölümde eklenen HTTP tetikleyicisini kullanır.
İş akışınıza HTTP adlı yerleşik eylemi eklemek için bu genel adımları izleyin.
Bu örnek, eylemi HTTP eylemi olarak yeniden adlandırır - Adımın 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.
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 şu konulara bakın:
Diğer kullanılabilir parametreleri eklemek için Gelişmiş parametreler listesini açın ve istediğiniz parametreleri seçin.
Tamamladığınızda, iş akışınızı kaydedin. Tasarımcı araç çubuğunda Kaydet'i seçin.
Tetikleyici ve eylem çıkışları
Aşağıda, aşağıdaki bilgileri döndüren bir HTTP tetikleyicisinden veya eyleminden elde edilen çıkışlar hakkında daha fazla bilgi bulabilirsiniz:
Özellik | 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 |
Tamsayı | İstekten gelen durum kodu |
Durum kodu | Açıklama |
---|---|
200 | Tamam |
202 | Kabul edildi |
400 | Hatalı istek |
Kategori 401 | Yetkisiz |
403 | Yasak |
404 | Bulunamadı |
500 | İç sunucu hatası. Bilinmeyen bir hata oluştu. |
Giden aramalar için URL güvenliği
Daha önce Güvenli Yuva Katmanı (SSL), otomatik olarak imzalanan sertifikalar veya Microsoft Entra ID Açık Kimlik Doğrulaması (Microsoft Entra ID OAuth) olarak bilinen Aktarım Katmanı Güvenliği (TLS) gibi iş akışınızdan gelen giden çağrılar için şifreleme, güvenlik ve yetkilendirme hakkında bilgi için bkz. Güvenli erişim ve veri - 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/SSL sertifikası: Uygulama ayarını
WEBSITE_LOAD_ROOT_CERTIFICATES
ekleyin ve değerini TLS/SSL sertifikanızın parmak izi olarak ayarlayın."Sertifika" kimlik bilgisi türüne sahip istemci sertifikası veya Microsoft Entra Id Open Authentication (Microsoft Entra ID OAuth): Uygulama ayarını
WEBSITE_LOAD_USER_PROFILE
ekleyin ve değerini olarak1
ayarlayın.
TLS/SSL sertifika kimlik doğrulaması
Mantıksal uygulama kaynağınızın uygulama ayarlarında uygulama ayarını
WEBSITE_LOAD_ROOT_CERTIFICATES
ekleyin veya güncelleştirin.Ayar değeri için TLS/SSL sertifikanızın parmak izini güvenilecek kök sertifika olarak sağlayın.
"WEBSITE_LOAD_ROOT_CERTIFICATES": "<thumbprint-for-TLS/SSL-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
Values
ayarı ekleyin veya güncelleştirinWEBSITE_LOAD_ROOT_CERTIFICATES
:{ "IsEncrypted": false, "Values": { <...> "AzureWebJobsStorage": "UseDevelopmentStorage=true", "WEBSITE_LOAD_ROOT_CERTIFICATES": "<thumbprint-for-TLS/SSL-certificate>", <...> } }
Not
Parmak izini bulmak için şu adımları izleyin:
Mantıksal uygulama kaynak menünüzün Ayarlar altında TLS/SSL ayarları>Özel Anahtar Sertifikaları (.pfx) veya Ortak Anahtar Sertifikaları (.cer) seçeneğini belirleyin.
Kullanmak istediğiniz sertifikayı bulun ve parmak izini kopyalayın.
Daha fazla bilgi için Parmak izini bulma - Azure Uygulaması Hizmeti'ni gözden geçirin.
Daha fazla bilgi için aşağıdaki belgeleri gözden geçirin:
- Tek kiracılı Azure Logic Apps'te mantıksal uygulamalar için konak ve uygulama ayarlarını düzenleme
- Özel istemci sertifikaları - Azure Uygulaması Hizmeti
"Sertifika" kimlik bilgisi türü kimlik doğrulaması ile istemci sertifikası veya Microsoft Entra ID OAuth
Mantıksal uygulama kaynağınızın uygulama ayarlarında uygulama ayarını
WEBSITE_LOAD_USER_PROFILE
ekleyin veya güncelleştirin.Ayar değeri için değerini belirtin
1
."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
Values
ayarı ekleyin veya güncelleştirinWEBSITE_LOAD_USER_PROFILE
:{ "IsEncrypted": false, "Values": { <...> "AzureWebJobsStorage": "UseDevelopmentStorage=true", "WEBSITE_LOAD_USER_PROFILE": "1", <...> } }
Daha fazla bilgi için aşağıdaki belgeleri gözden geçirin:
- Tek kiracılı Azure Logic Apps'te mantıksal uygulamalar için konak ve uygulama ayarlarını düzenleme
- Özel istemci sertifikaları - Azure Uygulaması Hizmeti
Ç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övdesine $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, bu sitenin türünü destekleyen API'sini kullanarak bir Web sitesine Excel dosyası için HTTP POST isteği gönderen bir iş akışınız multipart/form-data
olduğunu varsayalım. Aşağıdaki örnek, bu eylemin nasıl görünebileceğini gösterir:
Standart iş akışı
Tüketim iş akışı
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ği için gövdede form urlencoded verileri sağlamak için, verilerin içerik türüne application/x-www-form-urlencoded
sahip olduğunu belirtmeniz gerekir. HTTP tetikleyicisine veya eylemine content-type
üst bilgiyi ekleyin. Üst bilgi değerini olarak application/x-www-form-urlencoded
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:
Standart iş akışı
Tüketim iş akışı
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, HTTP eylemi bir uç nokta, hizmet, sistem veya API'ye istek çağırdıktan veya gönderdikten sonra alıcının hemen bir "202 KABUL EDİLEN" yanıtı döndürdüğünü belirtir. Bu kod, alıcının isteği kabul ettiğini ancak işlemeyi tamamlamadığını onaylar. Yanıt, alıcı işlemi durdurup "200 Tamam" başarı yanıtı veya 202 dışı başka bir yanıt döndürene kadar çağıranın zaman uyumsuz isteği yoklamak veya denetlemek için kullanabileceği URI'yi ve yenileme kimliğini belirten bir üst bilgi içerebilirlocation
. Ancak, çağıranın isteğin işlenmesini beklemesi gerekmez ve sonraki eylemi çalıştırmaya devam edebilir. Daha fazla bilgi için bkz . Zaman uyumsuz mikro hizmet tümleştirmesi mikro hizmet özerkliğini zorlar.
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, "202 ACCEPTED" yanıtını olduğu gibi döndürür ve iş akışı yürütmesindeki 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 javascript nesne gösterimi (JSON) tanımı, zaman uyumsuz işlem desenini örtük olarak izler.
HTTP eyleminin tetikleyicisi değil, varsayılan olarak etkin olan Zaman Uyumsuz Desen ayarı vardır. 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.
Zaman Uyumsuz Desen ayarını bulmak için, Standart veya Tüketim iş akışınız olup olmadığına bağlı olarak şu adımları izleyin:
Standart iş akışı*
İş akışı tasarımcısında HTTP eylemini seçin. Açılan bilgi bölmesinde Ayarlar'i seçin.
Ağ altında Zaman Uyumsuz Desen ayarını bulun.
Tüketim iş akışı
İş akışı tasarımcısında, HTTP eyleminin başlık çubuğunda, eylemin ayarlarını açan üç nokta (...) düğmesini seçin.
Zaman Uyumsuz 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'i seçin.
Ağ altında Zaman Uyumsuz 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.
Yeniden Deneme-Sonra ü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. Üst Retry-After
bilgi durum koduyla 202 - Accepted
da çalışır.
aşağıda, içeren HTTP eylem yanıtını gösteren örnek verilmiştir Retry-After
:
{
"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ğiyle sonraki sayfayı belirtiyorsa, HTTP eyleminde Sayfalandırma ayarını açabilirsiniz. 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ünün bu etiketi izlemesini sağlayın ve etiket null olana kadar her sayfayı el ile alın.
Konum üst bilgilerini denetlemeyi devre dışı bırakma
Bazı uç noktalar, hizmetler, sistemler veya API'ler üst bilgisi olmayan bir 202 ACCEPTED
location
yanıt döndürür. HTTP eyleminin üst bilgi olmadığında istek durumunu location
sürekli olarak denetlemesini önlemek için şu seçeneklere sahip olabilirsiniz:
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 edilen ,Content-Encoding
veContent-Type
dışındakiContent-Disposition
üst bilgiler. Ancak, GET işlemini kullandığınızda Azure Logic Apps bu üst bilgileri bırakır.Cookie
üst bilgi, ancak Azure Logic Apps Cookie özelliğini kullanarak belirttiğiniz tüm değerleri kabul eder.Expires
Host
Last-Modified
Origin
Set-Cookie
Transfer-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.