iT邦幫忙

1

[學習筆記] 環境變數

  • 分享至 

  • xImage
  •  

設定環境變數

LineBOT on Render

最近學習Linebot設計,初學使用heroku,但heroku變更收費制度,改用render+github
DeplytoRender後收到GitGuardian警示信XD
"GitGuardian has detected the following Line Messaging Key exposed within your GitHub account."
因為在設計初期搭配ngrok使用,需要切換不同平台,方便使用下token..等訊息,都是直接寫入檔案中。(懶惰蟲上身)

依據原本官方的文件,再修改了寫法。
新增文件 .env
.env放本機不用傳到GitHub

LINE_CHANNEL_SECRET=YOUR_LINE_CHANNEL_SECRET
LINE_CHANNEL_ACCESS_TOKEN=YOUR_CHANNEL_ACCESS_TOKEN

修改追加requirements.txt

python-dotenv==0.21.0

修改程式app.py追加以下

from dotenv import load_dotenv
# render專用(隱藏token等資訊,render另外設定)
# get channel_secret and channel_access_token from your environment variable
channel_secret = os.getenv('LINE_CHANNEL_SECRET', None)
channel_access_token = os.getenv('LINE_CHANNEL_ACCESS_TOKEN', None)
if channel_secret is None or channel_access_token is None:  #if render none,import .env
    load_dotenv()   #.env
    channel_secret = os.getenv('LINE_CHANNEL_SECRET', None)
    channel_access_token = os.getenv('LINE_CHANNEL_ACCESS_TOKEN', None)
    if channel_secret is None or channel_access_token is None:
        print('Specify LINE_CHANNEL_SECRET and LINE_CHANNEL_ACCESS_TOKEN as environment variables.')
        sys.exit(1)

第1個if若無變數資料,讀取本機.env
第2個if若.env也無變數資料,輸出錯誤
本身render可設定環境變數,但是開發使用ngrok無法讀取render環境,用這樣的方式,就可以平台切換時來去自如,不用再去做設定。

selenium場合運用

google雲端文件需要帳號密碼登入,公司使用GSuite需要定期變更密碼,這時候每個檔案開啟修改密碼,真的讓人很無言,此時使用環境變數去抓取帳號密碼檔案,只需要修改檔案.env

很多場合善用環境變數,除了保有隱私,也可以更快速的修改專案。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言