StreamlitでAppを作成する際、DBのパスワードやAPI Keyなどのシークレット情報がアクセスに必要になることが多々あります。
今回、AzureのAPIキーをStreamlit Sharingで使いたかったので、StreamlitのSecrets管理機能を試してみました。
Secretsの設定
Streamlit Sharingにてホストしたサイトの設定からSettings
を選択し、Secrets
の設定を行います。
シークレット情報はTOML形式で記述します。
なお、ローカル環境でシークレットを使用したい場合は、.streamlit/secrets.toml
を作成し、同様の定義をすることで実現可能です。この際、secrets.tomlはGitリポジトリにコミットしないよう注意してください。
Appでの利用方法
アプリ側で設定したシークレット情報を読み込みたい時は以下のように記述します。
import streamlit as st
KEY = st.secrets.AzureApiKey.key
ENDPOINT = st.secrets.AzureApiKey.endpoint
# 以下の書き方でも可
KEY = st.secrets["AzureApiKey"]["key"]
参考