2010-12-02 13 views
7

पर आधारित Google एपीआई कुंजी का उपयोग कैसे करें मैंने अपने ऐप के लिए कुछ अलग "वातावरण" बनाए हैं जो उसकेोकू पर होस्ट किए गए हैं, इसलिए मेरे पास है: appName-staging.heroku.com ऐपनाम-उत्पादन.शोकू .comउसके अनुकरण एप्लिकेशन नाम

मैं इन अनुप्रयोगों के लिए विभिन्न Google एपीआई कुंजी का उपयोग करना चाहता हूं, मैं यह कैसे कर सकता हूं? मैं एक google.yml फ़ाइल है कि लग रहा है बना लिया है की तरह:

विकास: api_key: 'ABCXYZ'

उत्पादन: api_key: 'DEFXYZ'

तो मैं ABCSZY का उपयोग जब स्थानीय स्तर पर विकास, और appName-production.heroku.com प्रश्न के लिए DEFXYZ प्रश्न है, मैं एक अलग कुंजी का उपयोग करने के लिए appName-staging.heroku.com कैसे प्राप्त करूं?

क्योंकि हरोकू में तैनात हर एप्लिकेशन को "उत्पादन" में माना जाता है, appName-staging.heroku.com और appName-production.heroku.com एक ही कुंजी का उपयोग करते हैं।

उत्तर

5

आप प्रत्येक वातावरण में heroku config variable जोड़ सकते हैं, जिससे आप ऐप के भीतर से प्रत्येक को पहचान सकते हैं। की तर्ज पर

कुछ:

$ heroku config:add APP_NAME_ENV=production --app appName-production 
$ heroku config:add APP_NAME_ENV=staging --app appName-staging 

तो फिर तुम का उपयोग कर अपने अनुप्रयोग के भीतर से वर्तमान वातावरण हड़पने सकता है:

ENV['APP_NAME_ENV'] 

और तुम एक हैश बुलाया के रूप में अपने YAML फ़ाइल मिल गया है, तो GOOGLE_KEYS जैसे कुछ, निम्नलिखित दिए गए पर्यावरण के लिए सही कुंजी वापस कर देंगे:

GOOGLE_KEYS[ENV['APP_NAME_ENV']] 
+0

धन्यवाद theTRON में पाया जा सकता है, महान काम करता है! – Varun

0

पिछला उत्तर निश्चित रूप से काम करता है लेकिन उन संभावित सुरक्षा खतरों के लिए जिम्मेदार नहीं है जो फाइलों की जांच के साथ आते हैं जिनमें निजी कुंजी स्रोत नियंत्रण में शामिल है। स्रोत नियंत्रण में आपकी google.yml फ़ाइल होने से आपकी निजी एपीआई कुंजी देखने के लिए किसी को भी आपके रेपो तक पहुंचने की अनुमति मिल जाएगी।

एक अधिक सुरक्षित समाधान google.yml फ़ाइल को हटाने और एक ही कुंजी के साथ अपने मचान और उत्पादन सर्वर पर अलग वातावरण चर बनाने के लिए होगा:

$ heroku config:add GOOGLE_API_KEY=<production key> --app appName-production 
$ heroku config:add GOOGLE_API_KEY=<development key> --app appName-staging 

तब, जब यह आवश्यक हो आप उल्लेख कर सकते हैं यह कोड

ENV['GOOGLE_API_KEY'] 

इससे आपको अपनी निजी एपीआई कुंजी साझा किए बिना कोड साझा करने की अनुमति मिल जाएगी।

Heroku पर वातावरण चर का उपयोग करने पर कुछ अधिक जानकारी https://devcenter.heroku.com/articles/config-vars

संबंधित मुद्दे