Udostępnij za pośrednictwem


Nawiązywanie połączenia z usługą Azure Service Bus z przepływów pracy w usłudze Azure Logic Apps

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

W tym przewodniku pokazano, jak uzyskać dostęp do usługi Azure Service Bus z przepływu pracy w usłudze Azure Logic Apps przy użyciu łącznika usługi Service Bus. Następnie można tworzyć zautomatyzowane przepływy pracy uruchamiane po wyzwoleniu przez zdarzenia w usłudze Service Bus lub uruchamiać akcje w celu zarządzania elementami usługi Service Bus, na przykład:

  • Monitoruj po odebraniu komunikatów (autouzupełnieniu) lub odebraniu (zobacz blokadę) w kolejkach, tematach i subskrypcjach tematów.
  • Wysyłanie wiadomości.
  • Tworzenie i usuwanie subskrypcji tematów.
  • Zarządzanie komunikatami w kolejkach i subskrypcjach tematów, na przykład pobieranie, odroczenie, ukończenie, odroczenie, porzucenie i utracony komunikat.
  • Odnów blokady komunikatów i sesji w kolejkach i subskrypcjach tematów.
  • Zamknij sesje w kolejkach i tematach.

Możesz użyć wyzwalaczy, które pobierają odpowiedzi z usługi Azure Service Bus i udostępniają dane wyjściowe innym akcjom w przepływach pracy. Możesz również użyć innych akcji przy użyciu danych wyjściowych z akcji usługi Service Bus.

Dokumentacja techniczna łącznika

Łącznik usługi Service Bus ma różne wersje na podstawie typu przepływu pracy aplikacji logiki i środowiska hosta.

Aplikacja logiki Środowisko Wersja łącznika
Zużycie Wielodostępna usługa Azure Logic Apps Łącznik zarządzany, który jest wyświetlany w galerii łączników w obszarze Udostępnione środowisko uruchomieniowe>.

Uwaga: wyzwalacze zarządzanego łącznika usługi Service Bus są zgodne ze wzorcem długiego wyzwalacza sondowania, co oznacza, że wyzwalacz okresowo sprawdza komunikaty w kolejce lub subskrypcji tematu. Aby uzyskać więcej informacji, zapoznaj się z następującą dokumentacją:

- Dokumentacja łącznika zarządzanego usługi Service Bus
- Łączniki zarządzane w usłudze Azure Logic Apps
Standardowa Usługa Azure Logic Apps i środowisko App Service Environment w wersji 3 z jedną dzierżawą (tylko plany systemu Windows) Łącznik zarządzany (hostowany na platformie Azure), który jest wyświetlany w galerii łączników w obszarze Udostępnione środowisko uruchomieniowe>i wbudowany łącznik, który jest wyświetlany w galerii łączników w obszarze Środowisko uruchomieniowe>w aplikacji i jest oparty na dostawcy usług.

Wyzwalacze zarządzanego łącznika usługi Service Bus są zgodne ze wzorcem długiego wyzwalacza sondowania, co oznacza, że wyzwalacz okresowo sprawdza komunikaty w subskrypcji kolejki lub tematu.

Wbudowane wyzwalacze łącznika spoza sesji usługi Service Bus są zgodne ze wzorcem wyzwalacza ciągłego sondowania, który jest w pełni zarządzany przez łącznik. Ten wzorzec stale sprawdza komunikaty w kolejce lub subskrypcji tematu. Wyzwalacze sesji są zgodne ze wzorcem wyzwalacza długiego sondowania, ale jego konfiguracja jest określana przez ustawienie usługi Azure Functions o nazwie clientRetryOptions:tryTimeout. Wbudowana wersja zwykle zapewnia lepszą wydajność, możliwości, ceny itd.


Aby uzyskać więcej informacji, zapoznaj się z następującą dokumentacją:

- Dokumentacja łącznika zarządzanego usługi Service Bus
- Wbudowane operacje łącznika usługi Service Bus
- Wbudowane łączniki w usłudze Azure Logic Apps

Wymagania wstępne

  • Konto i subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, zarejestruj się w celu założenia bezpłatnego konta platformy Azure.

  • Przestrzeń nazw i jednostka obsługi komunikatów usługi Service Bus, taka jak kolejka. Aby uzyskać więcej informacji, zapoznaj się z następującą dokumentacją:

  • Przepływ pracy aplikacji logiki, w którym nawiązujesz połączenie z przestrzenią nazw usługi Service Bus i jednostką obsługi komunikatów. Aby uruchomić przepływ pracy za pomocą wyzwalacza usługi Service Bus, musisz zacząć od pustego przepływu pracy. Aby użyć akcji usługi Service Bus w przepływie pracy, uruchom przepływ pracy przy użyciu dowolnego wyzwalacza.

  • Jeśli zasób aplikacji logiki używa tożsamości zarządzanej do uwierzytelniania dostępu do przestrzeni nazw usługi Service Bus i jednostki obsługi komunikatów, upewnij się, że przypisano uprawnienia roli na odpowiednich poziomach. Na przykład aby uzyskać dostęp do kolejki, tożsamość zarządzana wymaga roli, która ma niezbędne uprawnienia dla tej kolejki.

    • Każdy zasób aplikacji logiki powinien używać tylko jednej tożsamości zarządzanej, nawet jeśli przepływ pracy aplikacji logiki uzyskuje dostęp do różnych jednostek obsługi komunikatów.

    • Każda tożsamość zarządzana, która uzyskuje dostęp do kolejki lub subskrypcji tematu, powinna używać własnego połączenia interfejsu API usługi Service Bus.

    • Operacje usługi Service Bus, które wymieniają komunikaty z różnymi jednostkami obsługi komunikatów i wymagają różnych uprawnień, powinny używać własnych połączeń interfejsu API usługi Service Bus.

    Aby uzyskać więcej informacji na temat tożsamości zarządzanych, zobacz Uwierzytelnianie dostępu do zasobów platformy Azure przy użyciu tożsamości zarządzanych w usłudze Azure Logic Apps.

  • Domyślnie wbudowane operacje łącznika usługi Service Bus są bezstanowe. Aby uruchomić te operacje w trybie stanowym, zobacz Włączanie trybu stanowego dla wbudowanych łączników bezstanowych.

Zagadnienia dotyczące operacji usługi Azure Service Bus

Pętle nieskończone

Ważne

Należy zachować ostrożność, wybierając zarówno wyzwalacz, jak i akcję, która ma ten sam typ łącznika, i używać ich do pracy z tą samą jednostką, taką jak kolejka obsługi komunikatów lub subskrypcja tematu. Ta kombinacja może utworzyć nieskończoną pętlę, co powoduje, że aplikacja logiki nigdy się nie kończy.

Limit zapisanych sesji w pamięci podręcznej łącznika

Na jednostkę obsługi komunikatów usługi Service Bus, taką jak subskrypcja lub temat, łącznik usługi Service Bus może zaoszczędzić maksymalnie 1500 unikatowych sesji jednocześnie w pamięci podręcznej łącznika. Jeśli liczba sesji przekroczy ten limit, stare sesje zostaną usunięte z pamięci podręcznej. Aby uzyskać więcej informacji, zobacz Sesje komunikatów.

Wysyłanie skorelowanych komunikatów w kolejności

Jeśli musisz wysyłać powiązane komunikaty w określonej kolejności, możesz utworzyć przepływ pracy przy użyciu łącznika usługi Service Bus i wzorca konwoju sekwencyjnego. Skorelowane komunikaty mają właściwość definiującą relację między tymi komunikatami, taką jak identyfikator sesji w usłudze Azure Service Bus.

Podczas tworzenia przepływu pracy aplikacji logiki Zużycie można wybrać szablon Skorelowane w kolejności dostarczania przy użyciu sesji usługi Service Bus, który implementuje wzorzec konwoju sekwencyjnego. Aby uzyskać więcej informacji, zobacz Wysyłanie powiązanych komunikatów w kolejności.

Obsługa dużych komunikatów

Obsługa dużych komunikatów jest dostępna tylko w przypadku standardowych przepływów pracy w przypadku korzystania z wbudowanych operacji łącznika usługi Service Bus. Można na przykład odbierać i duże komunikaty przy użyciu wbudowanych wyzwalaczy i akcji odpowiednio.

W przypadku łącznika zarządzanego usługi Service Bus maksymalny rozmiar komunikatu jest ograniczony do 1 MB, nawet jeśli używasz przestrzeni nazw usługi Service Bus w warstwie Premium.

Zwiększ limit czasu odbierania i wysyłania komunikatów

W standardowych przepływach pracy korzystających z wbudowanych operacji usługi Service Bus można zwiększyć limit czasu odbierania i wysyłania komunikatów. Aby na przykład zwiększyć limit czasu odbierania komunikatu, zmień następujące ustawienie w rozszerzeniu usługi Azure Functions:

{
   "version": "2.0",
   "extensionBundle": {
      "id": "Microsoft.Azure.Functions.ExtensionBundle.Workflows",
      "version": "[1.*, 2.0.0)"
   },
   "extensions": {
      "serviceBus": {
         "batchOptions": {
            "operationTimeout": "00:15:00"
         }
      }  
   }
}

Aby zwiększyć limit czasu wysyłania komunikatu, dodaj ustawienie aplikacji ServiceProviders.ServiceBus.MessageSenderOperationTimeout.

Wyzwalacze łącznika zarządzanego usługi Service Bus

  • W przypadku łącznika zarządzanego usługi Service Bus wszystkie wyzwalacze są długotrwałe sondowanie. Ten typ wyzwalacza przetwarza wszystkie komunikaty, a następnie czeka 30 sekund, aż więcej komunikatów pojawi się w subskrypcji kolejki lub tematu. Jeśli w ciągu 30 sekund nie pojawią się żadne komunikaty, przebieg wyzwalacza jest pomijany. W przeciwnym razie wyzwalacz kontynuuje odczytywanie komunikatów, dopóki kolejka lub subskrypcja tematu nie będzie pusta. Następny sonda wyzwalacza jest oparta na interwale cyklu określonym we właściwościach wyzwalacza.

  • Niektóre wyzwalacze, takie jak po nadejściu co najmniej jednego komunikatu w wyzwalaczu kolejki (autouzupełnieniu), mogą zwrócić jeden lub więcej komunikatów. Gdy wyzwalacze są wyzwalane, zwracają między jedną a liczbą komunikatów określonych przez właściwość Maksymalna liczba komunikatów wyzwalacza.

    Uwaga

    Wyzwalacz automatycznego uzupełniania automatycznie kończy komunikat, ale ukończenie odbywa się tylko przy następnym wywołaniu usługi Service Bus. To zachowanie może mieć wpływ na projekt przepływu pracy. Na przykład unikaj zmiany współbieżności wyzwalacza automatycznego uzupełniania, ponieważ ta zmiana może spowodować zduplikowanie komunikatów, jeśli przepływ pracy przechodzi w stan ograniczony. Zmiana kontrolki współbieżności powoduje utworzenie następujących warunków:

    • Wyzwalacze ograniczone są pomijane za pomocą WorkflowRunInProgress kodu.

    • Operacja ukończenia nie zostanie uruchomiona.

    • Następny przebieg wyzwalacza występuje po interwale sondowania.

    Należy ustawić czas trwania blokady magistrali usług na wartość dłuższą niż interwał sondowania. Jednak pomimo tego ustawienia komunikat nadal może nie zostać ukończony, jeśli przepływ pracy pozostanie w stanie ograniczenia w następnym interwale sondowania.

    Jeśli jednak włączysz ustawienie współbieżności wyzwalacza usługi Service Bus, wartość domyślna właściwości maximumWaitingRuns to 10. Na podstawie ustawienia czasu trwania blokady jednostki usługi Service Bus i czasu trwania przebiegu dla przepływu pracy ta wartość domyślna może być zbyt duża i może spowodować wyjątek "utrata blokady". Aby znaleźć optymalną wartość dla danego scenariusza, rozpocznij testowanie z wartością 1 lub 2 dla maximumWaitingRuns właściwości . Aby zmienić maksymalną wartość oczekujących przebiegów, zapoznaj się ze zmianą limitu oczekujących przebiegów.

Wyzwalacze wbudowanego łącznika usługi Service Bus

W przypadku wbudowanego łącznika usługi Service Bus wyzwalacze inne niż sesje są zgodne ze wzorcem wyzwalacza ciągłego sondowania, który jest w pełni zarządzany przez łącznik. Ten wzorzec stale sprawdza komunikaty w kolejce lub subskrypcji tematu. Wyzwalacze sesji są zgodne ze wzorcem wyzwalacza długiego sondowania, a jego konfiguracja jest określana przez ustawienie usługi Azure Functions o nazwie clientRetryOptions:tryTimeout. Obecnie ustawienia konfiguracji wbudowanego wyzwalacza usługi Service Bus są współużytkowane przez rozszerzenie hosta usługi Azure Functions zdefiniowane w pliku host.json aplikacji logiki oraz ustawienia wyzwalacza zdefiniowane w przepływie pracy aplikacji logiki, które można skonfigurować za pośrednictwem projektanta lub widoku kodu. W tej sekcji omówiono obie lokalizacje ustawień.

  • W standardowych przepływach pracy niektóre wyzwalacze, takie jak Gdy komunikaty są dostępne w wyzwalaczu kolejki , mogą zwracać jeden lub więcej komunikatów. Gdy te wyzwalacze są wyzwalane, są zwracane między jedną a liczbą komunikatów. Dla tego typu wyzwalacza i gdzie parametr Maksymalna liczba komunikatów nie jest obsługiwany, nadal można kontrolować liczbę komunikatów odebranych przy użyciu właściwości maxMessageBatchSize w pliku host.json . Aby znaleźć ten plik, zobacz Edytowanie ustawień hosta i aplikacji dla standardowych aplikacji logiki.

    "extensions": {
      "serviceBus": {
          "maxMessageBatchSize": 25
      }
    }
    
  • Możesz również włączyć współbieżność w wyzwalaczu usługi Service Bus za pomocą projektanta lub kodu:

    "runtimeConfiguration": {
        "concurrency": {
            "runs": 100
        }
    }
    

    Podczas konfigurowania współbieżności przy użyciu partii zachowaj liczbę współbieżnych przebiegów większych niż całkowity rozmiar partii. W ten sposób odczytywanie komunikatów nie przechodzi do stanu oczekiwania i zawsze są pobierane podczas ich odczytywania. W niektórych przypadkach wyzwalacz może mieć maksymalnie dwa razy większy rozmiar partii.

  • Jeśli włączysz współbieżność, limit SplitOn zostanie zmniejszony do 100 elementów. To zachowanie dotyczy wszystkich wyzwalaczy, a nie tylko wyzwalacza usługi Service Bus. Upewnij się, że określony rozmiar partii jest mniejszy niż ten limit dla dowolnego wyzwalacza, w którym włączono współbieżność.

  • Istnieją pewne scenariusze, w których wyzwalacz może przekraczać ustawienia współbieżności. Zamiast nie uruchomić tych przebiegów, usługa Azure Logic Apps kolejkuje je w stanie oczekiwania do momentu ich uruchomienia. Ustawienie maximumWaitingRuns steruje liczbą przebiegów dozwolonych w stanie oczekiwania:

    "runtimeConfiguration": {
        "concurrency": {
            "runs": 100,
            "maximumWaitingRuns": 50
        }
    }
    

    Po wyzwoleniu usługi Service Bus upewnij się, że dokładnie przetestujesz te zmiany, aby przebiegi nie czekały dłużej niż limit czasu blokady komunikatu. Aby uzyskać więcej informacji na temat wartości domyślnych, zobacz Współbieżność i desadowanie limitów tutaj.

  • Jeśli włączysz współbieżność, domyślnie istnieje 30-sekundowe opóźnienie między operacjami odczytu wsadowego. To opóźnienie spowalnia wyzwalacz, aby osiągnąć następujące cele:

    • Zmniejsz liczbę wywołań magazynu wysyłanych, aby sprawdzić liczbę przebiegów, na których ma zostać zastosowana współbieżność.

    • Naśladuje zachowanie wyzwalacza łącznika zarządzanego usługi Service Bus, który ma 30-sekundową ankietę, gdy nie znaleziono żadnych komunikatów.

    To opóźnienie można zmienić, ale upewnij się, że dokładnie przetestujesz wszelkie zmiany wartości domyślnej:

    "workflow": {
        "settings": {
            "Runtime.ServiceProviders.FunctionTriggers.DynamicListenerEnableDisableInterval": "00:00:30"
        }
    }
    
    

Krok 1. Sprawdzanie dostępu do przestrzeni nazw usługi Service Bus

Aby potwierdzić, że zasób aplikacji logiki ma uprawnienia dostępu do przestrzeni nazw usługi Service Bus, wykonaj następujące kroki:

  1. W witrynie Azure Portal otwórz przestrzeń nazw usługi Service Bus.

  2. W menu przestrzeni nazw w obszarze Ustawienia wybierz pozycję Zasady dostępu współdzielonego. W obszarze Oświadczenia sprawdź, czy masz uprawnienia Zarządzanie dla tej przestrzeni nazw.

    Zrzut ekranu przedstawiający wybraną przestrzeń nazw witryny Azure Portal, przestrzeń nazw usługi Service Bus i pozycję

Krok 2. Uzyskiwanie wymagań dotyczących uwierzytelniania połączeń

Później po dodaniu wyzwalacza lub akcji usługi Service Bus po raz pierwszy zostanie wyświetlony monit o podanie informacji o połączeniu, w tym typu uwierzytelniania połączenia. Na podstawie typu przepływu pracy aplikacji logiki, wersji łącznika usługi Service Bus i wybranego typu uwierzytelniania potrzebne są następujące elementy:

Uwierzytelnianie łącznika zarządzanego (przepływy pracy zużycie i standardowe)

Typ uwierzytelniania Wymagane informacje
Klucz dostępu Parametry połączenia przestrzeni nazw usługi Service Bus. Aby uzyskać więcej informacji, zobacz Get parametry połączenia for Service Bus namespace (Uzyskiwanie parametry połączenia dla przestrzeni nazw usługi Service Bus)
Microsoft Entra integrated Adres URL punktu końcowego dla przestrzeni nazw usługi Service Bus. Aby uzyskać więcej informacji, zobacz Uzyskiwanie adresu URL punktu końcowego dla przestrzeni nazw usługi Service Bus.
Tożsamość zarządzana usługi Logic Apps Adres URL punktu końcowego dla przestrzeni nazw usługi Service Bus. Aby uzyskać więcej informacji, zobacz Uzyskiwanie adresu URL punktu końcowego dla przestrzeni nazw usługi Service Bus.

Wbudowane uwierzytelnianie łącznika (tylko standardowe przepływy pracy)

Typ uwierzytelniania Wymagane informacje
Parametry połączenia Parametry połączenia przestrzeni nazw usługi Service Bus. Aby uzyskać więcej informacji, zobacz Get parametry połączenia for Service Bus namespace (Uzyskiwanie parametry połączenia dla przestrzeni nazw usługi Service Bus)
Active Directory OAuth — W pełni kwalifikowana nazwa przestrzeni nazw usługi Service Bus, na przykład <twoja-przestrzeń> nazw usługi Service-Bus.servicebus.windows.net. Aby uzyskać więcej informacji, zobacz Uzyskiwanie w pełni kwalifikowanej nazwy przestrzeni nazw usługi Service Bus. Aby zapoznać się z innymi wartościami właściwości, zobacz OAuth with Microsoft Entra ID (Protokół OAuth z identyfikatorem Entra firmy Microsoft).
Tożsamość zarządzana W pełni kwalifikowana nazwa przestrzeni nazw usługi Service Bus, na przykład <twoja-usługa-Bus-namespace.servicebus.windows.net.> Aby uzyskać więcej informacji, zobacz Uzyskiwanie w pełni kwalifikowanej nazwy przestrzeni nazw usługi Service Bus.

Uzyskiwanie parametry połączenia dla przestrzeni nazw usługi Service Bus

Aby utworzyć połączenie podczas dodawania wyzwalacza lub akcji usługi Service Bus, musisz mieć parametry połączenia dla przestrzeni nazw usługi Service Bus. Parametry połączenia rozpoczyna się od prefiksu sb://.

  1. W witrynie Azure Portal otwórz przestrzeń nazw usługi Service Bus.

  2. W menu przestrzeni nazw w obszarze Ustawienia wybierz pozycję Zasady dostępu współdzielonego.

  3. W okienku Zasady dostępu współdzielonego wybierz pozycję RootManageSharedAccessKey.

  4. Obok parametry połączenia podstawowej lub pomocniczej wybierz przycisk kopiowania.

    Zrzut ekranu przedstawiający parametry połączenia przestrzeni nazw usługi Service Bus i wybrany przycisk kopiowania.

    Uwaga

    Aby sprawdzić, czy ciąg dotyczy przestrzeni nazw, a nie konkretnej jednostki obsługi komunikatów, wyszukaj parametry połączenia parametruEntityPath. Jeśli znajdziesz ten parametr, parametry połączenia dotyczy określonej jednostki i nie jest poprawnym ciągiem używanym z przepływem pracy.

  5. Zapisz parametry połączenia do późniejszego użycia.

Uzyskiwanie adresu URL punktu końcowego dla przestrzeni nazw usługi Service Bus

Jeśli używasz łącznika zarządzanego usługi Service Bus, ten adres URL punktu końcowego jest potrzebny, jeśli wybierzesz typ uwierzytelniania dla zintegrowanej usługi Microsoft Entra lub tożsamości zarządzanej usługi Logic Apps. Adres URL punktu końcowego rozpoczyna się od prefiksu sb:// .

  1. W witrynie Azure Portal otwórz przestrzeń nazw usługi Service Bus.

  2. W menu przestrzeni nazw w obszarze Ustawienia wybierz pozycję Właściwości.

  3. W obszarze Właściwości obok punktu końcowego usługi Service Bus skopiuj adres URL punktu końcowego i zapisz go do późniejszego użycia, gdy musisz podać adres URL punktu końcowego usługi Service Bus.

Uzyskiwanie w pełni kwalifikowanej nazwy przestrzeni nazw usługi Service Bus

  1. W witrynie Azure Portal otwórz przestrzeń nazw usługi Service Bus.

  2. W menu przestrzeni nazw wybierz pozycję Przegląd.

  3. W okienku Przegląd znajdź właściwość Nazwa hosta i skopiuj w pełni kwalifikowaną nazwę, która wygląda jak <twoja-przestrzeń> nazw usługi Service-Bus.servicebus.windows.net.

Krok 3. Opcja 1 — Dodawanie wyzwalacza usługi Service Bus

Poniższe kroki korzystają z witryny Azure Portal, ale z odpowiednim rozszerzeniem usługi Azure Logic Apps można również użyć następujących narzędzi do tworzenia przepływów pracy aplikacji logiki:

  1. W witrynie Azure Portal otwórz zasób aplikacji logiki Zużycie z pustym przepływem pracy w projektancie.

  2. W projektancie wykonaj następujące ogólne kroki, aby dodać odpowiedni wyzwalacz usługi Azure Service Bus.

    W tym przykładzie wyzwalacz jest kontynuowany z wyzwalaczem o nazwie Po odebraniu komunikatu w kolejce (autouzupełnieniu).

  3. Jeśli zostanie wyświetlony monit, podaj następujące informacje dotyczące połączenia. Po zakończeniu wybierz Utwórz.

    Właściwości Wymagania opis
    Nazwa połączenia Tak Nazwa połączenia
    Typ uwierzytelnienia Tak Typ uwierzytelniania, który ma być używany do uzyskiwania dostępu do przestrzeni nazw usługi Service Bus. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie łącznika zarządzanego.
    Parametry połączenia Tak Parametry połączenia skopiowane i zapisane wcześniej.

    Na przykład to połączenie używa uwierzytelniania klucza dostępu i udostępnia parametry połączenia dla przestrzeni nazw usługi Service Bus:

    Zrzut ekranu przedstawiający przepływ pracy użycia, wyzwalacz usługi Service Bus i przykładowe informacje o połączeniu.

  4. Po pojawieniu się pola informacji o wyzwalaczu podaj niezbędne informacje, na przykład:

    Właściwości Wymagania opis
    Nazwa kolejki Tak Wybrana kolejka do uzyskania dostępu
    Typ kolejki Nie. Typ wybranej kolejki
    Jak często chcesz sprawdzić elementy? Tak Interwał sondowania i częstotliwość sprawdzania kolejki pod kątem elementów

    Zrzut ekranu przedstawiający przepływ pracy użycia, wyzwalacz usługi Service Bus i przykładowe informacje o wyzwalaczu.

  5. Aby dodać inne dostępne właściwości do wyzwalacza, otwórz listę Dodaj nowy parametr i wybierz żądane właściwości.

  6. Dodaj wszelkie akcje wymagane przez przepływ pracy.

    Możesz na przykład dodać akcję, która wysyła wiadomość e-mail po nadejściu nowej wiadomości. Gdy wyzwalacz sprawdza kolejkę i znajduje nowy komunikat, przepływ pracy uruchamia wybrane akcje dla znalezionego komunikatu.

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

Krok 3. Opcja 2 — Dodawanie akcji usługi Service Bus

Poniższe kroki korzystają z witryny Azure Portal, ale z odpowiednim rozszerzeniem usługi Azure Logic Apps można również użyć następujących narzędzi do tworzenia przepływów pracy aplikacji logiki:

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

  2. W projektancie wykonaj następujące ogólne kroki, aby dodać odpowiednią akcję usługi Azure Service Bus.

    W tym przykładzie jest kontynuowana akcja Wyślij komunikat .

  3. Jeśli zostanie wyświetlony monit, podaj następujące informacje dotyczące połączenia. Po zakończeniu wybierz Utwórz.

    Właściwości Wymagania opis
    Nazwa połączenia Tak Nazwa połączenia
    Typ uwierzytelnienia Tak Typ uwierzytelniania, który ma być używany do uzyskiwania dostępu do przestrzeni nazw usługi Service Bus. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie łącznika zarządzanego.
    Parametry połączenia Tak Parametry połączenia skopiowane i zapisane wcześniej.

    Na przykład to połączenie używa uwierzytelniania klucza dostępu i udostępnia parametry połączenia dla przestrzeni nazw usługi Service Bus:

    Zrzut ekranu przedstawiający przepływ pracy użycia, akcję usługi Service Bus i przykładowe informacje o połączeniu.

  4. Po pojawieniu się pola informacji o akcji podaj niezbędne informacje, na przykład:

    Właściwości Wymagania opis
    Nazwa kolejki/tematu Tak Wybrana kolejka lub miejsce docelowe tematu do wysyłania komunikatu
    Identyfikator sesji Nie. Identyfikator sesji w przypadku wysyłania komunikatu do kolejki lub tematu obsługującego sesję
    Właściwości systemu Nie. - Brak
    - Szczegóły przebiegu: dodaj informacje o właściwości metadanych dotyczące przebiegu jako właściwości niestandardowych w komunikacie.

    Zrzut ekranu przedstawiający przepływ pracy użycia, akcję usługi Service Bus i przykładowe informacje o akcji.

  5. Aby dodać inne dostępne właściwości do akcji, otwórz listę Dodaj nowy parametr i wybierz żądane właściwości.

  6. Dodaj inne akcje wymagane przez przepływ pracy.

    Możesz na przykład dodać akcję, która wysyła wiadomość e-mail, aby potwierdzić, że wiadomość została wysłana.

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

Ustawienia wbudowanej aplikacji łącznika usługi Service Bus

W zasobie aplikacji logiki w warstwie Standardowa wbudowany łącznik usługi Service Bus zawiera ustawienia aplikacji kontrolujące różne progi, takie jak przekroczenie limitu czasu wysyłania komunikatów i liczba nadawców komunikatów na rdzeń procesora w puli komunikatów. Aby uzyskać więcej informacji, zobacz Dokumentacja ustawień aplikacji — local.settings.json.

Odczytywanie komunikatów z kolejek utraconych komunikatów za pomocą wbudowanych wyzwalaczy usługi Service Bus

W standardowych przepływach pracy, aby odczytać komunikat z kolejki utraconych komunikatów w kolejce lub subskrypcji tematu, wykonaj następujące kroki przy użyciu określonych wyzwalaczy:

  1. W pustym przepływie pracy na podstawie scenariusza dodaj wbudowany wyzwalacz łącznika usługi Service Bus o nazwie Gdy komunikaty są dostępne w kolejce lub Gdy komunikat jest dostępny w subskrypcji tematu (zobacz blokadę).

  2. W wyzwalaczu ustaw następujące wartości parametrów, aby określić domyślną kolejkę kolejki lub kolejkę subskrypcji tematu, do której można uzyskać dostęp jak dowolna inna kolejka:

    • Gdy komunikaty są dostępne w wyzwalaczu kolejki: ustaw parametr Nazwa kolejki na nazwa kolejki/$deadletterqueue.

    • Gdy komunikat jest dostępny w wyzwalaczu subskrypcji tematu (zobacz blokadę): ustaw parametr Nazwa tematu na nazwa tematu na nazwa_tematu/Subskrypcje/nazwa_subskrypcji/$deadletterqueue.

    Aby uzyskać więcej informacji, zobacz Service Bus dead-letter queues overview (Omówienie kolejek utraconych komunikatów w usłudze Service Bus).

Rozwiązywanie problemów

Opóźnienia w aktualizacjach przepływu pracy, które obowiązują

Jeśli interwał sondowania wyzwalacza usługi Service Bus jest mały, na przykład 10 sekund, aktualizacje przepływu pracy mogą nie obowiązywać przez maksymalnie 10 minut. Aby obejść ten problem, możesz wyłączyć zasób aplikacji logiki, wprowadzić zmiany, a następnie ponownie włączyć zasób aplikacji logiki.

Brak dostępnej sesji lub może być zablokowany przez innego odbiornika

Czasami operacje, takie jak kończenie komunikatu lub odnawianie sesji, powodują następujący błąd:

{
  "status": 400,
  "error": {
    "message": "No session available to complete the message with the lock token 'ce440818-f26f-4a04-aca8-555555555555'."
  }
}

Czasami wyzwalacz oparty na sesji może zakończyć się niepowodzeniem z powodu następującego błędu:

{
  "status": 400,
  "error": {
    "message": "Communication with the Service Bus namespace 'xxxx' and 'yyyy' entity failed. The requested session 'zzzz' cannot be accepted. It may be locked by another receiver."
  }
}

Łącznik usługi Service Bus używa pamięci podręcznej w pamięci do obsługi wszystkich operacji skojarzonych z sesjami. Odbiornik komunikatów usługi Service Bus jest buforowany w pamięci wystąpienia roli (maszyny wirtualnej), które odbiera komunikaty. Aby przetworzyć wszystkie żądania, wszystkie wywołania połączenia są kierowane do tego samego wystąpienia roli. To zachowanie jest wymagane, ponieważ wszystkie operacje usługi Service Bus w sesji wymagają tego samego odbiornika, który odbiera komunikaty dla określonej sesji.

Ze względu na przyczyny, takie jak aktualizacja infrastruktury, wdrażanie łącznika itd., istnieje możliwość, że żądania nie będą kierowane do tego samego wystąpienia roli. W przypadku wystąpienia tego zdarzenia żądania kończą się niepowodzeniem z jednego z następujących powodów:

  • Odbiornik wykonujący operacje w sesji nie jest dostępny w wystąpieniu roli, które obsługuje żądanie.

  • Nowe wystąpienie roli próbuje uzyskać sesję, która upłynął limit czasu w starym wystąpieniu roli lub nie została zamknięta.

O ile ten błąd występuje tylko od czasu do czasu, oczekiwany jest błąd. Gdy wystąpi błąd, komunikat jest nadal zachowywany w usłudze Service Bus. Następny wyzwalacz lub przebieg przepływu pracy próbuje ponownie przetworzyć komunikat.

Następne kroki