APIs über ein Google Cloud-Projekt aufrufen

1. Hinweis

In diesem Codelab erfahren Sie, wie Sie ein Google Cloud-Projekt erstellen und dann Google Cloud APIs aus diesem Projekt aufrufen.

Vorbereitung

  • Sie können in der Google Cloud Console navigieren.

Lerninhalte

  • So erstellen Sie ein Google Cloud-Projekt.
  • So richten Sie ein Abrechnungskonto ein.
  • Cloud Shell einrichten
  • So aktivieren Sie eine API.
  • So autorisieren Sie eine API mit einem API-Schlüssel.
  • So autorisieren Sie eine API mit einem Dienstkonto.

Voraussetzungen

2. Einrichten

In diesem Abschnitt wird beschrieben, wie Sie ein Google Cloud-Projekt erstellen, ein Rechnungskonto einrichten und die Cloud Shell einrichten.

Google Cloud-Projekt erstellen und Rechnungskonto einrichten

  1. Melden Sie sich in der Cloud Console an und wählen Sie ein Projekt aus oder erstellen Sie eines.

Google Cloud

Bereich „Neues Projekt“

Bereich „Neues Projekt“ mit den Feldern „Projektname“, „Organisation“ und „Speicherort“.

Merken Sie sich die Projekt-ID, die unter dem Feld Projektname angezeigt wird. Die ID ist ein eindeutiger Name für alle Google Cloud-Projekte (der Name oben ist bereits vergeben) und wird in diesem Codelab später als PROJECT_ID bezeichnet.

  1. Aktivieren Sie als Nächstes die Abrechnung in der Cloud Console, um Google Cloud-Ressourcen zu verwenden.

Dieses Codelab sollte nicht viel kosten, wenn überhaupt. Folgen Sie der Anleitung im Abschnitt Bereinigen, um Ressourcen zu beenden und Kosten zu vermeiden, die über dieses Codelab hinausgehen. Hinweis: Neuen Nutzern von Google Cloud steht eine kostenlose Testversion mit einem Guthaben von 300$ zur Verfügung.

Cloud Shell einrichten

In diesem Codelab verwenden Sie Cloud Shell, eine Befehlszeilenumgebung, die in Google Cloud ausgeführt wird. Cloud Shell ist eine Debian-basierte virtuelle Maschine, auf der alle erforderlichen Entwicklungstools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Für dieses Codelab benötigen Sie also nur einen Browser.

So aktivieren Sie Cloud Shell über die Cloud Console:

  1. Klicken Sie auf a8460e837e9f5fda.png Cloud Shell aktivieren.

Es kann einige Momente dauern, bis die Umgebung bereitgestellt ist und eine Verbindung hergestellt werden kann.

Aktivieren Sie die Option „Cloud Shell“.

Cloud Shell mit Eingabeaufforderung.

Sobald die Verbindung mit der Cloud Shell hergestellt ist, sehen Sie, dass Sie bereits authentifiziert sind und für das Projekt schon Ihre PROJECT_ID eingestellt ist.

  1. So generieren Sie eine Liste der Konten mit Anmeldedaten:
gcloud auth list

Es sollte folgende Ausgabe angezeigt werden:

Credentialed accounts:
 - <MY_ACCOUNT>@<MY_DOMAIN>.com (active)
  1. Geben Sie diesen Befehl ein, um eine Liste Ihrer Projekte aufzurufen.
gcloud config list project

Es sollte folgende Ausgabe angezeigt werden:

[core]
project = <PROJECT_ID>

Wenn das Projekt aus irgendeinem Grund nicht festgelegt ist, führen Sie diesen Befehl aus, um das Projekt einzurichten.

gcloud config set project <PROJECT_ID>

PROJECT_ID ist die ID, die Sie in den Einrichtungsschritten verwendet haben. Sie können sie auch im Cloud Console-Dashboard nachschlagen:

Der Bereich „Projektinformationen“ mit der Projekt-ID.

In Cloud Shell werden auch einige Umgebungsvariablen standardmäßig festgelegt, die bei der Ausführung zukünftiger Befehle nützlich sein können.

  1. Geben Sie den folgenden Befehl ein, um Ihre Projekt-ID aufzurufen.
echo $GOOGLE_CLOUD_PROJECT

Es sollte folgende Ausgabe angezeigt werden:

<PROJECT_ID>
  1. Legen Sie zum Schluss die Standardzone und die Projektkonfiguration fest.
gcloud config set compute/zone us-central1-f

Sie können verschiedene Zonen auswählen. Weitere Informationen finden Sie unter Regionen und Zonen.

3. API aus einem Projekt aufrufen

In diesem Codelab erfahren Sie, wie Sie mit einer Beispiel-API (der Natural Language API) Entitäten (z. B. Personen, Orte und Ereignisse) in Text finden und die Stimmung (Grad der Beliebtheit) dieses Textes schätzen können. Nach Abschluss können Sie:

  • Aktivieren Sie die Google Cloud APIs.
  • Autorisierung für die API mit API-Schlüsseln und Dienstkonten abrufen
  • Rufen Sie die API mit curl und Clientbibliotheken auf.

API aktivieren

  1. Wählen Sie im Hauptmenü der Cloud Console APIs & Dienste aus.

Das Hauptmenü der Cloud Console mit der Option „APIs & Dienste“.

  1. Wählen Sie oben auf dem Bildschirm + APIs UND DIENSTE AKTIVIEREN aus.

Option APIS UND DIENSTE AKTIVIEREN.

  1. An dieser Stelle können Sie APIs filtern und durchsuchen oder über das Feld Suchen direkt zu einer API wechseln. Suchen Sie nach Natural Language und wählen Sie Cloud Natural Language API aus.

Der Bereich „Cloud Natural Language API“ mit den Schaltflächen „AKTIVIEREN“ und „API TESTEN“.

  1. Klicken Sie auf DIESE API TESTEN.

Wenn keine Schaltfläche API TESTEN angezeigt wird, klicken Sie auf eine der aufgeführten Methoden, um diese Methode auszuprobieren.

API-Schlüssel erstellen

Da Sie mit curl eine Anfrage an die Natural Language API senden, müssen Sie einen API-Schlüssel generieren, um die Anfrage-URL zu übergeben.

  1. Wählen Sie in der Cloud Console das Navigationsmenü > APIs & Dienste > Anmeldedaten aus.

Navigationsmenü mit den Optionen „APIs & Dienste“ und „Anmeldedaten“

  1. Klicken Sie auf ANMELDEDATEN ERSTELLEN und wählen Sie dann API-Schlüssel aus:

Bereich „Anmeldedaten“ mit den Optionen „ANMELDEDATEN ERSTELLEN“ und „API-Schlüssel“

  1. Kopieren Sie den generierten API-Schlüssel und klicken Sie auf Schließen.

API mithilfe des API-Schlüssels aufrufen

  1. Exportieren Sie Ihren API-Schlüssel in der Cloud Shell-Befehlszeile.
export API_KEY=<YOUR_API_KEY>

Ersetzen Sie <YOUR_API_KEY> durch den zuvor generierten Schlüssel.

  1. Erstellen Sie eine Anfrage für die API im Cloud Shell-Editor oder mit einem Linux-Editor wie Vim oder Emacs. Details zu den Parametern finden Sie unter Methode: documents.analyzeEntities. Speichern Sie die Ausgabe in einer Datei mit dem Namen request.json:
{
  "document":{
    "type":"PLAIN_TEXT",
    "content":"Google, headquartered in Mountain View (1600 Amphitheatre Pkwy, Mountain View, CA 940430), unveiled the new Android phone for $799 at the Consumer Electronic Show. Sundar Pichai said in his keynote that users love their new Android phones."
  },
  "encodingType":"UTF8"
}
  1. Rufen Sie die API mit den Anfrageinformationen auf.
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \
  -s -X POST -H "Content-Type: application/json" --data-binary @request.json
  1. Führen Sie den Befehl noch einmal aus und leiten Sie die Ausgabe an eine Datei weiter, um das Ergebnis zu prüfen. Die Details der Ausgabe der JSON-Datei finden Sie auch unter Methode: documents.analyzeEntities.
  2. Wenn Sie den zu analysierenden Text in der Datei request.json ändern möchten, ersetzen Sie den Wert content durch den gewünschten Text.

4. Mit einem Dienstkonto autorisieren

Dienstkonten werden oft API-Schlüsseln vorgezogen, da sie sowohl Authentifizierung als auch Autorisierung bieten. Sie können sich Dienstkonten als E-Mail-Adressen für Ihre App vorstellen.

  1. Kehren Sie zum Bereich „Anmeldedaten“ im Menü APIs & Dienste zurück.
  2. Wählen Sie Anmeldedaten erstellen aus, aber dieses Mal Dienstkonto.

Bereich „Dienstkontodetails“

  1. Geben Sie einen Dienstkontonamen ein, der den Zweck des Kontos beschreibt, z. B. „Natural Language Service Account“. Das System schlägt eine ID vor. Sie können auch eine Beschreibung hinzufügen. Wenn Sie mehr über Dienstkonten erfahren, können Sie dem Dienstkonto Zugriff auf Projekte gewähren und Nutzern Zugriff auf das Dienstkonto gewähren. Klicken Sie jetzt einfach auf Fertig, um das Dienstkonto zu erstellen.
  2. Klicken Sie auf d489bd059474ae59.png, um das Dienstkonto zu bearbeiten und ein Schlüsselpaar dafür zu erstellen.

Im Bereich „Dienstkonten“ wird eine Liste von Konten angezeigt.

Die Details Ihres Dienstkontos werden angezeigt.

Der Bereich „Dienstkontodetails“ mit Details zum Natural Language-Dienstkonto.

  1. Kopieren Sie die E-Mail-Adresse des Dienstkontos und kehren Sie zu Cloud Shell zurück.
  2. Erstellen Sie in Cloud Shell ein Schlüsselpaar für Ihr Dienstkonto und legen Sie eine Umgebungsvariable fest, die darauf verweist:
gcloud iam service-accounts keys create ~/key.json \
  --iam-account <your service account email>
export GOOGLE_APPLICATION_CREDENTIALS="/home/$USER/key.json"

Google Cloud verwendet diese Umgebungsvariable, um die Anmeldedaten zu finden. Sie müssen daher nicht im API-Aufruf enthalten sein.

  1. Sie können die API jetzt mit dem folgenden Befehl aufrufen:
gcloud ml language analyze-entities --content="Michelangelo Caravaggio, Italian painter, is known for 'The Calling of Saint Matthew'." 

Das Ergebnis sollte dasselbe wie zuvor sein.

Für viele APIs sind umfangreiche Clientbibliotheken verfügbar, mit denen diese Details extrahiert werden können. Weitere Informationen zu Clientbibliotheken finden Sie unter Cloud-Clientbibliotheken. Sie können auch die Dokumentation für die von Ihnen verwendeten APIs lesen, um herauszufinden, welche Clientbibliotheken für sie verfügbar sind.

5. Bereinigen

Es ist nicht empfehlenswert, einen uneingeschränkten API-Schlüssel für Projekte zu verwenden. Wenn jemand darauf zugreift, kann er es ohne weitere Authentifizierung verwenden.

So löschen Sie diesen API-Schlüssel:

  1. Klicken Sie auf f6b6844bf5688982.png Navigationsmenü > APIs & Dienste > Anmeldedaten.
  2. Wählen Sie unter API-Schlüssel den zu löschenden Schlüssel aus und klicken Sie dann auf 247adf2e1d1eae4b.pngLöschen.
  3. Wenn Sie sich Sorgen machen, dass Ihr privater Schlüssel für das Dienstkonto nicht geschützt ist, wählen Sie unter Dienstkonten das zu löschende Dienstkonto aus und klicken Sie auf 247adf2e1d1eae4b.pngLöschen.

6. Glückwunsch

Glückwunsch! Sie haben gelernt, wie Sie ein Google Cloud-Projekt erstellen und eine API aus dem Projekt aufrufen.