Daten über einen Action Hub freigeben

Sie können Inhalte nicht nur an die integrierten Ziele von Looker senden, sondern auch mithilfe von Aktionen – auch Integrationen genannt – an Drittanbieterdienste, die über einen Action Hub-Server in Looker eingebunden sind.

Auf dieser Seite erfahren Sie, wie Sie benutzerdefinierte Aktionen erstellen, die Sie dem Looker Action Hub hinzufügen oder Ihrem eigenen privaten Action Hub-Server hinzufügen können. Auf dieser Seite wird auch beschrieben, wie Sie einen lokalen Action Hub-Server starten, um Ihre benutzerdefinierten Aktionen zu testen, oder einen privaten Action Hub-Server ausführen.

So kannst du Aktionen verwenden:

Nachdem die Aktion dem Action Hub hinzugefügt wurde, kann ein Looker-Administrator sie aktivieren, um Looker-Inhalte an diese Dienste zu senden.

Sie können auch mehrere Action Hubs einrichten, wenn Sie die Looker-Integrationen über den Looker Action Hub verwenden und gleichzeitig eigene private oder benutzerdefinierte Aktionen hosten möchten. Die Aktionen für jeden Aktionshub werden auf der Seite Aktionen im Bereich Verwaltung angezeigt.

Looker Action Hub

Looker hostet und stellt den Looker Action Hub zur Verfügung, einen statusfreien Server, der die Action API von Looker implementiert und gängige Aktionen bereitstellt. Alle Daten, die Ihre Nutzer mithilfe einer Aktion senden, werden vorübergehend auf dem Looker Action Hub-Server anstatt in Ihrer Looker-Instanz verarbeitet.

Looker ist bereits in mehrere Dienste integriert. Auf der Dokumentationsseite Verwaltungseinstellungen – Aktionen erfahren Sie, wie Sie diese vorhandenen Dienste aktivieren.

Anforderungen an Looker Action Hub

Der Looker Action Hub muss API-Anfragen auf folgende Arten senden und empfangen können:

Wenn Ihre Looker-Bereitstellung diese Anfragen nicht verarbeiten kann oder die Funktion IP-Zulassungsliste in Ihrer Looker-Instanz aktiviert ist, sollten Sie einen lokalen Action Hub-Server einrichten, um private Looker-Integrationen oder benutzerdefinierte Aktionen bereitzustellen. Administratoren von vom Kunden gehosteten Instanzen können auch einen lokalen Aktionsserver speziell für OAuth- und Streamingaktionen bereitstellen.

Anfragen von der Looker-Instanz an das Looker Action Hub-Netzwerk

Anfragen an actions.looker.com werden auf eine dynamische IP-Adresse aufgelöst. Ausgehende Anfragen von der Looker-Instanz müssen die folgenden Endpunkte erreichen können:

actions.looker.com/
actions.looker.com/actions/<name>/execute
actions.looker.com/actions/<name>/form

Dabei ist name der programmatische Name der Aktion.

Anfragen vom Browser des Looker-Nutzers an das Looker Action Hub-Netzwerk

Der Browser des Looker-Nutzers muss Anfragen an die folgenden Looker Action Hub-Endpunkte senden können (für OAuth):

actions.looker.com/actions/<name>/oauth

Dabei ist name der programmatische Name der Aktion.

Anfragen vom Looker Action Hub-Netzwerk an die Looker-Instanz

Der Looker Action Hub muss Anfragen an die Looker-Instanz für Aktionen senden, die gestreamte Ergebnisse unterstützen oder OAuth verwenden.

Bei einer Streaming-Aktion können Abfragen verwendet werden, die Alle Ergebnisse liefern. Bei OAuth-fähigen Aktionen wird die Authentifizierung pro Nutzer über OAuth 2.0-Vorgänge verwendet. Für OAuth-Aktionen müssen Nutzeranmeldedaten in der Looker-Quellinstanz gespeichert werden, da der Looker Action Hub zustandslos und mehrmandantenfähig ist und keine benutzerspezifischen Anmeldedaten speichert.

Die Anfragen vom Looker Action Hub an eine Looker-Instanz können folgende Formen haben:

GET <host_looker_url>/downloads/<random_40_char_token>
POST <host_looker_url>/action_hub_state/<random_40_char_token>

Diese URLs werden direkt in der Looker-Instanz generiert, bevor sie an den Looker Action Hub gesendet werden. Aus diesem Grund muss der Looker Action Hub sowohl den <host_looker_url> in eine IP-Adresse auflösen als auch Anfragen an das Netzwerk senden können, in dem sich Ihre Looker-Instanz befindet.

Der Looker Action Hub hat statische ausgehende IP-Adressen, von denen die Anfragen immer stammen: 35.153.89.114, 104.196.138.163 und 35.169.42.87. Administratoren von von Looker gehosteten Instanzen, die die IP-Allowlist aktiviert haben, müssen diese IP-Adressen hinzufügen, um Aktionen zu verwenden, die gestreamte Ergebnisse unterstützen oder OAuth verwenden.

Überlegungen zu kundenseitig gehosteten Instanzen

Wenn Sie Looker-Integrationen verwenden möchten, muss der Looker Action Hub mit der Looker-Instanz kommunizieren und die Anforderungen an den Looker Action Hub erfüllen. Bei vom Kunden gehosteten Looker-Instanzen ist dies aus verschiedenen Gründen nicht immer möglich. Wenn eine bidirektionale Kommunikation zwischen dem Looker Action Hub und der Looker-Instanz nicht möglich ist, kann es zu unerwarteten oder unerwünschten Verhaltensweisen des Looker Action Hubs kommen, z. B. zu hängenden Abfragen oder nicht verfügbaren Aktionen.

Wenn der Looker Action Hub nicht mit der Looker-Instanz kommunizieren kann, können Looker-Administratoren eine der Lösungen implementieren, die weiter unten auf dieser Seite beschrieben werden. Die geeignete Lösung oder Kombination von Lösungen hängt von der Architektur der Looker-Instanz ab:

  • Wenn die vom Kunden gehostete Instanz nicht vom Looker Action Hub aufgelöst werden kann, d. h. der Looker Action Hub keine Anfragen von der Looker-Instanz empfangen kann, können Looker-Administratoren sich an einen Google Cloud-Vertriebsmitarbeiter wenden, um die public_host_url-Lizenzfunktion zu aktivieren. Diese Lizenzfunktion zeigt die --public-host-url-Startoption an, mit der Administratoren einen auflösbaren <public_host_url>-Hostnamen angeben können, der sich von der Instanz <host_looker_url> unterscheidet. Der public_host_url überschreibt den Hostnamen für einige bestimmte Looker Action Hub-Callback-URLs und leitet diese Callback-URLs über einen Reverse-Proxy weiter, der den public_host_url als öffentlich auflösbaren Namen hat. Dieser Reverse-Proxy akzeptiert nur Anfragen von den statischen Ausgangs-IP-Adressen für den Looker Action Hub. Looker-Administratoren, die diese Methode verwenden, müssen die Ausgangs-IP-Adressen, von denen der Looker Action Hub Anfragen an die Looker-Instanz sendet, der Zulassungsliste hinzufügen: 35.153.89.114, 104.196.138.163 und 35.169.42.87.

  • Wenn die URL der vom Kunden gehosteten Instanz von der Looker-Instanz aufgelöst werden kann, der Looker Action Hub aber keine Anfragen an die Looker-Instanz senden kann, können Nutzer möglicherweise keine Aktionen konfigurieren oder verwenden, die gestreamte Ergebnisse unterstützen oder OAuth verwenden. Um dieses Problem zu beheben, müssen Looker-Administratoren die ausgehenden IP-Adressen zur Zulassungsliste hinzufügen, von denen aus der Looker Action Hub Anfragen an die Looker-Instanz sendet: 35.153.89.114, 104.196.138.163 und 35.169.42.87.

  • Wenn keine der oben genannten Lösungen für die Looker-Instanzarchitektur geeignet ist, können Looker-Administratoren einen kundengehosteten Aktionshub für alle Aktionen oder nur für Aktionen bereitstellen, die gestreamte Ergebnisse unterstützen oder OAuth verwenden.

  • Wenn Sie einen vom Kunden gehosteten Action Hub bereitstellen möchten, muss die JAR-Datei auf einem öffentlichen Server gehostet werden, damit der Looker Action Hub mit ihr kommunizieren kann. Diese Lösung wird jedoch nicht empfohlen.

Außerdem können die OAuth- und Streamingaktionen in einer vom Kunden gehosteten Looker-Instanz möglicherweise nicht verwendet werden, wenn die Instanz ein SSL-Zertifikat verwendet, das von einer Zertifizierungsstelle ausgestellt wurde, die nicht auf dieser Liste der Root-Zertifikate steht.

Benutzerdefinierte Aktion erstellen

In diesem Abschnitt wird beschrieben, wie Sie eine benutzerdefinierte Aktion mit dem Quellcode des Looker Action Hubs schreiben und testen. Beispiele für funktionalen Code finden Sie in den vorhandenen Aktionen im looker-open-source/actions-Repository auf GitHub.

So erstellen Sie eine benutzerdefinierte Aktion:

  1. Entwicklungs-Repository einrichten
  2. Aktion schreiben
  3. Aktion testen
  4. Aktion veröffentlichen und aktivieren, entweder im Looker Action Hub oder auf Ihrem eigenen privaten Action Hub-Server

Wie bei jeder Aktion müssen Sie möglicherweise Ihre LookML-Modelle mit bestimmten Parametern konfigurieren, bevor Sie die Aktion verwenden können, um Ihre Daten zu verarbeiten.

Entwicklungs-Repository einrichten

Der Looker Action Hub ist ein Node.js-Server, der in TypeScript geschrieben wurde. TypeScript ist eine kleine Schicht auf moderner JavaScript-Technologie, die Typinformationen hinzufügt, um Programmierfehler zu erkennen. Wenn Sie mit JavaScript vertraut sind, sollte Ihnen der Großteil der TypeScript-Sprache bekannt sein.

Für das Ausführen des Looker Action Hubs ist die folgende Software erforderlich:

  • Node.js
  • Node Version Manager (NVM – zum Auswählen der richtigen Node.js-Version)
  • Yarn (zum Verwalten von Abhängigkeiten)

Nachdem Sie die erforderliche Software installiert haben, können Sie Ihre Entwicklungsumgebung einrichten. Im folgenden Beispiel wird Git verwendet.

  1. Klonen Sie das looker-open-source/actions-Repository lokal:

    git clone git@github.com:looker-open-source/actions.git
    
  2. Erstellen Sie im Verzeichnis actions/src/actions ein Verzeichnis mit dem Namen Ihrer Aktion. Beispiel:

    mkdir actions/src/actions/my_action
    
  3. Fügen Sie Ihrem Verzeichnis die Dateien hinzu, die Sie für die Ausführung der Aktion benötigen. Eine Beispieldateistruktur findest du im GitHub-Repository für Aktionen.

Looker empfiehlt außerdem, Folgendes hinzuzufügen:

  • Eine README-Datei, in der Zweck und Authentifizierungsmethode Ihrer Aktion erläutert werden
  • Ein PNG-Symbol, das im Looker Action Hub (oder privaten Action Hub in Ihrer Looker-Instanz) und in den Looker-Fenster für die Datenübermittlung angezeigt wird
  • Alle Dateien für Tests, die Sie für Ihren Aktionscode ausführen möchten. Dies unterscheidet sich vom Testen der Aktion.

Aktion schreiben

Eine Designanforderung für den Looker Action Hub-Server besteht darin, dass er vollständig zustandslos bleibt. Das Speichern von Informationen in der Action-Anwendung oder dem Action-Dienst ist daher nicht zulässig. Alle Informationen, die für die Ausführung der Aktion erforderlich sind, müssen in den Anfrageaufrufen der Aktionsdatei angegeben werden.

Der genaue Inhalt der Aktionsdatei hängt vom Dienst, vom Typ oder der Ebene ab, auf der die Aktion ausgeführt wird, und davon, welche Daten- oder Visualisierungsformate angegeben werden müssen. Die Aktion kann auch für OAuth 2.0-Autorisierungsabläufe konfiguriert werden.

Aktionsdateien basieren auf der API-Methode /execute. Looker API-Anfragen werden jedes Mal mit einer DataActionRequest übergeben, wenn ein Nutzer die Aktion in Looker ausführt. Die DataActionRequest enthält alle Daten und Metadaten, die für die Ausführung der Aktion erforderlich sind. Es ist auch eine /form-Methode verfügbar, mit der zusätzliche Informationen vom Nutzer erfasst werden können, bevor er die Aktion ausführt. Die in der /form angegebenen Felder werden im Pop-up-Fenster Senden oder Planen angezeigt, wenn Nutzer die Aktion als Ziel für die Datenübermittlung auswählen.

Fügen Sie bei der Erstellung der Aktionsdatei mindestens die folgenden Parameter hinzu, die als Erforderlich gekennzeichnet sind:

Parameter Erforderlich Beschreibung Datentyp
name Ja Ein eindeutiger Name für die Aktion. Er muss für alle Aktionen im Looker Action Hub eindeutig sein. String
url Ja Eine absolute URL des /execute-Endpunkts für diese Aktion. String
label Ja Ein für Menschen lesbares Label für die Aktion. String
supportedActionTypes Ja Eine Liste der Aktionstypen, die von der Aktion unterstützt werden. Gültige Werte sind "cell", "query" und "dashboard". String
formURL Nein Eine absolute URL des /form-Endpunkts für diese Aktion. String
description Nein Beschreibung der Aktion. String
params Nein Array von parameters für die Aktion. Geben Sie für jeden Parameter den Namen, das Label und die Beschreibung im Stringformat an. Diese Felder werden auf der Aktivierungsseite der Aktion im Bereich Verwaltung angezeigt. Wenn Sie festlegen möchten, wie Nutzer Daten an ein Aktionsziel senden können, können Sie ein Nutzerattribut angeben, für das ein Nutzer einen definierten Wert haben muss. parameters
supportedFormats Nein Eine Liste der Datenformate, die von der Aktion unterstützt werden. Gültige Werte sind "txt", "csv", "inline_json", "json" und "json_detail", "json_detail_lite_stream", "xlsx", "html", "wysiwyg_pdf", "assembled_pdf", and "wysiwyg_png".. String
supportedFormattings Nein Eine Liste der Formatierungsoptionen, die von der Aktion unterstützt werden. Gültige Werte sind "formatted" und "unformatted". String
supportedVisualizationFormattings Nein Eine Liste der Formatierungsoptionen für Visualisierungen, die von der Aktion unterstützt werden. Gültige Werte sind "apply" und "noapply". String
iconName Nein Ein Daten-URI, der ein Symbolbild für die Aktion darstellt. String
requiredFields Nein Eine Liste der Beschreibungen der Pflichtfelder, mit denen diese Aktion kompatibel ist. Wenn diese Liste mehrere Einträge enthält, ist für die Aktion mehr als ein Feld erforderlich. RequiredField
supportedDownloadSettings Nein Ein boolescher Wert, der angibt, ob für die Aktion eine einmalige Download-URL gesendet wird, um ein unbegrenztes Streaming von Daten zu ermöglichen. Der Parameter wird durch den Parameter usesStreaming festgelegt, der ein boolescher true/false-Wert ist. Wenn usesStreaming = true, dann supportedDownloadSettings = url. Wenn usesStreaming = false, dann supportedDownloadSettings = push. Boolesch
usesOAuth Nein Ein boolescher Wert, der angibt, ob es sich bei der Aktion um eine OAuth-Aktion handelt. Damit wird festgelegt, ob für die Aktion ein Link für einmalige Verwendung gesendet wird, um state für einen bestimmten Nutzer für diese Aktion festzulegen. Boolesch
usesStreaming Nein Boolescher Wert, der angibt, ob die Aktion gestreamte Abfrageergebnisse unterstützt. Setzen Sie in der Liste der integrierten Dienste ein Häkchen in die Spalte Verwendet Datenstreaming (Ja/Nein). Für Aktionen, bei denen Ergebnisse gestreamt werden, muss möglicherweise ein lokaler Action Hub-Server konfiguriert werden. Weitere Informationen finden Sie auf der Seite Best Practices für die Einrichtung eines lokalen Action Hubs für Aktionen, die OAuth oder Streaming verwenden. Boolesch
minimumSupportedVersion Nein Die Mindestversion von Looker, in der die Aktion in der Liste „Action Hub“ im Bereich Verwaltung angezeigt wird. String

Beispiele für Looker Action Hub-Aktionen finden Sie auf GitHub.

Unterstützte Aktionstypen

In Looker werden drei Arten von Aktionen unterstützt, wie im Parameter supportedActionTypes Ihrer Aktion angegeben: Abfrage, Zelle und Dashboard.

  • Aktion auf Abfrageebene:Bei dieser Aktion wird eine vollständige Abfrage gesendet. Die Segmentaktion ist beispielsweise eine Aktion auf Abfrageebene.
  • Aktion auf Zellenebene:Bei einer Aktion auf Zellenebene wird der Wert einer einzelnen Zelle in einer Datentabelle gesendet. Dieser Aktionstyp unterscheidet sich von Datenaktionen, die mithilfe des Parameters action für Dimensionen oder Messwerte definiert werden können. Um Informationen aus einer bestimmten Zelle in einer Tabelle zu senden, werden in Looker Aktionen mithilfe von Tags den entsprechenden Zellen zugeordnet. Für Aktionen muss in requiredFields angegeben werden, welche Tags unterstützt werden. Um Aktionen und Felder zuzuordnen, müssen Felder in LookML mit dem LookML-Parameter tags angeben, welchen Tags sie zugeordnet sind. Für die Twilio-Nachrichtenaktion wird beispielsweise ein phone-Tag verwendet, damit LookML-Entwickler festlegen können, in welchen Telefonnummernfeldern die Twilio-Aktion angezeigt wird.
  • Aktion auf Dashboardebene:Eine Aktion auf Dashboardebene unterstützt das Senden eines Bilds eines Dashboards. Mit der SendGrid-Aktion werden beispielsweise Dashboardbilder per E-Mail gesendet.

Benutzerattribute zu benutzerdefinierten Aktionen hinzufügen

Bei benutzerdefinierten Aktionen können Sie Nutzerattribute im Parameter params Ihrer Aktionsdatei hinzufügen. Wenn der Parameter erforderlich ist, muss jeder Nutzer zusätzlich zur send_to_integration-Berechtigung einen Wert für dieses Attribut in seinem Nutzerkonto oder für eine Nutzergruppe haben, zu der er gehört, damit die Aktion beim Senden oder Planen von Inhalten als Zieloption angezeigt wird.

So fügen Sie Ihrer Aktion ein Nutzerattribut hinzu:

  1. Ein Looker-Administrator muss möglicherweise das Nutzerattribut erstellen, das der user_attribute_param entspricht, falls es noch nicht vorhanden ist.
  2. Definieren Sie einen gültigen Wert für das Nutzerattribut für die Nutzer oder Nutzergruppen, für die Inhalte an das Aktionsziel gesendet werden sollen. Diese Nutzer müssen außerdem die Berechtigungen send_to_integration haben.
  3. Der Parameter params steht für die Formularfelder, die ein Looker-Administrator auf der Aktivierungsseite der Aktion in der Liste Aktionen im Bereich Verwaltung konfigurieren muss. Fügen Sie in der Aktionsdatei im Parameter params Folgendes ein:
  params = [{
    description: "A description of the param.",
    label: "A label for the param.",
    name: "action_param_name",
    user_attribute_name: "user_attribute_name",
    required: true,
    sensitive: true,
  }]

Dabei ist user_attribute_name das Nutzerattribut, das im Bereich Nutzer des Steuerfelds Verwaltung auf der Seite Nutzerattribute im Feld Name definiert ist. required: true bedeutet, dass für einen Nutzer ein gültiger Wert für dieses Nutzerattribut definiert sein muss, damit er die Aktion bei der Datenübermittlung sehen kann. sensitive: true bedeutet, dass das Nutzerattribut verschlüsselt ist und nach der Eingabe nicht mehr in der Looker-Benutzeroberfläche angezeigt wird. Sie können mehrere Unterparameter für Nutzerattribute angeben.

  1. Stellen Sie Ihre Updates auf dem Action Hub-Server bereit.
    • Wenn Sie eine neue Aktion hinzufügen, muss ein Looker-Administrator die Aktion aktivieren. Klicken Sie dazu im Bereich Verwaltung auf der Seite Aktionen neben der Aktion auf die Schaltfläche Aktivieren.
    • Wenn Sie eine vorhandene Aktion aktualisieren, klicken Sie auf die Schaltfläche Aktualisieren, um die Liste der Aktionen zu aktualisieren. Klicken Sie dann auf die Schaltfläche Einstellungen.
  2. Auf der Seite „Aktion – Einstellungen/Aktivierung“ muss ein Looker-Administrator die Formularfelder der Aktion so konfigurieren, dass Informationen aus dem Nutzerattribut abgerufen werden. Klicken Sie dazu rechts neben dem entsprechenden Feld auf das Symbol für Nutzerattribute  und wählen Sie das gewünschte Nutzerattribut aus.

requiredField-Parameter in Aktionen auf Zellebene

Bei Aktionen auf Zellenebene können Sie die LookML-Felder Ihres Modells so konfigurieren, dass Daten an das Ziel der Aktion gesendet werden. Geben Sie dazu im Parameter requiredFields Ihrer Aktionsdatei an, welche Tags von Ihrer Aktion unterstützt werden.

Parameter Erforderlich Beschreibung Datentyp
tag Nein Wenn vorhanden, wird mit einem Feld mit diesem Tag abgeglichen. String
any_tag Nein Falls vorhanden, ersetzt es tag und wird mit einem Feld abgeglichen, das eines der angegebenen Tags enthält. String
all_tags Nein Wenn vorhanden, ersetzt es tag und entspricht einem Feld mit allen angegebenen Tags. String

Unterstützte Datenformate

Die DataActionRequest-Klasse definiert, welches Datenübermittlungsformat für die Aktion verfügbar ist. Bei Aktionen auf Abfrageebene enthält die Anfrage einen Anhang, der in verschiedenen Formaten vorliegen kann. Für die Aktion kann entweder eine oder mehrere supportedFormats angegeben werden oder der Nutzer kann das Format auswählen, indem alle möglichen Formate angegeben werden. Bei Aktionen auf Zellebene wird der Wert der Zelle in DataActionRequest angezeigt.

Aktion für OAuth konfigurieren

Sie können Ihre Aktion so konfigurieren, dass sich Nutzer mit OAuth authentifizieren können. Auch wenn der Looker Action Hub zustandslos bleiben muss, können Sie einen Status über eine Formularanfrage über die Looker Action API erzwingen.

OAuth-Ablauf für Looker-Aktionen

Für Aktionen im Looker Action Hub können Sie ein OAuthAction anstelle eines Hub.Action erweitern, um einen booleschen Wert festzulegen, der angibt, welche OAuth-Methoden für die Authentifizierung eines Nutzers für eine Aktion erforderlich sind. Für jede OAuth- oder Status-aktivierte Aktion speichert Looker einen Status pro Nutzer und Aktion, sodass jede Kombination aus Aktion und Nutzer ein unabhängiges OAuth-Ereignis hat.

Das Erstellen von Aktionen umfasst in der Regel eine /form-Anfrage, gefolgt von einer /execute-Anfrage. Bei OAuth sollte die /form-Anfrage eine Methode haben, um zu ermitteln, ob der Nutzer im Zieldienst authentifiziert ist. Wenn der Nutzer bereits authentifiziert ist, sollte die Aktion eine normale /form zurückgeben, die den Anforderungen der /execute-Anfrage entspricht. Wenn der Nutzer nicht authentifiziert ist, gibt die Aktion einen Link zurück, über den ein OAuth-Ablauf initialisiert wird.

Status mit der OAuth-URL speichern

Looker sendet eine HTTP-POST-Anfrage mit einem leeren Textkörper an den ActionList-Endpunkt. Wenn die Aktion in ihrer Definition uses_oauth: true zurückgibt, wird der Aktion in jeder /form-Anfrage von Looker ein Einmal-state_url gesendet. Die state_url ist eine spezielle Einmal-URL, mit der der Status eines Nutzers für eine bestimmte Aktion festgelegt wird.

Wenn der Nutzer nicht mit dem Endpunkt authentifiziert ist, sollte die zurückgegebene /form einen form_field vom Typ oauth_link enthalten, der an den /oauth-Endpunkt einer Aktion weitergeleitet wird. Die state_url sollte verschlüsselt und als state-Paramter in der zurückgegebenen oauth_url gespeichert werden. Beispiel:

{
        "name": "login",
        "type": "oauth_link",
        "label": "Log in",
        "description": "OAuth Link",
        "oauth_url": "ACTIONHUB_URL/actions/my_action/oauth?state=encrypted_state_url"
}

In diesem Beispiel leitet der /oauth-Endpunkt den Nutzer an den Authentifizierungsserver weiter. Der /oauth-Endpunkt erstellt die Weiterleitung in der oauthUrl(...)-Methode für eine OAuth-Aktion, wie in der Dropbox-OauthUrl dargestellt.

Der Parameter state, der diese verschlüsselte state_url enthält, muss an den Looker Action Hub übergeben werden.

Status mit der Weiterleitungs-URI des Action-Hubs speichern

Im /oauth-Endpunkt wird auch ein redirect_uri für den Aktionshub erstellt und an die oauthUrl(...)-Methode der Aktion übergeben. Diese redirect_uri hat das Format /actions/src/actions/my_maction/oauth_redirect und ist der Endpunkt, der verwendet wird, wenn die Authentifizierung ein Ergebnis zurückgibt.

Dieser Endpunkt ruft die Methode oauthFetchInfo(...) auf, die von der Methode OauthAction implementiert werden sollte, um die erforderlichen Informationen zu extrahieren und zu versuchen, den vom Authentifizierungsserver empfangenen Status oder auth zu empfangen oder zu speichern.

Der state entschlüsselt die verschlüsselte state_url und verwendet sie, um state an Looker zurückzusenden. Wenn ein Nutzer das nächste Mal eine Anfrage an diese Aktion sendet, wird der neu gespeicherte Status an den Looker Action Hub gesendet.

Aktionsdateien dem Looker Action Hub-Repository hinzufügen

Nachdem die Aktionsdatei geschrieben wurde, gehen Sie im Looker Action Hub-Repository so vor:

  1. Fügen Sie actions/src/actions/index.ts die Aktionsdatei (z. B. my_action.ts) hinzu.

    import "./my_action/my_action.ts"
    
  2. Fügen Sie alle Node.js-Paketvoraussetzungen hinzu, die Sie beim Erstellen Ihrer Aktion verwendet haben. Beispiel:

    yarn add aws-sdk
    yarn add express
    
  3. Installieren Sie die Node.js-Abhängigkeiten des Looker Action Hub-Servers.

    yarn install
    
  4. Führen Sie alle von Ihnen geschriebenen Tests aus.

yarn test

Aktion testen

Für einen vollständigen Test können Sie Ihre Aktion mit Ihrer Looker-Instanz testen, indem Sie einen privaten Action Hub-Server hosten. Dieser Server muss sich mit einem gültigen SSL-Zertifikat im öffentlichen Internet befinden und Verbindungen oder HTTPS-Anfragen zu und von Looker initiieren und empfangen können. Dazu können Sie eine cloudbasierte Plattform wie Heroku verwenden, wie im folgenden Beispiel gezeigt. Alternativ können Sie eine beliebige Plattform verwenden, die die oben genannten Anforderungen erfüllt.

Lokalen Action Hub-Server einrichten

In diesem Beispiel nehmen wir die Aktion vor, die wir im GitHub-Repository looker-open-source/actions/src/actions entwickelt haben, und committen den Code in einen neuen Git-Branch. Wir empfehlen, an Funktionen mithilfe von Branches zu arbeiten, damit Sie Ihren Code leicht im Blick behalten und bei Bedarf ganz einfach einen PR mit Looker erstellen können.

  1. Erstellen Sie zuerst Ihren Branch, dann die Staging-Version und führen Sie einen Commit aus. Beispiel:

    git checkout -b my-branch-name
    git add file-names
    git commit -m commit-message
    
  2. Wenn Sie in diesem Beispiel einen Branch zu Heroku pushen möchten, konfigurieren Sie Ihr Git-Repository mit Heroku als Remote-Option in der Befehlszeile:

    heroku login
    heroku create
    git push heroku
    
  3. Heroku gibt die öffentliche URL zurück, unter der der Action Hub jetzt gehostet wird. Rufen Sie die URL auf oder führen Sie heroku logs aus, um zu prüfen, ob der Action-Hub ausgeführt wird. Wenn Sie die öffentliche URL vergessen haben, können Sie in der Befehlszeile Folgendes ausführen:

    heroku info -s | grep web_url
    

    Heroku gibt Ihre öffentliche URL zurück. Beispiel: https://my-heroku-action-server-1234.herokuapp.com

  4. Legen Sie in der Befehlszeile die Basis-URL des Action Hooks fest:

    heroku config:set ACTION_HUB_BASE_URL="https://my-heroku-action-server-1234.herokuapp.com"
    
  5. Legen Sie das Label für den Aktionshub fest:

    heroku config:set ACTION_HUB_LABEL="Your Action Hub"
    
  6. Looker verwendet ein Autorisierungstoken, um eine Verbindung zum Action Hub herzustellen. Erstellen Sie das Token in der Befehlszeile:

    heroku run yarn generate-api-key
    

    Wenn Sie Heroku nicht verwenden, wie in diesem Beispiel, verwenden Sie stattdessen:

    yarn generate-api-key
    

    Heroku gibt Ihr Autorisierungstoken zurück. Beispiel: Authorization: Token token="abcdefg123456789"

  7. Legen Sie das Secret Ihres Action Hooks mit dem geheimen Schlüssel fest:

    heroku config:set ACTION_HUB_SECRET="abcdefg123456789"
    

    Bei vom Kunden gehosteten Bereitstellungen müssen möglicherweise zusätzliche Umgebungsvariablen konfiguriert werden, die hier nicht dokumentiert sind.

  8. Fügen Sie die Aktion Ihrer lokalen Looker-Instanz hinzu. Gehen Sie dazu zu Verwaltung > Aktionen.

    • Klicken Sie unten in der Liste der Aktionen auf Action Hub hinzufügen.
    • Geben Sie die Action Hub-URL und optional einen Secret-Schlüssel ein.
    • Suchen Sie die Aktion in der Liste Aktionen im Menü Verwaltung von Looker.
    • Klicken Sie auf Aktivieren.

Wenn für Ihre Aktion bestimmte Arten von Daten von Looker übergeben werden müssen, konfigurieren Sie alle Modelle so, dass der entsprechende tags-Parameter enthalten ist.

Jetzt können Sie Ihre Aktion testen.

Aktionen auf Dashboard- und Abfrageebene testen

Konfigurieren Sie in Ihrer Looker-Instanz gegebenenfalls Ihr LookML-Modell mit Tags. Erstellen und speichern Sie einen Look. Klicken Sie im gespeicherten Look rechts oben auf das Dreipunkt-Menü und wählen Sie Senden mit Ihrer Aktion als Ziel aus. Wenn Sie ein Formular für die Übermittlung haben, wird es von Looker im Fenster Gesendet gerendert.

Klicken Sie auf Test senden, um die Daten zu senden. Der Status der Aktion wird im Bereich Verwaltung im Verlauf des Planungsprogramms angezeigt. Wenn bei Ihrer Aktion ein Fehler auftritt, wird er im Bereich Verwaltung angezeigt. Außerdem sendet Looker eine E-Mail mit der Fehlermeldung an den Nutzer, der die Aktion gesendet hat.

Aktionen auf Zellebene testen

Richten Sie ein LookML-Feld mit den richtigen Tags für Ihre Aktion ein. Führen Sie in Ihrer Looker-Instanz eine Abfrage aus, die dieses Feld enthält. Suchen Sie in der Datentabelle nach dem Feld. Klicken Sie in der Zelle auf das Dreipunkt-Menü  und wählen Sie im Drop-down-Menü die Option Senden aus. Wenn Fehler auftreten, müssen Sie die Datentabelle vollständig aktualisieren, nachdem Sie diese Fehler behoben haben.

Benutzerdefinierte Aktion veröffentlichen und aktivieren

Für benutzerdefinierte Aktionen gibt es zwei Veröffentlichungsoptionen:

Nachdem die Aktion veröffentlicht wurde, können Sie sie im Bereich Verwaltung auf der Seite Aktionen aktivieren.

Daten im Looker Action Hub veröffentlichen

Dieser Ansatz ist der einfachste und funktioniert für jede Aktion, die Sie allen Nutzern von Looker zur Verfügung stellen möchten.

Nachdem die Aktion getestet wurde, können Sie einen Pull-Request an das looker-open-source/actions-Repository in GitHub senden.

  1. Geben Sie den folgenden Befehl ein:

    git push <your fork> <your development branch>
    
  2. Erstellen Sie Ihren Pull-Request mit dem looker-open-source/actions-Repository als Ziel.

  3. Füllen Sie das Einreichungsformular für den Looker Marketplace und den Action Hub aus. Weitere Informationen zu den Formularanforderungen finden Sie unter Inhalte im Looker Marketplace einreichen.

    Looker prüft Ihren Aktionscode. Wir behalten uns das Recht vor, Ihre PR abzulehnen. Wir können Ihnen aber bei Problemen helfen und Verbesserungsvorschläge machen. Anschließend führen wir einen Merge des Codes in das looker-open-source/actions-Repository aus und stellen ihn in actions.looker.com bereit. Nach der Bereitstellung ist der Code für alle Looker-Kunden verfügbar.

  4. Aktivieren Sie die Aktion in Ihrer Looker-Instanz, damit sie als Option für die Datenübermittlung angezeigt wird.

Auf einem privaten Action Hub-Server veröffentlichen

Wenn Sie benutzerdefinierte Aktionen haben, die nur für Ihr Unternehmen oder Ihren Anwendungsfall bestimmt sind, sollten Sie Ihre Aktion nicht dem looker-open-source/actions-Repository hinzufügen. Erstellen Sie stattdessen einen privaten Aktionshub mit demselben Node.js-Framework, mit dem Sie Ihre Aktion getestet haben.

Sie können Ihren internen Action Hub-Server in Ihrer eigenen Infrastruktur oder mit einer cloudbasierten Anwendungsplattform einrichten (in unserem Beispiel wurde Heroku verwendet). Denken Sie daran, den Looker Action Hub vor der Bereitstellung auf Ihren privaten Action Hub-Server zu forken.

LookML-Modell für die Verwendung mit einer Aktion konfigurieren

Sowohl für benutzerdefinierte Aktionen als auch für Aktionen, die im Looker Action Hub verfügbar sind, müssen Sie die relevanten Datenfelder mit dem Parameter tags in Ihrem LookML-Modell angeben. Auf der Seite Aktionen im Bereich Verwaltung finden Sie Informationen zu den Tags, die gegebenenfalls für den Dienst erforderlich sind.

Bei einer Twilio Send Message-Integration wird beispielsweise eine Nachricht an eine Liste mit Telefonnummern gesendet. Auf der Seite Aktionen im Bereich Verwaltung wird für die Integration der Untertext „Die Aktion kann mit Abfragen verwendet werden, die ein Feld mit dem Tag phone haben“ angezeigt.

Das bedeutet, dass für den Dienst Twilio Send Message eine Abfrage erforderlich ist, die ein Telefonnummernfeld enthält und mithilfe des Parameters tags das Feld in der Abfrage identifiziert, das die Telefonnummern enthält. Sie identifizieren ein Telefonnummernfeld in LookML, indem Sie tags: ["phone"] für dieses Feld angeben. Ihr LookML-Code für ein Telefonnummernfeld könnte beispielsweise folgendermaßen aussehen:

dimension: phone {
  tags: ["phone"]
  type: string
  sql: ${TABLE}.phone ;;
}

Bei einer Integration, für die keine Tags erforderlich sind, wird auf der Seite Aktionen im Bereich Verwaltung der Zusatztext „Aktion kann mit jeder Abfrage verwendet werden“ angezeigt.

Denken Sie daran, alle erforderlichen Felder in Ihrem LookML-Modell mit dem Parameter tags zu identifizieren, damit Ihre Nutzer Daten über den Dienst senden können.

Nächste Schritte

Hier erfahren Sie, wie Sie den Inhalt eines Looks oder Explores oder eines Dashboards an einen integrierten Dienst senden.