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 .
Zainstaluj lub użyj narzędzia, które może wysyłać żądania HTTP w celu przetestowania rozwiązania, na przykład:
- Program Visual Studio Code z rozszerzeniem z witryny Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge — narzędzie konsoli sieciowej
- Bruno
- lok
Uwaga
W przypadku scenariuszy, w których masz poufne dane, takie jak poświadczenia, wpisy tajne, tokeny dostępu, klucze interfejsu API i inne podobne informacje, upewnij się, że używasz narzędzia chroniącego dane przy użyciu niezbędnych funkcji zabezpieczeń, działa w trybie offline lub lokalnie, nie synchronizuje danych z chmurą i nie wymaga zalogowania się do konta online. Dzięki temu można zmniejszyć ryzyko ujawnienia poufnych danych publicznie.
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.
W witrynie Azure Portal otwórz aplikację logiki Zużycie i pusty przepływ pracy w projektancie.
W projektancie wykonaj następujące ogólne kroki, aby znaleźć i dodać wbudowany wyzwalacz Żądania o nazwie Po odebraniu żądania HTTP.
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:
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).
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:
W wyzwalaczu Żądanie wybierz pozycję Użyj przykładowego ładunku do wygenerowania schematu.
Wprowadź przykładowy ładunek, a następnie wybierz pozycję Gotowe.
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" } } }
Aby sprawdzić, czy wywołanie przychodzące ma treść żądania zgodną z określonym schematem, wykonaj następujące kroki:
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ść nafalse
.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 }
Na pasku tytułu wyzwalacza żądania wybierz przycisk wielokropka (...).
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 .
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 :
Właściwość Method jest wyświetlana w wyzwalaczu, aby można było wybrać metodę z listy.
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.
Aby skopiować wygenerowany adres URL, wybierz ikonę kopiowania obok 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), wcześniej znany jako Secure Sockets Layer (SSL), OAuth z identyfikatorem Microsoft Entra ID, sygnaturami dostępu współdzielonego (SAS), 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 | Objekt | Obiekt JSON opisujący nagłówki żądania |
treść | 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 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ątkiemContent-Disposition
operacji ,Content-Encoding
iContent-Type
podczas korzystania z operacji POST i PUT, ale nie są uwzględniane w operacjach GETCookie
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.
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 .
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.
Aby wyświetlić nagłówki w formacie JSON, wybierz pozycję Przełącz do widoku tekstu.
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ć.
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 , w tym metodę oczekiwaną przez wyzwalacz żądania przy użyciu narzędzia żądania HTTP i jego instrukcji.
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.