Dela via


Apache Flink-jobbhantering® i HDInsight i AKS-kluster

Viktigt!

Den här funktionen finns i förhandsgranskning. De kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure innehåller fler juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet. Information om den här specifika förhandsversionen finns i Azure HDInsight på AKS-förhandsversionsinformation. Om du vill ha frågor eller funktionsförslag skickar du en begäran på AskHDInsight med informationen och följer oss för fler uppdateringar i Azure HDInsight Community.

HDInsight på AKS innehåller en funktion för att hantera och skicka Apache Flink-jobb® direkt via Azure-portalen (användarvänligt gränssnitt) och ARM Rest API:er.

Den här funktionen ger användarna möjlighet att effektivt kontrollera och övervaka sina Apache Flink-jobb utan att kräva djup kunskap på klusternivå.

Förmåner

  • Förenklad jobbhantering: Med den interna integreringen av Apache Flink i Azure-portalen behöver användarna inte längre omfattande kunskaper om Flink-kluster för att skicka, hantera och övervaka jobb.

  • Användarvänligt REST API: HDInsight på AKS tillhandahåller användarvänliga ARM Rest API:er för att skicka och hantera Flink-jobb. Användare kan skicka Flink-jobb från valfri Azure-tjänst med hjälp av dessa rest-API:er.

  • Enkla jobbuppdateringar och tillståndshantering: Den interna Azure-portalintegreringen ger en problemfri upplevelse för att uppdatera jobb och återställa dem till deras senast sparade tillstånd (savepoint). Den här funktionen säkerställer kontinuitet och dataintegritet under hela jobblivscykeln.

  • Automatisera Flink-jobb med Hjälp av Azure-pipeline: Med HDInsight på AKS har Flink-användare åtkomst till användarvänligt ARM Rest API. Du kan sömlöst integrera Flink-jobbåtgärder i din Azure Pipeline. Oavsett om du lanserar nya jobb, uppdaterar jobb som körs eller utför olika jobbåtgärder, eliminerar den här effektiva metoden manuella steg. Det gör att du kan hantera Flink-klustret effektivt.

Förutsättningar

Det finns vissa förutsättningar innan du skickar och hanterar jobb från portalen eller rest-API:er.

  • Skapa en katalog i klustrets primära lagringskonto för att ladda upp jobbburken.

  • Om användaren vill ta sparpunkter skapar du en katalog i lagringskontot för jobbsparpunkter.

    Skärmbild som visar katalogstrukturen.

Viktiga funktioner och åtgärder

  • Ny jobböverföring: Användarna kan enkelt skicka en ny Flink, vilket eliminerar behovet av komplexa konfigurationer eller externa verktyg.

  • Stoppa och starta jobb med sparpunkter: Användare kan smidigt stoppa och starta sina Flink-jobb från sitt tidigare tillstånd (Savepoint). Spara punkter säkerställer att jobbförloppet bevaras, vilket möjliggör sömlösa återupptagningar.

  • Jobbuppdateringar: Användaren kan uppdatera det jobb som körs när jar-filen har uppdaterats på lagringskontot. Den här uppdateringen tar automatiskt sparandepunkten och startar jobbet med en ny jar.

  • Tillståndslösa uppdateringar: Att utföra en ny omstart för ett jobb förenklas genom tillståndslösa uppdateringar. Med den här funktionen kan användare initiera en ren omstart med hjälp av den uppdaterade jobbburken.

  • Hantering av sparandepunkter: När som helst kan användarna skapa sparpunkter för sina jobb som körs. Dessa sparandepunkter kan visas och användas för att starta om jobbet från en specifik kontrollpunkt efter behov.

  • Avbryt: Jobbet avbryts permanent.

  • Ta bort: Ta bort jobbhistorikpost.

Alternativ för att hantera jobb i HDInsight på AKS

HDInsight på AKS tillhandahåller sätt att hantera Flink-jobb.

Jobbhantering från Azure-portalen

Kör Flink-jobbet från portalen genom att gå till:

Portal –> HDInsight på AKS-klusterpool –> Flink-kluster –> Inställningar –> Flink-jobb

Skärmbild som visar hur du kör flink-jobbet.

  • Nytt jobb: Om du vill skicka ett nytt jobb laddar du upp jobbburkarna till lagringskontot och skapar en savepoint-katalog. Slutför mallen med nödvändiga konfigurationer och skicka sedan jobbet.

    Skärmbild som visar hur du skapar ett nytt jobb.

    Egenskapsinformation:

    Property Beskrivning Standardvärde Obligatorisk
    Jobbnamn Unikt namn för jobbet. Detta visas på portalen. Jobbnamnet bör vara i liten senare. Ja
    Jar-sökväg Lagringssökväg för jobbburk. Användare bör skapa katalog i klusterlagring och ladda upp jobbburk. Ja
    Startklass Startklass för jobb som jobbkörningen startar från. Ja
    Args Argument för huvudprogrammet för jobbet. Avgränsa alla argument med blanksteg. Nej
    Parallellitet Jobb flink parallellitet. 2 Ja
    savepoint.directory Savepoint-katalog för jobb. Vi rekommenderar att användarna skapar en ny katalog för jobbsparpunkt i lagringskontot. abfs://<container>@<account>/<deployment-ID>/savepoints Nej

    När jobbet har startats körs jobbstatusen på portalen.

  • Stopp: Stoppjobbet krävde ingen parameter, användaren kan stoppa jobbet genom att välja åtgärden.

    Skärmbild som visar hur användaren kan stoppa jobbet.

    När jobbet har stoppats stoppas jobbstatusen på portalen.

  • Start: Den här åtgärden startar jobbet från savepoint. Starta jobbet genom att välja det stoppade jobbet och starta det.

    Skärmbild som visar hur användaren startar jobbet.

    Fyll i flödesmallen med de alternativ som krävs och starta den. Användarna måste välja den sparpunkt som användaren vill starta jobbet från. Som standard tar den senaste lyckade sparandepunkten.

    Skärmbild som visar hur fyllningsflödesmallen.

    Egenskapsinformation:

    Property Beskrivning Standardvärde Obligatorisk
    Args Argument för huvudprogrammet för jobbet. Alla argument ska avgränsas med blanksteg. Nej
    Senaste sparandepunkt Den senaste lyckade sparandepunkten tar innan jobbet stoppas. Detta används som standard om inte savepoint har valts. Kan inte redigeras
    Spara punktnamn Användare kan visa en lista över den tillgängliga sparandepunkten för jobbet och välja en för att starta jobbet. Nej

    När jobbet har startats körs jobbstatusen på portalen.

  • Uppdatering: Uppdateringen hjälper till att starta om jobb med uppdaterad jobbkod. Användarna måste uppdatera den senaste jobbburken på lagringsplatsen och uppdatera jobbet från portalen. Den här uppdateringen stoppar jobbet med savepoint och börjar igen med den senaste jar-filen.

    Skärmbild som visar hur du startar om jobb med uppdaterad jobbkod.

    Mall för att uppdatera jobbet.

    Skärmbild som visar mallen för att uppdatera jobbet.

    När jobbet har uppdaterats är jobbstatusen på portalen "KÖRS".

  • Tillståndslös uppdatering: Det här jobbet är som en uppdatering, men det innebär en ny omstart av jobbet med den senaste koden.

    Skärmbild som visar ny omstart av jobbet med den senaste koden.

    Mall för att uppdatera jobbet.

    Skärmbild som visar mall för uppdatering av tillståndslöst jobb.

    Egenskapsinformation:

    Property Beskrivning Standardvärde Obligatorisk
    Args Argument för huvudprogrammet för jobbet. Avgränsa alla argument med blanksteg. Nej

    När jobbet har uppdaterats körs jobbstatusen på portalen.

  • Spara punkt: Ta sparpunkten för Flink-jobbet.

    Skärmbild som visar sparandepunkt för Flink-jobbet.

    Savepoint är en tidskrävande process och det tar lite tid. Du kan se status för jobbåtgärder som pågående.

    Skärmbild som visar status för jobbåtgärd.

  • Avbryt: Det här jobbet hjälper användaren att avsluta jobbet.

    Skärmbild som visar hur användaren kan avsluta jobbet.

  • Ta bort: Ta bort jobbdata från portalen.

    Skärmbild som visar hur användaren kan ta bort jobbdata från portalen.

  • Visa jobbinformation: Om du vill visa jobbinformationen som användaren kan klicka på jobbnamnet ger det information om jobbet och resultatet av den senaste åtgärden.

    Skärmbild som visar hur du visar jobbinformation.

    För alla misslyckade åtgärder ger det här jobbet json detaljerade undantag och orsaker till fel.

Jobbhantering med hjälp av rest-API

HDInsight på AKS stöder användarvänliga ARM Rest API:er för att skicka jobb och hantera jobb. Med hjälp av det här Flink REST-API:et kan du sömlöst integrera Flink-jobbåtgärder i din Azure Pipeline. Oavsett om du lanserar nya jobb, uppdaterar jobb som körs eller utför olika jobbåtgärder, eliminerar den här effektiva metoden manuella steg och ger dig möjlighet att hantera Flink-klustret effektivt.

Bas-URL-format för Rest API

Se följande URL för rest-API: et, användare måste ersätta prenumeration, resursgrupp, klusterpool, klusternamn och HDInsight i AKS API-versionen i detta innan de använder den. https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runjob?api-version={{API_VERSION}}

Med hjälp av det här REST-API:et kan användarna initiera nya jobb, stoppa jobb, starta jobb, skapa sparpunkter, avbryta jobb och ta bort jobb. Den aktuella API_VERSION är 2023-06-01-preview.

Rest API-autentisering

Om du vill autentisera Flink ARM Rest API-användare måste du hämta ägartoken eller åtkomsttoken för ARM-resursen. Om du vill autentisera REST-API:et för Azure ARM (Azure Resource Manager) med ett huvudnamn för tjänsten kan du följa dessa allmänna steg:

  • Skapa ett huvudnamn för tjänsten.

    az ad sp create-for-rbac --name <your-SP-name>

  • Ge ägaren behörighet till SP för flink kluster.

  • Logga in med tjänstens huvudnamn.

    az login --service-principal -u <client_id> -p <client_secret> --tenant <tenant_id>

  • Hämta åtkomsttoken.

    $token = az account get-access-token --resource=https://management.azure.com/ | ConvertFrom-Json

    $tok = $token.accesstoken

    Användare kan använda token i den URL som visas.

    $data = Invoke-RestMethod -Uri $restUri -Method GET -Headers @{ Authorization = "Bearer $tok" }

Autentisering med hanterad identitet: Användare kan använda resurser som stöder hanterad identitet för att göra anrop till jobb-REST-API:et. Mer information finns i dokumentationen om hanterad identitet .

LISTA över API:er och parametrar

  • Nytt jobb: Rest API för att skicka nytt jobb till Flink.

    Alternativ Värde
    Metod POST
    webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Header Authorization = "Bearer $token"

    Begärandetext:

    { 
        "properties": { 
            "jobType": "FlinkJob", 
            "jobName": "<JOB_NAME>", 
            "action": "NEW", 
            "jobJarDirectory": "<JOB_JAR_STORAGE_PATH>", 
            "jarName": "<JOB_JAR_NAME>", 
            "entryClass": "<JOB_ENTRY_CLASS>", 
            “args”: ”<JOB_JVM_ARGUMENT>”
            "flinkConfiguration": { 
                "parallelism": "<JOB_PARALLELISM>", 
                "savepoint.directory": "<JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>" 
            } 
         } 
    }
    

    Egenskapsinformation för JSON-brödtext:

    Property Beskrivning Standardvärde Obligatorisk
    jobType Typ av jobb. Det bör vara "FlinkJob" Ja
    jobName Unikt namn för jobbet. Detta visas på portalen. Jobbnamnet bör vara i liten senare. Ja
    åtgärd Det anger åtgärdstyp för jobbet. Den bör alltid vara "NY" för ny jobbstart. Ja
    jobJarDirectory Lagringssökväg för jobb jar-katalog. Användare bör skapa katalog i klusterlagring och ladda upp jobbburk. Ja
    jarName Namnet på jobbburken. Ja
    entryClass Startklass för jobb som jobbkörningen startar från. Ja
    args Argument för huvudprogrammet för jobbet. Avgränsa argument med blanksteg. Nej
    Parallellitet Jobb flink parallellitet. 2 Ja
    savepoint.directory Savepoint-katalog för jobb. Vi rekommenderar att användarna skapar en ny katalog för jobbsparpunkt i lagringskontot. abfs://<container>@<account>/<deployment-ID>/savepoints Nej

    Exempel:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Stoppjobb: Rest-API för att stoppa aktuellt jobb som körs.

    Alternativ Värde
    Metod POST
    webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Header Authorization = "Bearer $token"

    Begärandetext

       {
          "properties": {
            "jobType": "FlinkJob",
            "jobName": "<JOB_NAME>",
            "action": "STOP"
          }
        }
    

    Egenskapsinformation för JSON-brödtext:

    Property Beskrivning Standardvärde Obligatorisk
    jobType Typ av jobb. Det bör vara "FlinkJob" Ja
    jobName Jobbnamn, som används för att starta jobbet Ja
    åtgärd Det bör vara "STOP" Ja

    Exempel:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Startjobb: Rest API för att starta stoppat jobb.

    Alternativ Värde
    Metod POST
    webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Header Authorization = "Bearer $token"

    Begärandetext

       {
          "properties": {
             "jobType": "FlinkJob",
             "jobName": "<JOB_NAME>",
             "action": "START",
             "savePointName": "<SAVEPOINT_NAME>"
          }
        }
    

    Egenskapsinformation för JSON-brödtext:

    Property Beskrivning Standardvärde Obligatorisk
    jobType Typ av jobb. Det bör vara "FlinkJob" Ja
    jobName Jobbnamn som används för att starta jobbet. Ja
    åtgärd Det bör vara "START" Ja
    savePointName Spara punktnamnet för att starta jobbet. Det är en valfri egenskap, som standard tar startåtgärden den senaste lyckade sparandepunkten. Nej

    Exempel:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Uppdateringsjobb: Rest-API för uppdatering av aktuellt jobb som körs.

    Alternativ Värde
    Metod POST
    webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Header Authorization = "Bearer $token"

    Begärandetext

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "UPDATE",
              “args” : “<JOB_JVM_ARGUMENT>”,
              "savePointName": "<SAVEPOINT_NAME>"
          }
      }
    
    

    Egenskapsinformation för JSON-brödtext:

    Property Beskrivning Standardvärde Obligatorisk
    jobType Typ av jobb. Det bör vara "FlinkJob" Ja
    jobName Jobbnamn som används för att starta jobbet. Ja
    åtgärd Det bör alltid vara "UPDATE" för ny jobbstart. Ja
    args JVM-argument för jobb Nej
    savePointName Spara punktnamnet för att starta jobbet. Det är en valfri egenskap. Som standard tar startåtgärden den senaste lyckade sparandepunkten. Nej

    Exempel:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Tillståndslöst uppdateringsjobb: Rest-API för tillståndslös uppdatering.

    Alternativ Värde
    Metod POST
    webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Header Authorization = "Bearer $token"

    Begärandetext

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "STATELESS_UPDATE",
              “args” : “<JOB_JVM_ARGUMENT>”
          }
      }
    

    Egenskapsinformation för JSON-brödtext:

    Property Beskrivning Standardvärde Obligatorisk
    jobType Typ av jobb. Det bör vara "FlinkJob" Ja
    jobName Jobbnamn som används för att starta jobbet. Ja
    åtgärd Det bör alltid vara "STATELESS_UPDATE" för ny jobbstart. Ja
    args JVM-argument för jobb Nej

    Exempel:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Savepoint: Rest API för att utlösa savepoint för jobb.

    Alternativ Värde
    Metod POST
    webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Header Authorization = "Bearer $token"

    Begärandetext

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "SAVEPOINT"
          }
      }
    

    Egenskapsinformation för JSON-brödtext:

    Property Beskrivning Standardvärde Obligatorisk
    jobType Typ av jobb. Det bör vara "FlinkJob" Ja
    jobName Jobbnamn som används för att starta jobbet. Ja
    åtgärd Det bör alltid vara "SAVEPOINT" för ny jobbstart. Ja

    Exempel:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Listsparpunkt: Rest-API:et för att visa en lista över alla sparandepunkter från katalogen Savepoint.

    Alternativ Värde
    Metod POST
    webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Header Authorization = "Bearer $token"

    Begärandetext

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "LIST_SAVEPOINT"
          }
      }
    

    Egenskapsinformation för JSON-brödtext:

    Property Beskrivning Standardvärde Obligatorisk
    jobType Typ av jobb. Det bör vara "FlinkJob" Ja
    jobName Jobbnamn som används för att starta jobbet Ja
    åtgärd Det bör vara "LIST_SAVEPOINT" Ja

    Exempel:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Avbryt: Rest API för att avbryta jobbet.

    Alternativ Värde
    Metod POST
    webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Header Authorization = "Bearer $token"

    Begärandetext

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "CANCEL"
          }
      }
    

    Egenskapsinformation för JSON-brödtext:

    Property Beskrivning Standardvärde Obligatorisk
    jobType Typ av jobb. Den bör vara FlinkJob Ja
    jobName Jobbnamn som används för att starta jobbet. Ja
    åtgärd Det bör vara CANCEL. Ja

    Exempel:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Ta bort: Rest API för att ta bort jobb.

    Alternativ Värde
    Metod POST
    webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
    Header Authorization = "Bearer $token"

    Begärandetext

      {
          "properties": {
              "jobType": "FlinkJob",
              "jobName": "<JOB_NAME>",
              "action": "DELETE"
          }
      }
    

    Egenskapsinformation för JSON-brödtext:

    Property Beskrivning Standardvärde Obligatorisk
    jobType Typ av jobb. Det bör vara "FlinkJob" Ja
    jobName Jobbnamn som används för att starta jobbet. Ja
    åtgärd Det bör vara DELETE. Ja

    Exempel:

    Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"

  • Listjobb: Rest API för att visa alla jobb och status för den aktuella åtgärden.

    Alternativ Värde
    Metod GET
    webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/jobs?api-version={{API_VERSION}}
    Header Authorization = "Bearer $token"

    Produktionen:

    { 
      "value": [ 
          { 
              "id": "/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/jobs/job1", 
              "properties": { 
                  "jobType": "FlinkJob", 
                  "jobName": "job1", 
                  "jobJarDirectory": "<JOB_JAR_STORAGE_PATH>", 
                  "jarName": "<JOB_JAR_NAME>", 
                  "action": "STOP", 
                  "entryClass": "<JOB_ENTRY_CLASS>", 
                  "flinkConfiguration": { 
                      "parallelism": "2", 
                      "savepoint.directory": "<JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>s" 
                  }, 
                  "jobId": "20e9e907eb360b1c69510507f88cdb7b", 
                  "status": "STOPPED", 
                  "jobOutput": "Savepoint completed. Path: <JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>s/savepoint-20e9e9-8a48c6b905e5", 
                  "actionResult": "SUCCESS", 
                  "lastSavePoint": "<JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>s/savepoint-20e9e9-8a48c6b905e5" 
          } 
       }
      ]
    }
    

Kommentar

När någon åtgärd pågår visar actionResult det med värdet "IN_PROGRESS" När åtgärden har slutförts visas "SUCCESS", och om det misslyckas blir den "FAILED".

Referens