Selain mengirimkan konten ke tujuan bawaan Looker, Anda dapat menggunakan tindakan — juga disebut integrasi — untuk mengirimkan konten ke layanan pihak ketiga yang terintegrasi dengan Looker melalui server hub tindakan.
Tindakan yang disalurkan melalui server hub tindakan berbeda dengan tindakan data, yang ditentukan oleh parameter LookML
action
.
Halaman ini akan memandu Anda memilih berbagai opsi untuk membuat tindakan kustom yang dapat diminta untuk ditambahkan ke Looker Action Hub atau ditambahkan ke server hub tindakan pribadi Anda. Halaman ini juga menjelaskan cara menjalankan server hub tindakan lokal untuk menguji tindakan kustom atau menjalankan server hub tindakan pribadi.
Untuk mulai menggunakan tindakan, Anda dapat:
- Gunakan tindakan Looker yang ada yang tersedia dari Hub Tindakan Looker.
- Membuat dan memublikasikan tindakan kustom ke Hub Tindakan Looker untuk penggunaan publik.
- Membuat dan memublikasikan tindakan kustom ke server hub tindakan pribadi untuk penggunaan pribadi.
Setelah tindakan ditambahkan ke hub tindakan, admin Looker dapat enable untuk digunakan dalam mengirimkan konten Looker ke layanan tersebut.
Anda juga dapat menyiapkan beberapa hub tindakan jika ingin menggunakan integrasi Looker melalui Looker Action Hub dan juga menghosting tindakan pribadi atau kustom Anda sendiri. Tindakan untuk setiap hub tindakan akan muncul di halaman Actions pada panel Admin.
Looker Action Hub
Looker menghosting dan menyediakan Looker Action Hub, server stateless yang menerapkan Action API Looker dan mengekspos tindakan populer. Semua data yang dikirim pengguna Anda menggunakan tindakan akan diproses sementara di server Looker Action Hub, bukan di instance Looker Anda.
Looker sudah terintegrasi dengan beberapa layanan. Lihat halaman dokumentasi Setelan admin - Tindakan untuk mempelajari cara mengaktifkan layanan yang sudah ada ini.
Persyaratan Looker Action Hub
Untuk menggunakan integrasi Looker, Looker Action Hub harus dapat berkomunikasi dengan instance Looker dan memenuhi persyaratan ini. Admin instance yang dihosting pelanggan mungkin perlu mempertimbangkan faktor tambahan saat memilih untuk mengaktifkan integrasi Looker dari Looker Action Hub, terutama integrasi yang mendukung hasil streaming atau yang menggunakan OAuth.
Looker Action Hub harus dapat mengirim dan menerima permintaan API dengan cara berikut:
- Dari instance Looker ke jaringan Looker Action Hub
- Dari browser pengguna Looker ke jaringan Looker Action Hub
- Dari jaringan Looker Action Hub ke instance Looker
Jika deployment Looker Anda tidak dapat mengakomodasi permintaan ini atau jika fitur Daftar IP yang Diizinkan diaktifkan di instance Looker, pertimbangkan untuk menyiapkan server hub tindakan lokal untuk menayangkan integrasi Looker atau tindakan kustom pribadi. Admin instance yang dihosting pelanggan juga dapat men-deploy server tindakan lokal khusus untuk tindakan streaming dan OAuth.
Permintaan dari instance Looker ke jaringan Looker Action Hub
Permintaan untuk actions.looker.com
ditetapkan 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
Looker Action Hub harus membuat permintaan ke instance Looker untuk tindakan yang mendukung hasil yang di-streaming atau yang menggunakan OAuth.
Tindakan streaming memungkinkan tindakan menggunakan kueri yang menampilkan Semua Hasil. Tindakan dengan OAuth aktif menggunakan autentikasi per pengguna melalui alur OAuth 2.0. Tindakan OAuth harus menyimpan kredensial pengguna di instance Looker sumbernya karena Looker Action Hub bersifat stateless dan multi-tenant, serta tidak akan menyimpan kredensial khusus pengguna apa pun.
Permintaan dari Looker Action Hub ke instance Looker memiliki bentuk 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 Looker Action Hub. Karena alasan ini, Looker Action Hub harus dapat me-resolve <host_looker_url>
ke alamat IP dan membuat permintaan ke jaringan tempat instance Looker Anda berada.
Looker Action Hub memiliki alamat IP keluar statis tempat permintaan akan selalu berasal dari: 35.153.89.114
, 104.196.138.163
, dan 35.169.42.87
. Admin instance yang dihosting Looker dan telah mengaktifkan daftar IP yang diizinkan harus menambahkan alamat IP ini untuk menggunakan tindakan apa pun yang mendukung hasil yang di-streaming atau yang menggunakan OAuth.
Pertimbangan untuk instance yang dihosting pelanggan
Untuk menggunakan integrasi Looker, Looker Action Hub harus dapat berkomunikasi dengan instance Looker dan memenuhi persyaratan ini. Hal ini tidak selalu dapat dilakukan dengan instance Looker yang dihosting pelanggan, karena berbagai alasan. Jika komunikasi dua arah antara Looker Action Hub dan instance Looker tidak dimungkinkan, Looker Action Hub mungkin menunjukkan perilaku yang tidak diharapkan atau tidak diinginkan, seperti membuat kueri hang 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 diajukan di bawah ini. Solusi atau kombinasi solusi yang tepat akan bergantung pada arsitektur instance Looker:
Jika instance yang dihosting pelanggan tidak dapat diselesaikan oleh Looker Action Hub — yaitu, Looker Action Hub 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 memulai--public-host-url
, yang memungkinkan admin menentukan nama host<public_host_url>
yang dapat di-resolve yang berbeda dari instance<host_looker_url>
.public_host_url
akan mengganti nama host untuk beberapa URL callback Looker Action Hub tertentu dan merutekan URL callback tersebut melalui reverse proxy yang memilikipublic_host_url
sebagai nama yang dapat diselesaikan secara publik. Reverse proxy ini hanya menerima permintaan dari alamat IP keluar statis untuk Looker Action Hub; Admin Looker yang menggunakan metode ini harus menambahkan alamat IP keluar yang diizinkan yang menjadi asal permintaan Looker Action Hub ke instance Looker:35.153.89.114
,104.196.138.163
, dan35.169.42.87
.Jika URL instance yang dihosting pelanggan dapat diselesaikan oleh instance Looker, tetapi Looker Action Hub tidak dapat mengirim permintaan ke instance Looker, pengguna mungkin tidak dapat mengonfigurasi atau menggunakan tindakan yang mendukung hasil yang di-streaming atau yang menggunakan OAuth. Untuk mengatasi hal ini, admin Looker harus menambahkan alamat IP keluar yang diizinkan tempat Looker Action Hub membuat permintaan ke instance Looker:
35.153.89.114
,104.196.138.163
, dan35.169.42.87
.Jika tidak satu pun solusi yang disebutkan di atas sesuai dengan arsitektur instance Looker, admin Looker dapat men-deploy hub tindakan yang dihosting pelanggan untuk semua tindakan atau hanya untuk tindakan yang mendukung hasil yang di-streaming atau yang menggunakan OAuth.
Untuk men-deploy hub tindakan yang dihosting pelanggan, Anda harus memastikan bahwa file JAR dihosting di server publik sehingga Looker Action Hub dapat berkomunikasi dengannya. Namun, Looker tidak merekomendasikan solusi ini.
Alasan lain mengapa tindakan OAuth dan streaming mungkin tidak dapat digunakan pada instance Looker yang dihosting pelanggan adalah jika instance menggunakan sertifikat SSL yang diterbitkan oleh Certificate Authority (CA) yang tidak ada dalam daftar root certificate ini.
Membuat tindakan kustom
Bagian ini menjelaskan langkah-langkah yang harus diikuti untuk menulis dan menguji tindakan kustom menggunakan kode sumber Looker Action Hub. Untuk melihat contoh kode fungsi, periksa tindakan yang ada di repo looker-open-source/actions
di GitHub.
Anda dapat membuat tindakan kustom dengan:
- Menyiapkan repositori pengembangan
- Menulis tindakan Anda
- Menguji tindakan Anda
- Memublikasikan dan mengaktifkan tindakan Anda, baik di Looker Action Hub atau di server hub tindakan pribadi Anda
Seperti tindakan lainnya, Anda mungkin perlu mengonfigurasi model LookML dengan parameter tertentu sebelum dapat menggunakan tindakan untuk mengirimkan data Anda.
Menyiapkan repositori pengembangan
Looker Action Hub adalah server Node.js yang ditulis dalam TypeScript, lapisan kecil di atas JavaScript modern yang menambahkan informasi jenis untuk membantu mendeteksi error pemrograman. Jika Anda sudah terbiasa dengan JavaScript, sebagian besar bahasa TypeScript seharusnya sudah tidak asing bagi Anda.
Menjalankan Looker Action Hub memerlukan software berikut:
- Node.js
- Pengelola Versi Node (NVM — untuk memilih versi Node.js yang tepat)
- Yarn (untuk mengelola dependensi)
Setelah menginstal software yang diperlukan, Anda siap untuk menyiapkan lingkungan pengembangan. Contoh kami di bawah ini menggunakan Git.
Clone repositori
looker-open-source/actions
secara lokal:git clone git@github.com:looker-open-source/actions.git
Buat direktori dengan nama tindakan Anda di direktori
actions/src/actions
. Contoh:mkdir actions/src/actions/my_action
Mulai isi direktori dengan file yang diperlukan untuk menjalankan tindakan. Lihat repo GitHub tindakan untuk mengetahui contoh struktur file.
Looker merekomendasikan agar Anda juga menambahkan:
- README untuk menjelaskan tujuan dan cara autentikasi untuk tindakan Anda
- Ikon PNG untuk ditampilkan di Looker Action Hub (atau hub tindakan pribadi pada instance Looker Anda) dan di periode pengiriman data Looker
- File apa pun untuk pengujian yang ingin dijalankan pada kode tindakan Anda — ini berbeda dengan menguji tindakan Anda
Menulis tindakan
Persyaratan desain untuk server Looker Action Hub adalah agar server tetap sepenuhnya stateless, sehingga penyimpanan informasi apa pun dalam aplikasi atau layanan tindakan tidak diizinkan. Informasi apa pun yang diperlukan untuk memenuhi tindakan harus diberikan dalam panggilan permintaan file tindakan.
Konten persis dari file tindakan akan bervariasi bergantung pada layanan, jenis atau tingkat operasi tindakan, dan format data atau visualisasi apa yang perlu ditentukan. Tindakan ini juga dapat dikonfigurasi untuk alur otorisasi OAuth 2.0.
File tindakan didasarkan pada metode API /execute
. Permintaan Looker API diteruskan DataActionRequest
setiap kali pengguna menjalankan tindakan dalam Looker. DataActionRequest
berisi semua data dan metadata yang diperlukan untuk menjalankan tindakan Anda. Ada juga metode /form
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 Jadwal saat pengguna memilih tindakan sebagai tujuan untuk pengiriman data mereka.
Jika menggunakan Looker Action API, format parameter ini mungkin tampak berbeda.
Saat menulis file tindakan, sertakan setidaknya parameter yang ditandai sebagai Wajib dalam definisi tindakan:
Parameter | Diperlukan | Deskripsi | Jenis Data |
---|---|---|---|
name |
Ya | Nama unik untuk tindakan. Nama ini harus unik di semua tindakan di Looker Action Hub. | string |
url |
Ya | URL absolut dari endpoint /execute untuk tindakan ini. |
string |
label |
Ya | Label yang dapat dibaca manusia untuk tindakan. | string |
supportedActionTypes |
Ya | Daftar jenis tindakan yang didukung tindakan. Nilai yang valid adalah "cell" , "query" , dan "dashboard" . |
string |
formURL |
Tidak | URL absolut dari 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 muncul di halaman pengaktifan tindakan di panel Admin. Untuk mengelola cara pengguna dapat mengirimkan data ke tujuan tindakan, Anda dapat menentukan atribut pengguna yang harus memiliki nilai yang ditentukan pengguna. |
parameters |
supportedFormats |
Tidak | Daftar format data yang didukung tindakan. Nilai yang valid adalah "txt" , "csv" , "inline_json" , "json" , "json_detail" |
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 yang kompatibel dengan tindakan ini. Jika ada beberapa entri dalam daftar, tindakan memerlukan lebih dari satu kolom. | RequiredField |
supportedDownloadSettings |
Tidak | Boolean yang menentukan apakah tindakan akan dikirim 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 | Boolean yang menentukan apakah tindakan merupakan tindakan OAuth. Tindakan ini akan menentukan apakah link sekali pakai akan dikirim ke tindakan agar dapat menetapkan state bagi pengguna tertentu untuk tindakan ini. |
Boolean |
usesStreaming |
Tidak | Boolean yang menentukan apakah tindakan mendukung hasil kueri yang di-streaming. Centang kolom Dapat Melakukan Streaming Hasil 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 di daftar Action Hub panel Admin. | string |
Contoh dari tindakan Looker Action Hub ada di GitHub sebagai 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: Tindakan ini mengirim seluruh kueri. Misalnya, tindakan Segmen adalah tindakan tingkat kueri.
- Tindakan tingkat sel: Tindakan tingkat sel mengirim 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. Action harus menentukan tag yang didukungnya direquiredFields
. Untuk memetakan tindakan dan kolom, kolom di LookML perlu menentukan tag yang dipetakan dengan parametertags
LookML. Misalnya, tindakan Twilio Message menggunakan tagphone
sehingga developer LookML dapat mengontrol kolom nomor telepon mana yang akan menampilkan tindakan Twilio. - 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 penggunanya atau untuk grup pengguna tempat mereka berada, selain send_to_integration
izin, untuk melihat tindakan sebagai opsi tujuan saat mengirim atau menjadwalkan konten.
Untuk menambahkan atribut pengguna ke tindakan Anda:
- Admin Looker mungkin perlu membuat atribut pengguna yang sesuai dengan
user_attribute_param
jika belum ada. - 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
.) - Parameter
params
mewakili kolom formulir yang harus dikonfigurasi oleh admin Looker di halaman pengaktifan tindakan dari daftar Actions di panel Admin. Dalam parameterparams
file tindakan Anda, sertakan:
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 pada halaman Atribut Pengguna di bagian Pengguna pada panel Admin, required: true
berarti bahwa pengguna harus memiliki nilai valid dan non-null yang ditentukan untuk atribut pengguna tersebut untuk melihat tindakan saat mengirimkan data, dan sensitive: true
berarti atribut pengguna tersebut dienkripsi dan tidak pernah ditampilkan di UI Looker setelah dimasukkan. Anda dapat menentukan beberapa subparameter atribut pengguna.
- Deploy update Anda ke server hub tindakan.
- Jika Anda menambahkan tindakan baru, admin Looker perlu mengaktifkan tindakan tersebut dengan mengklik tombol Aktifkan di samping tindakan pada halaman Tindakan di panel Admin.
- Jika Anda memperbarui tindakan yang sudah ada, muat ulang daftar tindakan dengan mengklik tombol Refresh. Selanjutnya, klik tombol Setelan.
- Di halaman setelan/pengaktifan tindakan, admin Looker harus mengonfigurasi kolom formulir tindakan untuk mengambil 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 Anda untuk mengirimkan data ke tujuan tindakan tersebut dengan menentukan tag yang didukung tindakan Anda di parameter requiredFields
file tindakan Anda.
Parameter | Diperlukan | 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 cocok dengan kolom yang memiliki semua tag yang disediakan. |
string |
Format data yang didukung
Class DataActionRequest
menentukan format pengiriman data yang tersedia untuk digunakan oleh tindakan. Untuk tindakan tingkat kueri, permintaan akan berisi lampiran yang dapat dibuat dalam beberapa format. Tindakan ini dapat menentukan satu atau beberapa supportedFormats
atau memungkinkan pengguna memilih format dengan menentukan semua format yang memungkinkan. Untuk tindakan tingkat sel, nilai sel akan ada pada DataActionRequest
.
Mengonfigurasi tindakan untuk OAuth
Tindakan yang mengaktifkan OAuth tidak dapat dikonfigurasi dari Looker Action Hub untuk instance Looker yang memiliki fitur Daftar IP yang Diizinkan aktif atau yang tidak dapat memenuhi persyaratan Looker Action Hub. Lihat halaman Praktik Terbaik Menyiapkan hub tindakan lokal untuk tindakan yang menggunakan OAuth atau streaming guna mengetahui informasi selengkapnya tentang cara mengonfigurasi tindakan untuk OAuth.
Anda dapat mengonfigurasi tindakan agar pengguna dapat melakukan autentikasi ke dalam tindakan dengan OAuth. Meskipun Looker Action Hub harus tetap stateless, Anda dapat menerapkan status melalui permintaan formulir dari Looker Action API.
Alur OAuth tindakan Looker
Untuk tindakan di Looker Action Hub, 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 OAuth atau diaktifkan status, Looker menyimpan status per pengguna dan per tindakan, sehingga setiap tindakan dan kombinasi pengguna memiliki peristiwa OAuth 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 atau tidak. Jika pengguna sudah diautentikasi, tindakan tersebut akan menampilkan /form
normal sesuai dengan apa pun yang diperlukan permintaan /execute
. Jika pengguna tidak diautentikasi, tindakan tersebut akan menampilkan link yang akan menginisialisasi alur OAuth.
Menyimpan status dengan URL OAuth
Looker akan mengirimkan permintaan POST HTTP dengan isi kosong ke endpoint ActionList
. Jika tindakan menampilkan uses_oauth: true
dalam definisinya, tindakan tersebut akan dikirim state_url
sekali pakai di setiap permintaan /form
dari Looker. state_url
adalah URL sekali pakai khusus yang menetapkan status pengguna untuk tindakan tertentu.
Jika pengguna tidak diautentikasi dengan endpoint, /form
yang ditampilkan harus berisi form_field
jenis oauth_link
yang mengarah ke endpoint /oauth
dari 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 di metode oauthUrl(...)
pada tindakan OAuth, seperti yang ditunjukkan di Dropbox OauthUrl.
Parameter state
yang berisi state_url
terenkripsi harus diteruskan ke Looker Action Hub.
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 diimplementasikan oleh metode OauthAction
untuk mengekstrak informasi yang diperlukan dan mencoba menerima atau menyimpan status apa pun atau auth
yang diterima dari server autentikasi.
state
mendekripsi state_url
yang dienkripsi dan menggunakannya untuk MEMPOSTING state
kembali ke Looker. Saat pengguna membuat permintaan lagi ke tindakan tersebut, status yang baru disimpan akan dikirim ke Looker Action Hub.
Menambahkan file tindakan ke repo Looker Action Hub
Setelah file tindakan Anda ditulis, di repo Looker Action Hub:
Tambahkan file tindakan (misalnya,
my_action.ts
) keactions/src/actions/index.ts
.import "./my_action/my_action.ts"
Tambahkan persyaratan paket Node.js yang digunakan dalam penulisan tindakan Anda. Contoh:
yarn add aws-sdk yarn add express
Instal dependensi Node.js dari server Looker Action Hub.
yarn install
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 itu, Anda dapat menggunakan platform berbasis cloud, seperti Heroku, seperti ditunjukkan pada 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 telah dikembangkan di repo GitHub looker-open-source/actions/src/actions
dan akan menyimpan kode ke cabang Git baru. Sebaiknya kerjakan fitur menggunakan cabang agar Anda dapat dengan mudah melacak kode dan, jika diinginkan, dengan mudah membuat PR dengan Looker.
Untuk memulai, buat cabang Anda, lalu tahap dan komitmeni pekerjaan Anda. Contoh:
git checkout -b my-branch-name git add file-names git commit -m commit-message
Untuk contoh ini, untuk mengirim cabang ke Heroku, konfigurasi repo Git Anda dengan Heroku sebagai opsi jarak jauh di command line Anda:
heroku login heroku create git push heroku
Heroku akan menampilkan URL publik yang sekarang 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 mengembalikan URL publik Anda. Contoh:
https://my-heroku-action-server-1234.herokuapp.com
Di command line, tetapkan URL dasar hub tindakan:
heroku config:set ACTION_HUB_BASE_URL="https://my-heroku-action-server-1234.herokuapp.com"
Setel label hub tindakan:
heroku config:set ACTION_HUB_LABEL="Your Action Hub"
Looker menggunakan token otorisasi untuk terhubung ke hub tindakan. Buat token di command line:
heroku run yarn generate-api-key
Jika Anda tidak menggunakan Heroku, seperti dalam contoh ini, gunakan:
yarn generate-api-key
Heroku akan mengembalikan token otorisasi Anda. Contoh:
Authorization: Token token="abcdefg123456789"
Tetapkan rahasia hub tindakan 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.
Tambahkan tindakan di instance Looker lokal dengan membuka Admin > Tindakan.
- Di bagian bawah daftar tindakan, klik Tambahkan Action Hub.
- Masukkan URL Action Hub dan, secara opsional, Kunci Rahasia.
- Temukan tindakan Anda di daftar Tindakan dalam menu Admin Looker.
- Klik Enable.
Jika tindakan Anda mengharuskan jenis data tertentu diteruskan dari Looker, pastikan untuk mengonfigurasi model apa pun agar menyertakan parameter tags
yang sesuai.
Sekarang Anda siap menguji aksi Anda!
Menguji tindakan tingkat dasbor dan tingkat kueri
Di instance Looker, konfigurasi model LookML Anda dengan tag, jika perlu. Buat dan simpan Tampilan. Di Tampilan yang tersimpan, klik menu kanan atas dan pilih Send dengan tindakan Anda sebagai tujuan. Jika Anda memiliki formulir untuk dikirim, Looker akan merendernya di jendela Terkirim.
Klik Send Test untuk mengirimkan data. Status tindakan akan muncul di Histori Penjadwal pada panel Admin. Jika tindakan Anda mengalami error, tindakan tersebut akan ditampilkan di panel Admin dan Looker akan mengirimkan email berisi pesan error kepada pengguna yang mengirim tindakan.
Menguji tindakan tingkat sel
Siapkan kolom LookML dengan tag yang sesuai untuk tindakan Anda. Di instance Looker, jalankan kueri yang menyertakan kolom tersebut. Cari kolom di tabel data. Klik … di sel, lalu pilih … dari menu drop-down. Jika menerima pesan error, Anda harus memuat ulang sepenuhnya pada tabel data setelah mengatasi error tersebut.
- Jika tindakan dikirim tanpa error, Anda siap untuk memublikasikan tindakan.
- Jika ingin tetap menghosting tindakan secara pribadi, Anda dapat memublikasikannya ke hub tindakan pribadi.
- Jika Anda ingin memublikasikan tindakan untuk digunakan oleh semua pelanggan Looker, lihat bagian Memublikasikan ke Looker Action Hub.
Memublikasikan dan mengaktifkan tindakan kustom
Ada dua opsi publikasi untuk tindakan kustom:
- Memublikasikan ke Looker Action Hub: Tindakan ini membuat tindakan Anda tersedia bagi siapa saja yang menggunakan Looker.
- Memublikasikan ke server hub tindakan pribadi: Tindakan ini membuat tindakan Anda hanya tersedia di instance Looker Anda.
Setelah tindakan dipublikasikan, Anda dapat mengaktifkannya dari halaman Tindakan di panel Admin.
Memublikasikan ke Looker Action Hub
Pendekatan ini adalah yang paling mudah dan efektif untuk setiap tindakan yang ingin Anda sediakan bagi siapa saja yang menggunakan Looker.
Setelah tindakan diuji, Anda dapat mengirimkan PR ke repo looker-open-source/actions
di GitHub.
Masukkan perintah berikut:
git push <your fork> <your development branch>
Buat permintaan pull dengan repo
looker-open-source/actions
sebagai target Anda.Isi Formulir Pengajuan Looker Marketplace & Action Hub. Untuk informasi selengkapnya tentang persyaratan formulir, lihat Mengirimkan konten ke Looker Marketplace.
Looker akan meninjau kode tindakan Anda. Kami berhak menolak permintaan chat, tetapi kami dapat membantu Anda menyelesaikan masalah apa pun yang Anda miliki dan menawarkan saran untuk perbaikan. Kemudian, kita menggabungkan kode ke dalam repo
looker-open-source/actions
dan men-deploy-nya keactions.looker.com
. Setelah di-deploy, kode tersebut akan tersedia untuk semua pelanggan Looker.Aktifkan tindakan di instance Looker Anda, sehingga tindakan tersebut akan muncul sebagai opsi untuk pengiriman data.
Memublikasikan ke server hub tindakan pribadi
Jika memiliki tindakan kustom yang bersifat pribadi untuk perusahaan atau kasus penggunaan, Anda tidak boleh menambahkan tindakan 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 melakukan 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 Looker Action Hub, Anda harus mengidentifikasi kolom data yang relevan 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 Zapier menyatakan bahwa integrasi berfungsi dengan kueri apa pun. Tidak ada persyaratan untuk menambahkan parameter tags
ke kolom di model LookML Anda.
Namun, layanan Twilio Send Message mengirim pesan ke daftar nomor telepon. Kueri ini memerlukan kueri yang menyertakan kolom nomor telepon dan menggunakan parameter tags
untuk mengidentifikasi kolom dalam kueri yang berisi nomor telepon. Anda mengidentifikasi kolom nomor telepon di LookML dengan menentukan tags: ["phone"]
untuk kolom tersebut. Kolom LookML Anda untuk nomor telepon mungkin terlihat seperti ini:
dimension: phone {
tags: ["phone"]
type: string
sql: ${TABLE}.phone ;;
}
Pastikan untuk mengidentifikasi kolom wajib diisi dalam model LookML Anda dengan parameter tags
sehingga pengguna dapat menggunakan layanan untuk mengirim data.
Langkah selanjutnya
Pelajari cara menayangkan konten Tampilan atau Jelajah atau dasbor ke layanan terintegrasi.