【Looker】GitにCloud Source Repositoriesを使ってみた!

7 min read読了の目安(約6700字

はじめに

皆さん、Looker使ってますかー? ^^

今回は、LookerのGitリポジトリにCloud Source Repositoriesを使ってみました。
その時に調べたことも含めてナレッジの共有になります。

こちら英語で設定手順は公開されており、こちらを参考に実施しています。

https://help.looker.com/hc/en-us/articles/360057499914-Using-Cloud-Source-Repositories-for-Version-Control-in-Looker

これまでの経緯について

LookerをBigQueryに格納されたログデータの分析環境の開発に利用しています。
これまでの検証では、「まずは簡単に始めてみよう!」ということで保有していた
AWS環境からAWS CodeCommit[1]でGitリポジトリを用意していました。

しかし、Lookerの接続先がBigQueryなので、同じクラウドプラットフォーム上の
Cloud Source RepositoriesでGitリポジトリを用意する方が集約できるので
Gitリポジトリを切り替えることにしました。

Cloud Source Repositoriesとは

GCPが提供するプライベートGitリポジトリサービスになります。
GitHubまたはBitbucketに変更が反映されたときにその変更を自動的に同期させられることが
大きな特徴だと認識しています。

https://cloud.google.com/source-repositories?hl=ja

Pull Request機能に対応していないため、LookerからPull Requestできません。

【料金】

無料枠 超過料金
5 ユーザーまで 5名を超えたプロジェクトユーザー1名あたり $1/月
50GBのストレージ ストレージ1GBあたり $0.10/月
50GB(下り、外向き) GB(下り)あたり $0.10/月

Cloud Source Repositoriesでは、以下の認証方式[2]を使用できます。

  • SSH
  • Cloud SDK (推奨)
  • 手動で生成した認証情報

Lookerとの認証にはSSHを利用します。(そのためユーザ認証ではなく、鍵認証になります)

Lookerの公式ドキュメント

以下、Gitとバージョン管理に関するLooker公式ドキュメントになります。
公式ドキュメントはGitHubをベースに説明しています。

Setting up and testing a Git connection
Configuring project version control settings
Configuring the webhook deploy secret
Advanced deploy mode
Using version control and deploying
Git command reference

LookerでPull RequestサポートされているGitサービス

Lookerは、次のGitプロバイダーのPull Request統合をサポートしています。

  • GitHub
  • GitLab[3]
  • Bitbucket Cloud[4]
  • Bitbucket Server(以前の「Stash」)

※ 今後は上記Gitサービスへの移行を考えています。

今回実施したこと

Cloud Source RepositoriesにGitリポジトリを作成し
既存LookMLプロジェクトのソースコードのバージョン管理を切り替えました。
Cloud Source RepositoriesのGit認証方式はSSH鍵による認証となります。

LookerでGit Commitするとどのようなユーザでコミット履歴が記録されるのか
Cloud Source Repositories側の情報を確認しつつ、コストについても確認してみました。

利用環境

Product version
Looker 21.0.25
Cloud Source Repositories 2021年3月24日時点

実施手順

  1. Gitリポジトリの作成
  2. SSH Git認証の設定
  3. Git Commitの実行

1. Gitリポジトリの作成

GCPコンソールにログインし、[ツール] > [Source Repositories]をクリックします。
[開始]をクリックします。

事前に操作するIAMユーザのロールにSource Repository管理者権限が付与されていることを確認してください。

[リポジトリを作成]をクリックします。

[新しいリポジトリを作成]を選択し、[続行]をクリックします。

[リポジトリ名(好きな名前でOK)]と[プロジェクト(BQと同じとしました)]を入力し、[作成]します。

SSH認証に利用するURL(ssh://xxxの部分)をLooker側にセットするので、コピーします。
(この画面は閉じずにそのままにします)

Gitリポジトリの作成は以上になります。

2. SSH Git認証の設定

Lookerにログインし、[開発]タブでGitリポジトリを設定するLookMLプロジェクトを開きます。
左メニューの一番下の[Settings] > [Configuration]をクリックします。

今回は切り替えなので、[Reset Git Connection]をクリックします。
(新規接続の場合は、[Configure Git]になります)

[Repository URL]にコピーしたSSH認証のURLを貼り付けて、[Configure]をクリックします。

[SSH Key for XXX]の鍵情報をコピーします。
(この画面は閉じずにそのままにします)

Cloud Source Repositoriesに戻り、[SSH認証鍵を登録]をクリックします。

Google認証を求められますので、GCPで利用しているアカウントでログインします。

[キー名(好きな名前でOK)]と[鍵(コピペします)]を設定し、[登録]をクリックします。

またLookerの画面に戻り、[Test and Finalize Setup]をクリックします。

LookMLのProject ConfigurationのGit Summaryが以下のようになっていればOKです。

SSH Git認証は以上になります。

3. Git Commitの実行

LookML画面で[Validate LookML] > [Commit Change & Push]をクリックします。
Messageにコミット文を記載し、[Commit]をクリックします。

Cloud Source Repositories側のコミット履歴に反映されていることが確認できます。

SSH鍵認証ではHTTPS認証と異なり、ユーザ認証を行なっていません。
コミット履歴に記載されている[作成者]の名前はLookerのUserAttributeで設定されているfisrt_namelast_nameになります。

余談ですが、GCPコスト的にはLookerとのSSH鍵認証は1ユーザ扱いとなっていました。
(無料範囲で利用することが可能です)

まとめ

さて、いかがでしたでしょうか?
設定自体はそこまでは難しい内容ではなかったと思います。

AWS CodeCommitで運用していた時は、LookerのユーザごとにHTTPS認証(推奨)のための
ユーザ情報とパスワードをUserAttiributeでセットしたり、AWS側もIAMユーザで認証情報を
払い出したりとそこそこ手間があったのですが、それが無くなり嬉しみばかりでした!

Lookerの開発運用をどのようなフローで回していくかを設計していく中で
Pull Requert機能に対応しているGitサービスに再度切り替えしようと考えています。
こちらもまた開発運用におけるナレッジの共有ができればと思っています^^

脚注
  1. Using AWS Code Commit for Version Control in Looker ↩︎

  2. ローカル認証を設定する ↩︎

  3. Using GitLab for Version Control in Looker ↩︎

  4. Using BitBucket for Version Control in Looker ↩︎