Streamlit アプリケーションをデーモン化する
先日、Streamlit-Authenticator でログイン認証フォームを作る というメモを書きました。 Streamlit 作成した Web アプリケーションを本格的に利用したい場合はデーモン化しなくなります。 そこで今回は Systemd を使って Streamlit アプリケーションをデーモン化する手順をメモしておきます。
先日、Streamlit-Authenticator でログイン認証フォームを作る というメモを書きました。 Streamlit 作成した Web アプリケーションを本格的に利用したい場合はデーモン化しなくなります。 そこで今回は Systemd を使って Streamlit アプリケーションをデーモン化する手順をメモしておきます。
Streamlit-Authenticator を使うと Streamlit で作成したアプリケーションへログインフォームや認証の機能を追加出来ます。 今回は Streamlit-Authenticator を使い、ログインフォーム機能を持った簡単なアプリケーションのサンプルを動作させるまでの手順をメモしておきます。
virl2_client を使って CML 上のノードを全て停止するサンプルスクリプトをメモしておきます。
Cisco CML のバージョン情報を取得するスクリプトサンプルをメモしておきます。
Cisco CML 上のノード一覧を表示するスクリプトサンプルをメモしておきます。
Python から BOX へアクセスする方法は以下などが考えられます。
No. | 方法 | GitHub ページ | 補足 |
---|---|---|---|
1 | REST API を直接、呼び出す | - | 抽象化されていない為、利用がやや大変 |
2 | Pythoh SDK を利用する | Box Python SDK | サポート終了予定 |
3 | Python SDK (Generated) を利用する | Box Python SDK GENERATED | 今後の主流? |
2 番目の Python SDK は Python SDK (公式サポート終了) のインストール ページで以下のように記載されており、サポート終了予定です。 今後、積極的に利用するのは躊躇われます。
Python SDKは、現在メンテナンスモードであり、まもなく公式サポートが終了する予定です。つまり、実装されるのは重要なセキュリティ更新プログラムとバグ修正のみになります。自動生成されたPython SDKを使用することをお勧めします。
3 番目の Python SDK (Generated) は Python SDK (Generated) のインストール ページで以下のように記載されています。
Pythonプロジェクトでは、自動生成されたBox Python SDKを使用してBox APIを呼び出すことができます。この次世代のSDKには、開発者エクスペリエンスを向上させ、Boxコンテンツクラウドとの統合を効率化することを目的とした新機能が備わっています。
今回は Python SDK (Generated) を利用し、Python から Box へ JWT 認証ログインするサンプルスクリプトをメモしておきます。
Python の DrissionPage を利用すると Web ブラウザの操作を自動化することが出来ます。 現時点でサポートしている環境については下記の記載があります。
- Support system: Windows、Linux、Mac
- Python version:more than 3.6
- Support browser: Chromium kernel(eg. Chrome, Edge),electron
このメモでは DrissionPage の ChromiumPage を使って Web ページを取得する、簡単なサンプルをメモしておきます。 尚、DrissionPage のドキュメントページ は中国語だけのようで、英語など他の言語の提供は無いようです…
以前に CML でノードライセンスを消費するノード・消費しないノード というメモを書きました。 CML は「同時に起動出来るノード数」は「インストールされているノードライセンス数」で決定されます。 これはあくまで「同時起動数」であり、起動しなければ無制限にノードを配置出来ます。 ライセンスがインストールされていない場合の挙動はバージョンによって異なります。
バージョン | ライセンス未インストール時の挙動 |
---|---|
2.8.0 未満 | ノードは 1 台も起動出来ない (サードパーティノードであっても起動出来ない) |
2.8.0 以降 | ノードは 5 台まで起動出来る (6 台以上起動するとエラーになる) |
ノードライセンスを超過した場合、Web UI では以下のようなエラーが表示されます。
今回は API アクセスしている場合のエラーをメモしておきます。 API アクセスには Python + virl2-client を用います。
Cisco CML のライセンス状態を Python から取得するサンプルコードをメモしておきます。 virl2_client.models.licensing の features() を利用することでライセンス状態を取得出来ます。