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:
typeSpecifica 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_MEMBERSHIPPer i target di tipo
ANTHOS, il nome della risorsa completamente specificato dell'appartenenza Anthos.CLOUD_RUN_LOCATIONPer i target di tipo
RUN, la regione in cui è stato eseguito il deployment del servizio Cloud Run.CLOUD_RUN_PROJECTPer le destinazioni di tipo
RUN, il progetto in cui è stato creato il servizio Cloud Run.CLOUD_RUN_SERVICEPer le destinazioni di tipo
RUN, il nome del servizio Cloud Run di cui è stato eseguito il deployment.CLOUD_RUN_SERVICE_URLSPer 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_REVISIONPer i target di tipo
RUN, la revisione specifica del servizio Cloud Run.GKE_CLUSTERPer le destinazioni di tipo
GKE, il nome della risorsa completamente specificato del cluster Google Kubernetes Engine, ad esempioprojects/p/locations/us-central1/clusters/dev.TARGET_TYPEIl tipo di runtime specifico della destinazione.
GKE,ANTHOSoRUN. Per i target personalizzati, questo valore non verrà impostato.CLOUD_DEPLOY_LOCATIONLa regione contenente le risorse Cloud Deploy.
CLOUD_DEPLOY_DELIVERY_PIPELINEL'ID della pipeline di distribuzione.
CLOUD_DEPLOY_TARGETL'ID del target.
CLOUD_DEPLOY_PROJECTIl numero di progetto Google Cloud per il progetto contenente le risorse Cloud Deploy.
CLOUD_DEPLOY_PROJECT_IDL'ID progetto Google Cloud del progetto.
CLOUD_DEPLOY_RELEASEL'ID della release in cui verranno eseguiti gli hook.
CLOUD_DEPLOY_ROLLOUTL'ID del rollout che contiene i job per gli hook.
CLOUD_DEPLOY_JOB_RUNL'ID dell'esecuzione del job che rappresenta l'esecuzione corrente del job.
CLOUD_DEPLOY_PHASELa 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
- Scopri come eseguire gli hook di deployment utilizzando i task
- Scopri come verificare l'implementazione utilizzando le attività
- Scopri di più sui target personalizzati