Skip to content

Blog

Streamlit 1.11.0 からは簡単にマルチページアプリケーションが作れる

2022/07/14 にリリースされた Streamlit の Version 1.11.0 から、簡単にマルチページアプリケーションを作れる機能がサポートされました。 詳しくは Multipage apps や公式ブログの Introducing multipage apps! に書かれています。 マルチページにするだけであればコーディングする必要は無く、以下のようにファイルを配置します。 但し、各ページは「1 ページ = 1 ファイル」とし、必ず pages ディレクトリ配下に保存する 必要があります。

Nginx で Proxy させる場合の Streamlit 起動方法

フロントエンドは Nginx を使って Proxy し、バックエンドで Streamlit を動作させる場合、例えば Nginx 側は /etc/nginx/conf.d/default.conf を以下のように設定することが出来ます。 location /app 内で proxy_pass http://127.0.0.1:8501; を指定することにより、http://ADDRESS/app/ へのリクエストは Nginx で Proxy され、ローカルホストの 8501/TCP で動作している Streamlit アプリケーションへ転送されます。

Streamlit の Markdown で特定箇所のみ、スタイルを適用する

現状の Streamlit に用意されている各エレメントは標準機能だけでは「フォントのカスタマイズ」などがあまり出来ず、「Markdown で CSS を挿入する」といった工夫が必要です。 Change font size and font color で議論されていますが、「ピンポイントで特定箇所のフォントだけをカスタマイズして表示したい」という場合は Markdown で該当箇所のみ、スタイルを適用します。

Streamlit 1.16.0 からは Markdown で色指定が可能

2022/12/14 にリリースされた Streamlit の Version 1.16.0 から st.markdownst.header でフォントの色指定が可能になったそうです。

Colored text, using the syntax :color[text to be colored], where color needs to be replaced with any of the following supported colors: blue, green, orange, red, violet.

指定可能な色は現状、以下の 5 種類のみのようです。

  1. blue
  2. green
  3. orange
  4. red
  5. violet.

IOS / IOS-XE を意図的にクラッシュさせる隠しコマンド「test crash」

Cisco IOS / IOS-XE は意図的に「クラッシュしたように見せかけてルータを再起動する」為の隠しコマンドがあります。 これは実際にルータが再起動してしまう為、本番環境での利用は絶対に NG です。 「クラッシュ時のトラブルシューティング練習用」として、検証環境でのみ利用すべきです。 今回はこの「意図的なクラッシュ」の実行方法をメモしておきます。 今回は以下の環境で実行しました。

  • IOS 15.9(3)M4
  • IOS-XE 17.09.01a

尚、NX-OS や ASA に類似のコマンドは存在しないようです。

Traceroute で利用されるプロトコル

Traceroute で利用されるプロトコルは OS によって異なります。 各々、以下がデフォルトのようです。 大部分の OS は「UDP」ですが、Windows のみ「ICMP」ですのでトラブルシューティング時は注意が必要です。

OS Protocol
IOS UDP
IOS-XE UDP
NX-OS UDP
ASA UDP
Linux UDP
macOS UDP
Windows ICMP

Linux や macOS の場合、以下のように -I オプションを指定することで ICMP による Traceroute を実行することが可能です。

1
traceroute -I 10.0.0.1

IOS-XE 17.09.01a の GuestShell で「?」を含むコマンドが実行出来ず…

Cisco IOS XE 隠しコマンドを楽しむ を読んで GuestShell をいじっていたのですが、最近の IOS-XE に同梱されている python3 と cli モジュールでは「?」を含むコマンドを実行するとエラーになってしまいました… 解決していないのですが、実行したスクリプトとエラー内容をメモしておきます。 環境は Catalyst 8000V 17.09.01a を利用しました。

尚、GuestShell の有効化については以前に IOS-XE で GuestShell を有効化し、外部ネットワークと通信する というメモを書いています。