Djangoで簡易な画像投稿アプリを作成し、画像のストレージサービスとしてherokuのアドオンであるcloudinayを使いました。
この際、cloudinayのAPIキー等を以下のようにsettings.pyに記述するのですが、これは本番環境で運用する際はセキュリティ的にNGだと知りました。
settings.py
python
1CLOUDINARY_STORAGE = { 2'CLOUD_NAME': 'xxxxxx', 3'API_KEY': 'yyyyyy', 4'API_SECRET': 'zzzzzz' 5}
そこで、以下のコマンドでherokuの環境変数として設定しました。
zsh
1heroku config:set CLOUD_NAME="xxxxxxp" 2heroku config:set API_KEYE="yyyyyy" 3heroku config:set API_SECRET="zzzzzz"
ここまでは上手くいったのですが、例えば、上記で設定した環境変数を、views.pyで使用したい場合はどのようにすれば良いのでしょうか?
これまでは以下のように使用していたのですが、環境変数設定後では上手くいきません。
python
1from django.conf import settings 2 3settings.CLOUDINARY_STORAGE["API_SECRET"]
何方かアドバイス頂けますと助かります。
よろしくお願いします。
追記
現時点では、APIキーをアプリのどの部分でも使用できるように、context_processors.pyにて以下のような定数を設定しています。
context_processors.py
python
1def api_key(request): 2 context = { 3 'API_SECRET': settings.CLOUDINARY_STORAGE["API_SECRET"], 4 'API_KEY': settings.CLOUDINARY_STORAGE["API_KEY"], 5 'CLOUD_NAME': settings.CLOUDINARY_STORAGE["CLOUD_NAME"], 6 } 7 return context
ところが、環境変数を使用したい場合は上記では上手くいかないため、以下の設定を試してみましたが、やはり上手くいきませんでした。
context_processors.py
python
1import os 2 3 4def api_key(request): 5 context = { 6 'API_SECRET': os.environ['API_SECRET'], 7 'API_KEY': os.environ['API_KEY'], 8 'CLOUD_NAME': os.environ["CLOUD_NAME"], 9 } 10 return context
何方か解決策につながるヒントをご存知の方はいませんでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/12/05 08:31
退会済みユーザー
2020/12/05 08:45