Sie können Cloud Deploy in einige der anderen Systeme einbinden, auf die Softwarebereitstellung angewiesen sind. Auf dieser Seite wird beschrieben, wie Sie Cloud Deploy einbinden Dabei gilt:
- Testtool
- Workflow-Management
Weitere Informationen finden Sie 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 zu folgenden Themen zu erhalten:
clouddeploy-operations
clouddeploy-approvals
Integration in automatisierte Tests
Sie können Cloud Deploy mit Pub/Sub verwenden, um Tests zu integrieren mit Ihrer Bereitstellungspipeline, sodass Sie den Release automatisch hochstufen können. Continuous Delivery zu verwenden.
Sie können bei einem Rollout auch Anmerkungen verwenden, um einen Link zu den Testergebnissen bereitzustellen. Weitere Informationen finden Sie unter Labels und Annotationen 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 Ihre Tests erfolgreich sind, rufen Sie Cloud Deploy auf, um automatisch zur nächsten Phase hochstufen:
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
, können Sie dieses Flag weglassen.KEY=VALUE,...
ist eine Liste mit einem oder mehreren durch Kommas getrennten Schlüssel/Wert-String-Paaren, die Informationen zu Ihren Testergebnissen und andere Testinformationen enthalten. 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 Annotationen 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-Management-System eine Nachricht vom
clouddeploy-approvals
Thema, das"Action": "Required"
enthält, wird gestartet einen Genehmigungs-Workflow, der entsprechend den Anforderungen Ihres Unternehmen.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