Aufgaben konfigurieren

In diesem Dokument wird beschrieben, wie Sie Aufgaben in Cloud Deploy konfigurieren. Eine Aufgabe ist eine Arbeitseinheit, die als Bereitstellungshook, für die Bereitstellungsüberprüfung, für die Bereitstellungsanalyse oder für ein benutzerdefiniertes Rendern oder eine benutzerdefinierte Bereitstellung in einem benutzerdefinierten Zieltyp verwendet werden kann.

Sie können eine Aufgabe in der Auslieferungspipeline (als Teil der Strategie) oder im benutzerdefinierten Zieltyp rendern oder bereitstellen.

Mit Aufgaben können Sie Systemparameter verwenden, indem Sie sie in Ihre Aufgabenkonfiguration einfügen.

Aufgabe definieren

Sie können eine Aufgabe in der Konfiguration Ihrer Bereitstellungspipeline oder als Teil einer benutzerdefinierten Zieltypdefinition definieren. Das folgende YAML zeigt den task-Abschnitt, der in beiden Fällen verwendet wird:

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

Für die task-Konfiguration:

  • type

    Gibt die Art der Aufgabe an, die konfiguriert wird. Nur container wird unterstützt.

  • image

    Der Pfad zum Container-Image.

  • command

    Ist der Befehl oder die Befehle, die im Container ausgeführt werden sollen.

  • args

    Eine Sammlung von Argumenten für command.

  • env

    Ist eine Sammlung von Umgebungsvariablen, die dem laufenden Container bereitgestellt werden sollen.

Systemparameter als Umgebungsvariablen für Aufgaben

Cloud Deploy bietet systemgenerierte Parameter, die Sie als Umgebungsvariablen in Ihren Aufgaben verwenden können. Dazu nutzen Sie das Feld env in der Aufgabe container. Die Vorlagenparameter können in den Schlüssel- oder Wertfeldern eines env-Karteneintrags vorhanden sein.

Hier einige Beispiele für Anwendungsfälle:

  • Der Name des Cloud Run-Dienstes, die Dienst-URL und der Revisionsname werden als Umgebungsvariablen übergeben.

    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 }}"
    
  • Mehrere Parameter in einem einzelnen Eintrag verwenden.

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

Verfügbare Systemparameter

Cloud Deploy bietet die folgenden Systemparameter, die Sie in Ihrer Aufgabenkonfiguration in diesem Format verwenden können:

${{ parameter }}

$${{ }}.

Im Folgenden finden Sie eine Liste der Parameter, die für Vorlagen verfügbar sind:

Name Definition
location Die Region, die die Cloud Deploy-Ressourcen enthält.
Bei der Erstellung von Releases verfügbar.
project.num Die Google Cloud Projektnummer für das Projekt, das die Cloud Deploy-Ressourcen enthält.
Bei der Erstellung von Releases verfügbar.
project.id Die Google Cloud Projekt-ID für das Projekt.
Bei der Erstellung von Releases verfügbar.
delivery_pipeline.name Der vollständig angegebene Ressourcenname der Lieferpipeline.
Bei der Erstellung von Releases verfügbar.
delivery_pipeline.id Die ID der Bereitstellungspipeline.
Bei der Erstellung von Releases verfügbar.
target.name Der vollständig angegebene Ressourcenname des Ziels.
Bei der Erstellung von Releases verfügbar.
target.id Die ID des Ziels.
Bei der Erstellung von Releases verfügbar.
release.name Der vollständig angegebene Ressourcenname der Version.
Bei der Erstellung von Releases verfügbar.
release.id Die ID des Releases.
Bei der Erstellung von Releases verfügbar.
rollout.name Der vollständig angegebene Ressourcenname des Rollouts.
Beim Erstellen des Roll-outs verfügbar.
rollout.id Die ID des Roll-outs.
Beim Erstellen des Roll-outs verfügbar.
job.id Die ID des Jobs, der ausgeführt wird.
Beim Erstellen des Roll-outs verfügbar.
phase.id Die Phase der Einführung, die den Job für die Aufgaben enthält.
Beim Erstellen des Roll-outs verfügbar.
job_run.name Der vollständig angegebene Ressourcenname des Joblaufs, der die aktuelle Ausführung des Jobs darstellt.
Beim Erstellen des Roll-outs verfügbar.
job_run.id Die ID des Joblaufs, der die aktuelle Ausführung des Jobs darstellt.
Beim Erstellen des Roll-outs verfügbar.
deploy_params Eine Zuordnung der Bereitstellungsparameter, die dem Ziel zugeordnet sind.
Beispiel: deploy_params['KEY']
Wenn Sie versuchen, auf einen Schlüssel zuzugreifen, der nicht vorhanden ist, wird ein leerer String zurückgegeben.
Bei der Erstellung von Releases verfügbar.
Für Ziele vom Typ RUN:
cloud_run.project Das Projekt, in dem der Cloud Run-Dienst erstellt wurde.
Bei der Erstellung von Releases verfügbar.
cloud_run.location Die Region, in der der Cloud Run-Dienst bereitgestellt wird.
Bei der Erstellung von Releases verfügbar.
render.metadata.cloud_run.service.name Der Name des bereitgestellten Cloud Run-Dienstes.
Verfügbar, nachdem der Rendervorgang abgeschlossen ist.
render.metadata.cloud_run.service.id Die ID des bereitgestellten Cloud Run-Dienstes.
Verfügbar, nachdem der Rendervorgang abgeschlossen ist.
rollout.metadata.cloud_run.service.url Die URL, über die Endnutzer auf Ihren Dienst zugreifen. Sie finden diese in den Cloud Run-Dienstdetails für Ihren Dienst in der Google Cloud Console.
Verfügbar, nachdem der Bereitstellungsvorgang abgeschlossen wurde.
render.metadata.cloud_run.revision.name Der vollständige Name der Revision des Cloud Run-Dienstes, der bereitgestellt wird.
Verfügbar, nachdem der Rendervorgang abgeschlossen ist.
render.metadata.cloud_run.revision.id Die Überarbeitungs-ID des Cloud Run-Dienstes, der bereitgestellt wird.
Verfügbar, nachdem der Rendervorgang abgeschlossen ist.
rollout.metadata.cloud_run.previous_revision.name Der vollständige Name der vorherigen Überarbeitung des Cloud Run-Dienstes, der bereitgestellt wird.
Verfügbar, nachdem der Bereitstellungsvorgang abgeschlossen wurde.
rollout.metadata.cloud_run.previous_revision.id Die vorherige Überarbeitungs-ID des Cloud Run-Dienstes, der bereitgestellt wird.
Verfügbar, nachdem der Bereitstellungsvorgang abgeschlossen wurde.
Für Ziele vom Typ GKE:
gke.cluster.name Der vollständig angegebene Ressourcenname des GKE-Cluster.
Bei der Erstellung von Releases verfügbar.
gke.cluster.id Die ID des GKE-Cluster.
Bei der Erstellung von Releases verfügbar.
gke.cluster.project Die Projekt-ID oder -nummer des GKE-Cluster.
Bei der Erstellung von Releases verfügbar.
gke.cluster.location Der Standort des GKE-Cluster.
Bei der Erstellung von Releases verfügbar.
Für Ziele vom Typ ANTHOS:
anthos.membership.project Die Projekt-ID oder -nummer des GKE Enterprise-Clusters.
Bei der Erstellung von Releases verfügbar.
anthos.membership.location Der Standort des GKE Enterprise-Clusters.
Bei der Erstellung von Releases verfügbar.
anthos.membership.name Der vollständig angegebene Ressourcenname der GKE Enterprise-Mitgliedschaft.
Bei der Erstellung von Releases verfügbar.
anthos.membership.id Die ID der GKE Enterprise-Mitgliedschaft.
Bei der Erstellung von Releases verfügbar.
Für Kubernetes-Ziele (Ziele vom Typ GKE und ANTHOS):
render.metadata.kubernetes.deployment Der Name der Bereitstellung, die aktualisiert wird. Diese Einstellung wird nicht festgelegt, wenn in den Manifesten mehrere Bereitstellungen vorhanden sind.
Verfügbar, nachdem der Rendervorgang abgeschlossen ist.
render.metadata.kubernetes.canary_deployment Der Name der Canary-Bereitstellung in einem automatisierten Canary. In der stabilen Phase entspricht das render.metadata.kubernetes.deployment, da es in der stabilen Phase keinen Canary gibt. Für die anderen Phasen entspricht dies render.metadata.kubernetes.deployment mit -canary am Ende.
Verfügbar, nachdem der Rendervorgang abgeschlossen ist.
render.metadata.kubernetes.namespace Der Namespace der Ressourcen, die bereitgestellt werden. Dieses Attribut wird nicht festgelegt, wenn in den Manifesten mehr als ein Namespace vorhanden ist.
Verfügbar, nachdem der Rendervorgang abgeschlossen ist.
Für Ziele vom Typ CUSTOM_TARGET_TYPE:
render.metadata.custom Eine Zuordnung der Rendermetadaten aus einem benutzerdefinierten Render.
Beispiel: render.metadata.custom['KEY']
Wenn Sie versuchen, auf einen Schlüssel zuzugreifen, der nicht vorhanden ist, wird ein leerer String zurückgegeben.
Verfügbar, nachdem der Rendervorgang abgeschlossen ist.
rollout.metadata.custom Eine Zuordnung der Rollout-Metadaten aus einer benutzerdefinierten Bereitstellung.
Beispiel: rollout.metadata.custom['KEY']
Wenn Sie versuchen, auf einen Schlüssel zuzugreifen, der nicht vorhanden ist, wird ein leerer String zurückgegeben.
Verfügbar, nachdem der Bereitstellungsvorgang abgeschlossen wurde.

Verfügbare Umgebungsvariablen

Cloud Deploy stellt außerdem die folgenden Umgebungsvariablen in der Ausführungsumgebung bereit und füllt sie aus. Sie können diese Umgebungsvariablen als Teil Ihres Bereitstellungshooks, Bestätigungsjobs oder benutzerdefinierten Zielrenders oder ‑bereitstellung verwenden.

  • ANTHOS_MEMBERSHIP

    Für Ziele vom Typ ANTHOS der vollständig angegebene Ressourcenname der Anthos-Mitgliedschaft.

  • CLOUD_RUN_LOCATION

    Für Ziele vom Typ RUN die Region, in der der Cloud Run-Dienst bereitgestellt wird.

  • CLOUD_RUN_PROJECT

    Für Ziele vom Typ RUN das Projekt, in dem der Cloud Run-Dienst erstellt wurde.

  • CLOUD_RUN_SERVICE

    Für Ziele vom Typ RUN der Name des bereitgestellten Cloud Run-Dienstes.

  • CLOUD_RUN_SERVICE_URLS

    Für Ziele vom Typ RUN die URL oder URLs (durch Kommas getrennte Liste), über die Endnutzer auf Ihren Dienst zugreifen. Sie finden diese in den Cloud Run-Dienstdetails für Ihren Dienst in derGoogle Cloud -Konsole. Die URLs werden von Cloud Run generiert, nachdem Ihr Cloud Run-Dienst oder Ihre Cloud Run-Dienste erfolgreich bereitgestellt wurden. Daher ist diese Umgebungsvariable nur in Post-Deploy-Hooks und Bestätigungsjobs verfügbar.

  • CLOUD_RUN_REVISION

    Für Ziele des Typs RUN die spezifische Revision des Cloud Run-Dienstes.

  • GKE_CLUSTER

    Für Ziele vom Typ GKE ist dies der vollständig angegebene Ressourcenname des Google Kubernetes Engine-Clusters, z. B. projects/p/locations/us-central1/clusters/dev.

  • TARGET_TYPE

    Der spezifische Laufzeittyp des Ziels. Entweder GKE, ANTHOS oder RUN. Bei benutzerdefinierten Zielvorhaben wird dieser Wert nicht festgelegt.

  • CLOUD_DEPLOY_LOCATION

    Die Region, die die Cloud Deploy-Ressourcen enthält.

  • CLOUD_DEPLOY_DELIVERY_PIPELINE

    Die ID der Bereitstellungspipeline.

  • CLOUD_DEPLOY_TARGET

    Die ID des Ziels.

  • CLOUD_DEPLOY_PROJECT

    Die Google Cloud Projektnummer für das Projekt, das die Cloud Deploy-Ressourcen enthält.

  • CLOUD_DEPLOY_PROJECT_ID

    Die Google Cloud Projekt-ID für das Projekt.

  • CLOUD_DEPLOY_RELEASE

    Die ID des Releases, in dem die Hooks ausgeführt werden.

  • CLOUD_DEPLOY_ROLLOUT

    Die ID des Roll-outs, der die Jobs für die Hooks enthält.

  • CLOUD_DEPLOY_JOB_RUN

    Die ID des Joblaufs, der die aktuelle Ausführung des Jobs darstellt.

  • CLOUD_DEPLOY_PHASE

    Die Phase im Rollout, die den Job für den Bereitstellungshook, den Überprüfungsjob oder das benutzerdefinierte Rendern oder Bereitstellen enthält.

Nächste Schritte