gpt4 book ai didi

google-app-engine - 缺少用于从 Google App Engine 标准环境连接到 Cloud SQL 的套接字

转载 作者:行者123 更新时间:2023-12-05 00:08:48 27 4
gpt4 key购买 nike

我正在尝试将标准环境中的 Python 3.7 GAE 应用程序连接到 Cloud SQL Postgres 9.6 数据库。
该过程在此 doc 中有所描述.

不幸的是,UNIX 套接字 /cloudsql/<DB_CONNECTION_NAME> GAE 实例上不存在通常用于连接数据库的文件(文件夹 /cloudsql 为空)。

关于我尝试过的更多信息:

  • GAE 应用程序和云 SQL 实例在同一个项目和区域中(我在 europe-west1europe-west3 中尝试过)
  • 我添加和删除了 beta_settings -> cloud_sql_instances关键在 app.yaml配置文件,没用。据我所知,这应该只在灵活的环境中才需要
  • 我已激活 Cloud SQL Admin UI

  • 有没有人遇到并解决过这个问题?

    关于这个问题的 SO 问题要么陈旧,要么没有解决我的环境中的问题。

    最佳答案

    我能够使用以下配置获得连接:

    PROJECT=[[YOUR-PROJECT-ID]]
    REGION=europe-west3
    INSTANCE=instance-01

    和:

    import os

    from flask import Flask

    import psycopg2

    db_user = os.environ.get('CLOUD_SQL_USERNAME')
    db_pass = os.environ.get('CLOUD_SQL_PASSWORD')
    db_name = os.environ.get('CLOUD_SQL_DATABASE')
    db_conn = os.environ.get('CLOUD_SQL_INSTANCE')

    app = Flask(__name__)


    @app.route('/')
    def main():
    host = '/cloudsql/{}'.format(db_conn)

    cnx = psycopg2.connect(
    dbname=db_name,
    user=db_user,
    password=db_pass,
    host=host
    )
    with cnx.cursor() as cursor:
    cursor.execute('SELECT NOW() as now;')
    result = cursor.fetchall()
    current_time = result[0][0]
    cnx.commit()
    cnx.close()

    return str(current_time)

    和:
    flask==1.0.2
    psycopg2==2.8

    并且,与 ${VARIABLE}替换为值:
    runtime: python37
    env_variables:
    CLOUD_SQL_INSTANCE: "${PROJECT}:${REGION}:${INSTANCE}"
    CLOUD_SQL_USERNAME: ${USERNAME}
    CLOUD_SQL_PASSWORD: ${PASSWORD}
    CLOUD_SQL_DATABASE: ${DATABASE}

    关于google-app-engine - 缺少用于从 Google App Engine 标准环境连接到 Cloud SQL 的套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55536021/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com