App Engine 上的 Flask-SQLAlchemy 使用连接到 Cloud Compute Engine 上的 MSSQL 数据库
Flask-SQLAlchemy on App Engine connect to MSSQL database on Cloud Compute Engine using
我对 GCP 整体还很陌生,我需要为一个有客户端的项目部署一个 Flask 应用程序。鉴于 Google 提供的所有文档,部署应用程序非常简单,而且由于使用灵活的应用程序引擎似乎是最简单的方法,这就是我正在尝试使用的方法。
我遇到的问题是尝试连接到在 Compute Engine 上设置的 MSSQL 数据库。到目前为止,我已经在 .
的帮助下使用 pyodbc
在本地连接到数据库
我确定 运行 gcloud app deploy
不会工作,果然它无法安装 pyodbc
模块。我认为这无论如何都不是办法,并且基于 this page of the docs,似乎我应该能够通过其内部 IP 地址连接到计算引擎。
虽然我不知道如何从这里开始,因为文档中的所有内容都希望我使用 Cloud SQL 实例,但考虑到此数据是由客户提供的并且我正在工作在他们的 GCP 项目上,我有点局限于我上面描述的场景。
此问题已得到解决。
问题是服务器上没有下载 ODBC 驱动程序,因此我需要使用 Dockerfile 创建自定义运行时才能首先安装驱动程序。
我的解决方案得到了这个解决方案的极大帮助:
步骤如下:
运行 gcloud beta app gen-config --custom
在你的 flask 应用目录中。
在现在创建的 Dockerfile 中,在安装 pip 要求之前添加这些行。
#Install FreeTDS and dependencies for PyODBC
RUN apt-get update
RUN apt-get install -y tdsodbc unixodbc-dev
RUN apt install unixodbc-bin -y
RUN apt-get clean -y
ADD odbcinst.ini /etc/odbcinst.ini
文件 odbcinst.ini 应包含以下行:
[FreeTDS]
Description=FreeTDS Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
在那之后 gcloud app deploy
应该可以正常工作。
我对 GCP 整体还很陌生,我需要为一个有客户端的项目部署一个 Flask 应用程序。鉴于 Google 提供的所有文档,部署应用程序非常简单,而且由于使用灵活的应用程序引擎似乎是最简单的方法,这就是我正在尝试使用的方法。
我遇到的问题是尝试连接到在 Compute Engine 上设置的 MSSQL 数据库。到目前为止,我已经在
pyodbc
在本地连接到数据库
我确定 运行 gcloud app deploy
不会工作,果然它无法安装 pyodbc
模块。我认为这无论如何都不是办法,并且基于 this page of the docs,似乎我应该能够通过其内部 IP 地址连接到计算引擎。
虽然我不知道如何从这里开始,因为文档中的所有内容都希望我使用 Cloud SQL 实例,但考虑到此数据是由客户提供的并且我正在工作在他们的 GCP 项目上,我有点局限于我上面描述的场景。
此问题已得到解决。
问题是服务器上没有下载 ODBC 驱动程序,因此我需要使用 Dockerfile 创建自定义运行时才能首先安装驱动程序。
我的解决方案得到了这个解决方案的极大帮助:
步骤如下:
运行 gcloud beta app gen-config --custom
在你的 flask 应用目录中。
在现在创建的 Dockerfile 中,在安装 pip 要求之前添加这些行。
#Install FreeTDS and dependencies for PyODBC
RUN apt-get update
RUN apt-get install -y tdsodbc unixodbc-dev
RUN apt install unixodbc-bin -y
RUN apt-get clean -y
ADD odbcinst.ini /etc/odbcinst.ini
文件 odbcinst.ini 应包含以下行:
[FreeTDS]
Description=FreeTDS Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
在那之后 gcloud app deploy
应该可以正常工作。