Esecuzione di attività

Puoi eseguire flussi di lavoro di breve durata eseguendoli come attività in Tasks Cf. Le attività vengono eseguite in App, il che significa che ciascuna a cui è associata un'app. Ogni esecuzione di Tasks utilizza gli artefatti della build principale. Poiché le attività sono di breve durata, il deployment dell'app non viene eseguito a lunga esecuzione e non devono essere create route per l'app o l'attività.

Esegui il push di un'app per l'esecuzione di Tasks

  1. Clona il repository test-app repo:

    git clone https://github.com/cloudfoundry-samples/test-app test-app
    cd test-app
    
  2. Esegui il push dell'app.

    Esegui il push dell'app con il comando kf push APP_NAME --task. Il flag --task indica che l'app è destinata a essere utilizzata per eseguire Tasks, e quindi vengono create nell'app e il deployment non viene eseguito come una applicazione:

    kf push test-app --task
    
  3. Verifica che non siano state create istanze o route dell'app elencando l'app:

    kf apps
    

    Tieni presente che l'app non viene avviata e non ha URL:

    Listing Apps in Space: test-space
    Name                     Instances  Memory  Disk  CPU   URLs
    test-app                 stopped    1Gi     1Gi   100m  <nil>
    

Esecuzione di un'attività nell'app

Quando esegui un'attività nell'app, puoi specificare facoltativamente un comando di avvio utilizzando il flag --command. Se non viene specificato alcun comando di avvio, utilizza il comando start specificato nell'app. Se per l'app non è specificato un comando di avvio, cerca la configurazione CMD dell'immagine container. Un comando di avvio deve esistenti per poter eseguire correttamente l'attività.

kf run-task test-app --command "printenv"

Viene visualizzato qualcosa di simile a questo, a conferma dell'invio dell'attività:

Task test-app-gd8dv is submitted successfully for execution.

Il nome dell'attività viene generato automaticamente, ha come prefisso il nome dell'app e con una stringa arbitraria come suffisso. Il nome dell'attività è un identificatore univoco Attività all'interno dello stesso cluster.

Specifica i limiti delle risorse delle attività

I limiti delle risorse (come core CPU/limite di memoria/quota di disco) possono essere specificati in l'app (durante kf push) o durante il comando kf run-task. I limiti specificati nel comando kf run-task prevalgono sui limiti specificati sull'app.

Per specificare limiti di risorse in un'app, puoi utilizzare --cpu-cores, Flag --memory-limit e --disk-quota nel comando kf push:

kf push test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G --task

Per eseguire l'override di questi limiti nell'app, puoi utilizzare --cpu-cores, Flag --memory-limit e --disk-quota nel comando kf run-task:

kf run-task test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G

Specifica un nome visualizzato personalizzato per un'attività

Facoltativamente, puoi utilizzare il flag --name per specificare un nome visualizzato personalizzato per un Attività per facilitare l'identificazione/il raggruppamento:

$ kf run-task test-app --command "printenv" --name foo
Task test-app-6swct is submitted successfully for execution.

$ kf tasks test-app
Listing Tasks in Space: test space
Name              ID  DisplayName        Age    Duration  Succeeded  Reason
test-app-6swct    3   foo                1m     21s       True       <nil>

Gestisci Tasks

Visualizza tutte le attività di un'app con il comando kf tasks APP_NAME:

$ kf tasks test-app
Listing Tasks in Space: test space
Name              ID  DisplayName        Age    Duration  Succeeded  Reason
test-app-gd8dv    1   test-app-gd8dv     1m     21s       True       <nil>

Annullare un'attività

Annulla un'attività attiva utilizzando il comando kf terminate-task:

  • Annulla un'attività in base al nome:

    $ kf terminate-task test-app-6w6mz
    Task "test-app-6w6mz" is successfully submitted for termination
    
  • In alternativa, annulla un'attività entro il giorno APP_NAME + ID attività:

    $ kf terminate-task test-app 2
    Task "test-app-6w6mz" is successfully submitted for termination
    

Le attività annullate hanno lo stato PipelineRunCancelled.

$ kf tasks test-app
Listing Tasks in Space: test space
Name              ID  DisplayName        Age    Duration  Succeeded  Reason
test-app-gd8dv    1   test-app-gd8dv     1m     21s       True       <nil>
test-app-6w6mz    2   test-app-6w6mz     38s    11s       False      PipelineRunCancelled

Visualizza i log delle attività

Visualizza i log di un'attività utilizzando il comando kf logs APP_NAME --task:

$ kf logs test-app --task