Firebaseプロジェクトの削除が出来ない時にやったこと


以前作成して使ってないFirebaseプロジェクトを削除しようとしたところ、「You cannot delete this project because it is linked with a Dialogflow agent.」という表示で削除できませんでした。
いろいろ調べて解決したので、その時にやったことを備忘録として残します。

環境

  • mac
  • Cloud Shell

Firebaseプロジェクト削除時の表示

リーエンを削除する必要があると表示される。

詳細のリンク

リンクの通りにまずリーエンのリストを表示。

$ gcloud alpha resource-manager liens list

プロジェクトがDialogflowと紐づいているので削除できないと表示される。

You cannot delete this project because it is linked with a Dialogflow agent. Please follow the link to Dialogflow and delete the agent: https://console.dialogflow.com/api-client/#/agent/e7a5441f-8ad7-4f81-b2d2-a2ef087781f3/  Deletion blocked by Dialogflow.

リーエンの削除方法

共有 VPC がホスト プロジェクトでアクティブな間、誤って削除されないように、プロジェクトにリーエンが設定されます。このリーエンはプロジェクト オーナーが削除できるため、共有 VPC のプロビジョニングに関するガイドラインには、組織ポリシーを定義してプロジェクト リーエンを削除できる IAM メンバーを制限するステップが含まれています。

ホスト プロジェクトは、通常、次の作業をこの順序で完了してから削除する必要があります。

  • すべてのサービス プロジェクトをホスト プロジェクトから接続解除する
  • 共有 VPC を無効化する

上記の手順に沿ってリーエンを削除していきます。

gcloud SDKのインストール

ローカルPC環境で実行する場合に必要です。Cloud Shellで実行する場合はインストールは不要です。

今回はCloud Shellの方法で試しました。

リーエンの削除手順

削除プロジェクトの選択

GCPのコンソールにログインして、削除対象のプロジェクトを選択します。

リーエンの一覧を表示

Cloud Shellを起動して、gcloudコマンドを使ってプロジェクトに接続されているリーエンの一覧を表示して確認します。

ちょっと改行してなくて見にくいですが、下記にコンソールの表示を貼っておきます。

$ gcloud alpha resource-manager liens list
NAME                                                 ORIGIN                                                                                                                                                                                                                           REASON
p772374303240-l1e76e012-2d41-4ae4-a1e4-b468f8b7d57e  You cannot delete this project because it is linked with a Dialogflow agent. Please follow the link to Dialogflow and delete the agent: https://console.dialogflow.com/api-client/#/agent/e7a5441f-8ad7-4f81-b2d2-a2ef087781f3/  Deletion blocked by Dialogflow.

上記で、p772374303240-l1e76e012-2d41-4ae4-a1e4-b468f8b7d57e この部分が削除対象のリーエンIDです。

リーエンの削除

gcloudコマンドで、リーエンを削除します。

gcloud alpha resource-manager liens delete LIEN_ID

ここで LIEN_ID に前段で確認したリーエンIDをセットします。

$ gcloud alpha resource-manager liens delete p772374303240-l1e76e012-2d41-4ae4-a1e4-b468f8b7d57e
Deleted [liens/p772374303240-l1e76e012-2d41-4ae4-a1e4-b468f8b7d57e].

再度リーエンの一覧を確認して、0件になっていたら削除完了です。

$ gcloud alpha resource-manager liens list
Listed 0 items.

Firebaseプロジェクトを削除

再度、削除対象のFirebaseプロジェクトを開き、「プロジェクトの設定」→「全般」を選択します。

プロジェクトの削除を選択します。

プロジェクトの削除確認ダイアログが表示されたら、全てにチェックしてプロジェクトを削除を押下します。

しばらくするとプロジェクトが削除されます。