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 ognuna a cui è associata un'app. Ogni esecuzione di Tasks utilizza gli artefatti di 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 all'esecuzione di attività, pertanto non vengono creati percorsi nell'app e non viene implementata come applicazione a lungo termine:

    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>
    

Eseguire 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 start, viene utilizzato il comando start specificato nell'app. Se per l'app non è specificato un comando start, viene cercata la configurazione CMD dell'immagine del contenitore. Per poter eseguire correttamente l'attività, deve essere presente un comando di avvio.

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

Viene visualizzato un messaggio simile a questo, che conferma l'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 della task è un identificatore univoco per le task all'interno dello stesso cluster.

Specificare i limiti delle risorse di Task

I limiti di risorse (ad esempio core della CPU/limite di memoria/quota del disco) possono essere specificati nell'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 i limiti di risorse in un'app, puoi utilizzare i flag --cpu-cores, --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 i flag --cpu-cores, --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

Specificare 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à

Per annullare un'attività attiva, utilizza il comando kf terminate-task:

  • Annullare 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à con 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