Ihr Webhook verwendet derzeit hartcodierte Daten in der Funktion accountBalanceCheck
.
In diesem Schritt der Anleitung erstellen Sie eine Spanner, füllen sie mit Daten zu Guthaben auf und aktualisieren Ihre Funktion, um die Datenbank abzufragen.
Projektkonfiguration
Ihr Dialogflow-Agent und die Datenbank müssen sich im selben Projekt befinden. So kann Ihre Funktion am einfachsten sicher auf Ihre Datenbank zugreifen. Außerdem müssen Sie die Spanner API aktivieren.
Wählen Sie vor dem Erstellen der Datenbank Ihr Projekt in der Google Cloud Console aus.
Aktivieren Sie die Spanner API für das Projekt.
Spanner-Instanz erstellen
Wenn Sie Spanner zum ersten Mal verwenden, müssen Sie eine Instanz erstellen. Dabei handelt es sich um eine Zuordnung von Ressourcen, die von Spanner-Datenbanken in dieser Instanz verwendet werden.
Rufen Sie in der Google Cloud Console die Seite Spanner-Instanzen auf.
Klicken Sie auf Instanz erstellen.
Geben Sie für den Instanznamen Tutorial Instance ein.
Die Instanz-ID wird automatisch anhand des Instanznamens eingegeben.
Belassen Sie unter Konfiguration auswählen die Standardoption Regional und wählen Sie dieselbe Region aus, die Sie beim Erstellen der Funktion ausgewählt haben.
Geben Sie unter Rechenkapazität zuweisen den Wert 100 Verarbeitungseinheiten ein. Das bietet eine minimale Kapazität für die Anleitung.
Klicken Sie auf Erstellen. In der Google Cloud Console wird die Seite Übersicht für die von Ihnen erstellte Instanz angezeigt.
Spanner-Datenbank erstellen
Nachdem Sie eine Instanz haben, müssen Sie eine Datenbank erstellen. So erstellen Sie eine Datenbank:
- Klicken Sie auf der Seite Übersicht der Instanz auf Datenbank erstellen.
- Geben Sie als Datenbanknamen tutorial-database ein.
- Wählen Sie den Datenbankdialekt Google Standard SQL aus.
- Klicken Sie auf Erstellen. In der Google Cloud Console wird die Seite Übersicht für die von Ihnen erstellte Datenbank angezeigt.
Tabellen für Ihre Datenbank erstellen
Nachdem Sie eine Datenbank haben, müssen Sie Tabellen für die Datenbank erstellen. So erstellen Sie Tabellen:
- Klicken Sie auf der Seite Übersicht der Datenbank im Bereich „Tabellen“ auf Tabelle erstellen.
Geben Sie auf der Seite DDL-Anweisungen schreiben Folgendes ein:
CREATE TABLE Checking ( AccountId INT64, Balance INT64, ) PRIMARY KEY(AccountId);
Klicken Sie auf Senden. In der Google Cloud Console wird die Seite Übersicht der Datenbank angezeigt. Dort wird angegeben, dass Schemaupdates ausgeführt werden. Warten Sie, bis das Update abgeschlossen ist.
Klicken Sie auf der Seite Übersicht der Datenbank im Bereich „Tabellen“ auf Tabelle erstellen.
Geben Sie auf der Seite DDL-Anweisungen schreiben Folgendes ein:
CREATE TABLE Savings ( AccountId INT64, Balance INT64, ) PRIMARY KEY(AccountId);
Klicken Sie auf Senden. In der Google Cloud Console wird die Seite Übersicht der Datenbank angezeigt. Dort wird angegeben, dass Schemaupdates ausgeführt werden. Warten Sie, bis das Update abgeschlossen ist.
Daten in Tabellen einfügen
Jetzt, da Ihre Datenbank Tabellen enthält, müssen Sie den Tabellen Daten hinzufügen. So fügen Sie Daten hinzu:
- Klicken Sie in der Liste der Tabellen auf der Seite Übersicht der Datenbank auf die Tabelle „Checking“. In der Google Cloud Console wird die Seite Schema der Tabelle angezeigt.
- Klicken Sie im linken Navigationsmenü auf Daten, um die Seite Daten der Tabelle aufzurufen.
Klicken Sie auf Einfügen. In der Google Cloud Console wird die Seite Abfrage der Tabelle mit einem neuen Abfragetab angezeigt, der
INSERT
- undSELECT
-Anweisungen enthält. Überschreiben Sie diese Anweisungen mit den folgenden:INSERT INTO Checking (AccountId, Balance) VALUES(1, 1000), (2, 2000);
Klicken Sie auf Ausführen.
Klicken Sie im linken Navigationsmenü noch einmal auf Daten, um die Daten der Tabelle aufzurufen. Prüfen Sie, ob die Tabelle die gewünschten Daten enthält.
Klicken Sie auf den Link tutorial-database: Overview (Anleitungsdatenbank: Übersicht), um zur Übersichtsseite der Datenbank zurückzukehren.
Klicken Sie in der Liste der Tabellen auf der Seite Übersicht der Datenbank auf die Tabelle „Einsparungen“. In der Google Cloud Console wird die Seite Schema der Tabelle angezeigt.
Klicken Sie im linken Navigationsmenü auf Daten, um die Seite Daten der Tabelle aufzurufen.
Klicken Sie auf Einfügen. In der Google Cloud Console wird die Seite Abfrage der Tabelle mit einem neuen Abfragetab angezeigt, der
INSERT
- undSELECT
-Anweisungen enthält. Überschreiben Sie diese Anweisungen mit den folgenden:INSERT INTO Savings (AccountId, Balance) VALUES(1, 10000), (2, 20000);
Klicken Sie auf Ausführen.
Klicken Sie im linken Navigationsmenü noch einmal auf Daten, um die Daten der Tabelle aufzurufen. Prüfen Sie, ob die Tabelle die gewünschten Daten enthält.
Cloud Function aktualisieren, um die Datenbank abzufragen
Die Funktion accountBalanceCheck
im Webhook-Code prüft, ob bestimmte Umgebungsvariablen mit Informationen zur Verbindung zur Datenbank festgelegt sind.
Wenn diese Umgebungsvariablen nicht festgelegt sind, verwendet die Funktion ein hartcodiertes Kontoguthaben.
Nachdem Sie eine Datenbank eingerichtet haben, aktualisieren Sie Ihre Cloud Function, um die erforderlichen Umgebungsvariablen festzulegen:
Öffnen Sie die Übersichtsseite zu Cloud Functions.
Klicken Sie auf die Funktion „tutorial-banking-webhook“, um die zugehörige Detailseite aufzurufen.
Klicken Sie auf Bearbeiten.
Öffnen Sie den Bereich Laufzeit-, Build- und Verbindungseinstellungen.
Wählen Sie den Tab Laufzeit aus.
Fügen Sie im Bereich „Laufzeit-Umgebungsvariablen“ die folgenden Variablen hinzu:
PROJECT_ID
: Ihre Projekt-ID.SPANNER_INSTANCE_ID
: Ihre Spanner-Instanz-ID (wahrscheinlichtutorial-instance
)SPANNER_DATABASE_ID
: Ihre Spanner-Datenbank-ID (wahrscheinlichtutorial-database
)
Klicken Sie auf Weiter.
Klicken Sie auf Bereitstellen.
Warten Sie, bis die Statusanzeige anzeigt, dass die Funktion bereitgestellt wurde.
Agent testen
Ihr Agent kann jetzt getestet werden. Klicken Sie in der Dialogflow-Konsole auf die Schaltfläche Agent testen, um den Simulator zu öffnen. Versuchen Sie, die folgende Unterhaltung mit dem Kundenservicemitarbeiter zu führen:
Konversationsrunde | Ich | Agent |
---|---|---|
1 | Hallo! | Hallo, vielen Dank, dass Sie sich für die ACME-Bank entschieden haben. |
2 | Ich möchte meinen Kontostand wissen. | Für welches Konto soll das Guthaben angezeigt werden: Sparkonto oder Girokonto? |
3 | Wird überprüft | Ihr aktuelles Guthaben: 10,00 $ |
Wenn Sie den Code untersuchen, ist 10 $ nicht der hartcodierte Wert. Das bedeutet, dass dein Webhook eine Verbindung zur Datenbank hergestellt hat, die ein Guthaben von 10 $hat.
Fehlerbehebung
Der Webhook-Code enthält Logging-Anweisungen. Wenn Probleme auftreten, sehen Sie sich die Logs für Ihre Cloud Functions-Funktion an.
Wenn Ihre Funktion keine Verbindung zur Datenbank herstellen kann und in den Protokollen ein Berechtigungsfehler angezeigt wird, müssen Sie möglicherweise die Rolle für das Standarddienstkonto korrigieren, das von Ihrer Funktion verwendet wird.
Dieses Dienstkonto hat das Format PROJECT_ID@appspot.gserviceaccount.com
.
Sie können dieses Problem auf eine der folgenden Arten beheben:
Wenn das Standarddienstkonto auf der IAM-Startseite angezeigt wird, ändern Sie die Berechtigungen für das Dienstkonto. Die Rolle Bearbeiter ist in Ordnung, aber in einem Produktionsszenario ist möglicherweise eine detailliertere Rolle erforderlich.
Wenn auf der IAM-Startseite kein Standarddienstkonto angezeigt wird, gewähren Sie die erforderliche Rolle, indem Sie das Dienstkonto als neues Hauptkonto hinzufügen.
Alternativ können Sie ein von Ihnen erstelltes Dienstkonto verwenden.
Weitere Informationen
Weitere Informationen zu den oben genannten Schritten finden Sie hier:
- Cloud Spanner mit Cloud Functions verwenden
- Datenbank mit der Google Cloud Console erstellen und abfragen
- Google Standard-SQL-Datendefinitionssprache
- Datenbearbeitungssprache von Google-Standard-SQL