Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: Azure Logic Apps (Consumption + Standard)
Některé scénáře mohou vyžadovat vytvoření pracovního postupu aplikace logiky, který může přijímat příchozí požadavky z jiných služeb nebo pracovních postupů nebo pracovního postupu, který můžete volat pomocí adresy URL. Pro tuto úlohu můžete v pracovním postupu vystavit nativní synchronní koncový bod HTTPS, když použijete některý z následujících typů triggerů založených na žádostech:
- Požádat
- Webhook HTTP
- Triggery spravovaného konektoru , které mají typ ApiConnectionWebhook a můžou přijímat příchozí požadavky HTTPS
Tato příručka ukazuje, jak vytvořit volatelný koncový bod pro váš pracovní postup přidáním triggeru požadavku a pak tento koncový bod volat z jiného pracovního postupu. Všechny principy se identicky vztahují na ostatní typy triggerů založené na požadavcích, které můžou přijímat příchozí požadavky.
Požadavky
Účet a předplatné Azure. Pokud předplatné nemáte, zaregistrujte si bezplatný účet Azure.
Prostředek aplikace logiky s pracovním postupem, ve kterém chcete vytvořit volatelný koncový bod.
Můžete začít prázdným pracovním postupem nebo existujícím pracovním postupem, kde můžete nahradit aktuální aktivační událost. Tento příklad začíná prázdným pracovním postupem.
Nainstalujte nebo použijte nástroj, který může odesílat požadavky HTTP k otestování vašeho řešení, například:
- Visual Studio Code s rozšířením z Webu Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge – nástroj konzoly sítě
- Bruno
- kudrna
Upozornění
V situacích, kdy máte citlivá data, jako jsou přihlašovací údaje, tajné kódy, přístupové tokeny, klíče rozhraní API a další podobné informace, nezapomeňte použít nástroj, který chrání vaše data pomocí nezbytných funkcí zabezpečení. Nástroj by měl fungovat offline nebo místně a nevyžaduje přihlášení k online účtu nebo synchronizaci dat do cloudu. Při použití nástroje s těmito charakteristikami snížíte riziko zveřejnění citlivých dat veřejnosti.
Vytvoření volatelného koncového bodu
Na základě toho, jestli máte pracovní postup aplikace logiky Standard nebo Consumption, postupujte podle odpovídajících kroků:
V Azure Portal otevřete svůj prostředek Standard pro logické aplikace.
V nabídce bočního panelu prostředku v části Pracovní postupy vyberte Pracovní postupy a pak vyberte prázdný pracovní postup.
V nabídce bočního panelu pracovního postupu v části Nástroje vyberte návrháře a otevřete pracovní postup.
Přidejte do pracovního postupu aktivační událost požadavku podle obecných kroků pro přidání triggeru.
Tento příklad pokračuje triggerem s názvem Při přijetí požadavku HTTP.
Volitelně můžete do pole Schéma JSON textu požadavku zadat schéma JSON, které popisuje datovou část nebo data, která očekáváte, že trigger bude přijímat.
Návrhář používá toto schéma ke generování tokenů, které představují výstupy triggeru. Tyto výstupy pak můžete snadno odkazovat v rámci pracovního postupu aplikace logiky. Přečtěte si další informace o tokenech generovaných ze schémat JSON.
V tomto příkladu zadejte následující schéma:
{ "type": "object", "properties": { "address": { "type": "object", "properties": { "streetNumber": { "type": "string" }, "streetName": { "type": "string" }, "town": { "type": "string" }, "postalCode": { "type": "string" } } } } }
Nebo můžete vygenerovat schéma JSON tím, že poskytnete ukázkovou datovou část:
V triggeru požadavku vyberte Použít ukázkovou datovou část k vygenerování schématu.
Do pole Enter nebo vložení ukázkové datové části JSON zadejte ukázkovou datovou část, například:
{ "address": { "streetNumber": "00000", "streetName": "AnyStreet", "town": "AnyTown", "postalCode": "11111-1111" } }Až budete připraveni, vyberte Hotovo.
Pole Základní schéma JSON požadavku teď zobrazuje vygenerované schéma.
Uložte pracovní postup.
Pole HTTP URL teď zobrazuje vygenerovanou adresu URL zpětného volání, kterou mohou ostatní služby použít k volání a aktivaci pracovního postupu logické aplikace. Tato adresa URL obsahuje parametry dotazu, které určují klíč sdíleného přístupového podpisu (SAS), který se používá k ověřování.
Zkopírujte adresu URL zpětného volání tak, že vyberete ikonu kopírovat soubory vedle pole ADRESA URL HTTP .
Pokud chcete otestovat adresu URL zpětného volání a aktivovat pracovní postup, odešlete požadavek HTTP na adresu URL, včetně metody, kterou aktivační událost požadavku očekává, pomocí nástroje požadavku HTTP a jeho pokynů.
Tento příklad používá metodu POST s zkopírovanou adresou URL, která vypadá jako v následující ukázce:
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}
Výběr očekávané metody požadavku
Trigger požadavku ve výchozím nastavení očekává POST požadavek. Můžete však zadat jinou metodu, kterou volající musí použít, ale pouze jednu metodu.
V triggeru Požadavku vyberte ze seznamu Metoda metodu, kterou má trigger očekávat místo toho. Nebo můžete zadat vlastní metodu.
Vyberte například metodu GET , abyste mohli později otestovat adresu URL koncového bodu.
Předání parametrů přes adresu URL koncového bodu
Pokud chcete přijímat hodnoty parametrů prostřednictvím adresy URL koncového bodu, máte tyto možnosti:
Přijměte hodnoty prostřednictvím parametrů GET nebo parametrů adresy URL.
Tyto hodnoty se předávají jako páry name-value v adrese URL koncového bodu. Pro tuto možnost musíte použít metodu GET v triggeru požadavku. V následné akci můžete získat hodnoty parametrů jako výstupy triggeru
triggerOutputs()pomocí funkce ve výrazu.Přijímejte hodnoty prostřednictvím relativní cesty pro parametry ve spouštěči požadavku.
Tyto hodnoty se předávají relativní cestou v adrese URL koncového bodu. Musíte také explicitně vybrat metodu , kterou trigger očekává. V následné akci můžete získat hodnoty parametrů jako výstupy triggeru tak, že na tyto výstupy přímo odkazujete.
Přijetí hodnot prostřednictvím parametrů GET
V triggeru Požadavku vyberte ze seznamu Metodu metodu GET .
Další informace naleznete v tématu Výběr očekávané metody požadavku.
Přidejte akci Odpověď do pracovního postupu podle obecných kroků pro přidání akce.
Pokud chcete vytvořit
triggerOutputs()výraz, který načte hodnotu parametru, postupujte takto:V akci Odpověď vyberte uvnitř vlastnosti Tělo , aby se zobrazily možnosti dynamického obsahu (ikona blesku) a editoru výrazů (ikona vzorce). Výběrem ikony vzorce otevřete editor výrazů.
Do pole výrazu zadejte následující výraz, nahraďte
parameter-namenázvem parametru a vyberte OK.triggerOutputs()['queries']['parameter-name']
Ve vlastnosti Body se výraz přeloží na
triggerOutputs()token.
Pokud pracovní postup uložíte, přejdete od návrháře a vrátíte se do návrháře, token zobrazí zadaný název parametru, například:
V zobrazení kódu se vlastnost Body zobrazí v definici akce Response následujícím způsobem:
"body": "@{triggerOutputs()['queries']['parameter-name']}",Předpokládejme například, že chcete předat hodnotu parametru s názvem
postalCode. Vlastnost Body určuje řetězec sPostal Code:koncovou mezerou následovanou odpovídajícím výrazem:
Otestování volatelného koncového bodu
Z triggeru požadavku zkopírujte adresu URL pracovního postupu a vložte adresu URL do jiného okna prohlížeče. Do adresy URL přidejte název a hodnotu parametru v následujícím formátu, pak stiskněte Enter.
...invoke/{parameter-name}/{parameter-value}?api-version=2022-05-01...Příklad:
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}Prohlížeč vrátí odpověď s tímto textem: PSČ: 123456.
Poznámka:
Pokud chcete do identifikátoru URI zahrnout symbol hash nebo libra (#), použijte místo toho tuto zakódovanou verzi: %25%23
Přijetí hodnot přes relativní cestu
V triggeru Požadavku otevřete seznam rozšířených parametrů a vyberte Relativní cesta, která tuto vlastnost přidá do triggeru.
Ve vlastnosti Relativní cesta zadejte relativní cestu pro parametr ve schématu JSON, který má adresa URL přijmout,
/address/{postalCode}například .
Ve vlastnosti Tělo akce Response zahrňte token, který představuje parametr zadaný ve vaší relativní cestě spouštěče.
Předpokládejme například, že chcete, aby akce Odpověď vrátila
Postal Code: {postalCode}.Ve vlastnosti Text zadejte
Postal Code:koncovou mezeru. Umístěte kurzor do textového pole tak, aby zůstal otevřený seznam dynamického obsahu.Výběrem ikony blesku otevřete seznam dynamického obsahu. V části Při přijetí požadavku HTTP vyberte výstup postalCode triggeru.
Vlastnost Body teď obsahuje vybraný parametr:
Uložte pracovní postup.
V triggeru požadavku se adresa URL zpětného volání aktualizuje a teď obsahuje relativní cestu, například:
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}Pokud chcete otestovat koncový bod umožňující volání, zkopírujte aktualizovanou adresu URL zpětného volání z triggeru požadavku, vložte adresu URL do jiného okna prohlížeče, nahraďte
%7BpostalCode%7Dji 123456 a stiskněte Enter.Prohlížeč vrátí odpověď s tímto textem: PSČ: 123456.
Poznámka:
Pokud chcete do identifikátoru URI zahrnout symbol hash nebo libra (#), použijte místo toho tuto zakódovanou verzi: %25%23
Volání pracovního postupu prostřednictvím adresy URL koncového bodu
Po vytvoření koncového bodu můžete pracovní postup aktivovat odesláním požadavku HTTPS na úplnou adresu URL koncového bodu. Pracovní postupy Azure Logic Apps mají integrovanou podporu koncových bodů přímého přístupu.
Tokeny generované ze schématu
Když do triggeru požadavku zadáte schéma JSON, návrhář pracovního postupu vygeneruje tokeny pro vlastnosti v daném schématu. Tyto tokeny pak můžete použít k předávání dat prostřednictvím pracovního postupu.
Pokud například do schématu JSON přidáte další vlastnosti, "suite"jsou tokeny pro tyto vlastnosti k dispozici v pozdějších krocích pracovního postupu. Tady je kompletní schéma JSON:
{
"type": "object",
"properties": {
"address": {
"type": "object",
"properties": {
"streetNumber": {
"type": "string"
},
"streetName": {
"type": "string"
},
"suite": {
"type": "string"
},
"town": {
"type": "string"
},
"postalCode": {
"type": "string"
}
}
}
}
}
Volání jiných pracovních postupů
Další pracovní postupy, které mohou přijímat požadavky, můžete volat tak, že je vnořujete do aktuálního pracovního postupu. Chcete-li volat tyto pracovní postupy, postupujte takto:
V návrháři přidejte akci Operace pracovního postupu s názvem Volání pracovního postupu v této logické aplikaci.
Seznam Název pracovního postupu zobrazuje způsobilé pracovní postupy, které můžete vybrat.
V seznamu Název pracovního postupu vyberte pracovní postup, který chcete volat, například:
Odkazovat na obsah z příchozího požadavku
Pokud je application/jsontyp obsahu příchozího požadavku, můžete odkazovat na vlastnosti příchozího požadavku. Jinak se tento obsah považuje za jednu binární jednotku, kterou můžete předat jiným rozhraním API. Pokud chcete odkazovat na tento obsah v pracovním postupu aplikace logiky, musíte nejprve tento obsah převést.
Pokud například předáváte obsah, který má application/xml typ, můžete výraz použít xpath() k extrakci XPath nebo použít json() výraz pro převod XML na JSON. Přečtěte si další informace o práci s podporovanými typy obsahu.
K získání výstupu z příchozího požadavku můžete použít triggerOutputs výraz. Předpokládejme například, že máte výstup, který vypadá jako v tomto příkladu:
{
"headers": {
"content-type" : "application/json"
},
"body": {
"myProperty" : "property value"
}
}
Chcete-li konkrétně získat přístup k vlastnosti body, můžete použít výraz triggerBody() jako zkratku.
Reakce na žádosti
Někdy chcete odpovědět na určité žádosti, které aktivují váš pracovní postup vrácením obsahu volajícímu. K vytvoření stavového kódu, hlavičky a textu odpovědi použijte akci Odpověď . Tato akce se může zobrazit kdekoli v pracovním postupu, nejen na konci pracovního postupu. Pokud váš pracovní postup neobsahuje akci Odpovědi , koncový bod okamžitě odpoví stavem 202 Přijato .
Aby původní volající úspěšně obdržel odpověď, musí být všechny požadované kroky pro odpověď dokončeny v rámci časového limitu požadavku, pokud se aktivovaný pracovní postup nevolá jako vnořený pracovní postup. Pokud v rámci tohoto limitu není vrácena žádná odpověď, vyprší časový limit příchozího požadavku a obdrží odpověď časového limitu klienta 408.
U vnořených pracovních postupů bude nadřazený pracovní postup dál čekat na odpověď, dokud se nedokončí všechny kroky bez ohledu na to, kolik času je potřeba.
Vytvoření odpovědi
V textu odpovědi můžete zahrnout více záhlaví a libovolný typ obsahu. Například následující hlavička odpovědi určuje, že typ obsahu odpovědi je application/json a že tělo obsahuje hodnoty pro vlastnosti town a postalCode na základě schématu JSON popsaného výše v tomto tématu pro trigger požadavku.
Snímek obrazovky znázorňuje akci odpovědi a typ obsahu odpovědi.
Odpovědi mají tyto vlastnosti:
| Vlastnost (zobrazení) | Vlastnost (JSON) | Popis |
|---|---|---|
| Stavový kód | statusCode |
Stavový kód HTTPS, který se použije v odpovědi na příchozí požadavek. Tento kód může být jakýkoli platný stavový kód začínající na 2xx, 4xx nebo 5xx. Stavové kódy 3xx ale nejsou povolené. |
| Záhlaví | headers |
Jedna nebo více hlaviček, která se mají zahrnout do odpovědi |
| Text | body |
Základní objekt, který může být řetězec, objekt JSON nebo dokonce binární obsah odkazovaný z předchozího kroku |
Pokud chcete zobrazit definici JSON pro akci Odpověď a úplnou definici JSON pracovního postupu, změňte ji ze zobrazení návrháře na zobrazení kódu.
"Response": {
"type": "Response",
"kind": "http",
"inputs": {
"body": {
"postalCode": "@triggerBody()?['address']?['postalCode']",
"town": "@triggerBody()?['address']?['town']"
},
"headers": {
"content-type": "application/json"
},
"statusCode": 200
},
"runAfter": {}
}
Nejčastější dotazy
A co zabezpečení adresy URL pro příchozí volání?
Azure bezpečně generuje adresy URL zpětného volání aplikace logiky pomocí sdíleného přístupového podpisu (SAS). Tento podpis prochází jako parametr dotazu a musí být ověřen před spuštěním pracovního postupu. Azure vygeneruje podpis pomocí jedinečné kombinace tajného klíče pro aplikaci logiky, názvu triggeru a provedené operace. Pokud tedy někdo nemá přístup k tajnému klíči aplikace logiky, nemůže vygenerovat platný podpis.
Důležité
V produkčních a vyšších systémech zabezpečení důrazně doporučujeme, abyste pracovní postup volali přímo z prohlížeče z těchto důvodů:
- Sdílený přístupový klíč se zobrazí v adrese URL.
- Zásady obsahu zabezpečení nemůžete spravovat kvůli sdíleným doménám napříč zákazníky Azure Logic Apps.
Další informace o zabezpečení, autorizaci a šifrování příchozích volání do pracovního postupu, jako jsou tls (Transport Layer Security),Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), zveřejnění pracovního postupu aplikace logiky ve službě Azure API Management nebo omezení IP adres, které pocházejí z příchozích volání, najdete v tématu Zabezpečený přístup a data – Přístup pro příchozí volání na základě požadavků.
Můžu dále konfigurovat volatelné koncové body?
Ano, koncové body HTTPS podporují pokročilejší konfiguraci prostřednictvím služby Azure API Management. Tato služba také nabízí možnost konzistentně spravovat všechna vaše rozhraní API, včetně aplikací logiky, nastavení vlastních názvů domén, použití dalších metod ověřování a dalších, například:
- Nastavení metody požadavku
- Přepsání adresy URL
- Nastavení domén služby API Management na webu Azure Portal
- Nastavení zásad pro kontrolu základního ověřování