Cloud Deploy in andere Systeme einbinden

Sie können Cloud Deploy in einige der anderen Systeme einbinden, die für die Softwarebereitstellung erforderlich sind. 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:

Integration in automatisierte Tests

Sie können Cloud Deploy mit Pub/Sub verwenden, um Tests in Ihre Bereitstellungspipeline zu integrieren und den Release für eine kontinuierliche Bereitstellung automatisch hochzustufen.

Du kannst bei einem Roll-out 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

  1. 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/...
  2. Wenn Sie eine Benachrichtigung erhalten, dass die Bereitstellung erfolgreich war, führen Sie Ihre Tests in der bereitgestellten Anwendung aus.

  3. Wenn die Tests erfolgreich sind, rufen Sie Cloud Deploy auf, um automatisch in die nächste Phase hochzustufen:

    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-Stringpaaren, die Informationen zu Ihren 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 Annotationen mit Cloud Deploy verwenden.

In die Workflow-Verwaltung von Drittanbietern einbinden

Cloud Deploy veröffentlicht operative Nachrichten an 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:

  1. Genehmigung auf dem Ziel erforderlich.

    Fügen Sie in die Definition für dieses Ziel requireApproval: true ein.

  2. Wenn Sie die Nachrichten nutzen möchten, abonnieren Sie das Pub/Sub-Thema clouddeploy-approvals und richten Sie Ihr Workflow-Verwaltungssystem ein.

  3. Wenn Ihr Workflow-Managementsystem eine Nachricht vom Thema clouddeploy-approvals erhält, die "Action": "Required" enthält, 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.

  4. Ihr Workflow-Management-System gibt die Genehmigung oder Ablehnung mithilfe des folgenden Befehls an Cloud Deploy 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