Looker APIをローカル環境で使用するための認証方法
投稿者:杉山
こんにちは、日本情報通信の杉山です。
通常はテレワークでお仕事することが多いのですが、最近は涼しくなってきたので出社して会社周辺でランチしたりと外出の機会が増えました!
本社が築地なのでサンマとかいいですよね・・・皆さまも短いですが秋の味覚堪能してください^^
今回は前回のブログ「LookerAPIとは」についてに引き続き、『Looker API特集』第2弾!ということでタイトルにもありますがLooker APIをローカル環境で使用するための認証方法についてご紹介します。
目次
- Looker APIをローカル環境で使用する
- APIキーの発行
- Looker SDKのインストール
- 注意点
- SDKを使用してみる
- まとめ
前提
- 以下操作を行うユーザーがLookerでAdmin権限を保持(APIキー発行のため)
- 実施環境
- アプリケーション / それぞれのPythonのバージョン
- PyCharm Community Edition 2021.3.3
- Python 3.9.7
- Visual Studio Code 1.83.0
- Python 3.11.1
- PyCharm Community Edition 2021.3.3
- Looker関連
- Looker 23.16.30
- Looker API 4.0
- アプリケーション / それぞれのPythonのバージョン
Looker APIをローカル環境で使用する
今回はPythonを使用してLooker APIを操作するため、Pythonを実行するローカル環境を構築する必要があります。
Looker APIをローカル環境でテストする場合、使用しているアプリケーションに関わらず、Pythonのバージョンが3.6以上であれば問題ありません。実際にPycharmとVScodeの2つの異なるアプリケーションで検証してみましたが、どちらの場合でも以下の手順に違いはありませんでした。
ローカル環境でAPI認証を行う方法は以下2パターンです。
①SDKを使用した認証
②SDKを使用しない認証
公式ではSDKによるAPI認証を推奨しているので①の方法で進めます。API認証に関しての公式のドキュメントはこちら
APIキーの発行
①管理>ユーザー>自分のユーザー名を選択
②APIキー [キーの編集]を選択
③新しいAPIキーから新規作成
これより先の作業でCLIENT IDとCLIENT SECRETを使用します。CLIENT SECRETはダブルクリックでコピーすることが可能です。見えている部分より長いキーとなっているので注意してコピーしてください。
Looker SDKのインストール
①使用するファイルを置くためにCドライブ上にフォルダ(「施策API」)を作成
②Looker SDKを以下2つのうちのどちらかの方法でインストール(今回はAの方法で実施)
A. コマンド(各アプリケーションのターミナル)でpython -m pip install looker-sdkと入力しインストールする方法
B. looker-sdk · PyPIからローカルにファイルをダウンロードする方法
注意点
- ダウンロードしたフォルダの中にはLooker SDKのメソッド(methods.py)やモデル(models.py)のファイルが格納されているのでファイルのコードの変更や追加等はNGです。
- セキュリティソフトで実行を妨げられる場合もあるので、上記の作業を行う場合は一時的にセキュリティを切断することをおすすめします。
③Pythonファイル(.py)上でLooker SDKを用いたAPI認証を行う
①で作成したフォルダ直下に任意の.pyファイル(「test.py」)を新規作成し、必要な環境変数を設定してlooker_sdkを初期化(以下に③で新規作成する全体コードを記載)
# パッケージをインポート
import looker_sdk
import os
# modelsをmdlsとしてインポート(modelsをmdlsとしてインポートしておくことでメソッドを使用する度にmodel名を記載する必要がなくなるので記載することを推奨します)
from looker_sdk.sdk.api40.models import models as mdls
# Looker_sdkの環境変数(使用するLookerインスタンスのURLと本手順「APIキーの発行」③で取得したキーを添付)
URL = ‘https://xxxxxxxx.jp.looker.com:19999’
CLIENT_ID = ‘xxxxxxxx’
CLIENT_SECRET = ‘xxxxxxxxxx’
# init_looker_sdkの定義、環境変数の取得(os.environ)
def init_looker_sdk(
url: str,
client_id: str,
client_secret: str) -> looker_sdk.methods40.Looker40SDK:
os.environ[‘LOOKERSDK_BASE_URL’] = url
os.environ[‘LOOKERSDK_CLIENT_ID’] = client_id
os.environ[‘LOOKERSDK_CLIENT_SECRET’] = client_secret
os.environ[‘LOOKERSDK_VERIFY_SSL’] = ‘true’
os.environ[‘LOOKERSDK_TIMEOUT’] = ‘120’
os.environ[‘LOOKERSDK_API_VERSION’] = ‘4.0’
return looker_sdk.init40()
#looker_sdkを初期化
sdk = init_looker_sdk(URL, CLIENT_ID, CLIENT_SECRET)
注意点
- URLにはAPIを使用したいLooker環境のURLを記載します。対象のインスタンスがGCPにホストされている場合はポート番号を”:19999”と追記してください。詳しくは公式ドキュメントをご参照ください。
- APIのバージョンは公式で4.0が推奨されているので4.0を指定します。
SDKを使用してみる
test.pyに以下のコードを追加してファイルを実行してみましょう。
my_user = sdk.me()
print(my_user[‘first_name’])
結果にご自身の名前が表示されていると成功です。
まとめ
今回はローカル環境でAPIを使用するためにSDKを用いて認証を行いました。正直Looker SDKをインストールする段階でつまづき、環境変数を設定するところでもつまづき..(笑)ローカル環境でAPIを使用出来るまでに時間を要してしまいました。。。つまづいた内容は本稿の注意点に記載させて頂いていますのでご参考になればと思います!
次回
本稿をご覧頂き、ありがとうございました。
次回『Looker API特集』第3弾では、Looker APIを用いて特定のダッシュボードのフィルター値を変更する方法についてご紹介いたします。第1弾、第2弾でご紹介したLooker Explorerとローカル環境でのAPI認証を組み合わせた内容ですので是非これまでのブログに続き次回ブログもご覧ください!