Blog

So finden Sie die Abhängigkeiten von Google Cloud Platform-Diensten

Mark van Holsteijn

Aktualisiert Oktober 21, 2025
3 Minuten

Bevor ich einen bestimmten Dienst nutzen kann, muss ich die API in meinem Google-Projekt aktivieren. Wenn ich dies tue, werden manchmal mehr Dienste aktiviert als der, den ich angegeben habe. In diesem Blog zeige ich Ihnen, wie Sie solche Service-Abhängigkeiten finden können.


Abschreibungshinweis In diesem Blog wurde die Nützlichkeit einer undokumentierten Eigenschaft in der Ausgabe des Befehls gcloud services list dokumentiert. Diese Eigenschaft ist verschwunden, daher sind die Anweisungen hier nicht mehr gültig.


Um dies in der Praxis zu sehen, werde ich den Dienst Cloud Functions aktivieren. Zunächst zeige ich Ihnen, dass durch die Aktivierung von Cloud Functions insgesamt sechs Dienste aktiviert werden. Dann werde ich Ihnen zeigen, wie Sie die Abhängigkeiten auflisten können. Zum Schluss zeige ich Ihnen ein kleines Dienstprogramm und ein Diagramm mit allen Abhängigkeiten, mit denen Sie herumspielen können.

Cloud-Funktionen aktivieren

Ich werde Ihnen also zeigen, dass die Aktivierung von Cloud-Funktionen eigentlich die Aktivierung mehrerer Dienste bedeutet. Zunächst werde ich die aktivierten Dienste in meinem Projekt überprüfen:

gcloud services list

Die Ausgabe sieht ungefähr so aus:

NAME                              TITLE
bigquery.googleapis.com           BigQuery API
...
servicemanagement.googleapis.com  Service Management API
serviceusage.googleapis.com       Service Usage API

In diesem Fall ist der Dienst Cloud Functions nicht aufgeführt.

Aktivierung des Dienstes

Um Cloud-Funktionen in meinem Projekt zu aktivieren, gebe ich ein:

$ gcloud services enable cloudfunctions
Operation "operations/acf.3170fc7d-dc07-476f-851b-ff0cc2b9d79f" finished successfully.

Wenn ich nun die Liste der aktivierten Dienste erneut überprüfe, hat sich die Anzahl der aktiven Dienste um die folgenden sechs Dienste erhöht!

NAME                              TITLE
cloudfunctions.googleapis.com     Cloud Functions API
logging.googleapis.com            Cloud Logging API
pubsub.googleapis.com             Cloud Pub/Sub API
source.googleapis.com             Legacy Cloud Source Repositories API
storage-api.googleapis.com        Google Cloud Storage JSON API
storage-component.googleapis.com  Cloud Storage
...

Hätte ich das vorhersehen können, bevor ich es aktiviert habe? Ja, das hätte ich...

Auflistung aller verfügbaren Dienste

Um alle verfügbaren Dienste aufzulisten, verwende ich den folgenden Befehl:

gcloud services list --available --format json

Das Ergebnis ist eine Liste von Objekten mit Metainformationen über den Dienst:

{ 
  "config": {
    "name": "cloudfunctions.googleapis.com",
    "title": "Cloud Functions API",
    "documentation": {},
    "features": [],
    "monitoredResources": [
    "monitoring": {},
    "quota": {},
    "authentication": {},
    "usage": {}
  },
  "dependencyConfig": {
    "dependsOn": [],
    "directlyDependsOn": []
    "directlyRequiredBy": [],
    "requiredBy": []
  },
  "serviceAccounts": [],
  "state": "DISABLED"
}

Ich sehe vier Hauptattribute für jeden Dienst: config, dependencyConfig, serviceAccounts und state. In den Feldern werden die Dienstabhängigkeiten aufgelistet, während die Dienstkonten auflistet, die im Projekt für diesen Dienst erstellt werden. Beachten Sie, dass diese Felder nicht Teil der dokumentierten Dienstverwendungs-API sind.

Auflistung spezifischer Abhängigkeiten

Diese API zur Nutzung von Diensten liefert also alle Abhängigkeiten eines bestimmten Dienstes. Um alle abhängigen Dienste von Cloud Functions aufzulisten, verwende ich den folgenden Befehl:

gcloud services list 
   --available --format json | 
jq --arg service cloudfunctions.googleapis.com 
    'map(select(.config.name == $service)| 
        { 
          name:      .config.name, 
          dependsOn: .dependencyConfig.dependsOn
        }
    )'

und das Ergebnis ist:

{
  "name": "cloudfunctions.googleapis.com",
  "dependsOn": [
    "cloudfunctions.googleapis.com",
    "logging.googleapis.com",
    "pubsub.googleapis.com",
    "source.googleapis.com",
    "storage-api.googleapis.com",
    "storage-component.googleapis.com"
  ]
}

Dies sind genau die sechs Dienste, die zuvor aktiviert wurden o/. Wenn Sie die Abhängigkeiten selbst erkunden möchten, können Sie dieses Bash-Skript verwenden. Wenn Sie nicht tippen möchten, können Sie das gesamte Diagramm
durchblättern. Ich weiß, es ist ein bisschen klein, aber zum Glück ist es eine skalierbare Vektorgrafik. Öffnen Sie sie also in einem separaten Fenster und Sie können schwenken und zoomen.

Fazit

Dank einiger undokumentierter Eigenschaften der Google Service Usage API kann ich alle Abhängigkeiten zwischen Google Cloud Platform-Diensten finden.

Verfasst von

Mark van Holsteijn

Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.

Contact

Let’s discuss how we can support your journey.