这似乎很简单,但是每次连接都会超时。
这是Lambda函数中的代码(用Go编写)
package main
import (
"database/sql"
"log"
_ "github.com/go-sql-driver/mysql"
// "github.com/aws/aws-sdk-go/service/rds"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func Handler(request events.APIGatewayProxyRequest) {
db, err := sql.Open("mysql", "username:password(my-database-address:3306)/db_name")
if err != nil {
log.Print(err.Error())
}
defer db.Close()
err = db.Ping()
if err != nil {
log.Print(err.Error())
}
}
func main() {
lambda.Start(Handler)
}
很明显,我已经删除了真实的用户名,密码,地址和数据库名称,但是我已经验证它们都是正确的(我可以通过MySQLWorkbench连接到数据库,具有相同的详细信息)。
我假设它与权限有关?我的Lambda函数确实有权访问完整的RDS功能。
我还尝试删除了延迟db.Close(),以为它可能会无限期地保持打开状态,但这似乎并没有太大变化。
由于sql.Open实际上并未创建连接,因此我在没有 db.Ping的情况下工作。
我是AWS的新手,因此无法弄清楚如何调试它。我在哪里可以找到记录在案的事件,显示阻塞在哪里?还是我在这里进行的连接有问题?