Sie können Cloud Deploy in einige der anderen Systeme einbinden, auf die Sie sich bei der Softwarebereitstellung verlassen. Auf dieser Seite wird beschrieben, wie Sie Cloud Deploy in Folgendes einbinden:
- Testtool
- Workflow-Management
Unter In CI-System einbinden erfahren Sie, wie Sie Cloud Deploy über Ihre CI-Pipeline aufrufen.
Hinweise
Die Anleitung auf dieser Seite setzt voraus, dass Sie bereits die folgenden Bedingungen erfüllen:
Sie haben die entsprechenden APIs aktiviert.
Sie haben mindestens eine Bereitstellungspipeline definiert und bei Cloud Deploy registriert.
Sie haben mindestens ein Ziel definiert und Ihre Bereitstellungspipeline verweist auf dieses Ziel.
Sie haben Pub/Sub-Benachrichtigungen eingerichtet, um Benachrichtigungen von den folgenden Themen zu erhalten:
clouddeploy-operations
clouddeploy-approvals
Integration in automatisierte Tests
Sie können Cloud Deploy mit Pub/Sub verwenden, um Tests in Ihre Bereitstellungspipeline zu integrieren, sodass Sie die Version für Continuous Delivery automatisch hochstufen können.
Sie können auch einen Link zu den Testergebnissen in die Anmerkungen zu einem Roll-out einfügen. Weitere Informationen finden Sie unter Labels und Anmerkungen mit Cloud Deploy verwenden.
Angebote mit Pub/Sub automatisieren
Achten Sie auf Pub/Sub-Nachrichten aus dem Thema
clouddeploy-operations
.Die Nachricht enthält die folgenden Attribute:
Action: SUCCEED
ResourceType: Rollout
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Wenn Sie eine Benachrichtigung erhalten, dass die Bereitstellung erfolgreich war, führen Sie Ihre Tests in der bereitgestellten Anwendung aus.
Wenn die Tests erfolgreich sind, rufen Sie Cloud Deploy auf, um automatisch zur nächsten Phase zu wechseln:
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...
Dabei gilt:
RELEASE_NAME
ist der Name des Release. Dieser Wert ist erforderlich.
PIPELINE_NAME
ist der Name der Delivery-Pipeline, die diesen Release verwaltet. Dieser Wert ist erforderlich.
REGION
ist die Region, in der die Pipeline ausgeführt wird. Wenn Sie das Attribut
deploy/region
festgelegt haben, können Sie dieses Flag weglassen.KEY=VALUE,...
ist eine Liste mit einem oder mehreren durch Kommas getrennten Schlüssel/Wert-Paarpaaren, die Informationen zu den Testergebnissen und andere Testinformationen enthalten können. Beispiel:
gcloud deploy releases promote --annotations="from_target=test,status=stable"
Annotationen für das Rollout sind unveränderlich. Wenn Sie eine Statusannotation hinzufügen, können Sie diesen Status später nicht mehr für dasselbe Rollout aktualisieren.
Annotationen verwenden, um Zugriff auf Testergebnisse zu gewähren
Wenn die URL darauf erweist, dass auf die Testergebnisse zugegriffen werden kann, können Sie diese URL als Annotation bei einem Rollout mit dem Flag --annotations
angeben.
Beispiel:
gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"
Weitere Informationen finden Sie unter Labels und Anmerkungen mit Cloud Deploy verwenden.
In die Workflow-Verwaltung von Drittanbietern einbinden
Cloud Deploy veröffentlicht operative Nachrichten in Pub/Sub. Ihr Workflow-Managementtool kann diese Pub/Sub-Themen abonnieren und damit bestimmte Workflows auslösen.
Für Genehmigungen
Das Thema clouddeploy-approvals
benachrichtigt Ihr System, wenn eine Genehmigung für einen Rollout erforderlich ist. Ihr externes Workflowsystem kann dann mit einem magischen Befehl die Genehmigung abrufen und dann gcloud deploy rollouts approve
aufrufen.
Das Konto, das den Befehl rollouts approve
ausgibt, muss die vordefinierte IAM-Rolle roles/clouddeploy.approver
haben.
So richten Sie einen externen Genehmigungsworkflow ein:
Genehmigung auf dem Ziel erforderlich.
Fügen Sie in die Definition für dieses Ziel
requireApproval: true
ein.Wenn Sie die Nachrichten nutzen möchten, abonnieren Sie das Pub/Sub-Thema
clouddeploy-approvals
und richten Sie Ihr Workflow-Verwaltungssystem ein.Wenn Ihr Workflow-Verwaltungssystem eine Nachricht aus dem Thema
clouddeploy-approvals
mit"Action": "Required"
empfängt, wird ein Genehmigungsworkflow gestartet, der gemäß den Anforderungen Ihrer Organisation konfiguriert ist.Die Nachricht enthält auch einen Verweis auf den zu genehmigenden Rollout im folgenden Format:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Die Ausgabe des Genehmigungsworkflows ist eine Genehmigung oder Ablehnung des Rollouts.
Ihr Workflow-Verwaltungssystem gibt die Genehmigung oder Ablehnung an Cloud Deploy in Form des folgenden Befehls zurück:
Der Befehl für die Genehmigung lautet so:
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
Der Befehl zur Ablehnung des Rollouts lautet so:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
Dabei gilt:
ROLLOUT
ist der Name des Rollouts, für das die Genehmigung angefordert wurde.
PIPELINE_NAME
ist die Bereitstellungspipeline, die die Bereitstellung der Anwendung verwaltet.
RELEASE_NAME
ist der Name des Release, mit dem dieses Rollout verknüpft ist.
REGION
ist die Region, in der die Bereitstellungspipeline ausgeführt wird.
Beispiel:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1