Berbagi data melalui hub tindakan

Selain mengirimkan konten ke tujuan bawaan Looker, Anda dapat menggunakan tindakan — yang juga disebut integrasi — untuk mengirimkan konten ke layanan pihak ketiga yang terintegrasi dengan Looker melalui server hub tindakan.

Halaman ini akan memandu Anda dalam opsi untuk membuat tindakan kustom yang dapat Anda minta untuk ditambahkan ke Hub Tindakan Looker atau ditambahkan ke server hub tindakan pribadi Anda sendiri. Halaman ini juga menjelaskan cara menyiapkan server hub tindakan lokal untuk menguji tindakan kustom atau menjalankan server hub tindakan pribadi.

Untuk mulai menggunakan tindakan, Anda dapat:

Setelah tindakan ditambahkan ke hub tindakan, admin Looker dapat mengaktifkan tindakan tersebut untuk digunakan dalam menayangkan konten Looker ke layanan tersebut.

Anda juga dapat menyiapkan beberapa hub tindakan jika ingin menggunakan integrasi Looker melalui Hub Tindakan Looker dan juga menghosting tindakan pribadi atau kustom Anda sendiri. Tindakan untuk setiap hub tindakan akan muncul di halaman Tindakan pada panel Admin.

Looker Action Hub

Looker menghosting dan menyediakan Looker Action Hub, server stateless yang menerapkan Action API Looker dan mengekspos tindakan populer. Data apa pun yang dikirim pengguna Anda menggunakan tindakan akan diproses sementara di server Hub Tindakan Looker, bukan di instance Looker Anda.

Looker sudah terintegrasi dengan beberapa layanan. Lihat halaman dokumentasi Setelan admin - Tindakan untuk mempelajari cara mengaktifkan layanan yang ada ini.

Persyaratan Looker Action Hub

Looker Action Hub harus dapat mengirim dan menerima permintaan API dengan cara berikut:

Jika deployment Looker Anda tidak dapat mengakomodasi permintaan ini atau jika fitur Daftar yang Diizinkan IP diaktifkan di instance Looker Anda, pertimbangkan untuk menyiapkan server hub tindakan lokal untuk menayangkan integrasi Looker pribadi atau tindakan kustom. Admin instance yang dihosting pelanggan juga dapat men-deploy server tindakan lokal khusus untuk tindakan OAuth dan streaming.

Permintaan dari instance Looker ke jaringan Looker Action Hub

Permintaan ke actions.looker.com di-resolve ke alamat IP dinamis. Permintaan keluar dari instance Looker harus dapat menjangkau endpoint berikut:

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

dengan name adalah nama terprogram tindakan.

Permintaan dari browser pengguna Looker ke jaringan Looker Action Hub

Browser pengguna Looker harus dapat membuat permintaan ke endpoint Looker Action Hub berikut (untuk OAuth):

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

dengan name adalah nama terprogram tindakan.

Permintaan dari jaringan Looker Action Hub ke instance Looker

Hub Tindakan Looker harus membuat permintaan ke instance Looker untuk tindakan yang mendukung hasil streaming atau yang menggunakan OAuth.

Tindakan streaming memungkinkan tindakan menggunakan kueri yang memberikan Semua Hasil. Tindakan yang mendukung OAuth menggunakan autentikasi per pengguna melalui alur OAuth 2.0. Tindakan OAuth harus menyimpan kredensial pengguna di instance Looker sumbernya karena Hub Tindakan Looker tidak memiliki status dan bersifat multi-tenant, serta tidak akan menyimpan kredensial khusus pengguna dalam bentuk apa pun.

Permintaan dari Hub Tindakan Looker ke instance Looker menggunakan format berikut:

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

URL ini dibuat secara langsung di instance Looker sebelum dikirim ke Hub Tindakan Looker. Oleh karena itu, Hub Tindakan Looker harus dapat menyelesaikan <host_looker_url> ke alamat IP dan membuat permintaan ke jaringan tempat instance Looker Anda berada.

Hub Tindakan Looker memiliki alamat IP keluar statis yang selalu digunakan untuk mengirim permintaan: 35.153.89.114, 104.196.138.163, dan 35.169.42.87. Admin instance yang dihosting Looker yang telah mengaktifkan daftar yang diizinkan IP harus menambahkan alamat IP ini untuk menggunakan tindakan apa pun yang mendukung hasil streaming atau yang menggunakan OAuth.

Pertimbangan untuk instance yang dihosting oleh pelanggan

Untuk menggunakan integrasi Looker, Hub Tindakan Looker harus dapat berkomunikasi dengan instance Looker dan memenuhi persyaratan Hub Tindakan Looker. Hal ini tidak selalu dapat dilakukan dengan instance Looker yang dihosting oleh pelanggan karena berbagai alasan. Jika komunikasi dua arah antara Hub Tindakan Looker dan instance Looker tidak memungkinkan, Hub Tindakan Looker dapat menunjukkan perilaku yang tidak terduga atau tidak diinginkan, seperti kueri yang terhenti atau tindakan yang tidak tersedia.

Untuk mengatasi potensi masalah Looker Action Hub yang tidak dapat berkomunikasi dengan instance Looker, admin Looker dapat menerapkan salah satu solusi yang ditampilkan nanti di halaman ini. Solusi atau kombinasi solusi yang tepat akan bergantung pada arsitektur instance Looker:

  • Jika instance yang dihosting pelanggan tidak dapat diselesaikan oleh Hub Tindakan Looker — yaitu, Hub Tindakan Looker tidak dapat menerima permintaan dari instance Looker — admin Looker dapat menghubungi spesialis penjualan Google Cloud untuk mengaktifkan fitur lisensi public_host_url. Fitur lisensi tersebut menampilkan opsi startup --public-host-url, yang memungkinkan admin menentukan nama host <public_host_url> yang dapat diselesaikan dan berbeda dari <host_looker_url> instance. public_host_url menggantikan nama host untuk beberapa URL callback Hub Tindakan Looker tertentu dan merutekan URL callback tersebut melalui proxy terbalik yang memiliki public_host_url sebagai nama yang dapat di-resolve secara publik. Proxy terbalik ini hanya menerima permintaan dari alamat IP keluar statis untuk Hub Tindakan Looker; admin Looker yang menggunakan metode ini harus menambahkan alamat IP keluar yang digunakan Hub Tindakan Looker untuk membuat permintaan ke instance Looker ke daftar yang diizinkan: 35.153.89.114, 104.196.138.163, dan 35.169.42.87.

  • Jika URL instance yang dihosting pelanggan dapat diselesaikan oleh instance Looker, tetapi Hub Tindakan Looker tidak dapat mengirim permintaan ke instance Looker, pengguna mungkin tidak dapat mengonfigurasi atau menggunakan tindakan yang mendukung hasil streaming atau yang menggunakan OAuth. Untuk mengatasinya, admin Looker harus menambahkan alamat IP keluar yang digunakan Looker Action Hub untuk membuat permintaan ke instance Looker ke daftar yang diizinkan: 35.153.89.114, 104.196.138.163, dan 35.169.42.87.

  • Jika kedua solusi yang disebutkan di atas tidak sesuai untuk arsitektur instance Looker, admin Looker dapat men-deploy hub tindakan yang dihosting pelanggan untuk semua tindakan atau hanya untuk tindakan yang mendukung hasil streaming atau yang menggunakan OAuth.

  • Untuk men-deploy hub tindakan yang dihosting pelanggan, Anda harus memastikan bahwa file JAR dihosting di server publik sehingga Hub Tindakan Looker dapat berkomunikasi dengannya. Namun, solusi ini tidak direkomendasikan.

Selain itu, tindakan OAuth dan streaming mungkin tidak dapat digunakan di instance Looker yang dihosting pelanggan jika instance tersebut menggunakan sertifikat SSL yang dikeluarkan oleh Certificate Authority (CA) yang tidak ada dalam daftar sertifikat root ini.

Membangun tindakan kustom

Bagian ini menjelaskan langkah-langkah yang harus diikuti untuk menulis dan menguji tindakan kustom menggunakan kode sumber Hub Tindakan Looker. Untuk melihat contoh kode fungsional, periksa tindakan yang ada di repo looker-open-source/actions di GitHub.

Anda dapat membuat tindakan kustom dengan:

  1. Menyiapkan repo pengembangan
  2. Menulis tindakan Anda
  3. Menguji tindakan Anda
  4. Mempublikasikan dan mengaktifkan tindakan Anda, baik di Hub Tindakan Looker maupun di server hub tindakan pribadi Anda sendiri

Seperti halnya tindakan apa pun, Anda mungkin perlu mengonfigurasi model LookML dengan parameter tertentu sebelum dapat menggunakan tindakan untuk menampilkan data Anda.

Menyiapkan repo pengembangan

Hub Tindakan Looker adalah server Node.js yang ditulis dalam TypeScript, sebuah lapisan kecil di atas JavaScript modern yang menambahkan informasi jenis untuk membantu mendeteksi error pemrograman. Jika Anda sudah memahami JavaScript, sebagian besar bahasa TypeScript akan terasa familiar bagi Anda.

Untuk menjalankan Looker Action Hub, Anda memerlukan software berikut:

  • Node.js
  • Node Version Manager (NVM — untuk memilih versi Node.js yang tepat)
  • Yarn (untuk mengelola dependensi)

Setelah menginstal software yang diperlukan, Anda siap menyiapkan lingkungan pengembangan. Contoh berikut menggunakan Git.

  1. Buat clone repo looker-open-source/actions secara lokal:

    git clone git@github.com:looker-open-source/actions.git
    
  2. Buat direktori dengan nama tindakan Anda di direktori actions/src/actions. Contoh:

    mkdir actions/src/actions/my_action
    
  3. Mulai isi direktori Anda dengan file yang diperlukan untuk menjalankan tindakan. Lihat repo GitHub tindakan untuk mengetahui contoh struktur file.

Looker merekomendasikan agar Anda juga menambahkan hal berikut:

  • README untuk menjelaskan tujuan dan cara autentikasi untuk tindakan Anda
  • Ikon PNG untuk ditampilkan di Hub Tindakan Looker (atau hub tindakan pribadi di instance Looker Anda) dan di jendela pengiriman data Looker
  • File apa pun untuk pengujian yang ingin Anda jalankan pada kode tindakan Anda — ini berbeda dengan menguji tindakan Anda

Menulis tindakan

Persyaratan desain untuk server Hub Tindakan Looker adalah agar server tersebut tetap sepenuhnya stateless, sehingga penyimpanan informasi apa pun di aplikasi atau layanan tindakan tidak diizinkan. Setiap informasi yang diperlukan untuk menyelesaikan tindakan harus diberikan dalam panggilan permintaan file tindakan.

Isi persis file tindakan akan bervariasi, bergantung pada layanan, jenis atau tingkat tindakan yang dilakukan, dan format data atau visualisasi yang perlu ditentukan. Tindakan juga dapat dikonfigurasi untuk alur otorisasi OAuth 2.0.

File tindakan didasarkan pada metode API /execute. Permintaan Looker API meneruskan DataActionRequest setiap kali pengguna menjalankan tindakan dalam Looker. DataActionRequest berisi semua data dan metadata yang diperlukan untuk menjalankan tindakan Anda. Metode /form juga tersedia, yang dapat digunakan untuk mengumpulkan informasi tambahan dari pengguna sebelum mereka menjalankan tindakan. Kolom yang Anda tentukan di /form akan muncul di pop-up Kirim atau Jadwalkan saat pengguna memilih tindakan sebagai tujuan pengiriman data mereka.

Saat menulis file tindakan, sertakan setidaknya parameter berikut yang ditandai Wajib dalam definisi tindakan Anda:

Parameter Wajib Deskripsi Jenis data
name Ya Nama unik untuk tindakan. ID ini harus unik di semua tindakan di Hub Tindakan Looker. string
url Ya URL absolut endpoint /execute untuk tindakan ini. string
label Ya Label yang dapat dibaca manusia untuk tindakan tersebut. string
supportedActionTypes Ya Daftar jenis tindakan yang didukung tindakan. Nilai yang valid adalah "cell", "query", dan "dashboard". string
formURL Tidak URL absolut endpoint /form untuk tindakan ini. string
description Tidak Deskripsi tindakan. string
params Tidak Array parameters untuk tindakan. Sertakan nama, label, dan deskripsi dalam format string untuk setiap parameter. Kolom ini adalah kolom yang muncul di halaman pengaktifan tindakan di panel Admin. Untuk mengelola cara pengguna dapat mengirimkan data ke tujuan tindakan, Anda dapat menentukan atribut pengguna yang nilainya harus ditentukan oleh pengguna. parameters
supportedFormats Tidak Daftar format data yang didukung tindakan. Nilai yang valid adalah "txt", "csv", "inline_json", "json", "json_detail", "json_detail_lite_stream", "xlsx", "html", "wysiwyg_pdf", "assembled_pdf", and "wysiwyg_png". string
supportedFormattings Tidak Daftar opsi pemformatan yang didukung tindakan. Nilai yang valid adalah "formatted" dan "unformatted". string
supportedVisualizationFormattings Tidak Daftar opsi pemformatan visualisasi yang didukung tindakan. Nilai yang valid adalah "apply" dan "noapply". string
iconName Tidak URI Data yang merepresentasikan gambar ikon untuk tindakan. string
requiredFields Tidak Daftar deskripsi kolom wajib diisi yang kompatibel dengan tindakan ini. Jika ada beberapa entri dalam daftar ini, tindakan memerlukan lebih dari satu kolom. RequiredField
supportedDownloadSettings Tidak Boolean yang menentukan apakah tindakan akan dikirimi URL download sekali pakai untuk memfasilitasi streaming data tanpa batas. Parameter ditetapkan oleh parameter usesStreaming, yang merupakan Boolean true/false. Jika usesStreaming = true, maka supportedDownloadSettings = url. Jika usesStreaming = false, maka supportedDownloadSettings = push. Boolean
usesOAuth Tidak Nilai Boolean yang menentukan apakah tindakan adalah tindakan OAuth. Hal ini akan menentukan apakah tindakan akan dikirimi link penggunaan satu kali untuk dapat menyetel state bagi pengguna tertentu untuk tindakan ini. Boolean
usesStreaming Tidak Nilai Boolean yang menentukan apakah tindakan mendukung hasil kueri yang di-streaming. Periksa kolom Menggunakan streaming data (Ya/Tidak) di daftar layanan terintegrasi. Tindakan yang melakukan streaming hasil mungkin memerlukan konfigurasi server hub tindakan lokal. Lihat halaman Praktik Terbaik Menyiapkan hub tindakan lokal untuk tindakan yang menggunakan OAuth atau streaming untuk mengetahui informasi selengkapnya. Boolean
minimumSupportedVersion Tidak Versi Looker minimum tempat tindakan akan muncul dalam daftar Hub Tindakan di panel Admin. string

Contoh dari tindakan Hub Tindakan Looker ada di GitHub untuk referensi.

Jenis tindakan yang didukung

Looker mendukung tiga jenis tindakan, seperti yang ditentukan dalam parameter supportedActionTypes tindakan Anda: kueri, sel, dan dasbor.

  • Tindakan tingkat kueri: Ini adalah tindakan yang mengirimkan seluruh kueri. Misalnya, Tindakan segmen adalah tindakan tingkat kueri.
  • Tindakan tingkat sel: Tindakan tingkat sel mengirimkan nilai satu sel tertentu dalam tabel data. Jenis tindakan ini berbeda dengan tindakan data, yang dapat ditentukan untuk dimensi atau ukuran menggunakan parameter action. Untuk mengirim informasi dari sel tertentu dalam tabel, Looker menggunakan tag untuk memetakan tindakan ke sel yang sesuai. Tindakan perlu menentukan tag mana yang didukungnya di requiredFields. Untuk memetakan tindakan dan kolom, kolom di LookML perlu menentukan tag mana yang dipetakan dengan parameter LookML tags. Misalnya, tindakan Pesan Twilio menggunakan tag phone sehingga developer LookML dapat mengontrol kolom nomor telepon tempat tindakan Twilio akan muncul.
  • Tindakan tingkat dasbor: Tindakan tingkat dasbor mendukung pengiriman gambar dasbor. Misalnya, tindakan SendGrid mengirim gambar dasbor melalui email.

Menambahkan atribut pengguna ke tindakan kustom

Untuk tindakan kustom, Anda dapat menambahkan atribut pengguna dalam parameter params file tindakan. Jika parameter diperlukan, setiap pengguna harus memiliki nilai untuk atribut ini yang ditentukan di akun pengguna mereka atau untuk grup pengguna yang mereka ikuti, selain izin send_to_integration, untuk melihat tindakan sebagai opsi tujuan saat mengirim atau menjadwalkan konten.

Untuk menambahkan atribut pengguna ke tindakan Anda:

  1. Admin Looker mungkin perlu membuat atribut pengguna yang sesuai dengan user_attribute_param jika belum ada.
  2. Tentukan nilai yang valid untuk atribut pengguna bagi pengguna atau grup pengguna yang perlu mengirimkan konten ke tujuan tindakan Anda. (Pengguna ini juga harus memiliki izin send_to_integration.)
  3. Parameter params merepresentasikan kolom formulir yang harus dikonfigurasi oleh admin Looker di halaman pengaktifan tindakan dari daftar Tindakan di panel Admin. Dalam parameter params file tindakan Anda, sertakan hal berikut:
  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,
  }]

dengan user_attribute_name adalah atribut pengguna yang ditentukan di kolom Nama di halaman Atribut Pengguna di bagian Pengguna pada panel Admin, required: true berarti pengguna harus memiliki nilai yang tidak null dan valid yang ditentukan untuk atribut pengguna tersebut agar dapat melihat tindakan saat data dikirimkan, dan sensitive: true berarti atribut pengguna dienkripsi dan tidak pernah ditampilkan di UI Looker setelah dimasukkan. Anda dapat menentukan beberapa subparameter atribut pengguna.

  1. Deploy update Anda ke server hub tindakan.
    • Jika Anda menambahkan tindakan baru, admin Looker harus mengaktifkan tindakan tersebut dengan mengklik tombol Aktifkan di samping tindakan pada halaman Tindakan di panel Admin.
    • Jika Anda memperbarui tindakan yang ada, perbarui daftar tindakan dengan mengklik tombol Perbarui. Selanjutnya, klik tombol Setelan.
  2. Di halaman setelan/pengaktifan tindakan, admin Looker harus mengonfigurasi kolom formulir tindakan untuk menarik informasi dari atribut pengguna dengan mengklik ikon atribut pengguna di sebelah kanan kolom yang sesuai dan memilih atribut pengguna yang diinginkan.

Parameter requiredField dalam tindakan tingkat sel

Untuk tindakan tingkat sel, Anda dapat mengonfigurasi kolom LookML model untuk mengirimkan data ke tujuan tindakan tersebut dengan menentukan tag yang didukung tindakan Anda dalam parameter requiredFields file tindakan.

Parameter Wajib Deskripsi Jenis Data
tag Tidak Jika ada, cocok dengan kolom yang memiliki tag ini. string
any_tag Tidak Jika ada, akan menggantikan tag dan cocok dengan kolom yang memiliki salah satu tag yang disediakan. string
all_tags Tidak Jika ada, akan menggantikan tag dan mencocokkan kolom yang memiliki semua tag yang diberikan. string

Format data yang didukung

Class DataActionRequest menentukan format pengiriman data yang tersedia agar tindakan dapat berfungsi. Untuk tindakan tingkat kueri, permintaan akan berisi lampiran yang dapat berupa beberapa format. Tindakan dapat menentukan satu atau beberapa supportedFormats atau memungkinkan pengguna memilih format dengan menentukan semua kemungkinan format. Untuk tindakan tingkat sel, nilai sel akan ada di DataActionRequest.

Mengonfigurasi tindakan untuk OAuth

Anda dapat mengonfigurasi tindakan sehingga pengguna dapat melakukan autentikasi ke tindakan dengan OAuth. Meskipun Looker Action Hub harus tetap tanpa status, Anda dapat menerapkan status melalui permintaan formulir dari Looker Action API.

Alur OAuth tindakan Looker

Untuk tindakan di Hub Tindakan Looker, Anda dapat memperluas OAuthAction, bukan Hub.Action, untuk menetapkan Boolean yang menunjukkan metode OAuth mana yang diperlukan untuk mengautentikasi pengguna ke dalam tindakan. Untuk setiap tindakan yang diaktifkan untuk OAuth atau diaktifkan untuk status, Looker menyimpan status per pengguna, per tindakan, sehingga setiap kombinasi tindakan dan pengguna memiliki peristiwa OAuth yang independen.

Alur untuk membuat tindakan biasanya melibatkan permintaan /form yang diikuti dengan permintaan /execute. Untuk OAuth, permintaan /form harus memiliki metode untuk menentukan apakah pengguna diautentikasi dalam layanan target. Jika pengguna sudah diautentikasi, tindakan harus menampilkan /form normal sesuai dengan apa pun yang diperlukan oleh permintaan /execute. Jika pengguna tidak diautentikasi, tindakan akan menampilkan link yang akan memulai alur OAuth.

Menyimpan status dengan URL OAuth

Looker akan mengirim permintaan POST HTTP dengan isi kosong ke endpoint ActionList. Jika tindakan menampilkan uses_oauth: true dalam definisinya, maka tindakan akan dikirimi state_url sekali pakai di setiap permintaan /form dari Looker. state_url adalah URL khusus sekali pakai yang menetapkan status pengguna untuk tindakan tertentu.

Jika pengguna tidak diautentikasi dengan endpoint, /form yang ditampilkan harus berisi form_field jenis oauth_link yang menuju ke endpoint /oauth suatu tindakan. state_url harus dienkripsi dan disimpan sebagai parameter state dalam oauth_url yang ditampilkan. Contoh:

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

Dalam contoh ini, endpoint /oauth mengalihkan pengguna ke server autentikasi. Endpoint /oauth membuat pengalihan dalam metode oauthUrl(...) pada tindakan OAuth, seperti yang ditunjukkan dalam Dropbox OauthUrl.

Parameter state yang berisi state_url terenkripsi tersebut harus diteruskan ke Hub Tindakan Looker.

Menyimpan status dengan URI pengalihan hub tindakan

Di endpoint /oauth, redirect_uri untuk hub tindakan juga dibuat dan diteruskan ke metode oauthUrl(...) tindakan. redirect_uri ini berbentuk /actions/src/actions/my_maction/oauth_redirect dan merupakan endpoint yang digunakan jika autentikasi menampilkan hasil.

Endpoint ini akan memanggil metode oauthFetchInfo(...), yang harus diterapkan oleh metode OauthAction untuk mengekstrak informasi yang diperlukan dan mencoba menerima atau menyimpan status atau auth yang diterima dari server autentikasi.

state mendekripsi state_url terenkripsi dan menggunakannya untuk mem-POSTING state kembali ke Looker. Lain kali saat pengguna membuat permintaan ke tindakan tersebut, status yang baru disimpan akan dikirim ke Hub Tindakan Looker.

Menambahkan file tindakan Anda ke repo Looker Action Hub

Setelah file tindakan Anda ditulis, di repo Looker Action Hub:

  1. Tambahkan file tindakan (misalnya, my_action.ts) ke actions/src/actions/index.ts.

    import "./my_action/my_action.ts"
    
  2. Tambahkan persyaratan paket Node.js yang Anda gunakan dalam penulisan tindakan. Contoh:

    yarn add aws-sdk
    yarn add express
    
  3. Instal dependensi Node.js server Looker Action Hub.

    yarn install
    
  4. Jalankan pengujian apa pun yang Anda tulis.

yarn test

Menguji tindakan

Untuk pengujian lengkap, Anda dapat mencoba tindakan terhadap instance Looker dengan menghosting server hub tindakan pribadi. Server ini harus berada di internet publik dengan sertifikat SSL yang valid dan harus dapat memulai dan menerima koneksi atau permintaan HTTPS ke dan dari Looker. Untuk melakukannya, Anda dapat menggunakan platform berbasis cloud seperti Heroku, seperti yang ditunjukkan dalam contoh berikut. Atau, Anda dapat menggunakan platform apa pun yang memenuhi persyaratan yang disebutkan di atas.

Menyiapkan server hub tindakan lokal

Dalam contoh ini, kita akan mengambil tindakan yang kita kembangkan di repo GitHub looker-open-source/actions/src/actions dan akan melakukan commit kode ke cabang Git baru. Sebaiknya Anda mengerjakan fitur menggunakan cabang sehingga Anda dapat dengan mudah melacak kode dan, jika diinginkan, membuat PR dengan Looker.

  1. Untuk memulai, buat cabang Anda, lalu siapkan dan lakukan commit pada pekerjaan Anda. Contoh:

    git checkout -b my-branch-name
    git add file-names
    git commit -m commit-message
    
  2. Untuk contoh ini, guna mengirimkan cabang ke Heroku, konfigurasi repositori Git Anda dengan Heroku sebagai opsi jarak jauh di command line Anda:

    heroku login
    heroku create
    git push heroku
    
  3. Heroku akan menampilkan URL publik yang kini menghosting hub tindakan untuk Anda gunakan. Buka URL atau jalankan heroku logs untuk mengonfirmasi bahwa hub tindakan sedang berjalan. Jika lupa URL publik, Anda dapat menjalankan perintah berikut di command line:

    heroku info -s | grep web_url
    

    Heroku akan menampilkan URL publik Anda. Contoh: https://my-heroku-action-server-1234.herokuapp.com

  4. Di command line, tetapkan URL dasar hub tindakan Anda:

    heroku config:set ACTION_HUB_BASE_URL="https://my-heroku-action-server-1234.herokuapp.com"
    
  5. Tetapkan label hub tindakan Anda:

    heroku config:set ACTION_HUB_LABEL="Your Action Hub"
    
  6. Looker menggunakan token otorisasi untuk terhubung ke hub tindakan. Buat token di command line Anda:

    heroku run yarn generate-api-key
    

    Jika Anda tidak menggunakan Heroku, seperti yang kami lakukan dalam contoh ini, gunakan:

    yarn generate-api-key
    

    Heroku akan menampilkan token otorisasi Anda. Contoh: Authorization: Token token="abcdefg123456789"

  7. Tetapkan rahasia hub tindakan Anda menggunakan kunci rahasia:

    heroku config:set ACTION_HUB_SECRET="abcdefg123456789"
    

    Deployment yang dihosting pelanggan mungkin memerlukan konfigurasi variabel lingkungan tambahan yang tidak didokumentasikan di sini.

  8. Tambahkan tindakan di instance Looker lokal Anda dengan membuka Admin > Tindakan.

    • Di bagian bawah daftar tindakan, klik Tambahkan Hub Tindakan.
    • Masukkan URL Action Hub dan, secara opsional, Kunci Rahasia.
    • Temukan tindakan Anda di daftar Tindakan dalam menu Admin Looker.
    • Klik Enable.

Jika tindakan Anda memerlukan jenis data tertentu yang diteruskan dari Looker, pastikan untuk mengonfigurasi model apa pun agar menyertakan parameter tags yang sesuai.

Sekarang Anda siap menguji tindakan.

Menguji tindakan tingkat dasbor dan tingkat kueri

Di instance Looker, konfigurasi model LookML Anda dengan tag, jika perlu. Buat dan simpan Look. Pada Look yang disimpan, klik menu kanan atas, lalu pilih Kirim dengan tindakan Anda sebagai tujuan. Jika Anda memiliki formulir untuk pengiriman, Looker akan merendernya di jendela Dikirim.

Klik Kirim Uji untuk mengirimkan data. Status tindakan akan muncul di Histori Penjadwal di panel Admin. Jika tindakan Anda mengalami error, error tersebut akan ditampilkan di panel Admin, dan Looker akan mengirim email berisi pesan error kepada pengguna yang mengirimkan tindakan tersebut.

Menguji tindakan tingkat sel

Siapkan kolom LookML dengan tag yang tepat untuk tindakan Anda. Di instance Looker Anda, jalankan kueri yang menyertakan kolom tersebut. Temukan kolom di tabel data. Klik di sel, lalu pilih Kirim dari menu drop-down. Jika menerima error, Anda harus melakukan refresh penuh pada tabel data setelah mengatasi error tersebut.

Memublikasikan dan mengaktifkan tindakan kustom

Ada dua opsi publikasi untuk tindakan kustom:

Setelah dipublikasikan, Anda dapat mengaktifkan tindakan dari halaman Tindakan di panel Admin.

Memublikasikan ke Looker Action Hub

Pendekatan ini adalah yang paling mudah dan berfungsi untuk tindakan apa pun yang ingin Anda sediakan bagi siapa saja yang menggunakan Looker.

Setelah tindakan Anda diuji, Anda dapat mengirimkan PR ke repo looker-open-source/actions di GitHub.

  1. Masukkan perintah berikut:

    git push <your fork> <your development branch>
    
  2. Buat permintaan pull Anda dengan repo looker-open-source/actions sebagai target.

  3. Isi Formulir Pengiriman Looker Marketplace & Hub Tindakan. Untuk mengetahui informasi selengkapnya tentang persyaratan formulir, lihat Mengirimkan konten ke Looker Marketplace.

    Looker akan meninjau kode tindakan Anda. Kami berhak menolak PR Anda, tetapi dapat membantu Anda mengatasi masalah yang Anda alami dan memberikan saran untuk peningkatan. Kemudian, kita menggabungkan kode ke repo looker-open-source/actions dan men-deploy-nya ke actions.looker.com. Setelah di-deploy, kode akan tersedia untuk semua pelanggan Looker.

  4. Aktifkan tindakan di instance Looker Anda, sehingga tindakan tersebut akan muncul sebagai opsi untuk penyampaian data.

Memublikasikan ke server hub tindakan pribadi

Jika Anda memiliki tindakan kustom yang bersifat pribadi untuk perusahaan atau kasus penggunaan Anda, Anda tidak boleh menambahkan tindakan Anda ke repo looker-open-source/actions. Sebagai gantinya, buat hub tindakan pribadi menggunakan framework Node.js yang sama dengan yang Anda gunakan untuk menguji tindakan.

Anda dapat menyiapkan server hub tindakan internal di infrastruktur Anda sendiri atau menggunakan platform aplikasi berbasis cloud (contoh kami menggunakan Heroku). Jangan lupa untuk membuat fork Looker Action Hub ke server hub tindakan pribadi Anda sebelum deployment.

Mengonfigurasi model LookML untuk digunakan dengan tindakan

Untuk tindakan kustom dan tindakan yang tersedia dari Hub Tindakan Looker, Anda harus mengidentifikasi kolom data yang relevan dengan menggunakan parameter tags dalam model LookML Anda. Halaman Tindakan di panel Admin akan memberikan informasi tentang tag yang diperlukan untuk layanan, jika ada.

Misalnya, integrasi Twilio Send Message mengirim pesan ke daftar nomor telepon. Di halaman Tindakan di panel Admin, integrasi menampilkan subteks "Tindakan dapat digunakan dengan kueri yang memiliki kolom yang diberi tag phone".

Artinya, layanan Twilio Send Message memerlukan kueri yang menyertakan kolom nomor telepon dan yang menggunakan parameter tags untuk mengidentifikasi kolom mana dalam kueri yang berisi nomor telepon. Anda mengidentifikasi kolom nomor telepon di LookML dengan menentukan tags: ["phone"] untuk kolom tersebut. LookML Anda untuk kolom nomor telepon mungkin terlihat seperti ini:

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

Integrasi yang tidak memerlukan tag akan menampilkan subteks "Tindakan dapat digunakan dengan kueri apa pun" di halaman Tindakan di panel Admin.

Pastikan untuk mengidentifikasi kolom wajib diisi dalam model LookML Anda dengan parameter tags agar pengguna Anda dapat menggunakan layanan untuk mengirim data.

Langkah berikutnya

Pelajari cara mengirimkan konten Look atau Eksplorasi atau dasbor ke layanan terintegrasi.