首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Amazon Aurora启用DATA Api

为Amazon Aurora启用DATA Api
EN

Stack Overflow用户
提问于 2020-11-27 09:15:58
回答 2查看 894关注 0票数 2

我们有一个正在运行的AWS Aurora集群(不是无服务器版本)。在使用Golang RDS SDK时,我已经通过Querious (SQL的GUI)从外部成功连接到DB,我收到以下错误消息:

未为群集sample-db- HttpEndpoint启用群集。请参阅

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html#data-api.troubleshooting

这个链接告诉我激活数据API。

问题:这个链接和我到目前为止发现的任何其他链接都与无服务器Aurora相关,我找不到任何方法来为我的Aurora实例启用此功能。

我还尝试通过CLI启用DATA Api:

代码语言:javascript
复制
aws rds modify-db-cluster --db-cluster-identifier my-cluster-id --enable-http-endpoint --region us-east-1

这不管用!

下面是我连接到Aurora的go代码:

代码语言:javascript
复制
package main

import (
"fmt"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/credentials"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/rdsdataservice"
    "log"
    "os"
)

func main() {

    sess:= getSession()
    SQLStatement := `SELECT * FROM testTable`
    fmt.Println("SQLStatement",SQLStatement)
    rdsdataservice_client := rdsdataservice.New(sess)
    req, resp := rdsdataservice_client.ExecuteStatementRequest(&rdsdataservice.ExecuteStatementInput{
        Database:    aws.String("my-database-name"),
        ResourceArn: aws.String("arn:aws:rds:us-east-1:XXXXXXXXXXX:cluster:XXXXXXXX"),
        SecretArn:   aws.String("arn:aws:secretsmanager:us-east-1:XXXXXXXXXXX:secret:XXXXXXXX"),
        Sql:         aws.String(SQLStatement),
    })

    err1 := req.Send()
    if err1 == nil {
        fmt.Println("Response:", resp)
    } else {
        fmt.Println("error:", err1) // Produces the mentioned error
    }
}


func getSession() *session.Session {

    var sess *session.Session
    var err error
    if os.Getenv("aws_access_key_id") != "" && os.Getenv("aws_secret_access_key") != "" && os.Getenv("aws_region") != "" { // explicit credentials
        creds := credentials.NewStaticCredentials(os.Getenv("aws_access_key_id"), os.Getenv("aws_secret_access_key"), "")
        sess, err = session.NewSession(&aws.Config{
            Region:      aws.String("us-east-1"),
            Credentials: creds,
        })
        if err != nil {
            log.Println("Error cred")
        }
    } else {
        sess = session.Must(session.NewSession()) // credentials are passed implicit by role lambda-news-parser-executor (defined in IAM)
    }
    return sess
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-27 17:40:42

好的!我发现这个问题github.com/aws/aws-sdk-go/service/rdsdataservice仅适用于无服务器Aurora,而不适用于“正常”实例。

Link here

Package rdsdataservice提供客户端和类型,用于向AWS RDS DataService发出API请求。Amazon RDS提供了一个HTTP端点,用于在Amazon Aurora无服务器数据库集群。要运行这些语句,需要使用数据服务API。

票数 0
EN

Stack Overflow用户

发布于 2020-11-27 12:08:19

我找不到任何方法来启用我的Aurora实例

这是因为它是不支持。数据API仅适用于无服务器Aurora。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65030986

复制
相关文章

相似问题

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