はじめに
以前にPythonのフレームワークであるStreamlitをもとに楽曲レコメンドWebアプリを作成しました。そのアプリはStreamlit Cloudで公開したのですが、利用しているAPIキーをどこに保持していいか分からず、それについて調べた結果をまとめた記事です。
APIキーとは
APIキーとAPIを利用するために必要なパスワードみたいなもので、これがないとAPIを叩けません。(簡単な例でいうと、実家の鍵みたいな感じ)
そのため、GitHubで公開してしまうと、最悪の場合不正利用されてしまう可能性があります。もし誤って公開すると、GitGuardianから大量の英語メールが届きます。
ゼッタイに公開してはダメ。
普通はどうする?
下記のように設定してAPIキーを利用します。
- Pythonでは
dotenvを用いて.envファイルを作成し.gitignoreの対象にする。 - ターミナルやコマンドプロンプトで環境変数として設定する。
Streamlit Cloudで公開する場合
Streamlit Cloudで公開する場合はGitHubで公開されているリポジトリを参照してデプロイしています。
はじめに
そのため、Streamlit Cloudのページの設定したいアプリを探して下の画像の三点リーダをクリック

設定の中ば
クリックすると下の画像が出てくるため、Settingsをクリック

あと少しで設定完了
そうすると下の画像が出てきます。このSecretsにAPIキーを記入することで、他人には見られずにデプロイできます。

このSecretsに記入したAPIキーはデプロイするアプリの###.py(例えば、app.py)にst.secretsで利用することができる。
[ファイル名]
####_APIKey = 'qwerty12345'
API_KEY = st.secrets['ファイル名']['####_APIKey']
最後に
今回デプロイするときにdotenvやターミナルで環境変数に設定してみてもうまく行かず...
今後、Streamlit Cloudでアプリをデプロイされる方のお助けになれば幸いです。