【发布时间】:2021-06-22 16:07:33
【问题描述】:
我正在尝试通过 AWS lambda 函数连接到 MYSQL 的本地实例。 有什么我想念的吗?我希望任何访问 API 端点的人都能触发这个 lambda 函数,并向他们显示数据库中的所有条目。如果我做错了什么,请告诉我!
这是我的 Lambda 函数
import pymysql
import json
# TO zzip code all up after it is finished, Use
# zip -r9 ${PWD}/function.zip
# Lambda Permissions:
# AWSLambdaVPCAccessExecutionRole
# Config values
endpoint = 'localhost'
username = 'root'
password = ''
database_name = 'test'
# Connection
conn = pymysql.connect(host=endpoint, user=username,
passwd=password, db=database_name)
def lambda_handler(event, context):
cursor = conn.cursor()
cursor.execute('SELECT * from i5')
rows = cursor.fetchall()
# 2. Construct body of the response object
transactionResponse = {}
transactionResponse['message'] = 'Hello From Jareds lambda function'
transactionResponse['tickets'] = json.dumps(rows)
# 3. Construct HTTP response object
responseObject = {}
responseObject['statusCode'] = 200
responseObject['headers'] = {}
responseObject['headers']['Content-Type'] = 'application/json'
responseObject['body'] = json.dumps(transactionResponse)
return responseObject
来自 cloudwatch 的错误
[ERROR] OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 97] Address family not supported by protocol)")
File "/var/task/handler.py", line 18, in <module>
passwd=password, db=database_name)
File "/var/task/pymysql/connections.py", line 353, in __init__
self.connect()
File "/var/task/pymysql/connections.py", line 664, in connect
raise exc
【问题讨论】:
-
您在本地笔记本电脑/PC 上运行 MySQL,并且希望 AWS Lambda 连接到该数据库?
-
如果您想从 Lambda 连接到数据库 - 您应该考虑使用 Amazon RDS 实例。
标签: python database amazon-web-services aws-lambda pymysql