【发布时间】:2020-05-28 03:23:13
【问题描述】:
这是我的 GCP 云函数“应用”的要点:
main.py
import sqlalchemy
import logging
import os
from time import perf_counter
def main(data, context):
log = logging.getLogger("course_gen")
db = sqlalchemy.create_engine(
sqlalchemy.engine.url.URL(
drivername="mysql+pymysql",
username=os.environ.get("DB_USER"),
password=os.environ.get("DB_PASS"),
host="**.***.**.***", # this is actually the public IP of my cloud mysql instance
port=3306,
database="table_name"
),
pool_size=5,
max_overflow=2,
pool_timeout=30,
pool_recycle=1800
)
with db.connect() as cursor:
start_time = perf_counter()
if __name__ == '__main__':
main('data', 'context')
这是我复制 IP 的 Cloud MySQL 实例的相应概述:
port kwarg 有点令人困惑,但根据我从 this 之类的帖子推断,它始终是 3306。
基本上,当我在本地运行我的云功能时,我希望它能够连接到我配置的实时 GCP MySQL 实例,但我得到的完整错误是:
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on (timed out)")
【问题讨论】:
标签: python mysql google-cloud-platform google-cloud-functions