如何通过Python从Azure Functions连接到Azure MySQL

时间:2017-11-17 23:30:34

标签: python mysql azure azure-cosmosdb azure-functions

我正在努力;

  1. 当cosmos DB收到数据时,运行由Cosmos DB触发的python代码..
  2. Azure Functions中的python代码具有从Azure MySQL中提取数据的代码。
  3. 我所做的是;

    • 。在Azure Functions中编写python并使用Cosmos触发运行它 D B。这很成功。
    • 。安装了mysql.connector引用 bind_params和 运行代码连接到Azure MySQL,但它不起作用。

    您知道如何将Python的mysql模块安装到Azure Functions并连接到数据库吗?

    谢谢!

1 个答案:

答案 0 :(得分:0)

根据您的描述,我认为您的问题是如何在Azure功能应用中安装Python第三方模块。

请参阅以下步骤:

第1步:

登录kudu:https://Your_APP_NAME.scm.azurewebsites.net/DebugConsole

d:/home/site/wwwroot/<your function name>文件夹中运行以下命令。(需要一些时间)

python -m virtualenv myvenv

第2步:

通过env/Scripts文件夹中的以下命令加载env。

activate.bat

第3步:

你的shell现在应该以(env)为前缀。

更新点子

python -m pip install -U pip

安装您需要的东西

python -m pip install MySQLdb

第4步:

在您的代码中,更新sys.path以添加此venv:

import sys, os.path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), 'env/Lib/site-packages')))

然后通过以下代码片段连接到mysql数据库

#!/usr/bin/python
import MySQLdb

# Connect
db = MySQLdb.connect(host="localhost",
                     user="appuser",
                     passwd="",
                     db="onco")

cursor = db.cursor()

# Execute SQL select statement
cursor.execute("SELECT * FROM location")

# Commit your changes if writing
# In this case, we are only reading data
# db.commit()

# Get the number of rows in the resultset
numrows = cursor.rowcount

# Get and display one row at a time
for x in range(0, numrows):
    row = cursor.fetchone()
    print row[0], "-->", row[1]

# Close the connection
db.close()

希望它对你有所帮助。