iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
0

前言

看著前幾天的文章,像我們 notify 驗證的 API 有使用到 REDIRECT_URICLIENT_ID 以及 CLIENT_SECRET,或是像 PostgreSQL 的帳號密碼,
只是說若今天當程式碼變多的時候,抑或是這個參數有給其他 API 使用,那在尋找的時候不僅費工又浪費時間
那接下來就帶著大家在 serverless.yml 一步步加入變數值,並更改 code。

動手吧!

用 npm 安裝 serverless 的 dotenv 套件

npm i -D serverless-dotenv-plugin

接著加入新的套件到serverless.yml

plugins:
  - serverless-dotenv-plugin

新增dotenv到 requirements.txt

python-dotenv==0.10.3

到 api.py 加入下面內容

from dotenv import load_dotenv
env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)

接著新增.env並輸入對應的內容

NOTIFY_REDIRECT_URI=
NOTIFY_CLIENT_ID=
NOTIFY_CLIENT_SECRET=
REGION=us-east-2
SQS_URL=
SQS_ARN=
PG_DB=
PG_HOST=
PG_NAME=
PG_PWD=
PG_PORT=

接著修改有使用到他們的地方,範例如下

import os
os.getenv("SQS_ARN")

既然有安裝 serverless 的套件了,那 yml 檔也可以使用哦!

provider:
  name: aws
  runtime: python3.7
  region: ${env:REGION}

後記

有時候把專案抓下來的時候要找到這些輸入的地方很容易找不到(我有點癡呆),一般 open source 也都會有一個.env的,用serverless-dotenv-plugin來幫忙弄就方便許多了,後續有需要再繼續往裡面新增就好了~

最後在搭配 python 的 dot env 套件使用就讓整個好用多了 ?,只是說 html 因為目前還不是透過 serverless 來幫忙部署,所以這邊的參數就沒辦法吃設定檔了 ?

參考

os.environ
env setting


上一篇
Day 6 - 建立一個使用 Query string 來幫忙發送的 LINE Notify
下一篇
Day 8 - SQS 簡單介紹 & 建立
系列文
一步步帶你了解 AWS & LINE API 並使用 Serverless 介接的各種應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言