Google Workspace-Add-ons in Cloud Functions mit der Node.js-Laufzeit erstellen
Ziele
- die Umgebung einrichten
- Cloud Functions-Funktion erstellen und bereitstellen
- Erstellen und stellen Sie das Add-on bereit.
- Installieren Sie das Add-on.
Vorbereitung
Die Abrechnung für das Cloud-Projekt muss aktiviert sein. Informationen zum Prüfen des Abrechnungsstatus Ihrer Projekte
Das Cloud SDK ist mit dem Cloud-Projekt konfiguriert.
Umgebung einrichten
Cloud-Projekt in der Google Cloud Console öffnen
- Rufen Sie in der Google Cloud Console die Seite Projekt auswählen auf.
- Wählen Sie das Google Cloud-Projekt aus, das Sie verwenden möchten. Klicken Sie alternativ auf Projekt erstellen und folgen Sie der Anleitung auf dem Bildschirm. Wenn Sie ein Google Cloud-Projekt erstellen, müssen Sie möglicherweise die Abrechnung für das Projekt aktivieren.
OAuth-Zustimmungsbildschirm konfigurieren
Für Google Workspace-Add-ons ist eine Konfiguration des Einwilligungsbildschirms erforderlich. Wenn Sie den OAuth-Zustimmungsbildschirm Ihres Add-ons konfigurieren, legen Sie fest, was Google den Nutzern anzeigt.
- Rufen Sie in der Google Cloud Console das Menü > Google Auth platform > Branding auf.
- Wenn Sie die Google Auth platformbereits konfiguriert haben, können Sie die folgenden Einstellungen für den OAuth-Zustimmungsbildschirm unter Branding, Zielgruppe und Datenzugriff konfigurieren. Wenn Sie die Meldung Google Auth platform noch nicht konfiguriert sehen, klicken Sie auf Jetzt starten:
- Geben Sie unter App-Informationen im Feld App-Name einen Namen für die App ein.
- Wählen Sie unter E-Mail-Adresse des Nutzersupports eine Support-E-Mail-Adresse aus, über die Nutzer Sie mit Fragen zu ihrer Einwilligung kontaktieren können.
- Klicken Sie auf Weiter.
- Wählen Sie unter Zielgruppe die Option Intern aus.
- Klicken Sie auf Weiter.
- Geben Sie unter Kontaktdaten eine E-Mail-Adresse ein, unter der Sie über Änderungen an Ihrem Projekt benachrichtigt werden können.
- Klicken Sie auf Weiter.
- Sehen Sie sich unter Abschließen die Nutzerdatenrichtlinie für Google API-Dienste an. Wenn Sie damit einverstanden sind, wählen Sie Ich stimme der Nutzerdatenrichtlinie für Google API-Dienste zu aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Erstellen.
- Sie können das Hinzufügen von Bereichen vorerst überspringen. Wenn Sie in Zukunft eine App für die Verwendung außerhalb Ihrer Google Workspace-Organisation erstellen, müssen Sie den Nutzertyp in Extern ändern. Fügen Sie dann die Autorisierungsbereiche hinzu, die für Ihre App erforderlich sind. Weitere Informationen finden Sie in der vollständigen Anleitung OAuth-Zustimmung konfigurieren.
Cloud Functions-Funktionen erstellen und bereitstellen
Klicken Sie in der Google Cloud Console auf Cloud Shell aktivieren
.
Das Cloud Shell-Terminal wird geöffnet und im unteren Bereich der Google Cloud Console wird eine Sitzung gestartet.
Klicken Sie auf Autorisieren, um Cloud Shell bereitzustellen und eine Verbindung zu ihr herzustellen.
Aktivieren Sie im Cloud Shell-Terminal die Cloud Functions API, die Cloud Build API, die Google Workspace-Add-ons API und die Compute Engine API:
gcloud services enable cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ gsuiteaddons.googleapis.com \ compute.googleapis.com
Starten Sie den Cloud Shell-Editor, indem Sie in der Symbolleiste des Cloud Shell-Fensters auf
Editor öffnen klicken.
Der integrierte Codeeditor ermöglicht das Aufrufen und Bearbeiten von Dateien in der Umgebung, in der Projekte erstellt und bereitgestellt werden.
Erstellen Sie im leeren Verzeichnis die Datei
function.js
mit dem folgenden Beispielcode:/** * Cloud Function that loads the homepage for a * Google Workspace add-on. * * @param {Object} req Request sent from Google * @param {Object} res Response to send back */ exports.loadHomePage = function addonsHomePage (req, res) { res.send(createAction()); }; /** Creates a card with two widgets. */ function createAction() { return { "action": { "navigations": [ { "pushCard": { "header": { "title": "Cats!" }, "sections": [ { "widgets": [ { "textParagraph": { "text": "Your random cat:" } }, { "image": { "imageUrl": "https://cataas.com/cat" } } ] } ] } } ] } }; }
Erstellen Sie im selben Verzeichnis die Datei
package.json
mit dem folgenden Beispielcode:{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
Klicken Sie auf
Terminal öffnen, um zum Cloud Shell-Terminal zurückzukehren.
Fügen Sie dem Compute Engine-Standarddienstkonto die Rolle
Cloud Build Service Account
(roles/cloudbuild.builds.builder
) hinzu.Richten Sie zuerst die Dienstkontoberechtigung ein:
export PROJECT_ID=$(gcloud config get project) export SERVICE_ACCOUNT_NAME=$(gcloud compute project-info describe \ --format="value(defaultServiceAccount)")
Gewähren Sie als Nächstes die fehlende Dienstkontoberechtigung:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \ --role="roles/cloudbuild.builds.builder"
Führen Sie den folgenden Befehl aus, um die Funktion bereitzustellen:
gcloud functions deploy loadHomePage --runtime nodejs22 --trigger-http
Geben Sie bei Aufforderung an, dass Sie keine nicht authentifizierten Aufrufe der Funktion zulassen. Es kann einige Minuten dauern, bis die Funktion bereitgestellt wird.
Add-on-Deployment erstellen
So finden Sie die E‑Mail-Adresse des Dienstkontos für das Add‑on:
gcloud workspace-add-ons get-authorization
Weisen Sie dem Dienstkonto die Rolle
cloudfunctions.invoker
zu. Ersetzen Sie SERVICE_ACCOUNT_EMAIL durch das FeldserviceAccountEmail
aus dem vorherigen Schritt.gcloud functions add-iam-policy-binding loadHomePage \ --role roles/cloudfunctions.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL
Rufen Sie die URL der bereitgestellten Funktion ab. Führen Sie den folgenden Befehl aus und suchen Sie im Abschnitt
httpsTrigger
nach dem Feldurl
, um die URL abzurufen:gcloud functions describe loadHomePage
Kehren Sie zum Cloud Shell-Editor zurück, indem Sie auf
Editor öffnen klicken.
Erstellen Sie im selben Verzeichnis wie
package.json
die Dateideployment.json
mit dem folgenden Beispielcode. Ersetzen Sie URL durch dieurl
der bereitgestellten Funktion aus dem vorherigen Schritt.{ "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"], "addOns": { "common": { "name": "My HTTP Add-on", "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png", "homepageTrigger": { "runFunction": "URL" } }, "gmail": {}, "drive": {}, "calendar": {}, "docs": {}, "sheets": {}, "slides": {}, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }
Kehren Sie zum Cloud Shell-Terminal zurück, um die Bereitstellung zu erstellen:
gcloud workspace-add-ons deployments create quickstart \ --deployment-file=deployment.json
Add-on installieren
Installieren Sie das Deployment im Entwicklungsmodus:
gcloud workspace-add-ons deployments install quickstart
Öffnen oder aktualisieren Sie Gmail, um das Add-on zu sehen. Suchen Sie in der Symbolleiste rechts nach einem Becherglassymbol.
Klicken Sie auf das Symbol, um das Add-on zu öffnen. Autorisieren Sie das Add-on, wenn Sie dazu aufgefordert werden.
Optional: Bereinigen
Löschen Sie die von Ihnen erstellten Ressourcen, damit Ihrem Konto keine Gebühren in Rechnung gestellt werden:
Add-on aus Ihrem Google-Konto entfernen:
gcloud workspace-add-ons deployments uninstall quickstart
So vermeiden Sie, dass Ihnen die in dieser Kurzanleitung verwendeten Ressourcen in Rechnung gestellt werden:
gcloud projects delete PROJECT_ID
Ersetzen Sie PROJECT_ID durch die ID des Cloud-Projekts, das Sie für die Kurzanleitung verwendet haben. Die Cloud-Projekt-ID finden Sie in der Google Cloud Console auf der Dashboard-Seite.
Weitere Informationen
So fügen Sie Ihrem Google Workspace-Add-on weitere Funktionen hinzu:
- Google Workspace-Add‑on mit HTTP-Endpunkten erstellen
- Codelab: Google Workspace-Add-on mit Node.js und Cloud Run erstellen
- Vorschaulinks mit Smartchips