You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在第二代Google Cloud Function中使用Session?解决密钥未设置报错

解决第二代Google Cloud Function中使用Flask Session的RuntimeError问题

错误原因

你遇到的RuntimeError是因为Flask的Session功能需要一个唯一且保密的secret_key来加密会话数据,你的代码未配置该密钥,导致Session无法正常初始化。

修复步骤

1. 获取并配置Flask应用的Secret Key

第二代Google Cloud Function基于functions-framework运行,你需要先获取底层的Flask应用实例,再为其设置secret_key。生产环境请勿硬编码密钥,建议通过环境变量管理密钥。

2. 修改后的完整代码

更新main.py如下:

import functions_framework
from flask import session
import os

# 获取底层Flask应用实例
app = functions_framework.get_app()
# 从环境变量读取密钥,本地开发可临时设置测试值
app.secret_key = os.getenv("FLASK_SECRET_KEY", "temp-dev-key-replace-in-prod")

@functions_framework.http
def hello_http(request):
    request_json = request.get_json(silent=True)
    request_args = request.args

    # 现在可以正常使用Session
    session['logged_in'] = True

    if request_json and 'name' in request_json:
        name = request_json['name']
    elif request_args and 'name' in request_args:
        name = request_args['name']
    else:
        name = 'World'
    return 'Hello {}!'.format(name)

3. 配置环境变量(生产环境)

在Google Cloud控制台的Cloud Function配置页中,添加环境变量FLASK_SECRET_KEY,值设置为你生成的随机保密字符串(可通过openssl rand -hex 32命令生成)。

注意事项

  • 生产环境必须使用安全的随机密钥,绝对不能使用代码中的临时测试值,避免会话数据泄露或被篡改。
  • 你的requirements.txt配置无需修改,functions-framework==3.*版本完全支持此操作。

内容的提问来源于stack exchange,提问作者Europa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 14:32:20