2017-08-19 13 views
1

私はpython 2.7 + FlaskでGAEアプリケーションを実行しており、SENDGRIDサードパーティライブラリを使って電子メールを送信しています。stringをapp.yamlにインポートするにはどうすればよいですか?

また、このプロジェクトをGithubにアップロードしたいので、app.yamlでSENDGRID_API_KEYを非表示にする必要があります。 app.yamlをの

パートはこの

env_variables: 
    SENDGRID_API_KEY: 'my_send_grid_api_key' 

のように見える私はすでにconfig.pyのためのすべての機密鍵を保管していました。だから、私は 'my_send_grid_api_key'部分をcofing.Sendgrid_API_Keyかこれに似たものに置き換えたいと思う。

文字列をapp.yamlにインポートするにはどうすればいいですか、config.pyを指していますか?

答えて

0

あなたは辞書にapp.yamlデータをロードし、それを更新するためにyamlモジュールを使用することができます。

from config import Sendgrid_API_Key 
import yaml 

with open('app.yaml') as f: 
    app_data = yaml.load(f) 

app_data['env_variables']['SENDGRID_API_KEY'] = Sendgrid_API_Key 

with open('app.yaml', 'w') as f: 
    yaml.dump(app_data, f) 
+0

このソリューションは非常に有望なようで、私は後でそれを試してみて、戻ってどうもありがとうございまし来る:あなたはちょうどこれを行うことができSendGridするコールを行い、あなたのコードで

。 –

0

あなたは環境変数としてSendGrid APIキーを格納したいのはなぜ?

from config import Sendgrid_API_Key 
SG = sendgrid.SendGridAPIClient(apikey= Sendgrid_API_Key) 
SG.client.mail.send.post(request_body=data) 
+0

[SendGrid公式ガイド](https://github.com/sendgrid/sendgrid-python)はSendGrid APIキーを環境変数として設定しています。あなたが以前にやったことをやって、HTTP 401エラーを経験しました。そして、単にAPIキーを環境変数に変更した後、問題は解決しました。 –

+0

それは私がそれを行う方法ですので、そのように動作することができます。 401エラーを引き起こす設定が他にもあるはずです。 –

+0

SendGridは、あなたのサーバーでAPIキーがどのように設定されたかを知っているとは思いません。 – marcadian

関連する問題