アクションハブを介したデータ共有

Looker の組み込みの宛先にコンテンツを配信するだけでなく、アクション(統合)を使用して、アクション ハブ サーバー経由で Looker と統合されたサードパーティ サービスにコンテンツを配信することもできます。

アクションハブ サーバー経由で提供されるアクションは、action LookML パラメータによって定義されるデータ アクションとは異なります。

このページでは、カスタム アクション ハブサーバーへの追加またはカスタム アクション ハブ サーバーへの追加リクエストできるカスタム アクションを作成するオプションについて説明します。このページでは、ローカル アクション ハブ サーバーをスピンアップしてカスタム アクションをテストする方法や、プライベート アクション ハブ サーバーを実行する方法についても説明します。

次の図は、非公開でホストされている Action Hub または Looker がホストする Action Hub のいずれかを使用してアクションを統合するために利用可能なワークフロー オプションを示しています。

アクションがアクション ハブに追加されると、Looker 管理者は、それらのサービスに Looker コンテンツを配信するために使用を有効にできます。

また、Looker Action Hub を介した Looker のインテグレーションを使用し、独自のプライベート アクションやカスタム アクションをホストする場合は、複数のアクション ハブを設定できます。各アクションハブのアクションは、[管理] パネルの [アクション] ページに表示されます。

Looker アクション ハブ

Looker は、Looker Action Hub をホストおよび提供しています。Looker Action Hub は、Looker の Action API を実装し、一般的なアクションを公開するステートレス サーバーです。ユーザーがアクションを使用して送信したデータは、Looker インスタンスではなく、Looker Action Hub サーバーで一時的に処理されます。

Looker はすでに複数のサービスと統合されています。既存のサービスを有効にする方法については、管理者設定 - 操作に関するドキュメント ページをご覧ください。

Looker Action Hub の要件

Looker 統合を使用するには、Looker アクション ハブが Looker インスタンスと通信してこれらの要件を満たせる必要があります。顧客でホストされたインスタンスの管理者は、Looker Action Hub からの Looker 統合、特にストリームされた結果をサポートするか、OAuth を使用する統合を有効にする場合に、追加要素を検討する必要があります。

Looker Action Hub は、次の方法で API リクエストを送受信できる必要があります。

Looker のデプロイがこれらのリクエストに対応できない場合、または Looker インスタンスで IP 許可リスト機能が有効になっている場合は、ローカル アクション ハブ サーバーを設定して非公開の Looker 統合またはカスタム アクションを提供することを検討してください。顧客がホストするインスタンスの管理者は、OAuth とストリーミング アクション専用のローカル アクション サーバーをデプロイすることもできます。

Looker インスタンスから Looker Action Hub ネットワークへのリクエスト

actions.looker.com へのリクエストは動的 IP アドレスに解決されます。Looker インスタンスからの発信リクエストは、次のエンドポイントに到達できる必要があります。

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

ここで、name はアクションのプログラム名です。

Looker ユーザーのブラウザから Looker Action Hub ネットワークへのリクエスト

Looker ユーザーのブラウザは、以下の Looker Action Hub エンドポイント(OAuth 用)にリクエストを送信できる必要があります。

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

ここで、name はアクションのプログラム名です。

Looker Action Hub ネットワークから Looker インスタンスへのリクエスト

Looker Action Hub は、ストリーミングされた結果をサポートするアクションや OAuth を使用するアクションを Looker インスタンスにリクエストする必要があります。

ストリーミング アクションを使用すると、すべての結果を配信するクエリをアクションで使用できるようになります。OAuth 対応のアクションは、OAuth 2.0 フローを通じてユーザーごとの認証を使用します。Looker アクション ハブはステートレスでマルチテナントであり、どのような種類のユーザー固有の認証情報も保存しないため、OAuth アクションはソースの Looker インスタンスにユーザー認証情報を保存する必要があります。

Looker Action Hub から Looker インスタンスへのリクエストは、次の形式になります。

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

これらの URL は、Looker インスタンスのハブで生成されてから、Looker Action Hub に送信されます。このため、Looker Action Hub は <host_looker_url> を IP アドレスに解決できかつ Looker インスタンスが存在するネットワークに対してリクエストを送信できる必要があります。

Looker Action Hub には、リクエストが常に発信される静的下り(外向き)IP アドレス(35.153.89.114104.196.138.16335.169.42.87)があります。Looker でホストされるインスタンスの管理者が IP 許可リストを有効にしている場合、ストリーミングされる結果をサポートするアクションまたは OAuth を使用するアクションを使用するには、これらの IP アドレスを追加する必要があります。

顧客がホストするインスタンスに関する考慮事項

Looker の統合を使用するには、Looker Action Hub が Looker インスタンスと通信して、これらの要件を満たせる必要があります。顧客がホストする Looker インスタンスでは、さまざまな理由からこれができない場合もあります。Looker Action Hub と Looker インスタンス間の双方向通信ができない場合、Looker Action Hub は、ハングアップ クエリや利用できないアクションなど、予期しない、または望ましくない動作を示すことがあります。

Looker アクション ハブが Looker インスタンスと通信できないという問題を解決するために、Looker 管理者は以下のソリューションのいずれかを実装できます。適切なソリューション(またはソリューションの組み合わせ)は、Looker インスタンスのアーキテクチャによって異なります。

  • お客様がホストするインスタンスが Looker Action Hub によって解決できない場合(つまり、Looker Action Hub が Looker インスタンスからリクエストを受信できない場合)、Looker 管理者は Looker アカウント マネージャーに問い合わせて public_host_url ライセンス機能を有効にすることができます。このライセンス機能によって、--public-host-url 起動オプションが明らかになります。管理者はこのオプションを使用して、インスタンス <host_looker_url> とは異なる解決可能な <public_host_url> ホスト名を指定できます。public_host_url は、特定の Looker Action Hub コールバック URL のホスト名をオーバーライドし、これらの解決可能な URL を、解決可能な名前として public_host_url を含むリバース プロキシにルーティングします。このリバース プロキシは、Looker Action Hub の静的下り(外向き)IP アドレスからのリクエストのみを受け入れます。このメソッドを使用する Looker 管理者は、Looker Action Hub が Looker インスタンスに対するリクエストを行う下り(外向き)IP アドレス(35.153.89.114104.196.138.16335.169.42.87)を許可リストに追加する必要があります。

  • お客様がホストするインスタンスの URL が、Looker によって解決可能であるが、Looker Action Hub が Looker インスタンスにリクエストを送信できない場合、ユーザーはストリーミングされた結果をサポートするアクションまたは OAuth を使用するアクションを構成または使用できません。この問題を解決するには、Looker 管理者が Looker Action Hub が Looker インスタンスに対してリクエストを行う下り(外向き)IP アドレス(35.153.89.114104.196.138.16335.169.42.87)を許可リストに追加する必要があります。

  • 上記のソリューションが Looker インスタンス アーキテクチャに適していない場合、Looker 管理者はすべてのアクション、またはストリーミングされた結果をサポートするアクション、または OAuth を使用するアクションに対してのみ、お客様がホストするアクション ハブをデプロイできます。

  • お客様がホストするアクション ハブをデプロイするには、JAR ファイルがパブリック サーバーでホストされていること、Looker Action Hub がパブリック サーバーと通信できるようにする必要があります。Looker ではこのソリューションは推奨していません。

顧客がホストする Looker インスタンスで OAuth とストリーミングのアクションを使用できない別の理由として、インスタンスがこのリストにない認証局(CA)によって発行された SSL 証明書を使用していることが考えられます。

カスタム アクションの作成

このセクションでは、Looker Action Hub のソースコードを使用してカスタム アクションを記述し、テストする手順について説明します。機能的なコードの例を確認するには、GitHub の looker-open-source/actions リポジトリで既存のアクションを確認してください。

次の方法でカスタム アクションを作成できます。

  1. 開発リポジトリの設定
  2. アクションを記述する
  3. アクションのテスト
  4. Looker Action Hub または独自のプライベート アクション ハブ サーバーでアクションを公開して有効にする

他のアクションと同様、アクションを使用してデータを配信する前に、特定のパラメータで LookML モデルを設定することが必要な場合があります。

開発リポジトリを設定する

Looker Action Hub は、TypeScript で記述された Node.js サーバーです。最新の JavaScript の上に小さなレイヤを追加し、プログラミング エラーの捕捉に役立つ型情報を追加します。TypeScript 言語については、ほとんどの JavaScript 言語に馴染みがあるはずです。

Looker Action Hub を実行するには、次のソフトウェアが必要です。

  • Node.js
  • Node Version Manager(NVM - 適切な Node.js バージョンを選択)
  • Yarn(依存関係を管理)

必要なソフトウェアをインストールしたら、開発環境を設定する準備が整います。以下の例では、Git を使用しています。

  1. looker-open-source/actions リポジトリのクローンをローカルに作成します。

    git clone git@github.com:looker-open-source/actions.git
    
  2. アクションの名前を含んだディレクトリを actions/src/actions ディレクトリに作成します。例:

    mkdir actions/src/actions/my_action
    
  3. ディレクトリへのアクションを実行するために必要なファイルをディレクトリに入力します。ファイル構造の例については、アクションの GitHub リポジトリをご覧ください。

Looker では、以下も追加することをおすすめします。

  • アクションの認証の目的と手段を説明する README
  • Looker アクション ハブ(または Looker インスタンスのプライベート アクション ハブ)と Looker データ配信ウィンドウに表示する PNG アイコン
  • アクション コードで実行するテストに使用するファイル(アクションのテストとは異なります)

アクションの作成

Looker Action Hub サーバーの設計要件は、完全にステートレスのままであるため、アクション アプリケーションまたはサービスに情報を保存することは禁止されています。アクションの実行に必要な情報はすべて、アクション ファイルのリクエスト呼び出しで指定する必要があります。

アクション ファイルの正確な内容は、サービス、アクションの操作の種類やレベル、指定する必要があるデータまたはビジュアリゼーションの形式によって異なります。このアクションは OAuth 2.0 認証フロー用に設定することもできます。

アクション ファイルは、/execute API メソッドに基づいています。ユーザーが Looker 内で操作を実行するたびに、Looker API リクエストには DataActionRequest が渡されます。DataActionRequest: アクションの実行に必要なすべてのデータとメタデータが含まれます。また、ユーザーがアクションを実行する前に、/form メソッドを使ってユーザーから追加情報を収集することもできます。/form で指定したフィールドは、ユーザーがデータの配信先としてアクションを選択すると、[送信] または [スケジュール] ポップアップに表示されます。

Looker Action API を使用する場合、これらのパラメータの形式が異なる場合があります。

アクション ファイルを記述するときは、少なくとも次のパラメータをアクション定義に [Required] とします。

パラメータ 必須 説明 データ型
name アクションの一意の名前。これは、Looker Action Hub 内のすべてのアクションにわたって一意である必要があります。 文字列
url このアクションの /execute エンドポイントの絶対 URL。 文字列
label 人が読める形式のアクションのラベル。 文字列
supportedActionTypes アクションでサポートされているアクション タイプのリスト。有効な値は "cell""query""dashboard" です。 文字列
formURL × このアクションの /form エンドポイントの絶対 URL。 文字列
description × 操作の説明。 文字列
params × アクションの parameters の配列。各パラメータの名前、ラベル、説明を文字列形式で含めます。次のアクションは、[管理] パネルのアクションの有効化ページに表示されるフィールドです。ユーザーがアクションのリンク先にデータを配信する方法を管理するには、を指定するユーザー属性を指定します。 parameters
supportedFormats × アクションでサポートされているデータ形式のリスト。有効な値は "txt""csv""inline_json""json""json_detail", "json_detail_lite_stream", "xlsx", "html", "wysiwyg_pdf", "assembled_pdf", and "wysiwyg_png". です。 文字列
supportedFormattings × 操作でサポートされている書式設定オプションのリスト。有効な値は "formatted""unformatted" です。 文字列
supportedVisualizationFormattings × アクションでサポートされているビジュアル表示のフォーマット オプションのリスト。有効な値は "apply""noapply" です。 文字列
iconName × アクションのアイコン画像を表すデータ URI。 文字列
requiredFields × このアクションが互換性のある必須フィールドの説明のリスト。このリストに複数のエントリがある場合、アクションには複数のフィールドが必要です。 RequiredField
supportedDownloadSettings × データを無制限にストリーミングできるように、1 回限りのダウンロード URL をアクションに送信するかどうかを指定するブール値です。このパラメータは、usesStreaming パラメータ(true/false ブール値)によって設定されます。usesStreaming = true の場合、supportedDownloadSettings = urlusesStreaming = false の場合、supportedDownloadSettings = push ブール値
usesOAuth × アクションが OAuth アクションかどうかを決定するブール値。これにより、アクションに対して 1 回限りのリンクが送信され、そのアクションの特定のユーザーについて state を設定できるかどうかが決まります。 ブール値
usesStreaming × ストリーミングされたクエリ結果をアクションがサポートしているかどうかを決定するブール値。統合されたサービスのリストで、Can Stream Results Yes/No 列を確認します。結果をストリーミングするアクションには、ローカル アクション ハブ サーバーの構成が必要になる場合があります。Looker ヘルプセンターの OAuth またはストリーミングを使用するアクションのローカル アクション ハブの設定をご覧ください。 ブール値
minimumSupportedVersion × 管理パネルの Action Hub リストにアクションが表示される Looker の最小バージョン。 文字列

Looker Action Hub アクションの例は GitHub に参照用に用意されています。

サポートされているアクション タイプ

Looker では、アクションの supportedActionTypes パラメータで指定されている 3 種類のアクション(クエリ、セル、ダッシュボード)がサポートされています。

  • クエリレベルのアクション: クエリ全体を送信するアクションです。たとえば、セグメントのアクションは、クエリレベルのアクションです。
  • セルレベルのアクション: セルレベルのアクションは、データテーブル内の 1 つの特定のセルの値を送信します。このアクション タイプはデータ アクションとは異なり、action パラメータを使用してディメンションやメジャーを定義できます。Looker では、テーブル内の特定のセルから情報を送信するために、タグを使用してアクションを対応するセルにマッピングします。アクションでは、サポートするタグを requiredFields で指定する必要があります。LookML のフィールドとアクションをマッピングするには、LookML の tags パラメータを使用して、マッピング先のタグを指定する必要があります。 たとえば、Twilio メッセージ アクションでは phone タグを使用しているため、LookML デベロッパーは Twilio アクションを表示する電話番号フィールドを制御できます。
  • ダッシュボード レベルのアクション: ダッシュボード レベルのアクションでは、ダッシュボードの画像を送信できます。たとえば、SendGrid アクションでは、ダッシュボード画像をメールで送信します。

カスタム属性をカスタム アクションに追加する

カスタム アクションの場合は、アクション ファイルの params パラメータにユーザー属性を追加できます。パラメータが必要な場合、各コンテンツを send_to_integration 権限に加えて、この属性がユーザー アカウントまたは所属するユーザー グループで定義されている値を持つ必要があります。これは、コンテンツを送信またはスケジュール設定する際に宛先オプションとしてアクションを確認できるようにするためです。

ユーザー属性をアクションに追加するには:

  1. Looker 管理者は、user_attribute_param に対応するユーザー属性を作成することが必要になる場合があります(まだ存在しない場合)。
  2. アクションの宛先にコンテンツを提供する必要があるユーザーまたはユーザー グループの有効なユーザー属性を定義します。(これらのユーザーも send_to_integration 権限を持っている必要があります)。
  3. params パラメータは、Looker 管理者が [Admin] パネルの [Actions] リストから、アクションの有効化ページで構成する必要があるフォーム フィールドを表します。アクション ファイルの params パラメータに以下を含めます。
  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,
  }]

ここで、user_attribute_name は、管理パネルの [Users] セクションの [Name] フィールドで定義されているユーザー属性です。required: true は、データを配信するときにアクションを確認するために、そのユーザー属性に対して null 以外の有効な値が定義されている必要があることを意味します。sensitive: true は、ユーザー属性が暗号化され、入力後に Looker UI に表示されることはありません。複数のユーザー属性サブパラメーターを指定できます。

  1. Action Hub サーバーに更新をデプロイします。
    • Looker 管理者が新しいアクションを追加する場合、[Admin] パネルの [Actions] ページで、アクションの横にある [Enable] ボタンをクリックして、アクションを有効にする必要があります。
    • 既存のアクションを更新する場合は、[Refresh](更新)ボタンをクリックしてアクションのリストを更新します。次に、[設定] ボタンをクリックします。
  2. Looker 管理者が、アクションの設定/有効化ページで、該当のフィールドの右側にあるユーザー属性アイコン をクリックして目的のユーザー属性を選択し、ユーザー属性から情報を pull するようにアクションのフォーム フィールドを構成する必要があります。

セルレベルのアクションの requiredField パラメータ

セルレベルのアクションの場合は、モデルの LookML フィールドを構成して、アクションでサポートされるタグをアクション ファイルの requiredFields パラメータに指定することで、そのアクションの宛先にデータを提供できます。

パラメータ 必須 説明 データ型
tag × このタグのあるフィールドと一致します。 文字列
any_tag × 存在する場合、tag に優先し、指定されたタグのいずれかを持つフィールドと一致します。 文字列
all_tags × 存在する場合、tag に優先し、指定されたすべてのタグを含むフィールドと一致します。 文字列

サポートされているデータ形式

DataActionRequest クラスは、アクションで処理できるデータ配信形式を定義します。クエリレベルのアクションの場合、リクエストには、さまざまな形式の添付ファイルが含まれます。アクションでは、1 つ以上の supportedFormats を指定することも、使用可能なすべての形式を指定してユーザーが形式を選択できるようにすることもできます。セルレベルのアクションの場合、セルの値は DataActionRequest に存在します。

OAuth の操作の構成

IP 許可リスト機能が有効になっているか、Looker アクション ハブの要件を満たしていない Looker インスタンスに対して、Looker 対応のアクションを Looker アクション ハブから構成することはできません。OAuth アクションの構成について詳しくは、Looker ヘルプセンターの OAuth またはストリーミングを使用するアクションのローカル アクション ハブの設定に関する記事をご覧ください。

ユーザーが OAuth でアクションに認証されるようにアクションを構成できます。Looker Action Hub はステートレスのままにする必要がありますが、Looker Action API からのフォーム リクエストを使用して状態を適用できます。

Looker アクションの OAuth フロー

Looker Action Hub のアクションでは、Hub.Action ではなく OAuthAction を拡張して、ユーザーをアクションに対して認証するために必要な OAuth メソッドを示すブール値を設定できます。Looker で有効化または有効化されたすべての処理について、Looker はユーザーごとの、処理ごとの状態を保存しているため、アクションとユーザーの組み合わせごとに独立した OAuth イベントを持つことができます。

アクションの作成フローは通常、/form リクエストに続いて /execute リクエストが含まれます。OAuth の場合、/form リクエストには、ユーザーがターゲット サービス内で認証されているかどうかを判断するメソッドが必要です。ユーザーがすでに認証されている場合、アクションは /execute リクエストの要件に従って通常の /form を返します。ユーザーが認証されていない場合は、OAuth フローを初期化するリンクが返されます。

OAuth URL を使用して状態を保存する

Looker は、空の本文を含む HTTP POST リクエストを ActionList エンドポイントに送信します。アクションの定義で uses_oauth: true が返された場合、そのアクションは Looker からのすべての /form リクエストで 1 回限りの state_url に送信されます。state_url は、特定のアクションに対するユーザーの状態を設定する特別な 1 回限りの URL です。

ユーザーがエンドポイントで認証されていない場合、返される /form には、アクションの /oauth エンドポイントに移動する oauth_link タイプの form_field が含まれている必要があります。state_url は暗号化され、返される oauth_urlstate パラメータとして保存されます。例:

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

この例では、/oauth エンドポイントがユーザーを認証サーバーにリダイレクトしています。Dropbox OauthUrl に示すように、/oauth エンドポイントは OAuth アクションの oauthUrl(...) メソッドでリダイレクトを作成します。

暗号化された state_url を含む state パラメータを Looker Action Hub に渡す必要があります。

アクションハブのリダイレクト URI を使用して状態を保存する

/oauth エンドポイントでは、アクションハブの redirect_uri も作成され、アクションの oauthUrl(...) メソッドに渡されます。この redirect_uri の形式は /actions/src/actions/my_maction/oauth_redirect で、認証の結果が返される場合に使用されるエンドポイントです。

このエンドポイントは oauthFetchInfo(...) メソッドを呼び出します。このメソッドは、OauthAction メソッドで実装して必要な情報を抽出し、認証サーバーから受け取った状態または auth の受信または保存を試行します。

state は、暗号化された state_url を復号し、それを使用して state を Looker に POST します。次回ユーザーがそのアクションをリクエストしたときに、新たに保存された状態が Looker Action Hub に送信されます。

Looker Action Hub リポジトリにアクション ファイルを追加する

アクション ファイルが書き込まれたら、Looker Action Hub リポジトリで次のことを行います。

  1. アクション ファイル(my_action.ts など)を actions/src/actions/index.ts に追加します。

    import "./my_action/my_action.ts"
    
  2. アクションの作成に使用した Node.js パッケージの要件を追加します。例:

    yarn add aws-sdk
    yarn add express
    
  3. Looker Action Hub サーバーの Node.js の依存関係をインストールします。

    yarn install
    
  4. 作成したテストを実行します。

yarn test

アクションのテスト

完全なテストを行うには、プライベート アクション ハブ サーバーをホストして、Looker インスタンスに対するアクションを試すことができます。このサーバーは、有効な SSL 証明書を使用して公共のインターネット上にあり、Looker との間で接続または HTTPS リクエストを開始、受信できる必要があります。その場合、以下の例に示すように Heroku などのクラウドベースのプラットフォームを使用することも、前述の要件を満たすプラットフォームを使用することもできます。

ローカル アクション ハブ サーバーの設定

この例では、looker-open-source/actions/src/actions GitHub リポジトリで開発したアクションを実行し、新しい Git ブランチにコードを commit します。ブランチを使用して機能に取り組むことをおすすめします。そうすることで、コードを簡単に追跡でき、必要に応じて Looker で PR を簡単に作成できます。

  1. まず、ブランチを作成してから、作業のステージングと commit を行います。例:

    git checkout -b my-branch-name
    git add file-names
    git commit -m commit-message
    
  2. この例では、ブランチを Heroku に push するために、コマンドラインで Heroku をリモート オプションとして使用して Git リポジトリを構成します。

    heroku login
    heroku create
    git push heroku
    
  3. Heroku によって、アクション ハブをホストする公開 URL が返されます。URL にアクセスするか、heroku logs を実行して、アクション ハブが実行中であることを確認します。公開 URL を忘れた場合は、コマンドラインで次のコマンドを実行します。

    heroku info -s | grep web_url
    

    Heroku では公開 URL が返されます。例: https://my-heroku-action-server-1234.herokuapp.com

  4. コマンドラインで、アクション ハブのベース URL を設定します。

    heroku config:set ACTION_HUB_BASE_URL="https://my-heroku-action-server-1234.herokuapp.com"
    
  5. アクションハブのラベルを設定します。

    heroku config:set ACTION_HUB_LABEL="Your Action Hub"
    
  6. Looker は、認証トークンを使用して Action Hub に接続します。コマンドラインでトークンを生成します。

    heroku run yarn generate-api-key
    

    この例のように Heroku を使用しない場合は、代わりに Heroku を使用します。

    yarn generate-api-key
    

    Heroku では認証トークンが返されます。例: Authorization: Token token="abcdefg123456789"

  7. 秘密鍵を使用して Action Hub のシークレットを設定します。

    heroku config:set ACTION_HUB_SECRET="abcdefg123456789"
    

    お客様がホストするデプロイでは、ここに記載されていない環境変数の追加構成が必要になる場合があります。

  8. [Admin] > [Actions] に移動して、ローカルの Looker インスタンスでアクションを追加します。

    • アクションのリストの下部にある [Add Action Hub] をクリックします。
    • アクション ハブ URL を入力します。必要に応じて秘密鍵も入力します。
    • Looker の [Admin] メニューの [Actions] リストで、目的のアクションを見つけます。
    • [有効にする] をクリックします。

アクションで Looker から特定の種類のデータを渡す必要がある場合は、適切な tags パラメータを含めるようにモデルを構成してください。

これで、アクションをテストする準備が整いました。

ダッシュボード レベルとクエリレベルのアクションのテスト

Looker インスタンスで、必要に応じてタグを使用して LookML モデルを構成します。Look を作成、保存します。保存済みの Look で、右上のメニューをクリックし、操作の宛先として [送信] を選択します。配信用のフォームがある場合は、Looker によって [Sent] ウィンドウにレンダリングされます。

[テストを送信] をクリックしてデータを送信します。操作のステータスは [管理] パネルの [スケジューラの履歴] に表示されます。アクションでエラーが発生すると、[Admin] パネルに表示され、アクションを送信したユーザーに対してエラー メッセージが Looker から送信されます。

セルレベルのアクションのテスト

LookML フィールドを設定して、アクションに適切なタグを設定します。Looker インスタンスで、そのフィールドを含むクエリを実行します。データ表で該当の項目を探します。セル内の [...] をクリックし、プルダウン メニューから [送信] を選択します。エラーが発生した場合は、エラーに対処した後にデータテーブルを完全に更新する必要があります。

カスタム アクションの公開と有効化

カスタム操作には、次の 2 つの公開オプションがあります。

アクションを公開したら、[管理] パネルの [操作] ページで、このアクションを有効にできます。

Looker Action Hub へのパブリッシュ

このアプローチは最も簡単で、Looker を使用するすべてのユーザーに提供したいあらゆるアクションに適しています。

アクションをテストしたら、GitHub の looker-open-source/actions リポジトリに PR を送信できます。

  1. 次のコマンドを入力します。

    git push <your fork> <your development branch>
    
  2. pull リクエストを作成し、looker-open-source/actions リポジトリをターゲットとして使用します。

  3. Looker Marketplace と Action Hub の提出フォームに記入します。フォームの要件の詳細については、Looker Marketplace へのコンテンツの送信をご覧ください。

    Looker がアクション コードを確認します。Google は、PR を拒否する権限を有しますが、お客様が抱える問題へのサポートや、改善のための提案を行うことができます。次に、コードを looker-open-source/actions リポジトリにマージして、actions.looker.com にデプロイします。デプロイ後、すべての Looker ユーザーがコードを利用できるようになります。

  4. Looker インスタンスでアクションを有効にして、データ配信のオプションとして表示されるようにします。

プライベート アクション ハブサーバーへの公開

会社やユースケース専用のカスタム操作がある場合は、looker-open-source/actions リポジトリに操作を追加しないでください。代わりに、アクションのテストに使用したのと同じ Node.js フレームワークを使用して、プライベート アクション ハブを作成します。

社内アクション ハブ サーバーは、お客様独自のインフラストラクチャ上に、またはクラウドベースのアプリケーション プラットフォーム(この例では Heroku を使用)を使用して設定できます。デプロイする前に、Looker Action Hub をプライベート アクション ハブ サーバーにフォークするのを忘れないでください。

アクションで使用する LookML モデルの構成

カスタム アクションと Looker Action Hub で利用可能なアクションの両方に関して、LookML モデルの tags パラメータを使用して、関連するデータ フィールドを特定する必要があります。

[管理] パネルの [操作] ページには、サービスに必要なタグに関する情報が表示されます(存在する場合)。例:

Zapier との統合では、あらゆるクエリで使用できると明記されています。LookML モデルのフィールドに tags パラメータを追加する必要はありません。

一方、Twilio Send Message サービスは電話番号のリストにメッセージを送信します。電話番号フィールドを含むクエリが必要です。また、tags パラメータを使用して、電話番号が含まれているフィールドを特定します。LookML で電話番号フィールドを識別するには、そのフィールドに tags: ["phone"] を指定します。LookMLでは、電話番号フィールドは次のようになります。

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

tags パラメータを使用して LookML モデルの必須フィールドを特定し、このサービスを使用してユーザーがデータを送信できるようにします。

アクションでデータを提供する

データは、操作のレベルに応じて、いくつかの方法で配信されます。アクションは、フィールド レベル、クエリレベル、ダッシュボード レベルで機能し、1 つまたは複数のレベルで機能します。[管理] パネルの [操作] ページに表示されている各操作には、使い方の説明が表示されます。次のことが可能です。

モバイルデータの配信

フィールド レベルのアクションは、[管理] パネルの [アクション] ページで、「アクションはフィールドで使用できる」などの説明で示されています。または、統合サービスのリストの [フィールドから使用可能] 列に [はい] と表示されている場合。

フィールド レベルのアクションは、指定されたサービスにデータのセルを配信するように設計されています。アクションはデータ アクションと同様に機能しますが、Looker Action API を介して提供されます。ディメンションまたはメジャーに LookML パラメータを定義するには、action ではなく、統合サービスのリストの [このアクションのタグ] 列に記載されている情報を関連するフィールドにタグ付けして、LookML モデルを設定する必要があります。

LookML モデルでサービスとタグ付けのフィールドを有効にすると、以下のことができます。

  1. Look、ダッシュボード、または Explore で提供するデータを表示します。サービスで「アクション」を「...」のタグが付けられたクエリで使用できる場合、クエリまたはダッシュボードのタイルの 1 つに、必須タグを含む 1 つ以上のフィールドを含める必要があります。

  2. Look、ダッシュボード タイル、Explore の各セルのタグ付きフィールドには、省略記号(...)で示されるプルダウン リストが含まれます。省略記号をクリックすると、そのリンクで使用できる操作が表示されます。

  3. [操作] セクションで、行データを受信するサービスをクリックします。

ダッシュボードまたはクエリデータの提供

クエリレベルのアクションは、[管理] パネルの [アクション] ページに、「&Action」は「...」というタグが付けられたクエリで使用できます。アクションは任意のクエリで使用できます。統合されたサービスのリストの [Can Send or Schedule] 列に基づいて、Look または Explore 内のすべての行を配信できます。クエリレベルのアクションは、Explore または Look からのクエリ結果全体を、指定したサービスに配信するように設計されています。

ダッシュボード単位の操作は、[管理] パネルの [操作] ページで、説明に「アクションはどのダッシュボードでも使用できます」という説明が付いています。統合されたサービスのリストの [Can Send or Schedule] 列に基づいて、ダッシュボードを配信できます。ダッシュボード レベルのアクションは、指定されたサービスにダッシュボードを提供するように設計されています。

サービスを有効にして、必要に応じてLookMLモデルでフィールドにタグを付けます。

Look または Explore を提供するには、Look と Explore の配信に関するドキュメント ページをご覧ください。

ダッシュボードを提供する方法については、以前のダッシュボードの配信ダッシュボードのスケジュール設定と送信のドキュメントをご覧ください。