Webhook デプロイ シークレットの構成

Webhook デプロイ エンドポイントでは、Looker インスタンスに Git ブランチ、commit SHA、タグ名からの変更をデプロイして、変更をプロジェクトの本番環境バージョンに push するように求められます。(Looker のデプロイ Webhook 形式については、Webhook によるデプロイ セクションをご覧ください。)ほとんどのプロジェクトでは、Looker が Git 統合を処理し、更新内容を本番環境にデプロイするため、デプロイ Webhook を設定する必要はありません。

ただし、次のいずれかの状況が当てはまる場合は、デプロイ Webhook を使用して本番環境に変更を push する必要があります。

  • 更新は Looker IDE の外部のリモート本番環境ブランチに push します。これは、ステージング環境での開発ワークフローでよく使用されます。
  • Webhook を使用して高度なデプロイモードでデプロイする場合。このモードでは、Looker プロジェクトの本番環境バージョンで使用するブランチ、commit SHA、またはタグ名を指定できます。
  • Git pull リクエストを使用して Looker プロジェクトを構成している。つまり、pull リクエストをマージしたらデプロイ Webhook をトリガーして、それらの変更を Looker 本番環境に push する必要があります。ほとんどの Git ホスティング サービスでは、Webhook を Git プロバイダのインターフェースに追加すると、この操作を自動化できます。

Looker 管理者は、Secret を要求するようにデプロイ Webhook を構成して、承認済み関係者のみがその Secret をトリガーできるようにすることができます。 管理者以外の Looker デベロッパーは [プロジェクト設定] ページを表示できますが、そこでオプションを変更することはできません。

デプロイ シークレットの追加

Looker では、GitHub、Bitbucket Server、GitLab の Git プロバイダ用のウェブ シークレットがサポートされています。

プロジェクトに Webhook デプロイ シークレットを設定するには:

  1. Development Mode で、プロジェクトを開き、IDE のナビゲーション バーで設定アイコンを選択してプロジェクト設定パネルを開きます。
  2. プロジェクト設定パネルで [構成] を選択します。
  3. [Webhook デプロイ シークレット] セクションまで下にスクロールして、[Webhook シークレットの設定] をクリックします。Looker によりシークレット トークンが自動的に生成されます。このシークレットを自動的に生成することも、独自のシークレット トークンを入力することもできます。
  4. 自動的に生成された Secret を使用しているか、独自の Secret を作成しているかに関わりなく、リポジトリの Webhook に Secret を追加する必要がある場合には、Webhook デプロイ シークレットをコピーしてテキスト ファイルに貼り付けます。この時点で必ずコピーしてください。[Project Settings] ページから移動するかページを更新すると、Webhook デプロイ シークレットにアクセスできなくなり、プロジェクトに再度アクセスするには Webhook デプロイ シークレットの変更または削除が必要になります。
  5. [プロジェクト構成の保存] をクリックします。

プロジェクトのデプロイ Webhook にこの Secret が必要になりました。Looker ステージング インスタンスを使用するプロジェクトの場合、本番環境にデプロイするために HTTP ヘッダーに Webhook デプロイ シークレットを含める必要があります。Git pull リクエスト統合を使用したプロジェクトでは、Git プロバイダのインターフェースに移動して、リポジトリの Webhook にシークレットを追加する必要があります。

Git リポジトリの Webhook の Secret の構成

Git pull リクエスト統合を使用したプロジェクトでは、デプロイの Webhook シークレットを LookML プロジェクトに追加した場合、Git プロバイダのインターフェースに移動して、リポジトリの Webhook にシークレットを追加する必要があります。例として、GitHub を使用してこれを行う方法は次のとおりです。

  1. Git プロバイダのウェブサイトでプロジェクトのリポジトリ設定に移動します。

    ヒント: Git インテグレーション用にプロジェクトを設定している場合は、Looker のプロジェクトの Git メニューから [View Project on Git] オプションを使用できます。

  2. リポジトリの設定で [Webhook] をクリックします。

  3. LookML プロジェクトの Webhook を見つけて、[編集] ボタンをクリックします。

  4. [Secret] フィールドに、Looker の [Webhook デプロイ シークレット] セクションからコピーした Webhook デプロイ シークレットを貼り付けます。

  5. [Webhook の更新] をクリックします。

プロジェクトの本番環境バージョンに変更をデプロイするには、Webhook シークレットが必要になります。必要に応じて、シークレットを変更したり、プロジェクトからシークレットを削除したりできます。

デプロイ シークレットの変更

プロジェクトに Webhook デプロイ シークレットが追加されると、Looker 管理者であれば、次の手順でシークレットを変更できます。

  1. プロジェクトから、ナビゲーション バーで [設定] アイコンを選択します。
  2. [Webhook デプロイ シークレット] セクションまで下にスクロールして、[シークレットをリセット] をクリックします。Looker により新しいシークレット トークンが自動的に生成されます。この自動的に生成されたシークレットを使用することも、独自のシークレット トークンを新たに入力することもできます。
  3. 自動的に生成された Secret を使用しているか、独自の Secret を作成しているかに関わりなく、リポジトリの Webhook に Secret を追加する必要がある場合には、Webhook デプロイ シークレットをコピーしてテキスト ファイルに貼り付けます。この時点で必ずクリップボードからコピーしてください。[Project Settings] ページから移動するかページを更新すると、Webhook デプロイ シークレットにアクセスできなくなるため、戻って変更するか、完全に削除する必要があります。
  4. [プロジェクト構成の保存] をクリックします。

Git pull リクエスト統合を使用してプロジェクトが構成されている場合は、Git プロバイダのインターフェースに移動して、リポジトリの Webhook シークレットの更新も必要になります。

デプロイ シークレットの削除

プロジェクトに Webhook デプロイ シークレットが追加されると、Looker 管理者であれば、次の手順でシークレットを削除できます。

  1. プロジェクトから、ナビゲーション バーで [設定] アイコンを選択します。
  2. [Webhook デプロイ シークレット] セクションまで下にスクロールし、[シークレットを削除] をクリックします。この時点でオペレーションをキャンセルし、[削除しない] をクリックしてデプロイ シークレットを保持できます。
  3. プロジェクトから Webhook デプロイ シークレットを完全に削除するには、[プロジェクト構成の保存] をクリックします。

プロジェクトに、デプロイ Webhook のシークレットは不要になりました。Git pull リクエスト統合を使用してプロジェクトが構成されている場合は、Git プロバイダのインターフェースに移動して、リポジトリから Webhook シークレットを削除できるようになりました。Looker 自体は Git プロバイダ側でシークレットをチェックしないため、Git リポジトリ Webhook にシークレットが構成されていても問題はありません。Git リポジトリからシークレットを削除する場合は、Git リポジトリの Webhook のシークレットの構成で Git プロバイダのインターフェース上のシークレットの編集方法を確認してください。