Condividi tramite


Gestione dei processi Apache Flink® in HDInsight nei cluster del servizio Azure Kubernetes

Importante

Questa funzionalità è attualmente disponibile solo in anteprima. Le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure includono termini legali più validi applicabili alle funzionalità di Azure disponibili in versione beta, in anteprima o non ancora rilasciate nella disponibilità generale. Per informazioni su questa anteprima specifica, vedere Informazioni sull'anteprima di Azure HDInsight nel servizio Azure Kubernetes. Per domande o suggerimenti sulle funzionalità, inviare una richiesta in AskHDInsight con i dettagli e seguire microsoft per altri aggiornamenti nella community di Azure HDInsight.

HDInsight nel servizio Azure Kubernetes offre una funzionalità per gestire e inviare processi Apache Flink® direttamente tramite l'portale di Azure (interfaccia intuitiva) e le API REST arm.

Questa funzionalità consente agli utenti di controllare e monitorare in modo efficiente i processi Apache Flink senza richiedere conoscenze approfondite a livello di cluster.

Vantaggi

  • Gestione semplificata dei processi: con l'integrazione nativa di Apache Flink nella portale di Azure, gli utenti non richiedono più una conoscenza approfondita dei cluster Flink per inviare, gestire e monitorare i processi.

  • API REST descrittiva: HDInsight nel servizio Azure Kubernetes offre API REST ARM descrittive per inviare e gestire processi Flink. Gli utenti possono inviare processi Flink da qualsiasi servizio di Azure usando queste API REST.

  • Semplici aggiornamenti e gestione dello stato dei processi: l'integrazione portale di Azure nativa offre un'esperienza senza problemi per l'aggiornamento dei processi e il ripristino dell'ultimo stato salvato (punto di salvataggio). Questa funzionalità garantisce la continuità e l'integrità dei dati nel ciclo di vita del processo.

  • Automazione del processo Flink con la pipeline di Azure: usando HDInsight nel servizio Azure Kubernetes, gli utenti Flink hanno accesso all'API REST arm intuitiva, è possibile integrare facilmente le operazioni del processo Flink in Azure Pipeline. Sia che si avviino nuovi processi, si aggiornino processi in esecuzione o si eseguano varie operazioni di processo, questo approccio semplificato elimina i passaggi manuali. Consente di gestire il cluster Flink in modo efficiente.

Prerequisiti

Prima di inviare e gestire i processi dal portale o dalle API REST, sono necessari alcuni prerequisiti.

  • Creare una directory nell'account di archiviazione primario del cluster per eseguire il caricamento del file JAR del processo.

  • Se l'utente vuole selezionare i punti di salvataggio, occorre creare una directory nell'account di archiviazione per i punti di salvataggio dei processi.

    Screenshot che mostra la struttura di directory.

Funzionalità e operazioni principali

  • Nuovo invio di processi: gli utenti possono inviare facilmente un nuovo collegamento Flink, eliminando la necessità di configurazioni complesse o strumenti esterni.

  • Arrestare e avviare i processi con punti di salvataggio: gli utenti possono arrestare e avviare normalmente i processi Flink dallo stato precedente (Savepoint). I punti di salvataggio assicurano che lo stato del processo venga mantenuto, abilitando le riprese senza problemi.

  • Aggiornamenti dei processi: l'utente può aggiornare il processo in esecuzione dopo l'aggiornamento del file JAR nell'account di archiviazione. Questo aggiornamento accetta automaticamente il punto di salvataggio e avvia il processo con un nuovo file JAR.

  • Aggiornamenti senza stato: l'esecuzione di un nuovo riavvio per un processo viene semplificata tramite aggiornamenti senza stato. Questa funzionalità consente agli utenti di avviare un riavvio pulito usando il file JAR del processo aggiornato.

  • Gestione dei punti di salvataggio: in qualsiasi momento, gli utenti possono creare punti di salvataggio per i processi in esecuzione. Questi punti di salvataggio possono essere elencati e usati per riavviare il processo da un checkpoint specifico in base alle esigenze.

  • Annulla: annulla il processo in modo permanente.

  • Elimina: eliminare il record della cronologia dei processi.

Opzioni per gestire i processi in HDInsight nel servizio Azure Kubernetes

HDInsight nel servizio Azure Kubernetes offre modi per gestire i processi Flink.

Gestione processi da portale di Azure

Per eseguire il processo Flink dal portale, passare a:

Portale -> HDInsight nel pool di cluster del servizio Azure Kubernetes -> Cluster Flink -> Impostazioni --> Processi Flink

Screenshot che mostra come eseguire il processo

  • Nuovo processo: per inviare un nuovo processo, caricare i file JAR del processo nell'account di archiviazione e creare una directory savepoint. Completare il modello con le configurazioni necessarie e quindi inviare il processo.

    Screenshot che mostra come creare un nuovo processo.

    Dettagli proprietà:

    Proprietà Descrizione Valore predefinito Obbligatorio
    Nome processo Nome univoco per il processo. Questo viene visualizzato nel portale. Il nome del processo deve essere in lettere minuscole.
    Percorso jar Archiviazione percorso per il file JAR del processo. Gli utenti devono creare le directory nell'archiviazione cluster e caricare il file JAR del processo.
    Classe Entry Classe di ingresso per il processo da cui viene avviata la relativa esecuzione.
    Args Argomento per il programma principale del processo. Separare tutti gli argomenti con spazi. No
    parallelismo Parallelismo Flink del processo. 2
    savepoint.directory Directory del punto di salvataggio per il processo. È consigliabile che gli utenti creino una nuova directory per il punto di salvataggio dei processi nell'account di archiviazione. abfs://<container>@<account>/<deployment-ID>/savepoints No

    Dopo l'avvio del processo, lo stato del processo nel portale è IN ESECUZIONE.

  • Arresto: l'arresto del processo non richiede alcun parametro, l'utente può arrestare il processo selezionando l'azione.

    Screenshot che mostra come l'utente può arrestare il processo.

    Dopo l'arresto del processo, lo stato del processo nel portale è ARRESTATO.

  • Start: questa azione avvia il processo dal punto di salvataggio. Per avviare il processo, selezionare il processo arrestato e avviarlo.

    Screenshot che mostra il modo in cui l'utente avvia il processo.

    Compilare il modello di flusso con le opzioni necessarie e avviarlo. Gli utenti devono selezionare il punto di salvataggio da cui l'utente vuole avviare il processo. Per impostazione predefinita, accetta l'ultimo punto di salvataggio riuscito.

    Screenshot che mostra come il modello di flusso di riempimento.

    Dettagli proprietà:

    Proprietà Descrizione Valore predefinito Obbligatorio
    Args Argomento per il programma principale del processo. Tutti gli argomenti devono essere separati da spazio. No
    Ultimo punto di salvataggio Ultimo punto di salvataggio riuscito prima di arrestare il processo. Questa opzione verrà utilizzata per impostazione predefinita se non è selezionato il punto di salvataggio. Non modificabile
    Nome punto di salvataggio Gli utenti possono elencare il punto di salvataggio disponibile per il processo e selezionare uno per avviare il processo. No

    Dopo l'avvio del processo, lo stato del processo nel portale sarà IN ESECUZIONE.

  • Aggiornamento: l'aggiornamento consente di riavviare i processi con il codice del processo aggiornato. Gli utenti devono aggiornare il file JAR del processo più recente nella posizione di archiviazione e aggiornare il processo dal portale. Questo aggiornamento arresta il processo con savepoint e viene avviato di nuovo con il file JAR più recente.

    Screenshot che mostra come riavviare i processi con il codice del processo aggiornato.

    Modello per l'aggiornamento del processo.

    Screenshot che mostra il modello per l'aggiornamento del processo.

    Dopo aver aggiornato il processo, lo stato del processo nel portale è "RUNNING".

  • Aggiornamento senza stato: questo processo è simile a un aggiornamento, ma comporta un nuovo riavvio del processo con il codice più recente.

    Screenshot che mostra il nuovo riavvio del processo con il codice più recente.

    Modello per l'aggiornamento del processo.

    Screenshot che mostra il modello per l'aggiornamento del processo senza stato.

    Dettagli proprietà:

    Proprietà Descrizione Valore predefinito Obbligatorio
    Args Argomento per il programma principale del processo. Separare tutti gli argomenti con lo spazio. No

    Dopo aver aggiornato il processo, lo stato del processo nel portale è IN ESECUZIONE.

  • Punto di salvataggio: prendere il punto di salvataggio per il processo Flink.

    Screenshot che mostra il punto di salvataggio per il processo Flink.

    Il punto di salvataggio richiede molto tempo e richiede tempo. È possibile visualizzare lo stato dell'azione del processo come in corso.

    Screenshot che mostra lo stato dell'azione del processo.

  • Annulla: questo processo consente all'utente di terminare il processo.

    Screenshot che mostra come l'utente può terminare il processo.

  • Elimina: eliminare i dati del processo dal portale.

    Screenshot che mostra come l'utente può eliminare i dati del processo dal portale.

  • Visualizza dettagli processo: per visualizzare i dettagli del processo l'utente può fare clic sul nome del processo, fornisce i dettagli sul processo e sull'ultimo risultato dell'azione.

    Screenshot che mostra come visualizzare i dettagli del processo.

    Per qualsiasi azione non riuscita, questo file JSON del processo offre eccezioni dettagliate e motivi per l'errore.

Gestione dei processi con l'API REST

HDInsight nel servizio Azure Kubernetes supporta API REST ARM descrittive per inviare il processo e gestire il processo. Usando questa API REST Flink, è possibile integrare facilmente le operazioni del processo Flink in Azure Pipeline. Sia che si avviino nuovi processi, si aggiornino processi in esecuzione o si eseguano varie operazioni di processo, questo approccio semplificato elimina i passaggi manuali e consente di gestire il cluster Flink in modo efficiente.

Formato URL di base per l'API REST

Vedere l'URL seguente per l'API rest, gli utenti devono sostituire la sottoscrizione, il gruppo di risorse, il pool di cluster, il nome del cluster e HDInsight nella versione dell'API del servizio Azure Kubernetes in questo caso prima di usarla. 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}}

Usando questa API REST, gli utenti possono avviare nuovi processi, arrestare processi, avviare processi, creare punti di salvataggio, annullare processi ed eliminare processi. L'API_VERSION corrente è 2023-06-01-preview.

Autenticazione dell'API REST

Per autenticare gli utenti dell'API REST arm Flink, è necessario ottenere il token di connessione o il token di accesso per la risorsa ARM. Per autenticare l'API REST di Azure ARM (Azure Resource Manager) usando un'entità servizio, è possibile seguire questa procedura generale:

  • Creare un'entità servizio.

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

  • Concedere al proprietario l'autorizzazione a SP per flink il cluster.

  • Accedere con un'entità servizio.

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

  • Ottenere il token di accesso.

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

    $tok = $token.accesstoken

    Gli utenti possono usare il token nell'URL visualizzato.

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

Autenticazione con identità gestita: gli utenti possono usare risorse che supportano l'identità gestita per effettuare chiamate all'API REST del processo. Per altri dettagli, vedere la documentazione sull'identità gestita.

ELENCO di API e parametri

  • Nuovo processo: API REST per inviare un nuovo processo a Flink.

    Opzione Valore
    metodo POST
    URL 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}}
    Intestazione Authorization = "Bearer $token"

    Corpo della richiesta:

    { 
        "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>" 
            } 
         } 
    }
    

    Dettagli delle proprietà per il corpo JSON:

    Proprietà Descrizione Valore predefinito Obbligatorio
    jobType Tipo di processo. Deve essere "FlinkJob"
    jobName Nome univoco per il processo. Questo viene visualizzato nel portale. Il nome del processo deve essere in lettere minuscole.
    action Indica il tipo di operazione nel processo. In caso di nuovo avvio del processo, dovrebbe essere sempre di tipo "NUOVO".
    jobJarDirectory Archiviazione percorso per la directory JAR del processo. Gli utenti devono creare le directory nell'archiviazione cluster e caricare il file JAR del processo.
    jarName Nome del file JAR del processo.
    entryClass Classe di ingresso per il processo da cui viene avviata la relativa esecuzione.
    args Argomento per il programma principale del processo. Separare gli argomenti con lo spazio. No
    parallelismo Parallelismo Flink del processo. 2
    savepoint.directory Directory del punto di salvataggio per il processo. È consigliabile che gli utenti creino una nuova directory per il punto di salvataggio dei processi nell'account di archiviazione. abfs://<container>@<account>/<deployment-ID>/savepoints No

    Esempio:

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

  • Arresta processo: API REST per arrestare il processo in esecuzione corrente.

    Opzione Valore
    metodo POST
    URL 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}}
    Intestazione Authorization = "Bearer $token"

    Corpo della richiesta

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

    Dettagli delle proprietà per il corpo JSON:

    Proprietà Descrizione Valore predefinito Obbligatorio
    jobType Tipo di processo. Deve essere "FlinkJob"
    jobName Nome processo, usato per l'avvio del processo
    action Deve essere "STOP"

    Esempio:

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

  • Avviare il processo: API REST per avviare il processo ARRESTATO.

    Opzione Valore
    metodo POST
    URL 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}}
    Intestazione Authorization = "Bearer $token"

    Corpo della richiesta

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

    Dettagli delle proprietà per il corpo JSON:

    Proprietà Descrizione Valore predefinito Obbligatorio
    jobType Tipo di processo. Deve essere "FlinkJob"
    jobName Nome processo usato per avviare il processo.
    action Deve essere "START"
    savePointName Salvare il nome del punto per avviare il processo. È una proprietà facoltativa, per impostazione predefinita l'operazione di avvio accetta l'ultimo punto di salvataggio riuscito. No

    Esempio:

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

  • Processo di aggiornamento: API REST per l'aggiornamento del processo in esecuzione corrente.

    Opzione Valore
    metodo POST
    URL 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}}
    Intestazione Authorization = "Bearer $token"

    Corpo della richiesta

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

    Dettagli delle proprietà per il corpo JSON:

    Proprietà Descrizione Valore predefinito Obbligatorio
    jobType Tipo di processo. Deve essere "FlinkJob"
    jobName Nome processo usato per avviare il processo.
    action Deve essere sempre "UPDATE" per il nuovo avvio del processo.
    args Argomenti JVM del processo No
    savePointName Salvare il nome del punto per avviare il processo. È una proprietà facoltativa. Per impostazione predefinita, l'operazione di avvio richiederà l'ultimo punto di salvataggio riuscito. No

    Esempio:

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

  • Processo di aggiornamento senza stato: API REST per l'aggiornamento senza stato.

    Opzione Valore
    metodo POST
    URL 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}}
    Intestazione Authorization = "Bearer $token"

    Corpo della richiesta

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

    Dettagli delle proprietà per il corpo JSON:

    Proprietà Descrizione Valore predefinito Obbligatorio
    jobType Tipo di processo. Deve essere "FlinkJob"
    jobName Nome processo usato per avviare il processo.
    action Deve essere sempre "STATELESS_UPDATE" per il lancio di un nuovo processo.
    args Argomenti JVM del processo No

    Esempio:

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

  • Savepoint: API REST per attivare il punto di salvataggio per il processo.

    Opzione Valore
    metodo POST
    URL 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}}
    Intestazione Authorization = "Bearer $token"

    Corpo della richiesta

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

    Dettagli delle proprietà per il corpo JSON:

    Proprietà Descrizione Valore predefinito Obbligatorio
    jobType Tipo di processo. Deve essere "FlinkJob"
    jobName Nome processo usato per avviare il processo.
    action Deve essere sempre "SAVEPOINT" per l'avvio di un nuovo processo.

    Esempio:

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

  • Elenco punto di salvataggio: API REST per elencare tutti i punti di salvataggio dalla directory savepoint.

    Opzione Valore
    metodo POST
    URL 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}}
    Intestazione Authorization = "Bearer $token"

    Corpo della richiesta

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

    Dettagli delle proprietà per il corpo JSON:

    Proprietà Descrizione Valore predefinito Obbligatorio
    jobType Tipo di processo. Deve essere "FlinkJob"
    jobName Nome processo usato per avviare il processo
    action Deve essere "LIST_SAVEPOINT"

    Esempio:

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

  • Annulla: API REST per annullare il processo.

    Opzione Valore
    metodo POST
    URL 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}}
    Intestazione Authorization = "Bearer $token"

    Corpo della richiesta

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

    Dettagli delle proprietà per il corpo JSON:

    Proprietà Descrizione Valore predefinito Obbligatorio
    jobType Tipo di processo. Dovrebbe essere FlinkJob
    jobName Nome processo usato per avviare il processo.
    action Deve essere CANCEL.

    Esempio:

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

  • Delete: API REST per eliminare il processo.

    Opzione Valore
    metodo POST
    URL 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}}
    Intestazione Authorization = "Bearer $token"

    Corpo della richiesta

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

    Dettagli delle proprietà per il corpo JSON:

    Proprietà Descrizione Valore predefinito Obbligatorio
    jobType Tipo di processo. Deve essere "FlinkJob"
    jobName Nome processo usato per avviare il processo.
    action Deve essere DELETE.

    Esempio:

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

  • Elenca processi: API REST per elencare tutti i processi e lo stato dell'azione corrente.

    Opzione Valore
    metodo GET
    URL 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}}
    Intestazione Authorization = "Bearer $token"

    Output:

    { 
      "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" 
          } 
       }
      ]
    }
    

Nota

Quando un'azione è in corso, actionResult lo indicherà con il valore "IN_PROGRESS" Al completamento, verrà visualizzato "SUCCESS" e, in caso di errore, sarà "FAILED".

Riferimento