読者です 読者をやめる 読者になる 読者になる

仕事中の問題と解決メモ。

最近はPythonとGoogle Cloud Platformがメイン。株式会社ビズオーシャンで企画と開発運用、データ活用とか。 http://mstdn.bizocean.co.jp/@uyamazak https://github.com/uyamazak/

Google Cloud Datalab localで日時レポート配信ではまったこと

以前書いた記事のやり方では、すでに実行済みのnotebookをhtmlにして送ってただけなので日時レポートとしては失敗してた。

nbconvertに--executeをつけないといけないらしい。

datalabのコンテナにdocker exec **** bash出入り

>>||
jupyter nbconvert --to html --execute /content/datalab/Daily/nbconvert_test.ipynb

<<

を実行

メッセージをみると

ApplicationDefaultCredentialsError: The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.

環境変数 GOOGLE_APPLICATION_CREDENTIALS に認証ファイルを指定しろというメッセージ。

>>||
from datalab.context import Context

<<

の認証周りを探ったけどファイルパスが出てこない。
ソースを漁ってると、jsで(jupyterが動いてるnode.js?)でパスの記述があったので使ってみる。

一番上のセルに下記を記述

>>||
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]= "/content/datalab/.config/application_default_credentials.json"

<<


これで動いた。
おそらく右上のログイン時に作られているファイルだけど、認証期限がいつまでなのかとか、切れてた場合に、コマンド上で更新する方法はまだわからない。