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:
typeGibt die Art der Aufgabe an, die konfiguriert wird. Nur
containerwird unterstützt.imageDer Pfad zum Container-Image.
commandIst der Befehl oder die Befehle, die im Container ausgeführt werden sollen.
argsEine Sammlung von Argumenten für
command.envIst 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_MEMBERSHIPFür Ziele vom Typ
ANTHOSder vollständig angegebene Ressourcenname der Anthos-Mitgliedschaft.CLOUD_RUN_LOCATIONFür Ziele vom Typ
RUNdie Region, in der der Cloud Run-Dienst bereitgestellt wird.CLOUD_RUN_PROJECTFür Ziele vom Typ
RUNdas Projekt, in dem der Cloud Run-Dienst erstellt wurde.CLOUD_RUN_SERVICEFür Ziele vom Typ
RUNder Name des bereitgestellten Cloud Run-Dienstes.CLOUD_RUN_SERVICE_URLSFür Ziele vom Typ
RUNdie 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_REVISIONFür Ziele des Typs
RUNdie spezifische Revision des Cloud Run-Dienstes.GKE_CLUSTERFür Ziele vom Typ
GKEist dies der vollständig angegebene Ressourcenname des Google Kubernetes Engine-Clusters, z. B.projects/p/locations/us-central1/clusters/dev.TARGET_TYPEDer spezifische Laufzeittyp des Ziels. Entweder
GKE,ANTHOSoderRUN. Bei benutzerdefinierten Zielvorhaben wird dieser Wert nicht festgelegt.CLOUD_DEPLOY_LOCATIONDie Region, die die Cloud Deploy-Ressourcen enthält.
CLOUD_DEPLOY_DELIVERY_PIPELINEDie ID der Bereitstellungspipeline.
CLOUD_DEPLOY_TARGETDie ID des Ziels.
CLOUD_DEPLOY_PROJECTDie Google Cloud Projektnummer für das Projekt, das die Cloud Deploy-Ressourcen enthält.
CLOUD_DEPLOY_PROJECT_IDDie Google Cloud Projekt-ID für das Projekt.
CLOUD_DEPLOY_RELEASEDie ID des Releases, in dem die Hooks ausgeführt werden.
CLOUD_DEPLOY_ROLLOUTDie ID des Roll-outs, der die Jobs für die Hooks enthält.
CLOUD_DEPLOY_JOB_RUNDie ID des Joblaufs, der die aktuelle Ausführung des Jobs darstellt.
CLOUD_DEPLOY_PHASEDie Phase im Rollout, die den Job für den Bereitstellungshook, den Überprüfungsjob oder das benutzerdefinierte Rendern oder Bereitstellen enthält.
Nächste Schritte
- Bereitstellungshooks mit Aufgaben ausführen
- Informationen zum Prüfen Ihres Deployments mithilfe von Aufgaben
- Weitere Informationen zu benutzerdefinierten Zielen