初始化mongo DB客户端时,Azure Web应用程序崩溃

时间:2018-02-20 18:08:23

标签: mongodb azure ssl web-applications azure-web-app-service

我已经使用MongoDB驱动程序创建了Cosmos DB帐户,并希望从flask服务器访问它。这是我正在尝试的最简单的例子:

from flask import Flask
from pymongo import MongoClient


url = 'monbodb://<my_db_name>.documents.azure.com:10255/?ssl=true
username = '<my_db_name>'
password = '<my_password>'
client = MongoClient(url, username=username, password=password)
app = Flask(__name__)


@app.route('/ping', methods=['GET'])
def ping():
    return 'pong!'


if __name__ == '__main__':
    app.run()

我使用git部署它,最后它表示部署成功。但真正的应用程序已崩溃,因为网页无法访问,并说“由于发生内部服务器错误,无法显示该页面。”。我想问题是使用SSL,因为删除'/?ssl = true'确实允许访问应用程序网页,但是这种情况下DB无法访问!有什么问题以及如何解决?

1 个答案:

答案 0 :(得分:1)

我试图在我的天蓝色烧瓶网页应用中访问我的mongo db,它对我来说效果很好。您可以参考我的工作步骤和代码。

<强> view.py

from datetime import datetime
from flask import render_template
from jaygongflask import app
import pymongo

@app.route('/mongo')
def mongo():
    uri = "mongodb://<account name>:<your account key>@<account name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb"
    client = pymongo.MongoClient(uri)
    db = client['db']
    coll = db['coll']
    doc= coll.find_one()
    return render_template(
        'mongo.html',
        title='Mongo',
        message='Mongo query result.',
        queryResult = doc
    )

发布您的烧瓶项目并添加web.config

enter image description here

<强> 的web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="WSGI_HANDLER" value="<Your Project Name>.app"/>
    <add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
    <add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
  </appSettings>
  <system.webServer>
    <handlers>
      <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
    </handlers>
  </system.webServer>
</configuration>

切换到Kudu CMD并命令cd Python361x64touch get-pip.py并通过编辑按钮将网址https://bootstrap.pypa.io/get-pip.py的内容复制到get-pip.py,然后运行{{1}安装pip工具。

enter image description here

这里,我使用python361x64扩展名。所以我在KUDU中运行命令python get-pip.py

enter image description here

获取查询结果

访问网址python -m pip install pyodbc

enter image description here

更多部署详情,请参阅此tutorial

希望它对你有所帮助。