gcloud alpha logging tail しようとしたら "Please ensure the grpc module is installed" と怒られる

#tech

google-cloud-sdk の alpha 版にはログを tail -f 感覚でストリーミングできる機能があって便利。 以下の手順でこの機能をアクティベートできる。


# alpha componentを有効化 gcloud components install alpha # streamingにgRPCを使っているようなのでパッケージを入れる pip install grpcio # ログを表示する gcloud alpha logging tail --format=json 'labels.k8s-pod/app="my-app-deployment"'

しかし Python パッケージのインストールがうまく認識されず以下のようなエラーで悩まされた。

ERROR: (gcloud.alpha.logging.tail) Please ensure the grpc module is installed. Run: pip install grpcio

まず google-cloud-sdk が想定してる Python バイナリ(pip) を参照しているか怪しかったので確認。以下の環境変数を確認するといいらしい。

echo $CLOUDSDK_PYTHON

確かに想定通りのパスにある pip を使っているようだったので、さらに悩む。 ドキュメントを見返してみると以下の環境変数も設定が必要らしく、指示通りに export したらパッケージが認識されるようになった。

export CLOUDSDK_PYTHON_SITEPACKAGES=1

Note: By default, the Cloud SDK ignores Python libraries installed on your local system. To allow the Cloud SDK to use the grpcio library, you need to enable site packages. To enable site packages, set the CLOUDSDK_PYTHON_SITEPACKAGES environment variable to 1. With site packages enabled, the Cloud SDK can use extra libraries outside of the google-cloud-sdk/lib directory.

Command-line interface  |  Cloud Logging  |  Google Cloud

これもエラーメッセージに出してほしいところだけど、公式ドキュメントをちゃんと読みましょうという話でした。