最近cloud functionsを使っていてローカルでデバッグしたかったので。
自分用覚え書き
pipenv使ってる人はflaskインストールします
環境変数使ってる方はpyyamlも
pipenv install --dev flask, pyyaml
ついでにpipfileにscriptsも追加します
Pipfile
[scripts]
dev = "python main.py"
こんな感じで追加
main.py
if __name__ == "__main__":
from flask import Flask, request
import yaml
app = Flask(__name__)
# 環境変数読み込み
with open('.env.yaml', 'r') as f:
ENV = yaml.load(f)
MY_TOKEN = ENV.get('MY_TOKEN')
@app.route('/', methods=['OPTIONS', 'POST', 'GET])
def index():
return my_function(request)
app.run('127.0.0.1', 8000, debug=True)
サーバー起動して簡単に確認できちゃいます
pipenv run dev
deployもこんな感じでbashスクリプト作っておけば簡単
deploy.sh
GCF_NAME="my-func-name"
PROJECT_ID="my-project-id"
GCF_REGION="asia-northeast1"
gcloud functions deploy $GCF_NAME \
--runtime python37 \
--region $GCF_REGION \
--trigger-http \
--env-vars-file .env.yaml
もっと楽ちんな方法あったら誰か教えてくださ〜い