Die Google Cloud CLI bietet eine bequeme Möglichkeit, auf die REST API im Datastore-Modus zuzugreifen und zusammengesetzte Indexe zu verwalten. Sie können jedoch auch direkt auf die REST API im Datastore-Modus zugreifen, um eigene Tools für die Verwaltung Ihrer zusammengesetzten Indexe zu erstellen. Beispielsweise können Sie Tools zur Automatisierung der Indexbereitstellung und -verwaltung erstellen.
Authentifizierung und Autorisierung
Sie müssen Ihre Anfrage authentifizieren, um unten auf die REST API-Methoden des Firestore-Modus im Datastore-Modus zuzugreifen. Stellen Sie dafür ein Google OAuth 2.0-Zugriffstoken mit einem der folgenden Bereiche bereit:
https://www.googleapis.com/auth/datastore
https://www.googleapis.com/auth/cloud-platform
Die folgenden cURL- und PowerShell-Beispiele verwenden zur Authentifizierung von Anfragen den Befehl gcloud auth print-access-token
. Weitere Informationen zum Abrufen eines Zugriffstokens finden Sie unter Mit OAuth 2.0 auf Google APIs zugreifen.
Autorisierung
Das authentifizierte Nutzer-, Gruppen- oder Dienstkonto in der Anfrage muss für den Zugriff auf die API-Methoden autorisiert sein. Weisen Sie zum Autorisieren des Zugriffs auf die Indexierungsmethoden eine der folgenden Identitäts- und Zugriffsverwaltungsrollen (IAM) zu:
Für einen vollständigen Lese- und Bearbeitungszugriff auf den Index müssen Sie eine der folgenden Rollen zuweisen:
roles/owner
roles/editor
roles/datastore.owner
roles/datastore.indexAdmin
Weisen Sie für den Index-Lesezugriff (Abrufen und Auflisten) eine der folgenden Rollen zu:
roles/viewer
roles/datastore.user
roles/datastore.viewer
Weitere Informationen zum Zuweisen dieser Rollen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.
Hinweis
Die folgenden curl
- und PowerShell-Beispiele verwenden die Google Cloud CLI (Google Cloud CLI) zur Authentifizierung von Anfragen. Um diese Beispiele lokal auszuführen,
Installieren und initialisieren Sie die Google Cloud CLI.
Alternativ können Sie gcloud
und curl
über die Google Cloud Console mit Cloud Shell aufrufen.
Zusammengesetzten Index erstellen
Verwenden Sie zum Erstellen eines neuen zusammengesetzten Index die projects.indexes.create-Methode.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: Ihre Projekt-ID
- kind: Entitätsart, die indexiert werden soll
- include-ancestors: Gibt an, ob Entitäts-Ancestors in den Index aufgenommen werden sollen, um Ancestor-Abfragen zu unterstützen, entweder
NONE
oderALL_ANCESTORS
- property-name: Das zu indexierende Attribut; es müssen mindestens zwei Attribute angegeben werden
- index-direction: Die Sortierreihenfolge für jedes Attribut, entweder
ASCENDING
oderDESCENDING
HTTP-Methode und URL:
POST https://datastore.googleapis.com/v1/projects/project-id/indexes
JSON-Text der Anfrage:
{ "kind": "kind", "ancestor": "include-ancestors", "properties": [ { "name": "property-name", "direction": "index-direction" }, { "name": "property-name", "direction": "index-direction" } ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://datastore.googleapis.com/v1/projects/project-id/indexes"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://datastore.googleapis.com/v1/projects/project-id/indexes" | Select-Object -Expand Content
APIs Explorer
Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/project-id/operations/S01vcFVpSmdBQ0lDDCoDIDgxZGVhZDM0ZDc4MS1jMjJhLWQ1ZTQtYmMyNS1iYjY2NWVlZCQadGx1YWZlZAcSMXJoLXJleGVkbmktbmltZGERClIS", "metadata": { "@type": "type.googleapis.com/google.datastore.admin.v1.IndexOperationMetadata", "common": { "startTime": "2019-12-05T22:27:19.238Z", "operationType": "CREATE_INDEX", "state": "INITIALIZING" }, "indexId": "CICAgJiUpoMK" } }
Indexstatus abrufen
Im Datastore-Modus erhält jeder Index eine eindeutige Index-ID. Sie können diese Index-ID verwenden, um den Status eines einzelnen Index mithilfe der Methode provices.indexes.get abzurufen:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: Ihre Projekt-ID
- index-id: Eine zusammengesetzte Index-ID
HTTP-Methode und URL:
GET https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id" | Select-Object -Expand Content
APIs Explorer
Öffnen Sie das Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "projectId": "project-id", "indexId": "index-id", "kind": "Task", "ancestor": "NONE", "properties": [ { "name": "done", "direction": "ASCENDING" }, { "name": "priority", "direction": "ASCENDING" } ], "state": "READY" }
Indexstatus
Im Indexstatus finden Sie Informationen zum Verlauf und zu den Fehlermeldungen. Sie können einen Index erst dann für Abfragen verwenden, wenn er den Status READY
hat. Mögliche Indexstatus:
CREATING
: Indexerstellung in Bearbeitung.ALREADY_EXISTS
: Vorgang kann nicht abgeschlossen werden, da dieser Index bereits vorhanden ist.ERROR
: Indexerstellung fehlgeschlagen. Korrigieren Sie die Daten, die den Fehler verursacht haben, löschen Sie diesen Index und erstellen Sie ihn neu.READY
: Indexerstellung abgeschlossen. Der Index kann für Abfragen verwendet werden.
Zusammengesetzten Index löschen
HTTP-Methode und URL:
DELETE https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://datastore.googleapis.com/v1/projects/project-id/indexes/index-id" | Select-Object -Expand Content
APIs Explorer
Öffnen Sie das Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die erforderlichen Felder aus und klicken Sie auf Ausführen.
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort erhalten.
Alle zusammengesetzten Indexe auflisten
Verwenden Sie zum Auflisten aller zusammengesetzten Indexe für eine Datenbank im Datastore-Modus die Methode projects.indexes.list.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: Ihre Projekt-ID
HTTP-Methode und URL:
GET https://datastore.googleapis.com/v1/projects/project-id/indexes
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://datastore.googleapis.com/v1/projects/project-id/indexes"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://datastore.googleapis.com/v1/projects/project-id/indexes" | Select-Object -Expand Content
APIs Explorer
Öffnen Sie das Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "indexes": [ { "projectId": "project-id", "indexId": "CICAgOjXh4EK", "kind": "Task", "ancestor": "NONE", "properties": [ { "name": "done", "direction": "ASCENDING" }, { "name": "priority", "direction": "ASCENDING" } ], "state": "READY" }, { "projectId": "project-id", "indexId": "CICAgNiroIEK", "kind": "Task", "ancestor": "NONE", "properties": [ { "name": "due-date", "direction": "DESCENDING" }, { "name": "priority", "direction": "ASCENDING" } ], "state": "CREATING" } ] }