単一のPythonスクリプトからBokehサーバ上でBokehアプリケーションを実行するには、スクリプト名を渡してください。 bokeh serve 命令行で:
bokeh serve
bokeh serve app_script.py
デフォルトの場合、Bokehアプリケーションは、経路の下に位置するローカルホストのデフォルトポート(5006)上でBokehサーバによってサービスを提供します。 /app_script つまり、
/app_script
http://localhost:5006/app_script
Jupyterノートも同じコマンドを実行することができます。
bokeh serve app_notebook.ipynb
これは、pythonスクリプトを使用して記述された結果と同じ結果を生成し、アプリケーションはローカルホストのデフォルトポート(5006)上のパスでサービスを提供します。 /app_notebook
/app_notebook
ディレクトリからアプリケーションを作成することもできます。このディレクトリは1つを含むべきである main.py (および必要な任意の他のヘルパーモジュール)および任意の追加資産(例えば、主題ファイル)。ディレクトリ名を bokeh serve アプリケーションを実行するには、以下の操作を実行してください。
main.py
bokeh serve app_dir
複数のアプリケーションを同時に実行することができる:
bokeh serve app_script.py app_dir
HTMLページを表示するためにブラウザを自動的に開くには、渡すことができます --show コマンドライン上のオプション:
--show
bokeh serve app_script.py app_dir --show
これは2ページ開きます /app_script そして /app_dir それぞれです。
/app_dir
コマンドラインパラメータをBokehアプリケーションに渡すには、 --args オプションは、コマンドライン上の最後のオプションとして:
--args
bokeh serve app_script.py myapp.py --args foo bar --baz
それに伴うすべてのこと --args ここに含まれているのは sys.argv アプリケーションが実行されると。この場合には myapp.py 実行時には sys.argv はい。はい。 ['myapp.py', 'foo', 'bar', '--baz'] 標準Pythonとペア sys.argv それがそうです。
sys.argv
myapp.py
['myapp.py', 'foo', 'bar', '--baz']
複数のスクリプトまたはディレクトリが提供されている場合、それらは、与えられた同じコマンドラインパラメータのセット(ある場合)を受信することに留意されたい。 --args それがそうです。
アプリケーションが1つしかない場合、サーバルートディレクトリはアプリケーションにリダイレクトされます。そうでなければ、サーバルートディレクトリのすべての実行中のアプリケーションのインデックスを見ることができます:
http://localhost:5006/
以下のコマンドでこのインデックスを無効にすることができます --disable-index オプション、リダイレクト行動が使用できます --disable-index-redirect 選択します。
--disable-index
--disable-index-redirect
複数のアプリケーションを実行する別の方法は、GLOB表現法を使用して、特定のパターンに一致するすべてのファイルを提供すべきであることを示すことである。
bokeh serve *.py
コマンドラインシェルは通常展開されます *.py 自動です。しかし,Bokehサーバをプログラミングで起動すると,shellはglobs付きファイル名パラメータを展開しない可能性がある.この場合には --glob フラグは、Bokehサーバにグローバルバインディングを明示的に実行させるために使用されることができる:
*.py
--glob
subprocess.call(["bokeh", "serve", "--glob", "*.py"])
Bokehサーバは,下位のTornadoサーバをマルチプロセスに分岐させることができる.これは、特に高い計算負荷を必要とするアプリケーションコンテキストにおいて、複数の接続を処理しようと試みる際に非常に有用である。デフォルト行動はプロセスである.0を使用してカーネル数を自動的に検出し、対応する数のプロセスを起動します
bokeh serve app_script.py --num-procs 2
Tornado固有の制限により、Windowsはサポートされていませんのでご注意ください --num-procs 値が1より大きい!この場合、負荷分散装置の後に複数のBokehサーバインスタンスを実行することが考えられる。
--num-procs
Bokehサーバはまた、オプションのプレフィックスをすべてのURLパスに追加することができます。これは,“リバースエージェント”設定と組み合わせて使用する際に通常有用である.
bokeh serve app_script.py --prefix foobar
このアプリケーションは、以下のURLでサービスを提供します。
http://localhost:5006/foobar/app_script
必要であれば,Bokehサーバは一定間隔で活性化pingを送信することができる.この機能を構成するには、 --keep-alive 代替案:
--keep-alive
bokeh serve app_script.py --keep-alive 10000
この値はミリ秒単位で指定される.デフォルトの保活間隔は37秒である.値0を設定すると保存pingが無効になる.
Bokehサーバリスニングのポートを制御する場合は、ご利用ください --port 論点:
--port
bokeh serve app_script.py --port 8080
任意のポートをリッスンする場合は、お渡しください 0 ポート番号として。実際のポート番号は起動時に記録される.
0
同様に、使用することができる --address 論争する。例:
--address
bokeh serve app_script.py --address 0.0.0.0
Bokehサーバに利用可能なすべてのネットワークアドレスをリッスンさせます。
デフォルトでは,サイトをまたいでBokehサーバWebSocketへの接続は許可されていない.属性は他のホストのWebSocket接続を指定し,これらの接続を有効にすることができる. BOKEH_ALLOW_WS_ORIGIN 環境変数や --allow-websocket-origin 代替案:
BOKEH_ALLOW_WS_ORIGIN
--allow-websocket-origin
bokeh serve app_script.py --allow-websocket-origin foo.com:8081
属性は、複数の許可されたWebSocketソースを指定することができます --allow-websocket-origin オプション、コンマで区切られたホストリストを提供します。 BOKEH_ALLOW_WS_ORIGIN
To have the Bokeh server override the remote IP and URI scheme/protocol for all requests with X-Real-Ip, X-Forwarded-For, X-Scheme, X-Forwarded-Proto headers (if they are provided), set the --use-xheaders option:
X-Real-Ip
X-Forwarded-For
X-Scheme
X-Forwarded-Proto
--use-xheaders
bokeh serve app_script.py --use-xheaders
SSLで終了したリバースプロキシの後にBokehサーバを実行する場合、通常はそうする必要がある。
警告
Internet向けのBokehサーバにこのオプションを設定しないことをお勧めします。
Bokehサーバはまた、SSL接続を直接終了することができ、方法は、証明書および証明書の真正性を確立するために必要な任意の数のCA証明書を含むPEMフォーマットの単一ファイルの経路を指定することである。
bokeh serve --ssl-certfile /path/to/cert.pem
あるいは、環境変数を設定することによって経路を提供することもできる BOKEH_SSL_CERTFILE それがそうです。
BOKEH_SSL_CERTFILE
秘密鍵が個別に格納されている場合、その位置は設定によって --ssl-keyfile コマンドラインパラメータ、または設定によって BOKEH_SSL_KEYFILE 環境変数秘密鍵にパスワードが必要な場合は、設定によって BOKEH_SSL_PASSWORD 環境変数
--ssl-keyfile
BOKEH_SSL_KEYFILE
BOKEH_SSL_PASSWORD
通常、Bokehサーバに接続された各ブラウザタブは、自分のセッションIDを有する。サーバがIDを生成すると,パスワード上で推測できなくなる.これは、ユーザが互いのセッションにアクセスすることを防止することができる。
誰がBokehアプリケーションを使用することができるかを制御するために、サーバは、鍵を用いてセッションIDに署名し、“でっち上げ”のセッション名を拒否することができる。3つのパターンがあります --session-ids 論点:
--session-ids
bokeh serve app_script.py --session-ids signed
利用可能なパターンとしては,未署名,署名済み,または外部署名がある.
はい。 unsigned モードでは、サーバは、URLからそれに提供される任意のセッションIDを受け取る。例えば http://localhost/app_script?bokeh-session-id=foo セッションを作成します foo それがそうです。はい。 unsigned セッションIDが一緒に提供されていない場合、モードに戻る ?bokeh-session-id= URLでは,サーバはパスワードでは推測できないIDを生成する.しかしながら、サーバは、クライアントが必要に応じて推測または意図的に共有可能なセッションを作成することを可能にする。
unsigned
http://localhost/app_script?bokeh-session-id=foo
foo
?bokeh-session-id=
unsigned サーバが開発のためにローカルに実行されるとき、モードが最も有用であり、例えば、複数のプロセスに固定されたセッション名、例えば、複数のプロセスをアクセスさせることができる。 default それがそうです。 unsigned 鍵を生成または構成する必要がないので、モードも便利である。
default
はい。 signed モードでは、セッションIDは、特別なフォーマットを採用し、鍵署名を使用しなければならない。無効なセッションIDを持つアプリケーションを使用しようと試みると失敗するが,なければ失敗する. ?bokeh-session-id= パラメータ、サーバは、新しい署名セッションIDを生成する。 signed モードは、セキュリティセッションIDのみを許可するが、誰でもサーバに接続することができる。
signed
はい。 external-signed モードでは、セッションIDに署名しなければならないが、サーバ自体はセッションIDを生成しない。 ?bokeh-session-id= パラメータが必要である.このモデルを用いるためには,外部プロセス(例えば他のWebアプリケーション)がこの関数を使用する. bokeh.util.token.generate_session_id() 有効なセッションIDを作成するには、以下の操作を実行してください。外部プロセスとBokehサーバは同じプロセスを共有しなければならない. BOKEH_SECRET_KEY 環境変数
external-signed
bokeh.util.token.generate_session_id()
BOKEH_SECRET_KEY
external-signed 別のプロセスがBokehサーバへのアクセスを検証することを望む場合、モードは非常に有用です。誰かがBokehアプリケーションを使用することを許可された場合、あなたは、彼らのためにセッションIDを生成し、その後、有効なセッションIDを使用してBokehサーバにリダイレクトする。誰かのためのセッションIDを生成していない場合、Bokehサーバからアプリケーションをロードすることができません。
両方とも美しい. signed そして external-signed モードでは、鍵は秘密でなければならず、鍵を持つ人は誰でも有効なセッションIDを生成することができる。
鍵は BOKEH_SECRET_KEY 環境変数は、少なくとも256ビット(32バイト)のエントロピーを有する暗号化されたランダム文字列であるべきである。♪the bokeh secret コマンドは新しい鍵を生成することができる.
bokeh secret
Bokehサーバは、正しい認証を受けたユーザが存在する場合にのみ接続を許可するように構成することができる。これは、コマンドライン上に必要な機能を実現するモジュールの経路を提供することによって実現される。
bokeh serve --auth-module=/path/to/auth.py
あるいはそれを BOKEH_AUTH_MODULE 環境変数
BOKEH_AUTH_MODULE
このモジュールは one 以下の2つの関数は、現在のユーザ(またはなし)に戻る。
def get_user(request_handler): pass async def get_user_async(request_handler): pass
この関数はTornadoに伝達されます RequestHandler また、認証されたユーザを決定するためにクッキーまたは要求ヘッダをチェックすることができる。有効な認証されたユーザがいない場合、これらの関数はNONEに返されるべきである。
RequestHandler
さらに、モジュールは、認証されていないユーザをどこにリダイレクトするかを指定しなければならない。これは以下のいずれかを含まなければならない。
モジュール属性 login_url (オプション) LoginHandler クラス
login_url
LoginHandler
の関数定義 get_login_url
get_login_url
login_url = "..." class LoginHandler(RequestHandler): pass def get_login_url(request_handler): pass
親戚になる login_url 与えられたものはオプションである LoginHandler クラスも提供可能であり,ルーティングとしてBokehサーバに自動的に実装される.
♪the get_login_url 関数は,登録URLが要求やCookieなどに応じて変化しなければならない場合に非常に有用である. LoginHandler 当たる get_url_function 定義されています
get_url_function
ログインオプションと同様に、オプション logout_url そして LogoutHandler 値は、ログアウトユーザを定義するためのエンドポイントであってもよい。
logout_url
LogoutHandler
認証モジュールが提供されていない場合、デフォルトユーザと仮定し、Bokehサーバエンドポイントにアクセスするには認証を必要としない。
AUTHモジュールの内容を実行します!
Bokehはまた、TornadoのXFRFクッキー保護を有効にすることができる。この機能を開くには、ご利用ください --enable-xsrf-cookies オプション、または環境変数の設定 BOKEH_XSRF_COOKIES=yes それがそうです。この設定を有効にすると、カスタムハンドラまたは登録ハンドラ上の任意のPUT、POST、またはDELETE動作を正確に検出して正常に動作しなければなりません。通常これは xsrf_form_html() モジュールはHTMLフォームにテンプレートを提出する.完全な詳細については、以下を参照されたい。
--enable-xsrf-cookies
BOKEH_XSRF_COOKIES=yes
xsrf_form_html()
Https://www.tornadoweb.org/en/Stability/Guide/security.html#サイト間の偽造保護要求
構成は、セッションが使用されていない頻度をチェックします。設ける --check-unused-sessions 代替案:
--check-unused-sessions
bokeh serve app_script.py --check-unused-sessions 10000
この値はミリ秒単位で指定される.セッションが使用されていないことをチェックするデフォルト間隔は17秒である.正整数値のみを受け取る.
未使用のセッション継続の頻度を配置するには、以下の操作を実行してください。設ける --unused-session-lifetime 代替案:
--unused-session-lifetime
bokeh serve app_script.py --unused-session-lifetime 60000
この値はミリ秒単位で指定される.セッション未使用のデフォルト生存期間は15秒間隔であった.正整数値のみを受け取る.
ログ記録レベルは --log-level 論点:
--log-level
bokeh serve app_script.py --log-level debug
利用可能なログレベルは、TRACE、DEBUG、INFO、WARNING、ERROR、またはCRITICALです。
ログフォーマットは --log-format 論点:
--log-format
bokeh serve app_script.py --log-format "%(levelname)s: %(message)s"
デフォルトログフォーマットは "%(asctime)s %(message)s"
"%(asctime)s %(message)s"
統計ログの書き込み頻度を制御する場合は、 --stats-log-frequency 代替案:
--stats-log-frequency
bokeh serve app_script.py --stats-log-frequency 30000
この値はミリ秒単位で指定される.統計情報を記録するデフォルト間隔は15秒である.正整数値のみを受け取る.
Bokehはプロセスメモリ使用状況を選択的に記録することも可能である.この機能にはオプションが必要です psutil インストールするパッケージ。メモリログ記録を有効にするためには、 --mem-log-frequency 代替案:
psutil
--mem-log-frequency
それがそうです。コードブロック:sh
Bokeh service app_script.py--mem-log-Frequency 30000
この値はミリ秒単位で指定される.統計情報を記録するデフォルト間隔は0(無効)である.正整数値のみを受け取る.
Serve
サブコマンドは、Bokehサーバを起動します。
customize_kwargs
子類カスタマイズを許す server_kwargs それがそうです。
server_kwargs
修正して戻るべきです server_kwargs 辞書です。
invoke
name
この子命令の名前