はじめに
ローカル環境を構築するのが手間でGoogleColabで学習を進めている人は多いのではないだろうか。
私がそうである。最近はflaskの学習までcolabで行っている。
最近までこの辺の記事を参考にcolabでwebサーバを立てて閲覧することができていた。
しかし、最近になって実行しようとすると以下のような画像が表示されてしまうようになったので原因を調べてみた。
結論
「serve_kernel_port_as_window」は壊れた。
代替手段
「serve_kernel_port_as_iframe」を使おう。
どうやって調べたか。
help()
で該当の関数を検索してみた。
「google.colab.output._util」を入力すると出で来る。
そうすると表示されたのは以下の通り
serve_kernel_port_as_window(port, path='/', anchor_text=None)
Displays a link in the output to open a browser tab to a port on the kernel.
DEPRECATED; Browser security updates have broken this feature. Use
`serve_kernel_port_as_iframe` instead. See
https://developer.chrome.com/en/docs/privacy-sandbox/storage-partitioning/.
This allows viewing URLs hosted on the kernel in new browser tabs.
The URL will only be valid for the current user while the notebook is open in
Colab.
Args:
port: The kernel port to be exposed to the client.
path: The path to be navigated to.
anchor_text: Text content of the anchor link.
雑に日本語訳をすると
カーネル上のポートへのブラウザ タブを開くためのリンクを出力に表示します。
非推奨。ブラウザのセキュリティ更新により、この機能が壊れました。使用
代わりに「serve_kernel_port_as_iframe」を使用してください。見る
https://developer.chrome.com/en/docs/privacy-sandbox/storage-partitioning/。
これにより、カーネルでホストされている URL を新しいブラウザ タブで表示できるようになります。
URL は、ノートブックが開いている間、現在のユーザーに対してのみ有効です。
「非推奨。ブラウザのセキュリティ更新により、この機能が壊れました。」
壊れちゃいました。。。
iframeの方は動くので(確認済み)そちらを使えば動く。
課題
iframeだとURLが発行されないのでAPIサーバとしては利用できない。
ブラウザのセキュリティの問題で403エラーが出ているならブラウザ経由でないアクセスなら引き続き利用できる?※要検証