首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将MySQL实例从GCP项目连接到AWs Lambda函数?

问如何将MySQL实例从GCP项目连接到AWs Lambda函数?
EN

Stack Overflow用户
提问于 2021-02-04 23:17:22
回答 1查看 203关注 0票数 1

我已经在GCP项目中托管了我的MySQL实例,我想在AWS Lambda函数中使用它的数据库。我已经尝试了所有方法来连接到GCP中的MySQL数据库实例,但是Lambda函数给出了超时错误,尽管我已经保持了足够的超时时间来运行该函数。我还压缩了安装了MySQL和pymysql的包,然后上传到Lambda,但问题仍然存在。

下面是我为连接到数据库而编写的代码:

代码语言:javascript
复制
import json
import boto3
import mysql.connector
import MySQLdb

def lambda_handler(event, context):
    mydb = MySQLdb.connect(
    host="Public Ip of MySQL Instance",
    user="Username",
    password="Password",
    db="DbName"
    )
    cur = db.cursor()
    cur.execute("SELECT * FROM budget")
    for row in cur.fetchall():
        print(row[0])
    
    db.close()

下面是我收到的错误:

代码语言:javascript
复制
{
  "errorMessage": "(2003, \"Can't connect to MySQL server on '36.71.43.131' (timed out)\")",
  "errorType": "OperationalError",
  "stackTrace": [
    "  File \"/var/lang/lib/python3.8/imp.py\", line 234, in load_module\n    return load_source(name, filename, file)\n",
    "  File \"/var/lang/lib/python3.8/imp.py\", line 171, in load_source\n    module = _load(spec)\n",
    "  File \"<frozen importlib._bootstrap>\", line 702, in _load\n",
    "  File \"<frozen importlib._bootstrap>\", line 671, in _load_unlocked\n",
    "  File \"<frozen importlib._bootstrap_external>\", line 783, in exec_module\n",
    "  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n",
    "  File \"/var/task/lambda_function.py\", line 10, in <module>\n    connection = pymysql.connect(host='36.71.43.131',\n",
    "  File \"/var/task/pymysql/connections.py\", line 353, in __init__\n    self.connect()\n",
    "  File \"/var/task/pymysql/connections.py\", line 664, in connect\n    raise exc\n"
  ]
}

请帮我解决这个问题。我尝试了所有不同的方法来连接到我的SQL实例,但都不起作用。

EN

回答 1

Stack Overflow用户

发布于 2021-02-05 23:15:47

根据错误消息,尝试直接连接MySQL实例的公网IP地址。

您必须将MySQL实例配置为具有公共IPv4地址,并通过adding authorized addresses to your instance接受来自特定IP地址或地址范围的连接。

要配置对MySQL实例的访问,请执行以下操作:

  1. 从客户端计算机上,使用什么是我的IP来查看客户端计算机的IP地址。
  2. 复制该IP地址。
  3. 转到谷歌云控制台中的云SQL实例页面。
  4. 单击该实例以打开其概述页面,并记录其IP address.
  5. Select Connections选项卡。
  6. Select>H112在“已授权的网络”下,单击“Add network”并输入安装客户端的计算机的IP地址。注意: IP地址必须为IPv4。也就是说,实例和您授权的客户机的IP地址都必须是IPv4.
  7. Click完成的。然后单击页面底部的保存以保存您的更改。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66048491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档