Cloud Deploy in andere Systeme einbinden

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:

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

  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 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:

  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-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.

  4. 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