Dela via


Övervaka hälsotillståndet för Standard-arbetsflöden i Azure Logic Apps med hälsokontroll (förhandsversion)

Gäller för: Azure Logic Apps (Standard)

Kommentar

Den här funktionen är i förhandsversion och omfattas av kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.

Om du vill hjälpa dina standardarbetsflöden för logikappar att köras med hög tillgänglighet och prestanda konfigurerar du funktionen Hälsokontroll i logikappen för att övervaka arbetsflödets hälsa. Den här funktionen ser till att din app förblir motståndskraftig genom att ge följande fördelar:

  • Proaktiv övervakning så att du kan hitta och åtgärda problem innan de påverkar dina kunder.

  • Ökad tillgänglighet genom att ta bort felaktiga instanser från lastbalanseraren i Azure.

  • Automatisk återställning genom att ersätta instanser med feltillstånd.

Hur fungerar hälsokontroll i Azure Logic Apps?

Hälsokontroll är en Azure App Service-plattformsfunktion som omdirigerar begäranden bort från instanser som inte är felfria och ersätter dessa instanser om de inte är felfria. För en standardlogikapp kan du ange en sökväg till ett "hälsoarbetsflöde" som du skapar för det här ändamålet och att App Service-plattformen ska pinga med jämna mellanrum. Följande exempel visar till exempel det grundläggande lägsta arbetsflödet:

Skärmbild som visar arbetsflödet för standardlogikappen som ska användas som hälsoarbetsflöde.

När du har aktiverat Hälsokontroll pingar App Service-plattformen den angivna arbetsflödessökvägen för alla logikappinstanser med 1 minuts intervall. Om logikappen kräver utskalning skapar Azure omedelbart en ny instans. App Service-plattformen pingar arbetsflödessökvägen igen för att se till att den nya instansen är klar.

Om ett arbetsflöde som körs på en instans inte svarar på pingen efter 10 begäranden, fastställer App Service-plattformen att instansen inte är felfri och tar bort instansen för den specifika logikappen från lastbalanseraren i Azure. Med minst två begäranden kan du ange det antal misslyckade begäranden som krävs för att fastställa att en instans inte är felfri. Mer information om hur du åsidosätter standardbeteendet finns i Konfiguration: Övervaka App Service-instanser med hälsokontroll.

När hälsokontrollen tar bort den felaktiga instansen fortsätter funktionen att pinga instansen. Om instansen svarar med en felfri statuskod, inklusive mellan 200 och 299, returnerar hälsokontrollen instansen till lastbalanseraren. Men om instansen inte är felfri i en timme ersätter hälsokontrollen instansen med en ny. Mer information finns i Vad App Service gör med hälsokontroller.

Förutsättningar

  • Ett Azure-konto och prenumeration. Om du inte har någon prenumeration kan du registrera ett kostnadsfritt Azure-konto.

  • En standardlogikappresurs med följande attribut:

    • En App Service-plan som skalas till två eller flera instanser.

    • Ett "hälsoarbetsflöde" som specifikt kör hälsokontrollen och följande element:

      • Börjar med utlösaren Förfrågning med namnet När en HTTP-begäran tas emot.

      • Innehåller åtgärden Begäran med namnet Svar. Ange den här åtgärden för att returnera en statuskod inklusive mellan 200 och 299.

      Du kan också låta det här arbetsflödet köra andra kontroller för att se till att beroende tjänster är tillgängliga och fungerar som förväntat. Vi rekommenderar att du ser till att sökvägen Hälsokontroll övervakar viktiga komponenter i arbetsflödet. Om din app till exempel är beroende av ett databas- och meddelandesystem kontrollerar du att Hälsokontroll kan komma åt dessa komponenter.

Begränsningar

  • Den angivna sökvägens längd måste innehålla färre än 65 tecken.

  • Ändringar i den angivna sökvägen för Hälsokontroll gör att logikappen startas om. För att minska påverkan på produktionsappar konfigurerar och använder du distributionsfack.

  • Hälsokontrollen följer inte omdirigeringar för 302-statuskoden Så undvik omdirigeringar och se till att välja en giltig sökväg som finns i din app.

Konfigurera hälsokontroll

  1. I Azure Portal går du till din standardlogikappresurs.

  2. På logikappmenyn väljer du Diagnostisera och lösa problem.

  3. På sidan Diagnostisera och lösa problem går du till sökrutan och letar upp och väljer funktionen Hälsokontroll.

    Skärmbild som visar Azure Portal, sida för Diagnostisera och lösa problem, sökruta med hälsokontroll angiven och valt alternativ för funktionen Hälsokontroll.

  4. I avsnittet Hälsokontroll väljer du Visa lösning.

  5. I fönstret som öppnas väljer du Konfigurera och aktivera funktionen för hälsokontroll.

  6. På fliken Hälsokontroll bredvid Hälsokontroll väljer du Aktivera.

  7. Under Sökväg för hälsoavsökning i rutan Sökväg anger du en giltig URL-sökväg för arbetsflödet, till exempel:

    /api/{workflow-name}/triggers/{request-trigger-name}/invoke?api-version=2022-05-01

  8. Spara dina ändringar. I verktygsfältet väljer du Spara.

  9. I logikappresursen uppdaterar du host.json-filen genom att följa dessa steg:

    1. På logikappmenyn går du till Utvecklingsverktyg och väljer Avancerade verktyg>.

    2. I verktygsfältet KuduPlus går du till menyn Felsökningskonsol och väljer CMD.

    3. Bläddra till mappen site/wwwroot och välj Redigera bredvid filen host.json.

    4. I host.json filredigeraren lägger du till egenskapen Workflows.HealthCheckWorkflowName och namnet på ditt hälsoarbetsflöde för att aktivera autentisering och auktorisering för hälsokontroll, till exempel:

      "extensions": {
          "workflow": {
              "settings": {
                  "Workflows.HealthCheckWorkflowName" : "{workflow-name}"
              }
          }
      }
      
    5. När du är klar väljer du Spara.

Felsökning

När jag har angett hälsosökvägen utlöses inte mitt hälsoarbetsflöde.

  1. På logikappmenyn väljer du Diagnostisera och lösa problem.

  2. Under Felsökningskategorier väljer du Tillgänglighet och prestanda.

    Skärmbild som visar Azure Portal, sida för Diagnostisera och lösa problem och valt alternativ för tillgänglighet och prestanda.

  3. Leta upp och granska avsnittet statuskod.

    Om statuskoden är 401 kontrollerar du följande:

    • Bekräfta att egenskapen Workflows.HealthCheckWorkflowName och namnet på ditt hälsoarbetsflöde visas korrekt.

    • Bekräfta att den angivna sökvägen matchar arbetsflödet och begärandeutlösarens namn.

Vanliga hälsoproblem

Min logikappresurs har inga arbetsflöden, men resursen skalas fortfarande ut till flera instanser, vilket medför kostnader.

Det här beteendet kan inträffa om logikappresursen inte är felfri, eller vanligtvis när resursen inte kan komma åt det associerade lagringskontot. Prova att kontrollera om lagringskontot har en nätverksinställning som blockerar åtkomsten eller om du har en brandväggsprincip för nätverk som blockerar åtkomsten.

Min logikappresurs har arbetsflöden, men de körs inte så mycket. Resursen skalas dock fortfarande ut till flera instanser, vilket medför kostnader.

  1. Kontrollera om resursen kan komma åt det associerade lagringskontot.

    Har lagringskontot till exempel en nätverksinställning som blockerar åtkomst? Har du en brandväggsprincip för nätverk som blockerar åtkomst?

  2. Om arbetsflödet börjar med en tjänstleverantörsbaserad utlösare kontrollerar du att utlösaren fungerar som förväntat.

    • En misslyckad tjänstleverantörsbaserad utlösare kan skapa onödig skalning, vilket avsevärt kan öka kostnaderna.

      Ett vanligt förbiseende är till exempel att ställa in en utlösare utan att ge logikappen behörighet eller åtkomst till målet, till exempel en Service Bus-kö, lagringsblobcontainer och så vidare.

    • Se till att övervaka sådana utlösare hela tiden så att du snabbt kan identifiera och åtgärda eventuella problem.

Mitt arbetsflöde slutar ibland bearbeta meddelanden i timmar men körs bra de flesta andra gånger.

Om standardlogikappen använder värdalternativet Arbetsflödestjänstplan och inte finns i en App Service-miljön kontrollerar du att Runtime Scale Monitoring är aktiverat och att Always Ready Instances är inställt på minst 1.

  1. I Azure Portal letar du upp och öppnar logikappen, om den inte redan är öppen.

  2. På logikappmenyn går du till Inställningar och väljer Konfiguration.

  3. På fliken Inställningar för arbetsflödeskörning bredvid Körningsskalningsövervakning väljer du .

  4. På sidan Konfiguration väljer du Spara.

  5. På logikappmenyn går du till Inställningar och väljer Skala ut (App Service-plan).

  6. Under Skala ut app kontrollerar du att värdet Always Ready Instances inte är inställt0.