Odbieranie i odpowiadanie na przychodzące wywołania HTTPS do przepływów pracy w usłudze Azure Logic Apps

Dotyczy: Azure Logic Apps (Zużycie + Standardowa)

W tym przewodniku z instrukcjami przedstawiono tworzenie przepływu pracy aplikacji logiki, który może odbierać i obsługiwać przychodzące żądanie HTTPS lub wywołanie z innej usługi przy użyciu wbudowanego wyzwalacza Żądania. Gdy przepływ pracy używa tego wyzwalacza, możesz odpowiedzieć na żądanie HTTPS przy użyciu wbudowanej akcji Odpowiedź.

Uwaga

Akcja Odpowiedź działa tylko wtedy, gdy używasz wyzwalacza Żądanie.

Na przykład na tej liście opisano niektóre zadania, które przepływ pracy można wykonać podczas korzystania z akcji Wyzwalacz żądania i Odpowiedź:

  • Odbieranie i odpowiadanie na żądanie HTTPS dla danych w lokalnej bazie danych.

  • Odbieranie żądań HTTPS wysyłanych z innego przepływu pracy aplikacji logiki i odpowiadanie na nie.

  • Wyzwalanie przebiegu przepływu pracy po wystąpieniu zewnętrznego zdarzenia elementu webhook.

Aby uruchomić przepływ pracy, wysyłając zamiast tego żądanie wychodzące lub wychodzące, użyj wbudowanego wyzwalacza HTTP lub wbudowanej akcji HTTP.

Wymagania wstępne

  • Konto i subskrypcja platformy Azure. Jeśli nie masz subskrypcji, możesz utworzyć bezpłatne konto platformy Azure.

  • Przepływ pracy aplikacji logiki, w którym chcesz odbierać przychodzące żądanie HTTPS. Aby uruchomić przepływ pracy za pomocą wyzwalacza żądania, musisz zacząć od pustego przepływu pracy. Aby użyć akcji Odpowiedź, przepływ pracy musi rozpoczynać się od wyzwalacza Żądanie.

Dodawanie wyzwalacza żądania

Wyzwalacz Żądanie tworzy ręcznie wywoływany punkt końcowy, który obsługuje tylko żądania przychodzące za pośrednictwem protokołu HTTPS. Gdy obiekt wywołujący wysyła żądanie do tego punktu końcowego, wyzwalacz żądania jest wyzwalany i uruchamia przepływ pracy. Aby uzyskać informacje na temat wywoływania tego wyzwalacza, zapoznaj się z tematem Wywoływanie, wyzwalanie lub zagnieżdżanie przepływów pracy z punktami końcowymi HTTPS w usłudze Azure Logic Apps.

  1. W witrynie Azure Portal otwórz aplikację logiki Zużycie i pusty przepływ pracy w projektancie.

  2. W projektancie wykonaj następujące ogólne kroki, aby znaleźć i dodać wbudowany wyzwalacz Żądania o nazwie Po odebraniu żądania HTTP.

  3. Po pojawieniu się pola informacji o wyzwalaczu podaj następujące informacje zgodnie z wymaganiami:

    Nazwa właściwości Nazwa właściwości JSON Wymagania opis
    HTTP POST URL {none} Tak Adres URL punktu końcowego wygenerowany po zapisaniu przepływu pracy i służy do wysyłania żądania wyzwalającego przepływ pracy.
    Schemat JSON treści żądania schema Nie. Schemat JSON opisujący właściwości i wartości w treści żądania przychodzącego. Projektant używa tego schematu do generowania tokenów dla właściwości w żądaniu. Dzięki temu przepływ pracy może analizować, wykorzystywać i przekazywać dane wyjściowe z wyzwalacza Żądania do przepływu pracy.

    Jeśli nie masz schematu JSON, możesz wygenerować schemat na podstawie przykładowego ładunku przy użyciu przykładowego ładunku, używając przykładowego ładunku do generowania możliwości schematu .

    Poniższy przykład przedstawia przykładowy schemat JSON:

    Screenshot showing Consumption workflow and Request trigger with example JSON schema.

    Poniższy przykład przedstawia kompletny przykładowy schemat JSON:

    {
       "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"
                      }
                   }
                }
             }
          }
       }
    }
    

    Po wprowadzeniu schematu JSON projektant wyświetli przypomnienie o dołączeniu nagłówka Content-Type do żądania i ustawieniu tej wartości nagłówka na wartość application/json. Aby uzyskać więcej informacji, zobacz Handle content types (Obsługa typów zawartości).

    Screenshot showing Consumption workflow, Request trigger, and reminder to include

    W poniższym przykładzie pokazano, jak nagłówek Content-Type jest wyświetlany w formacie JSON:

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

    Aby wygenerować schemat JSON oparty na oczekiwanym ładunku (danych), możesz użyć narzędzia takiego jak JSONSchema.net lub wykonać następujące kroki:

    1. W wyzwalaczu Żądanie wybierz pozycję Użyj przykładowego ładunku do wygenerowania schematu.

      Screenshot showing Consumption workflow, Request trigger, and

    2. Wprowadź przykładowy ładunek, a następnie wybierz pozycję Gotowe.

      Screenshot showing Consumption workflow, Request trigger, and sample payload entered to generate schema.

      W poniższym przykładzie pokazano przykładowy ładunek:

      {
         "account": {
            "name": "Contoso",
            "ID": "12345",
            "address": {
               "number": "1234",
               "street": "Anywhere Street",
               "city": "AnyTown",
               "state": "AnyState",
               "country": "USA",
               "postalCode": "11111"
            }
         }
      }
      
  4. Aby sprawdzić, czy wywołanie przychodzące ma treść żądania zgodną z określonym schematem, wykonaj następujące kroki:

    1. Aby wymusić, aby komunikat przychodzący miał te same dokładnie pola, które opisano w schemacie, dodaj required właściwość i określ wymagane pola. addtionalProperties Dodaj właściwość i ustaw wartość na false.

      Na przykład poniższy schemat określa, że komunikat przychodzący musi mieć msg pole, a nie inne pola:

      {
         "properties": {
           "msg": {
              "type": "string"
           }
         },
         "type": "object",
         "required": ["msg"],
         "additionalProperties": false
      }
      
    2. Na pasku tytułu wyzwalacza żądania wybierz przycisk wielokropka (...).

    3. W ustawieniach wyzwalacza włącz opcję Weryfikacja schematu i wybierz pozycję Gotowe.

      Jeśli treść żądania przychodzącego wywołania nie jest zgodna ze schematem , wyzwalacz zwraca błąd HTTP 400 Nieprawidłowe żądanie .

  5. Aby dodać inne właściwości lub parametry do wyzwalacza, otwórz listę Dodaj nowy parametr i wybierz parametry, które chcesz dodać.

    Nazwa właściwości Nazwa właściwości JSON Wymagania opis
    Metoda method Nie. Metoda, która musi być używana przez przychodzące żądanie w celu wywołania aplikacji logiki
    Ścieżka względna relativePath Nie. Ścieżka względna parametru, który może zaakceptować adres URL punktu końcowego aplikacji logiki

    Poniższy przykład dodaje właściwość Method :

    Screenshot showing Consumption workflow, Request trigger, and adding the

    Właściwość Method jest wyświetlana w wyzwalaczu, aby można było wybrać metodę z listy.

    Screenshot showing Consumption workflow, Request trigger, and the

  6. Gdy wszystko będzie gotowe, zapisz przepływ pracy. Na pasku narzędzi projektanta wybierz pozycję Zapisz.

    Ten krok generuje adres URL, którego można użyć do wysyłania żądania wyzwalającego przepływ pracy.

  7. Aby skopiować wygenerowany adres URL, wybierz ikonę kopiowania obok adresu URL.

    Screenshot showing Consumption workflow, Request trigger, and URL copy button selected.

    Uwaga

    Jeśli chcesz dołączyć symbol skrótu lub funta (#) w identyfikatorze URI podczas wywoływania wyzwalacza Żądania, użyj tej zakodowanej wersji: %25%23

Teraz kontynuuj tworzenie przepływu pracy, dodając kolejną akcję jako kolejny krok. Na przykład możesz odpowiedzieć na żądanie, dodając akcję Odpowiedź, której można użyć do zwrócenia dostosowanej odpowiedzi i opisano w dalszej części tego artykułu.

Uwaga

Przepływ pracy utrzymuje otwarte żądanie przychodzące tylko przez ograniczony czas. Zakładając, że przepływ pracy zawiera również akcję Odpowiedź, jeśli przepływ pracy nie zwraca odpowiedzi na obiekt wywołujący po upływie tego czasu, przepływ pracy zwraca stan limitu czasu 504 BRAMY do obiektu wywołującego. Jeśli przepływ pracy nie zawiera akcji Odpowiedź, przepływ pracy natychmiast zwraca stan ZAAKCEPTOWANE 202 do obiektu wywołującego.

Aby uzyskać informacje na temat zabezpieczeń, autoryzacji i szyfrowania dla wywołań przychodzących do przepływu pracy, takich jak Transport Layer Security (TLS), wcześniej znany jako Secure Sockets Layer (SSL), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), uwidaczniając zasób aplikacji logiki za pomocą usługi Azure API Management lub ograniczając adresy IP, które pochodzą z wywołań przychodzących, zobacz Bezpieczny dostęp i dane — dostęp do wywołań przychodzących do wyzwalaczy opartych na żądaniach.

Wyzwalanie danych wyjściowych

W poniższej tabeli wymieniono dane wyjściowe wyzwalacza Żądania:

Nazwa właściwości JSON Typ danych opis
Nagłówki Obiekt Obiekt JSON opisujący nagłówki żądania
treść Obiekt Obiekt JSON opisujący zawartość treści żądania

Dodawanie akcji Odpowiedź

Gdy używasz wyzwalacza Żądania do odbierania żądań przychodzących, możesz modelować odpowiedź i wysyłać wyniki ładunku z powrotem do obiektu wywołującego przy użyciu wbudowanej akcji Odpowiedź, która działa tylko z wyzwalaczem Żądanie. Ta kombinacja z wyzwalaczem Żądania i akcją Odpowiedź tworzy wzorzec żądania-odpowiedź. Z wyjątkiem wewnątrz pętli Foreach i pętli Until i gałęzi równoległych, można dodać akcję Odpowiedź w dowolnym miejscu w przepływie pracy.

Ważne

  • Jeśli akcja odpowiedź zawiera następujące nagłówki, usługa Azure Logic Apps automatycznie usuwa te nagłówki z wygenerowanego komunikatu odpowiedzi bez wyświetlania żadnego ostrzeżenia lub błędu. Usługa Azure Logic Apps nie będzie zawierać tych nagłówków, chociaż usługa nie uniemożliwia zapisywania przepływów pracy, które mają akcję Odpowiedź z tymi nagłówkami.

    • Allow
    • Content-* nagłówki z wyjątkiem Content-Dispositionoperacji , Content-Encodingi Content-Type podczas korzystania z operacji POST i PUT, ale nie są uwzględniane w operacjach GET
    • Cookie
    • Expires
    • Last-Modified
    • Set-Cookie
    • Transfer-Encoding
  • Jeśli masz co najmniej jedną akcję Odpowiedź w złożonym przepływie pracy z gałęziami, upewnij się, że przepływ pracy przetwarza co najmniej jedną akcję Odpowiedź w czasie wykonywania. W przeciwnym razie, jeśli wszystkie akcje odpowiedzi zostaną pominięte, obiekt wywołujący otrzyma błąd 502 Bad Gateway , nawet jeśli przepływ pracy zakończy się pomyślnie.

  • W przepływie pracy bezstanowym aplikacji logiki w warstwie Standardowa akcja Odpowiedź musi być wyświetlana jako ostatnia w przepływie pracy. Jeśli akcja zostanie wyświetlona w dowolnym innym miejscu, usługa Azure Logic Apps nadal nie będzie uruchamiać akcji, dopóki wszystkie inne akcje nie zakończą działania.

  1. W projektancie przepływu pracy wykonaj następujące ogólne kroki, aby znaleźć i dodać wbudowaną akcję Odpowiedź o nazwie Odpowiedź.

    Dla uproszczenia w poniższych przykładach pokazano zwinięty wyzwalacz żądania.

  2. W polu informacji o akcji dodaj wymagane wartości dla komunikatu odpowiedzi.

    Nazwa właściwości Nazwa właściwości JSON Wymagania opis
    Kod stanu statusCode Tak Kod stanu, który ma być zwracany w odpowiedzi
    Nagłówki headers Nie. Obiekt JSON opisujący co najmniej jeden nagłówek do uwzględnienia w odpowiedzi
    Treść body Nie. Treść odpowiedzi

    Po wybraniu wewnątrz dowolnych pól tekstowych zostanie automatycznie otwarta lista zawartości dynamicznej. Następnie możesz wybrać tokeny reprezentujące wszystkie dostępne dane wyjściowe z poprzednich kroków w przepływie pracy. Właściwości określonego schematu są również wyświetlane na tej liście zawartości dynamicznej. Możesz wybrać te właściwości do użycia w przepływie pracy.

    Na przykład w polu Nagłówki dołącz typ zawartości jako nazwę klucza i ustaw wartość klucza na wartość application/json , jak wspomniano wcześniej w tym artykule. W polu Treść możesz wybrać dane wyjściowe treści wyzwalacza z listy zawartości dynamicznej.

    Screenshot showing Azure portal, Consumption workflow, and Response action information.

    Aby wyświetlić nagłówki w formacie JSON, wybierz pozycję Przełącz do widoku tekstu.

    Screenshot showing Azure portal, Consumption workflow, and Response action headers in

  3. Aby dodać więcej właściwości akcji, takich jak schemat JSON dla treści odpowiedzi, z listy Dodaj nowy parametr wybierz parametry, które chcesz dodać.

  4. Gdy wszystko będzie gotowe, zapisz przepływ pracy. Na pasku narzędzi projektanta wybierz pozycję Zapisz.

Testowanie przepływu pracy

Aby przetestować przepływ pracy, wyślij żądanie HTTP do wygenerowanego adresu URL. Na przykład możesz użyć narzędzia, takiego jak Postman , aby wysłać żądanie HTTP. Aby uzyskać więcej informacji na temat podstawowej definicji JSON wyzwalacza i sposobu wywoływania tego wyzwalacza, zobacz te tematy, typ wyzwalacza żądania i wywołanie, wyzwalacz lub zagnieżdżanie przepływów pracy z punktami końcowymi HTTP w usłudze Azure Logic Apps.

Zabezpieczenia i uwierzytelnianie

W przepływie pracy aplikacji logiki w warstwie Standardowa rozpoczynającym się od wyzwalacza żądania (ale nie wyzwalacza elementu webhook) można użyć aprowizacji usługi Azure Functions do uwierzytelniania wywołań przychodzących wysyłanych do punktu końcowego utworzonego przez ten wyzwalacz przy użyciu tożsamości zarządzanej. Ta aprowizacja jest również nazywana "Easy Auth". Aby uzyskać więcej informacji, zobacz Wyzwalanie przepływów pracy w aplikacjach logiki w warstwie Standardowa za pomocą usługi Easy Auth.

Aby uzyskać więcej informacji na temat zabezpieczeń, autoryzacji i szyfrowania dla wywołań przychodzących do przepływu pracy aplikacji logiki, takiego jak Transport Layer Security (TLS), wcześniej znany jako Secure Sockets Layer (SSL), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), uwidaczniając aplikację logiki za pomocą usługi Azure API Management lub ograniczając adresy IP, które pochodzą z wywołań przychodzących, zobacz Bezpieczny dostęp i dane — dostęp do wywołań przychodzących do wyzwalaczy opartych na żądaniach.

Następne kroki