Udostępnij przez


Odbieranie przychodzących wywołań HTTPS wysyłanych do przepływów pracy w usłudze Azure Logic Apps i odpowiadanie na nie

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

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

Uwaga

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

Na przykład przepływ pracy może wykonywać następujące zadania podczas korzystania z wyzwalacza Żądanie i akcji 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.

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, zobacz Wywoływanie, wyzwalanie lub zagnieżdżanie przepływów pracy z punktami końcowymi HTTPS w usłudze Azure Logic Apps.

  1. W portalu Azure otwórz zasób aplikacji logiki Zużycia.

  2. W menu paska bocznego w obszarze Narzędzia programistyczne wybierz projektanta, aby otworzyć pusty przepływ pracy.

  3. Dodaj wbudowany wyzwalacz Żądania o nazwie Po odebraniu żądania HTTP do przepływu pracy, wykonując ogólne kroki dodawania wyzwalacza.

  4. Po pojawieniu się pola informacji o wyzwalaczu podaj następujące informacje:

    Nazwa właściwości Nazwa właściwości JSON Wymagania opis
    HTTP URL {brak} 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:

    Zrzut ekranu przedstawiający przepływ pracy dotyczący zużycia i wyzwalacz żądania z przykładowym schematem JSON.

    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 może wyświetlić przypomnienie o dołączeniu nagłówka Content-Type do żądania i ustawieniu tej wartości nagłówka na application/json. Aby uzyskać więcej informacji, zobacz Handle content types (Obsługa typów zawartości).

    W poniższym przykładzie pokazano, jak nagłówek Content-Type jest przedstawiany w formacie JSON.

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

    Aby wygenerować schemat JSON oparty na oczekiwanym ładunku (danych), możesz użyć narzędzia takiego jak json-schema.org lub wykonać następujące czynności:

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

      Zrzut ekranu przedstawiający przepływ konsumpcji, wyzwalacz zapytania i opcję użycia przykładowych danych do wygenerowania schematu.

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

      Zrzut ekranu przedstawiający przepływ pracy zużycia, wyzwalacz żądania i przykładowe dane wprowadzone w celu wygenerowania schematu.

      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"
            }
         }
      }
      
  5. 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. additionalProperties Dodaj właściwość i ustaw wartość 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. W platformie projektowej wybierz wyzwalacz Żądanie. W otwartym okienku informacji wybierz kartę Ustawienia .

    3. Rozwiń węzeł Obsługa danych i ustaw pozycję Weryfikacja schematu na .

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

  6. Z listy Metoda wybierz metodę, którą wyzwalacz oczekuje do obsługi żądań przychodzących.

    Zrzut ekranu przedstawiający standardowy przepływ pracy, wyzwalacz żądań i otwartą listę metod z wybraną metodą.

  7. Jeśli dla wyzwalacza istnieją inne parametry, otwórz listę Parametry zaawansowane i wybierz żądane parametry.

  8. 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.

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

    Zrzut ekranu przedstawiający przepływ pracy dotyczący zużycia, wyzwalacz żądania i wybrany przycisk kopiowania adresu URL.

    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ń, uwierzytelniania i szyfrowania dla wywołań przychodzących do przepływu pracy, takich jak Transport Layer Security (TLS),OAuth z identyfikatorem Microsoft Entra ID, sygnaturami dostępu współdzielonego (SAS), uwidacznianie zasobu aplikacji logiki za pomocą usługi Azure API Management lub ograniczanie adresów IP pochodzących z wywołań przychodzących, zobacz 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
headers Objekt Obiekt JSON opisujący nagłówki żądania
body Objekt 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 Dla każdej i pętli Do oraz 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. Azure Logic Apps nie zawiera tych nagłówków, mimo że usługa nie uniemożliwia zapisywania przepływów pracy z akcją Odpowiedź zawierających te nagłówki.

    • Allow
    • Content-* nagłówki z wyjątkiem Content-Disposition, Content-Encoding i Content-Type w przypadku 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 portalu Azure otwórz zasób aplikacji logiki Zużycia.

  2. W menu paska bocznego w obszarze Narzędzia programistyczne wybierz projektanta, aby otworzyć przepływ pracy.

    W tym przykładowym przepływie pracy jest używany wyzwalacz żądania dodany w poprzedniej sekcji.

  3. Dodaj wbudowaną akcję Odpowiedź do przepływu pracy, wykonując ogólne kroki, aby dodać akcję.

  4. 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 jakiegokolwiek pola tekstowego, masz możliwość otworzenia listy zawartości dynamicznej (ikona błyskawicy) lub edytora wyrażeń (ikona funkcji). Po wybraniu listy zawartości dynamicznej możesz wybrać dane wyjściowe, które są dostępne we wcześniejszych krokach przepływu pracy. Jeśli określono schemat w wyzwalaczu Żądania , właściwości schematu są również wyświetlane na liście zawartości dynamicznej i są dostępne do użycia w przepływie pracy.

    Na przykład w polu Nagłówki użyj Content-Type jako nazwy klucza i ustaw wartość klucza na application/json, zgodnie z wcześniejszymi wskazówkami z tego artykułu. W polu Treść możesz otworzyć listę zawartości dynamicznej i wybrać dane wyjściowe treści wyzwalacza.

    Zrzut ekranu przedstawiający portal Azure, przepływ pracy dotyczący konsumpcji oraz informacje o akcji odpowiedzi.

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

    Zrzut ekranu przedstawiający Azure Portal, przepływ pracy dotyczący zużycia oraz nagłówki akcji odpowiedzi w przełączaniu do widoku tekstu.

  5. Jeśli istnieją inne parametry dla akcji, otwórz listę Zaawansowane parametry i wybierz żądane parametry.

  6. Gdy wszystko będzie gotowe, zapisz proces. Na pasku narzędzi projektanta wybierz pozycję Zapisz.

Testowanie przepływu pracy

Aby wyzwolić przepływ pracy, wyślij żądanie HTTP do adresu URL wygenerowanego dla wyzwalacza Żądania, uwzględniając metodę, jakiej oczekuje wyzwalacz Żądania, używając narzędzia żądania HTTP oraz postępując zgodnie z jego instrukcjami.

Aby uzyskać więcej informacji na temat definicji JSON wyzwalacza oraz sposobów jego wywoływania, zapoznaj się z następującymi artykułami: Typ wyzwalacza żądania i Wywołanie, wyzwalanie lub zagnieżdżanie przepływów pracy z endpointami HTTP w usłudze Azure Logic Apps.

Zabezpieczenia i uwierzytelnianie

Standardowy przepływ pracy aplikacji logiki, rozpoczyna się od wyzwalacza żądania (ale nie wyzwalacza webhook), można użyć funkcji Azure do uwierzytelniania połączeń przychodzących wysyłanych do punktu końcowego utworzonego przez ten wyzwalacz przy użyciu tożsamości zarządzanej. To postanowienie jest również znane jako Easy Auth. Aby uzyskać więcej informacji, zobacz Uruchamianie przepływów pracy w aplikacjach logiki w warstwie Standard korzystając z Easy Auth.

Aby uzyskać więcej informacji na temat zabezpieczeń, autoryzacji i szyfrowania dla wywołań przychodzących do przepływu pracy aplikacji logiki, takich jak Transport Layer Security (TLS), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), uwidacznianie aplikacji logiki za pomocą usługi Azure API Management lub ograniczanie adresów IP pochodzących z wywołań przychodzących, zobacz Access for inbound calls to request-based triggers (Dostęp do wywołań przychodzących do wyzwalaczy opartych na żądaniach).