Příjem a odpověď na příchozí požadavky HTTPS v Azure Logic AppsReceive and respond to inbound HTTPS requests in Azure Logic Apps

Pomocí Azure Logic Apps a integrované akce triggeru požadavku a odpovědi můžete vytvářet automatizované úlohy a pracovní postupy, které mohou přijímat příchozí požadavky přes protokol HTTPS.With Azure Logic Apps and the built-in Request trigger and Response action, you can create automated tasks and workflows that can receive inbound requests over HTTPS. Chcete-li místo toho odesílat odchozí požadavky, použijte vestavěný Trigger http nebo akci HTTP.To send outbound requests instead, use the built-in HTTP trigger or HTTP action.

Můžete mít například aplikaci logiky:For example, you can have your logic app:

  • Přijetí a odpověď na požadavek HTTPS na data v místní databázi.Receive and respond to an HTTPS request for data in an on-premises database.

  • Aktivuje pracovní postup, když dojde k externí události Webhooku.Trigger a workflow when an external webhook event happens.

  • Přijímat a reagovat na volání HTTPS z jiné aplikace logiky.Receive and respond to an HTTPS call from another logic app.

V tomto článku se dozvíte, jak použít akci triggeru a odpovědi žádosti, aby vaše aplikace logiky mohla přijímat příchozí volání a reagovat na ně.This article shows how to use the Request trigger and Response action so that your logic app can receive and respond to inbound calls.

Další informace o zabezpečení autorizace a šifrování příchozích volání do vaší aplikace logiky, jako je například TLS ( Transport Layer Security), dříve označované jako SSL (Secure SOCKETS Layer) (SSL), Azure Active Directory otevřené ověřování (Azure AD OAuth), vystavení vaší aplikace logiky pomocí služby 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 přístup k datům pro příchozí volání aktivačních událostí.For more information about security, authorization, and encryption for inbound calls to your logic app, such as Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), Azure Active Directory Open Authentication (Azure AD OAuth), exposing your logic app with Azure API Management, or restricting the IP addresses that originate inbound calls, see Secure access and data - Access for inbound calls to request-based triggers.

PožadavkyPrerequisites

Přidat aktivační událost žádostiAdd Request trigger

Tato integrovaná aktivační událost vytvoří ručně koncový bod, který může zpracovávat pouze příchozí požadavky přes protokol HTTPS.This built-in trigger creates a manually callable endpoint that can handle only inbound requests over HTTPS. Když volající pošle požadavek do tohoto koncového bodu, aktivuje se Trigger žádosti a spustí se aplikace logiky.When a caller sends a request to this endpoint, the Request trigger fires and runs the logic app. Další informace o tom, jak zavolat tuto aktivační událost, najdete v tématu pracovní postupy volání, triggeru nebo vnořování s koncovými body HTTPS v Azure Logic Apps.For more information about how to call this trigger, see Call, trigger, or nest workflows with HTTPS endpoints in Azure Logic Apps.

Vaše aplikace logiky udržuje příchozí požadavek otevřený pouze po dobu omezeného času.Your logic app keeps an inbound request open only for a limited time. Za předpokladu, že vaše aplikace logiky zahrnuje akci odpovědi, pokud vaše aplikace logiky po uplynutí této doby neodešle odpověď zpět volajícímu, vrátí vaše aplikace logiky 504 GATEWAY TIMEOUT stav volajícímu.Assuming that your logic app includes a Response action, if your logic app doesn't send a response back to the caller after this time passes, your logic app returns a 504 GATEWAY TIMEOUT status to the caller. Pokud vaše aplikace logiky neobsahuje akci odpovědi, aplikace logiky okamžitě vrátí 202 ACCEPTED stav volajícímu.If your logic app doesn't include a Response action, your logic app immediately returns a 202 ACCEPTED status to the caller.

  1. Přihlaste se na Azure Portal.Sign in to the Azure portal. Vytvoření prázdné aplikace logikyCreate a blank logic app.

  2. Po otevření návrháře aplikace logiky zadejte do vyhledávacího pole http request jako filtr.After Logic App Designer opens, in the search box, enter http request as your filter. V seznamu triggery vyberte, když se přijme požadavek HTTP .From the triggers list, select the When an HTTP request is received trigger.

    Vybrat aktivační událost žádosti

    Aktivační událost žádosti zobrazuje tyto vlastnosti:The Request trigger shows these properties:

    Aktivační událost žádosti

    Název vlastnostiProperty name Název vlastnosti JSONJSON property name PovinnéRequired PopisDescription
    ADRESA URL PRO POST HTTPHTTP POST URL nTato{none} YesYes Adresa URL koncového bodu, která se generuje po uložení aplikace logiky a která se používá pro volání aplikace logikyThe endpoint URL that's generated after you save the logic app and is used for calling your logic app
    Schéma JSON pro tělo požadavkuRequest Body JSON Schema schema NoNo Schéma JSON, které popisuje vlastnosti a hodnoty v textu příchozí žádostiThe JSON schema that describes the properties and values in the incoming request body
  3. V poli schématu JSON textu žádosti můžete volitelně zadat schéma JSON, které popisuje tělo v příchozím požadavku, například:In the Request Body JSON Schema box, optionally enter a JSON schema that describes the body in the incoming request, for example:

    Příklad schématu JSON

    Návrhář používá toto schéma k vygenerování tokenů pro vlastnosti v žádosti.The designer uses this schema to generate tokens for the properties in the request. Aplikace logiky tak může analyzovat, spotřebovávat a předávat data z požadavku prostřednictvím triggeru do pracovního postupu.That way, your logic app can parse, consume, and pass along data from the request through the trigger into your workflow.

    Tady je ukázkové schéma:Here is the sample schema:

    {
       "type": "object",
       "properties": {
          "account": {
             "type": "object",
             "properties": {
                "name": {
                   "type": "string"
                },
                "ID": {
                   "type": "string"
                },
                "address": {
                   "type": "object",
                   "properties": {
                      "number": {
                         "type": "string"
                      },
                      "street": {
                         "type": "string"
                      },
                      "city": {
                         "type": "string"
                      },
                      "state": {
                         "type": "string"
                      },
                      "country": {
                         "type": "string"
                      },
                      "postalCode": {
                         "type": "string"
                      }
                   }
                }
             }
          }
       }
    }
    

    Když zadáte schéma JSON, Návrhář zobrazí připomenutí, které zahrne Content-Type hlavičku do žádosti, a nastaví tuto hodnotu hlavičky na application/json .When you enter a JSON schema, the designer shows a reminder to include the Content-Type header in your request and set that header value to application/json. Další informace najdete v tématu zpracování typů obsahu.For more information, see Handle content types.

    Připomenutí, které zahrnuje hlavičku "Content-Type"

    Toto záhlaví vypadá jako ve formátu JSON:Here's what this header looks like in JSON format:

    {
       "Content-Type": "application/json"
    }
    

    Chcete-li vygenerovat schéma JSON založené na očekávané datové části (data), můžete použít nástroj, například JSONSchema.NET, nebo můžete provést následující kroky:To generate a JSON schema that's based on the expected payload (data), you can use a tool such as JSONSchema.net, or you can follow these steps:

    1. V triggeru žádosti vyberte použít ukázkovou datovou část k vygenerování schématu.In the Request trigger, select Use sample payload to generate schema.

      Snímek obrazovky s vybranou možnost použít ukázkovou datovou část k vygenerování schématu

    2. Zadejte ukázkovou datovou část a vyberte Hotovo.Enter the sample payload, and select Done.

      Zadat ukázkovou datovou část k vygenerování schématu

      Tady je ukázková datová část:Here is the sample payload:

      {
         "account": {
            "name": "Contoso",
            "ID": "12345",
            "address": {
               "number": "1234",
               "street": "Anywhere Street",
               "city": "AnyTown",
               "state": "AnyState",
               "country": "USA",
               "postalCode": "11111"
            }
         }
      }
      
  4. Chcete-li ověřit, zda příchozí volání obsahuje text žádosti, který odpovídá zadanému schématu, postupujte podle těchto kroků:To check that the inbound call has a request body that matches your specified schema, follow these steps:

    1. V záhlaví triggeru žádosti vyberte tlačítko se třemi tečkami (...).In the Request trigger's title bar, select the ellipses button (...).

    2. V nastavení triggeru zapněte ověřování schématu a vyberte Hotovo.In the trigger's settings, turn on Schema Validation, and select Done.

      Pokud text požadavku na příchozí volání neodpovídá vašemu schématu, aktivační událost vrátí HTTP 400 Bad Request chybu.If the inbound call's request body doesn't match your schema, the trigger returns an HTTP 400 Bad Request error.

  5. Chcete-li zadat další vlastnosti, otevřete seznam Přidat nový parametr a vyberte parametry, které chcete přidat.To specify additional properties, open the Add new parameter list, and select the parameters that you want to add.

    Název vlastnostiProperty name Název vlastnosti JSONJSON property name PovinnéRequired PopisDescription
    MetodaMethod method NoNo Metoda, kterou musí příchozí požadavek použít k volání aplikace logikyThe method that the incoming request must use to call the logic app
    Relativní cestaRelative path relativePath NoNo Relativní cesta k parametru, který adresa URL koncového bodu aplikace logiky může přijmoutThe relative path for the parameter that the logic app's endpoint URL can accept

    Tento příklad přidá vlastnost metody :This example adds the Method property:

    Přidat parametr metody

    Vlastnost Method se zobrazí v triggeru, takže můžete vybrat metodu ze seznamu.The Method property appears in the trigger so that you can select a method from the list.

    Vybrat metodu

  6. Nyní přidejte další akci jako další krok v pracovním postupu.Now, add another action as the next step in your workflow. V části Trigger vyberte Další krok , abyste mohli najít akci, kterou chcete přidat.Under the trigger, select Next step so that you can find the action that you want to add.

    Například můžete na žádost reagovat přidáním akce odpovědi, kterou můžete použít k vrácení vlastní odpovědi a je popsáno dále v tomto tématu.For example, you can respond to the request by adding a Response action, which you can use to return a customized response and is described later in this topic.

    Vaše aplikace logiky udržuje příchozí požadavek otevřené jenom po dobu omezeného času.Your logic app keeps the incoming request open only for a limited time. Za předpokladu, že pracovní postup aplikace logiky obsahuje akci odpovědi, pokud aplikace logiky nevrátí odpověď po uplynutí této doby, aplikace logiky vrátí 504 GATEWAY TIMEOUT volajícímu.Assuming that your logic app workflow includes a Response action, if the logic app doesn't return a response after this time passes, your logic app returns a 504 GATEWAY TIMEOUT to the caller. V opačném případě, pokud vaše aplikace logiky neobsahuje akci odpovědi, aplikace logiky okamžitě vrátí 202 ACCEPTED odpověď volajícímu.Otherwise, if your logic app doesn't include a Response action, your logic app immediately returns a 202 ACCEPTED response to the caller.

  7. Až budete hotovi, uložte aplikaci logiky.When you're done, save your logic app. Na panelu nástrojů návrháře vyberte Uložit.On the designer toolbar, select Save.

    Tento krok vygeneruje adresu URL, která se má použít pro odeslání žádosti, která spouští aplikaci logiky.This step generates the URL to use for sending the request that triggers the logic app. Tuto adresu URL můžete zkopírovat tak, že vyberete ikonu kopírování vedle adresy URL.To copy this URL, select the copy icon next to the URL.

    Adresa URL pro použití aktivace aplikace logiky

    Poznámka

    Pokud chcete při volání triggeru požadavku do identifikátoru URI zahrnout symbol hash nebo symbol křížku ( # ), použijte místo toho tuto kódovanou verzi: %25%23If you want to include the hash or pound symbol (#) in the URI when making a call to the Request trigger, use this encoded version instead: %25%23

  8. K otestování aplikace logiky odešlete požadavek HTTP na vygenerovanou adresu URL.To test your logic app, send an HTTP request to the generated URL.

    Pomocí nástroje, jako je například post , můžete například poslat požadavek HTTP.For example, you can use a tool such as Postman to send the HTTP request. Další informace o základní definici JSON triggeru a o tom, jak zavolat tuto aktivační událost, najdete v těchto tématech: typ triggeru žádosti a volání, Trigger nebo vnoření pracovních postupů pomocí koncových bodů HTTP v Azure Logic Apps.For more information about the trigger's underlying JSON definition and how to call this trigger, see these topics, Request trigger type and Call, trigger, or nest workflows with HTTP endpoints in Azure Logic Apps.

Další informace o zabezpečení autorizace a šifrování příchozích volání do vaší aplikace logiky, jako je například TLS ( Transport Layer Security), dříve označované jako SSL (Secure SOCKETS Layer) (SSL), Azure Active Directory otevřené ověřování (Azure AD OAuth), vystavení vaší aplikace logiky pomocí služby 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 přístup k datům pro příchozí volání aktivačních událostí.For more information about security, authorization, and encryption for inbound calls to your logic app, such as Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), Azure Active Directory Open Authentication (Azure AD OAuth), exposing your logic app with Azure API Management, or restricting the IP addresses that originate inbound calls, see Secure access and data - Access for inbound calls to request-based triggers.

Výstupy triggeruTrigger outputs

Zde jsou další informace o výstupech z triggeru požadavku:Here's more information about the outputs from the Request trigger:

Název vlastnosti JSONJSON property name Datový typData type PopisDescription
headers ObjektObject Objekt JSON, který popisuje hlavičky z požadavkuA JSON object that describes the headers from the request
body ObjektObject Objekt JSON, který popisuje obsah těla žádostiA JSON object that describes the body content from the request

Přidat akci odpovědiAdd a Response action

Když použijete Trigger žádosti pro zpracování příchozích požadavků, můžete vytvořit model odpovědi a odeslat výsledky datové části zpět volajícímu pomocí předdefinované Akce odpovědi.When you use the Request trigger to handle inbound requests, you can model the response and send the payload results back to the caller by using the built-in Response action. Akci odpovědi můžete použít jenom s triggerem požadavku.You can use the Response action only with the Request trigger. Tato kombinace s akcí triggeru a odpovědi žádosti vytvoří vzor požadavků a odpovědí.This combination with the Request trigger and Response action creates the request-response pattern. S výjimkou uvnitř smyček foreach a do smyček a paralelních větví můžete přidat akci odpovědi kdekoli v pracovním postupu.Except for inside Foreach loops and Until loops, and parallel branches, you can add the Response action anywhere in your workflow.

Důležité

Pokud akce odpovědi zahrnuje tyto hlavičky, Logic Apps tyto hlavičky z vygenerované zprávy odpovědi odebrat bez zobrazení upozornění nebo chyby:If a Response action includes these headers, Logic Apps removes these headers from the generated response message without showing any warning or error:

  • Allow
  • Content-* hlavičky s výjimkou Content-Disposition , Content-Encoding a Content-Type při použití operací post a PUT, ale nejsou zahrnuté pro operace GetContent-* headers except for Content-Disposition, Content-Encoding, and Content-Type when you use POST and PUT operations, but are not included for GET operations
  • Cookie
  • Expires
  • Last-Modified
  • Set-Cookie
  • Transfer-Encoding

I když Logic Apps nebrání v ukládání aplikací logiky, které mají akci s odpovědí s těmito záhlavími, Logic Apps tyto hlavičky ignorují.Although Logic Apps won't stop you from saving logic apps that have a Response action with these headers, Logic Apps ignores these headers.

  1. V návrháři aplikace logiky v kroku, kam chcete přidat akci odpovědi, vyberte Nový krok.In the Logic App Designer, under the step where you want to add a Response action, select New step.

    Například pomocí triggeru požadavku z výše uvedeného:For example, using the Request trigger from earlier:

    Přidat nový krok

    Chcete-li přidat akci mezi kroky, přesuňte ukazatel myši na šipku mezi těmito kroky.To add an action between steps, move your pointer over the arrow between those steps. Vyberte symbol plus ( + ), který se zobrazí, a pak vyberte přidat akci.Select the plus sign (+) that appears, and then select Add an action.

  2. V části zvolit akci zadejte do vyhledávacího pole response jako filtr a vyberte akci odpovědi .Under Choose an action, in the search box, enter response as your filter, and select the Response action.

    Vybrat akci odpovědi

    Aktivační událost žádosti je v tomto příkladu sbalená pro zjednodušení.The Request trigger is collapsed in this example for simplicity.

  3. Přidejte všechny hodnoty, které jsou požadovány pro zprávu odpovědi.Add any values that are required for the response message.

    V některých polích se kliknutím do příslušných polí otevře seznam dynamického obsahu.In some fields, clicking inside their boxes opens the dynamic content list. Pak můžete vybrat tokeny, které reprezentují dostupné výstupy z předchozích kroků v pracovním postupu.You can then select tokens that represent available outputs from previous steps in the workflow. Vlastnosti ze schématu zadaného v předchozím příkladu se nyní zobrazí v seznamu dynamického obsahu.Properties from the schema specified in the earlier example now appear in the dynamic content list.

    Například pro pole záhlaví zadejte Content-Type jako název klíče a nastavte hodnotu klíče na, application/json jak je uvedeno dříve v tomto tématu.For example, for the Headers box, include Content-Type as the key name, and set the key value to application/json as mentioned earlier in this topic. V poli tělo můžete vybrat výstup těla aktivační události ze seznamu dynamického obsahu.For the Body box, you can select the trigger body output from the dynamic content list.

    Podrobnosti o akci odpovědi

    Chcete-li zobrazit záhlaví ve formátu JSON, vyberte možnost Přepnout do textového zobrazení.To view the headers in JSON format, select Switch to text view.

    Záhlaví – přepnout na textové zobrazení

    Zde jsou další informace o vlastnostech, které lze nastavit v akci reakce.Here is more information about the properties that you can set in the Response action.

    Název vlastnostiProperty name Název vlastnosti JSONJSON property name PovinnéRequired PopisDescription
    Stavový kódStatus Code statusCode YesYes Stavový kód, který se má vrátit v odpovědiThe status code to return in the response
    HlavičkyHeaders headers NoNo Objekt JSON, který popisuje jednu nebo více hlaviček, které mají být zahrnuty do odpovědiA JSON object that describes one or more headers to include in the response
    TextBody body NoNo Tělo odpovědiThe response body
  4. Chcete-li zadat další vlastnosti, jako je například schéma JSON pro tělo odpovědi, otevřete seznam Přidat nový parametr a vyberte parametry, které chcete přidat.To specify additional properties, such as a JSON schema for the response body, open the Add new parameter list, and select the parameters that you want to add.

  5. Až budete hotovi, uložte aplikaci logiky.When you're done, save your logic app. Na panelu nástrojů návrháře vyberte Uložit.On the designer toolbar, select Save.

Další krokyNext steps