Configura le attività

Questo documento descrive come configurare le attività in Cloud Deploy. Un'attività è un'unità di lavoro che può essere utilizzata come hook di deployment, per la verifica del deployment, per l'analisi del deployment o per un rendering personalizzato o un deployment personalizzato in un tipo di target personalizzato.

Puoi configurare un'attività nella pipeline di pubblicazione (come parte della strategia) o nel rendering o nel deployment del tipo di target personalizzato.

Con le attività, puoi utilizzare i parametri di sistema inserendoli come modelli nella configurazione dell'attività.

Definisci un'attività

Puoi definire un'attività nella configurazione della pipeline di pubblicazione o come parte di una definizione di tipo di target personalizzato. Il seguente YAML mostra la sezione task utilizzata in entrambi i casi:

  task:
    type: container
    image: IMAGE
    command: [COMMANDS_TO_RUN]
    args: [LIST_OF_ARGS]
    env:
    - KEY1:VAL1
    - KEY2:VAL2
    ...

Per la configurazione task:

  • type

    Specifica il tipo di attività che viene configurata. È supportato solo container.

  • image

    È il percorso dell'immagine container.

  • command

    È il comando o i comandi da eseguire sul container.

  • args

    È una raccolta di argomenti per command.

  • env

    È una raccolta di variabili di ambiente da fornire al container in esecuzione.

Parametri di sistema come variabili di ambiente dell'attività

Cloud Deploy offre parametri generati dal sistema che puoi utilizzare come variabili di ambiente nelle tue attività, utilizzando il campo env nell'attività container. I parametri basati su modelli possono essere presenti nei campi chiave o valore di una voce della mappa env.

Ecco alcuni casi d'uso di esempio:

  • Passando il nome del servizio Cloud Run, l'URL del servizio e il nome della revisione come variabili di ambiente.

    task:
      type: container
      image: my-image
      command: ["/bin/bash"]
      env:
      - RUN_SERVICE_NAME : "${{ render.metadata.cloud_run.service.name }}"
      - RUN_SERVICE_URL: "${{ rollout.metadata.cloud_run.service_url }}"
      - RUN_REVISION_NAME: "${{ render.metadata.cloud_run.revision.name }}"
    
  • Utilizzo di più parametri in una singola voce.

    task:
      type: container
      image: my-image
      command: ["/bin/bash"]
      env:
      - DEPLOY_PARAMS_KEY : "${{ deploy_params['FOO'] }}-with-${{ deploy_params['BAR'] }}"
      - "${{ project.id }}_${{ location }}" : "${{ target.id }}"
    

Parametri di sistema disponibili

Cloud Deploy fornisce i seguenti parametri di sistema che puoi utilizzare nella configurazione delle attività utilizzando questo formato:

${{ parameter }}

$${{ }}.

Di seguito è riportato l'elenco dei parametri disponibili per la creazione di modelli:

Nome Definizione
location La regione contenente le risorse Cloud Deploy.
Disponibile al momento della creazione della release.
project.num Il numero di progetto Google Cloud del progetto contenente le risorse Cloud Deploy.
Disponibile al momento della creazione della release.
project.id L'ID progetto Google Cloud del progetto.
Disponibile al momento della creazione della release.
delivery_pipeline.name Il nome della risorsa completamente specificato della pipeline di distribuzione.
Disponibile al momento della creazione della release.
delivery_pipeline.id L'ID della pipeline di distribuzione.
Disponibile al momento della creazione della release.
target.name Il nome della risorsa completamente specificato della destinazione.
Disponibile al momento della creazione della release.
target.id L'ID del target.
Disponibile al momento della creazione della release.
release.name Il nome della risorsa completamente specificato della release.
Disponibile al momento della creazione della release.
release.id L'ID della release.
Disponibile al momento della creazione della release.
rollout.name Il nome risorsa completamente specificato del rollout.
Disponibile al momento della creazione dell'implementazione.
rollout.id L'ID dell'implementazione.
Disponibile al momento della creazione dell'implementazione.
job.id L'ID del job in esecuzione.
Disponibile al momento della creazione dell'implementazione.
phase.id La fase del lancio che contiene il job per le attività.
Disponibile al momento della creazione dell'implementazione.
job_run.name Il nome della risorsa completamente specificato dell'esecuzione del job che rappresenta l'esecuzione corrente del job.
Disponibile al momento della creazione dell'implementazione.
job_run.id L'ID dell'esecuzione del job che rappresenta l'esecuzione corrente del job.
Disponibile al momento della creazione dell'implementazione.
deploy_params Una mappa dei parametri di deployment associati alla destinazione.
Esempio: deploy_params['KEY']
Il tentativo di accedere a una chiave inesistente restituisce una stringa vuota.
Disponibile al momento della creazione della release.
Per i target di tipo RUN:
cloud_run.project Il progetto in cui è stato creato il servizio Cloud Run.
Disponibile al momento della creazione della release.
cloud_run.location La regione in cui viene eseguito il deployment del servizio Cloud Run.
Disponibile al momento della creazione della release.
render.metadata.cloud_run.service.name Il nome del servizio Cloud Run di cui è stato eseguito il deployment.
Disponibile al termine dell'operazione di rendering.
render.metadata.cloud_run.service.id L'ID del servizio Cloud Run di cui è stato eseguito il deployment.
Disponibile al termine dell'operazione di rendering.
rollout.metadata.cloud_run.service.url L'URL che gli utenti finali utilizzeranno per accedere al tuo servizio. Puoi trovarli nei dettagli del servizio Cloud Run per il tuo servizio nella console Google Cloud .
Disponibile al termine dell'operazione di deployment.
render.metadata.cloud_run.revision.name Il nome completo della revisione del servizio Cloud Run di cui viene eseguito il deployment.
Disponibile al termine dell'operazione di rendering.
render.metadata.cloud_run.revision.id L'ID revisione del servizio Cloud Run di cui viene eseguito il deployment.
Disponibile al termine dell'operazione di rendering.
rollout.metadata.cloud_run.previous_revision.name Il nome completo della revisione precedente del servizio Cloud Run di cui viene eseguito il deployment.
Disponibile al termine dell'operazione di deployment.
rollout.metadata.cloud_run.previous_revision.id L'ID revisione precedente del servizio Cloud Run di cui è stato eseguito il deployment.
Disponibile al termine dell'operazione di deployment.
Per i target di tipo GKE:
gke.cluster.name Il nome risorsa completamente specificato del cluster GKE.
Disponibile al momento della creazione della release.
gke.cluster.id L'ID del cluster GKE.
Disponibile al momento della creazione della release.
gke.cluster.project L'ID/il numero del progetto del cluster GKE.
Disponibile al momento della creazione della release.
gke.cluster.location La posizione del cluster GKE.
Disponibile al momento della creazione della release.
Per i target di tipo ANTHOS:
anthos.membership.project L'ID/il numero del progetto del cluster GKE Enterprise.
Disponibile al momento della creazione della release.
anthos.membership.location La posizione del cluster GKE Enterprise.
Disponibile al momento della creazione della release.
anthos.membership.name Il nome della risorsa completamente specificato dell'appartenenza a GKE Enterprise.
Disponibile al momento della creazione della release.
anthos.membership.id L'ID dell'abbonamento a GKE Enterprise.
Disponibile al momento della creazione della release.
Per i target Kubernetes (target di tipo GKE e ANTHOS):
render.metadata.kubernetes.deployment Il nome del deployment in fase di aggiornamento. Questo valore non viene impostato se nei manifest sono presenti più deployment.
Disponibile al termine dell'operazione di rendering.
render.metadata.kubernetes.canary_deployment Il nome del deployment canary in un canary automatizzato. Per la fase stabile, questo valore è uguale a render.metadata.kubernetes.deployment, perché non è presente nessun canary nella fase stabile. Per le altre fasi, è uguale a render.metadata.kubernetes.deployment con -canary alla fine.
Disponibile al termine dell'operazione di rendering.
render.metadata.kubernetes.namespace Lo spazio dei nomi delle risorse di cui viene eseguito il deployment. Questo valore non è impostato se nei manifest sono presenti più spazi dei nomi.
Disponibile al termine dell'operazione di rendering.
Per i target di tipo CUSTOM_TARGET_TYPE:
render.metadata.custom Una mappa dei metadati di rendering di un rendering personalizzato.
Esempio: render.metadata.custom['KEY']
Il tentativo di accedere a una chiave inesistente restituisce una stringa vuota.
Disponibile al termine dell'operazione di rendering.
rollout.metadata.custom Una mappa dei metadati di implementazione di un deployment personalizzato.
Esempio: rollout.metadata.custom['KEY']
Il tentativo di accedere a una chiave inesistente restituisce una stringa vuota.
Disponibile al termine dell'operazione di deployment.

Variabili di ambiente disponibili

Cloud Deploy fornisce e popola anche le seguenti variabili di ambiente nell'ambiente di esecuzione. Puoi utilizzare queste variabili di ambiente come parte del deploy hook, del verify job, o del rendering o del deployment del target personalizzato.

  • ANTHOS_MEMBERSHIP

    Per i target di tipo ANTHOS, il nome della risorsa completamente specificato dell'appartenenza Anthos.

  • CLOUD_RUN_LOCATION

    Per i target di tipo RUN, la regione in cui è stato eseguito il deployment del servizio Cloud Run.

  • CLOUD_RUN_PROJECT

    Per le destinazioni di tipo RUN, il progetto in cui è stato creato il servizio Cloud Run.

  • CLOUD_RUN_SERVICE

    Per le destinazioni di tipo RUN, il nome del servizio Cloud Run di cui è stato eseguito il deployment.

  • CLOUD_RUN_SERVICE_URLS

    Per i target di tipo RUN, l'URL o gli URL (elenco separato da virgole) che gli utenti finali utilizzeranno per accedere al tuo servizio. Puoi trovarli nei dettagli del servizio Cloud Run per il tuo servizio, nella consoleGoogle Cloud . Gli URL vengono generati da Cloud Run dopo il deployment riuscito del servizio o dei servizi Cloud Run. Pertanto, questa variabile di ambiente è disponibile solo negli hook post-deployment e nei job di verifica.

  • CLOUD_RUN_REVISION

    Per i target di tipo RUN, la revisione specifica del servizio Cloud Run.

  • GKE_CLUSTER

    Per le destinazioni di tipo GKE, il nome della risorsa completamente specificato del cluster Google Kubernetes Engine, ad esempio projects/p/locations/us-central1/clusters/dev.

  • TARGET_TYPE

    Il tipo di runtime specifico della destinazione. GKE, ANTHOS o RUN. Per i target personalizzati, questo valore non verrà impostato.

  • CLOUD_DEPLOY_LOCATION

    La regione contenente le risorse Cloud Deploy.

  • CLOUD_DEPLOY_DELIVERY_PIPELINE

    L'ID della pipeline di distribuzione.

  • CLOUD_DEPLOY_TARGET

    L'ID del target.

  • CLOUD_DEPLOY_PROJECT

    Il numero di progetto Google Cloud per il progetto contenente le risorse Cloud Deploy.

  • CLOUD_DEPLOY_PROJECT_ID

    L'ID progetto Google Cloud del progetto.

  • CLOUD_DEPLOY_RELEASE

    L'ID della release in cui verranno eseguiti gli hook.

  • CLOUD_DEPLOY_ROLLOUT

    L'ID del rollout che contiene i job per gli hook.

  • CLOUD_DEPLOY_JOB_RUN

    L'ID dell'esecuzione del job che rappresenta l'esecuzione corrente del job.

  • CLOUD_DEPLOY_PHASE

    La fase del lancio che contiene il job per l'hook di deployment, il job di verifica o il rendering o il deployment personalizzato.

Passaggi successivi