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
Şunlar için geçerlidir: Azure Logic Apps (Tüketim + Standart)
Bazı senaryolar, diğer hizmetlerden veya iş akışlarından gelen istekleri alabilen bir mantıksal uygulama iş akışı veya URL kullanarak çağırabileceğiniz bir iş akışı oluşturmanızı gerektirebilir. Bu görev için, aşağıdaki istek tabanlı tetikleyici türlerinden herhangi birini kullandığınızda iş akışınızda yerel bir zaman uyumlu HTTPS uç noktasını kullanıma açabilirsiniz:
- İste
- HTTP Web kancası
- ApiConnectionWebhook türüne sahip ve gelen HTTPS isteklerini alabilen yönetilen bağlayıcı tetikleyicileri
Bu kılavuzda, İstek tetikleyicisini ekleyip başka bir iş akışından bu uç noktayı çağırarak iş akışınız için çağrılabilen bir uç nokta oluşturma işlemi gösterilmektedir. Tüm ilkeler aynı şekilde gelen istekleri alabilen diğer istek tabanlı tetikleyici türleri için de geçerlidir.
Önkoşullar
Bir Azure hesabı ve aboneliği Aboneliğiniz yoksa, ücretsiz bir Azure hesabı için kaydolun.
Çağrılabilen uç noktayı oluşturmak için İstek tetikleyicisini kullanmak istediğiniz mantıksal uygulama iş akışı. Boş bir iş akışıyla veya geçerli tetikleyiciyi değiştirebileceğiniz mevcut bir iş akışıyla başlayabilirsiniz. Bu örnek boş bir iş akışıyla başlar.
Çözümünüzü test etmek için HTTP istekleri gönderebilen bir araç yükleyin veya kullanın, örneğin:
- Visual Studio Market'ten uzantılı Visual Studio Code
- PowerShell Invoke-RestMethod
- Microsoft Edge - Ağ Konsolu aracı
- Bruno
- Curl
Dikkat
Kimlik bilgileri, gizli diziler, erişim belirteçleri, API anahtarları ve diğer benzer bilgiler gibi hassas verileriniz olduğu senaryolarda, verilerinizi gerekli güvenlik özellikleriyle koruyan, çevrimdışı veya yerel olarak çalışan, verilerinizi bulutla eşitlemeyen ve çevrimiçi bir hesapta oturum açmanızı gerektirmeyen bir araç kullandığınızdan emin olun. Bu şekilde, hassas verileri herkese açık hale getirmekle ilgili riski azaltırsınız.
Çağrılabilen uç nokta oluşturma
Standart veya Tüketim mantıksal uygulaması iş akışına bağlı olarak, ilgili adımları izleyin:
Azure portalında Standart mantıksal uygulama kaynağınızı ve boş iş akışınızı tasarımcıda açın.
HTTP isteği alındığında adlı İstek tetikleyicisini eklemek için bu genel adımları izleyin.
İsteğe bağlı olarak, İstek Gövdesi JSON Şeması kutusuna tetikleyicinin almasını beklediğiniz yükü veya verileri açıklayan bir JSON şeması girebilirsiniz.
Tasarımcı, tetikleyici çıkışlarını temsil eden belirteçler oluşturmak için bu şemayı kullanır. Daha sonra mantıksal uygulamanızın iş akışı boyunca bu çıkışlara kolayca başvurabilirsiniz. JSON şemalarından oluşturulan belirteçler hakkında daha fazla bilgi edinin.
Bu örnek için aşağıdaki şemayı girin:
{ "type": "object", "properties": { "address": { "type": "object", "properties": { "streetNumber": { "type": "string" }, "streetName": { "type": "string" }, "town": { "type": "string" }, "postalCode": { "type": "string" } } } } }
Alternatif olarak, örnek bir yük sağlayarak bir JSON şeması 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 kutusuna örnek yükünüzü girin, örneğin:
{ "address": { "streetNumber": "00000", "streetName": "AnyStreet", "town": "AnyTown", "postalCode": "11111-1111" } }
Hazır olduğunuzda Bitti'yi seçin.
İstek Gövdesi JSON Şeması kutusu artık oluşturulan şemayı gösterir.
İş akışınızı kaydedin.
HTTP POST URL'si kutusu artık diğer hizmetlerin mantıksal uygulama iş akışınızı çağırmak ve tetiklemek için kullanabileceği oluşturulan geri çağırma URL'sini gösterir. Bu URL, kimlik doğrulaması için kullanılan Paylaşılan Erişim İmzası (SAS) anahtarını belirten sorgu parametrelerini içerir.
Geri arama URL'sini kopyalamak için şu seçeneklere sahipsiniz:
HTTP POST URL'si kutusunun sağındaki URL'yi kopyala (dosyaları kopyala simgesi) öğesini seçin.
İş akışınızın Genel Bakış sayfasından geri arama URL'sini kopyalayın.
Geri çağırma URL'sini test etmek ve iş akışını tetikleyebilmek için HTTP isteği aracınızı ve yönergelerini kullanarak İstek tetikleyicisinin beklediği yöntem de dahil olmak üzere URL'ye bir HTTP isteği gönderin.
Bu örnekte kopyalanan URL ile POST yöntemi kullanılır ve aşağıdaki örneğe benzer:
POST https://{logic-app-name}.azurewebsites.net:443/api/{workflow-name}/triggers/{trigger-name}/invoke?api-version=2022-05-01&sp=%2Ftriggers%2F{trigger-name}%2Frun&sv=1.0&sig={shared-access-signature}
Beklenen istek yöntemini seçin
Varsayılan olarak İstek tetikleyicisi bir POST
istek bekler. Ancak, çağıranın kullanması gereken farklı bir yöntem belirtebilir, ancak yalnızca tek bir yöntem belirtebilirsiniz.
İstek tetikleyicisinde Gelişmiş parametreler listesini açın ve bu özelliği tetikleyiciye ekleyen Yöntem'i seçin.
Yöntem listesinden tetikleyicinin beklemesi gereken yöntemi seçin. İsterseniz özel bir yöntem de belirtebilirsiniz.
Örneğin, uç noktanızın URL'sini daha sonra test edebilmeniz için GET yöntemini seçin.
Parametreleri uç nokta URL'si üzerinden geçirme
Uç noktanın URL'si aracılığıyla parametre değerlerini kabul etmek istediğinizde şu seçeneklere sahip olursunuz:
GET parametreleri veya URL parametreleri aracılığıyla değerleri kabul edin.
Bu değerler, uç noktanın URL'sinde ad-değer çiftleri olarak geçirilir. Bu seçenek için İstek tetikleyicinizde GET yöntemini kullanmanız gerekir. Sonraki bir eylemde, bir ifadedeki işlevini kullanarak
triggerOutputs()
parametre değerlerini tetikleyici çıkışları olarak alabilirsiniz.İstek tetikleyicinizdeki parametreler için göreli bir yol üzerinden değerleri kabul edin.
Bu değerler, uç noktanın URL'sindeki göreli bir yoldan geçirilir. Tetikleyicinin beklediği yöntemi de açıkça seçmeniz gerekir. Sonraki bir eylemde, bu çıkışlara doğrudan başvurarak parametre değerlerini tetikleyici çıkışları olarak alabilirsiniz.
GET parametreleri aracılığıyla değerleri kabul etme
İstek tetikleyicisinde Gelişmiş parametreleri açın, tetikleyiciye Method özelliğini ekleyin ve GET yöntemini seçin.
Daha fazla bilgi için bkz . Beklenen istek yöntemini seçme.
Tasarımcıda, parametre değerini kullanmak istediğiniz eylemi eklemek için bu genel adımları izleyin.
Bu örnekte Yanıt adlı eylemi seçin.
Parametre değerini alan ifadeyi oluşturmak
triggerOutputs()
için şu adımları izleyin:Yanıt eyleminde Body özelliğinin içini seçerek dinamik içerik (şimşek simgesi) ve ifade düzenleyicisi (formül simgesi) seçeneklerinin gösterilmesini sağlayın. İfade düzenleyicisini açmak için formül simgesini seçin.
İfade kutusuna aşağıdaki ifadeyi girin ve değerini parametre adınızla değiştirin
parameter-name
ve Tamam'ı seçin.triggerOutputs()['queries']['parameter-name']
Body özelliğinde ifade belirteci
triggerOutputs()
çözümler.İş akışını kaydeder, tasarımcıdan uzaklaşır ve tasarımcıya dönerseniz, belirteç belirttiğiniz parametre adını gösterir, örneğin:
Kod görünümünde Body özelliği, Yanıt eyleminin tanımında aşağıdaki gibi görünür:
"body": "@{triggerOutputs()['queries']['parameter-name']}",
Örneğin, adlı
postalCode
parametre için bir değer geçirmek istediğinizi varsayalım. Body özelliği,Postal Code:
sonunda boşluk olan dizeyi ve ardından karşılık gelen ifadeyi belirtir:
Çağrılabilen uç noktanızı test edin
İstek tetikleyicisinden iş akışı URL'sini kopyalayın ve URL'yi başka bir tarayıcı penceresine yapıştırın. URL'de, parametre adını ve değerini URL'ye aşağıdaki biçimde ekleyin ve Enter tuşuna basın.
...invoke/{parameter-name}/{parameter-value}?api-version=2022-05-01...
Örneğin:
https://mystandardlogicapp.azurewebsites.net/api/Stateful-Workflow/triggers/When_a_HTTP_request_is_received/invoke/address/12345?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig={shared-access-signature}
Tarayıcı şu metni içeren bir yanıt döndürür:
Postal Code: 123456
Not
Karma veya pound simgesini (#) URI'ye eklemek istiyorsanız, bunun yerine şu kodlanmış sürümü kullanın: %25%23
Göreli bir yol üzerinden değerleri kabul etme
İstek tetikleyicisinde Gelişmiş parametreler listesini açın ve bu özelliği tetikleyiciye ekleyen Göreli yol'ı seçin.
Göreli yol özelliğinde, JSON şemanızda URL'nizin kabul etmelerini istediğiniz parametrenin göreli yolunu belirtin; örneğin,
/address/{postalCode}
.İstek tetikleyicisinin altında, parametre değerini kullanmak istediğiniz eylemi eklemek için bu genel adımları izleyin.
Bu örnekte Yanıt eylemini ekleyin.
Yanıt eyleminin Gövde özelliğine, tetikleyicinizin göreli yolunda belirttiğiniz parametreyi temsil eden belirteci ekleyin.
Örneğin, Yanıt eyleminin döndürmesini
Postal Code: {postalCode}
istediğinizi varsayalım.Body özelliğine sondaki bir boşlukla girin
Postal Code:
. İmlecinizi düzenleme kutusunun içinde tutarak dinamik içerik listesinin açık kalmasını sağlayın.Dinamik içerik listesinde, HTTP isteği alındığında bölümünde Yol Parametreleri posta kodu tetikleyici çıkışını seçin.
Body özelliği artık seçili parametreyi içerir:
İş akışınızı kaydedin.
İstek tetikleyicisinde geri çağırma URL'si güncelleştirilir ve şimdi göreli yolu içerir, örneğin:
https://mystandardlogicapp.azurewebsites.net/api/Stateful-Workflow/triggers/When_a_HTTP_request_is_received/invoke/address/%7BpostalCode%7D?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig={shared-access-signature}
Çağrılabilen uç noktayı test etmek için İstek tetikleyicisinden güncelleştirilmiş geri çağırma URL'sini kopyalayın, URL'yi başka bir tarayıcı penceresine yapıştırın, URL'yi ile
123456
değiştirin%7BpostalCode%7D
ve Enter tuşuna basın.Tarayıcı şu metni içeren bir yanıt döndürür:
Postal Code: 123456
Not
Karma veya pound simgesini (#) URI'ye eklemek istiyorsanız, bunun yerine şu kodlanmış sürümü kullanın: %25%23
Uç nokta URL'si aracılığıyla iş akışını çağırma
Uç noktayı oluşturduktan sonra, uç noktanın tam URL'sine bir HTTPS isteği göndererek iş akışını tetikleyebilirsiniz. Azure Logic Apps iş akışları, doğrudan erişim uç noktaları için yerleşik desteğe sahiptir.
Şemadan oluşturulan belirteçler
İstek tetikleyicisinde bir JSON şeması sağladığınızda, iş akışı tasarımcısı bu şemadaki özellikler için belirteçler oluşturur. Daha sonra bu belirteçleri iş akışınızdan veri geçirmek için kullanabilirsiniz.
Örneğin, JSON şemanıza gibi "suite"
daha fazla özellik eklerseniz, iş akışınızın sonraki adımlarında bu özelliklerin belirteçlerini kullanabilirsiniz. JSON şemasının tamamı aşağıdadır:
{
"type": "object",
"properties": {
"address": {
"type": "object",
"properties": {
"streetNumber": {
"type": "string"
},
"streetName": {
"type": "string"
},
"suite": {
"type": "string"
},
"town": {
"type": "string"
},
"postalCode": {
"type": "string"
}
}
}
}
}
Diğer iş akışlarını çağırma
İstekleri geçerli iş akışının içine yerleştirerek alabilen diğer iş akışlarını çağırabilirsiniz. Bu iş akışlarını çağırmak için şu adımları izleyin:
Tasarımcıda, bu iş akışı uygulamasında iş akışı çağır adlı İş Akışı İşlemleri eylemini eklemek için bu genel adımları izleyin.
İş Akışı Adı listesi, seçmeniz için uygun iş akışlarını gösterir.
İş Akışı Adı listesinden, çağırmak istediğiniz iş akışını seçin, örneğin:
Gelen istekten gelen içeriğe başvurma
Gelen isteğin içerik türü ise application/json
, gelen istekteki özelliklere başvurabilirsiniz. Aksi takdirde, bu içerik diğer API'lere geçirebileceğiniz tek bir ikili birim olarak değerlendirilir. Mantıksal uygulamanızın iş akışında bu içeriğe başvurmak için önce bu içeriği dönüştürmeniz gerekir.
Örneğin, türü olan application/xml
içeriği geçiriyorsanız, XPath ayıklaması gerçekleştirmek için ifadeyi@xpath()
kullanabilir veya XML'yi JSON'a dönüştürmek için ifadeyi @json()
kullanabilirsiniz. Desteklenen içerik türleriyle çalışma hakkında daha fazla bilgi edinin.
Gelen istekten çıktı almak için ifadesini kullanabilirsiniz.@triggerOutputs
Örneğin, aşağıdaki örneğe benzer bir çıktınız olduğunu varsayalım:
{
"headers": {
"content-type" : "application/json"
},
"body": {
"myProperty" : "property value"
}
}
Özellikle özelliğine body
erişmek için ifadeyi @triggerBody()
kısayol olarak kullanabilirsiniz.
İstekleri yanıtlama
Bazen, çağırana içerik döndürerek iş akışınızı tetikleyen belirli isteklere yanıt vermek istersiniz. Yanıtınızın durum kodunu, üst bilgisini ve gövdesini oluşturmak için Yanıt eylemini kullanın. Bu eylem yalnızca iş akışınızın sonunda değil iş akışınızın herhangi bir yerinde görünebilir. İş akışınız bir Yanıt eylemi içermiyorsa uç nokta 202 Kabul Edildi durumuyla hemen yanıt verir.
Özgün çağıranın yanıtı başarıyla alabilmesi için, tetiklenen iş akışı iç içe iş akışı olarak çağrılmadığı sürece yanıt için gerekli tüm adımların istek zaman aşımı sınırı içinde bitmelidir. Bu sınır içinde yanıt döndürülmezse, gelen istek zaman aşımına uğradı ve 408 İstemci zaman aşımı yanıtını alır.
İç içe geçmiş iş akışları için üst iş akışı, ne kadar süre gerekli olursa olsun tüm adımlar tamamlanana kadar yanıt beklemeye devam eder.
Yanıtı oluşturma
Yanıt gövdesine birden çok üst bilgi ve herhangi bir içerik türü ekleyebilirsiniz. Örneğin, aşağıdaki yanıtın üst bilgisi yanıtın içerik türünün olduğunu application/json
ve gövdesinin İstek tetikleyicisi için bu konunun önceki bölümlerinde açıklanan JSON şemasına göre ve postalCode
özellikleri için town
değerler içerdiğini belirtir.
Yanıtlar şu özelliklere sahiptir:
Özellik (Görüntü) | Özellik (JSON) | Açıklama |
---|---|---|
Durum Kodu | statusCode |
Gelen istek için yanıtta kullanılacak HTTPS durum kodu. Bu kod 2xx, 4xx veya 5xx ile başlayan geçerli bir durum kodu olabilir. Ancak, 3xx durum kodlarına izin verilmez. |
Üst bilgiler | headers |
Yanıta eklenecek bir veya daha fazla üst bilgi |
Gövde | body |
Dize, JSON nesnesi, hatta önceki bir adımdan başvurulmuş ikili içerik olabilecek bir gövde nesnesi |
Yanıt eyleminin JSON tanımını ve iş akışınızın tam JSON tanımını görüntülemek için tasarımcı görünümünden kod görünümüne geçin.
"Response": {
"type": "Response",
"kind": "http",
"inputs": {
"body": {
"postalCode": "@triggerBody()?['address']?['postalCode']",
"town": "@triggerBody()?['address']?['town']"
},
"headers": {
"content-type": "application/json"
},
"statusCode": 200
},
"runAfter": {}
}
Sorular ve Yanıtlar
S: Gelen aramalar için URL güvenliği ne olacak?
Y: Azure, Paylaşılan Erişim İmzası (SAS) kullanarak mantıksal uygulama geri çağırma URL'lerini güvenli bir şekilde oluşturur. Bu imza bir sorgu parametresi olarak geçer ve iş akışınızın çalıştırılabilmesi için önce doğrulanması gerekir. Azure, mantıksal uygulama başına gizli anahtarın benzersiz bir bileşimini, tetikleyici adını ve gerçekleştirilen işlemi kullanarak imzayı oluşturur. Bu nedenle, gizli dizi mantıksal uygulama anahtarına erişimi olmadığı sürece geçerli bir imza oluşturamaz.
Önemli
Üretim ve daha yüksek güvenlik sistemleri için aşağıdaki nedenlerle iş akışınızı doğrudan tarayıcıdan çağırmamanızı kesinlikle öneririz:
- Paylaşılan erişim anahtarı URL'de görünür.
- Azure Logic Apps müşterileri genelinde paylaşılan etki alanları nedeniyle güvenlik içerik ilkelerini yönetemezsiniz.
Daha önce Güvenli Yuva Katmanı (SSL) olarak bilinen Aktarım Katmanı Güvenliği (TLS), Microsoft Entra ID Açık Kimlik Doğrulaması (Microsoft Entra ID OAuth) gibi iş akışınıza gelen çağrılar için güvenlik, yetkilendirme ve şifreleme, Azure API Management ile mantıksal uygulama iş akışınızı ortaya çıkarma veya gelen çağrıları oluşturan IP adreslerini kısıtlama hakkında daha fazla bilgi için bkz. İstek tabanlı tetikleyicilere gelen çağrılar için güvenli erişim ve veri erişimi.
S: Çağrılabilen uç noktaları daha fazla yapılandırabilir miyim?
Y: Evet, HTTPS uç noktaları Azure API Management aracılığıyla daha gelişmiş yapılandırmayı destekler. Bu hizmet ayrıca mantıksal uygulamalar dahil olmak üzere tüm API'lerinizi tutarlı bir şekilde yönetme, özel etki alanı adları ayarlama, daha fazla kimlik doğrulama yöntemi kullanma ve daha fazlasını yapmanıza olanak sağlar. Örneğin:
- İstek yöntemini değiştirme
- İsteğin URL kesimlerini değiştirme
- Azure portalında API Management etki alanlarınızı ayarlama
- Temel kimlik doğrulamasını denetlemek için ilke ayarlama