Rah*_*tal 2 go amazon-web-services amazon-rds
我是 AWS 新手,第一次使用关系数据库服务(RDS)。
我已经从 AWS 控制台在 RDS 上创建了一个数据库(MySQL)。现在我尝试在数据库中创建一些表,并使用Golang SDK简单地插入和检索数据。我在 Golang 中创建了以下代码来运行 SQL 查询,但出现如下错误。
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/rdsdataservice"
)
func main() {
// Initialize a session in us-east-2
sess, _ := session.NewSession(&aws.Config{
Region: aws.String("us-east-2")},
)
// Sending a request using the ExecuteStatementRequest method.
SQLStatement := `CREATE TABLE Persons (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);`
// Create RDS service client
rdsdataservice_client := rdsdataservice.New(sess)
req, resp := rdsdataservice_client.ExecuteStatementRequest(&rdsdataservice.ExecuteStatementInput{
Database: aws.String("database-1"),
ResourceArn: aws.String("arn:aws:rds:us-east-2:9xxxxxxxx9:db:database-1"),
SecretArn: aws.String("arn:aws:secretsmanager:us-east-2:9xxxxxxxx9:secret:RDS_Credentials-IZOXv0"),
Sql: aws.String(SQLStatement),
})
err1 := req.Send()
if err1 == nil { // resp is now filled
fmt.Println("Response:", resp)
} else {
fmt.Println("error:", err1)
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到以下错误 -
BadRequestException: Invalid cluster arn: arn:aws:rds:us-east-2:9xxxxxxxx9:db:database-1
status code: 400, request id: a7744d7c-4f19-232f-8bf1-c25662968d55
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我找到问题,我将不胜感激。
我正在使用以下 API 参考文档 -链接。我怀疑这些 API 仅适用于 Aurora 数据库,不适用于其他数据库。如果我错了,请纠正我,并建议正确的 API 参考。
最后,问题得到解决。
事实上,我的案例存在多个问题。
BadRequestException:无效的集群 arn:arn:aws:rds:us-east-2:9xxxxxxxx9:db:database-1 状态代码:400,请求 id:a7744d7c-4f19-232f-8bf1-c25662968d55
这是因为我使用了错误的 ResourceArn。按照此找到 ResourceArn -
RDS --> 数据库
并确保 ARN 中有集群,如下所示 -
arn:aws:rds:us-east-2:9xxxxxxxx9:集群:database-1
这就是我所缺少的。
BadRequestException:未为集群 database-2 启用 HttpEndpoint。请参阅https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html#data-api.troubleshooting 状态代码:400,请求 ID:f6ceef3e-c43c-43a3-a5f2-aeafdedd9b71
通过启用数据 API 可以解决此错误。详细信息在上面的链接中。
编辑
如何获取 SecretARN
要获取 SecretARN,您必须secret使用 [Secret Manager]
2创建一个。AWS Secrets Manager 是一项 AWS 服务,可让您更轻松地管理机密。秘密可以是数据库凭据、密码、第三方 API 密钥,甚至是任意文本。您可以使用 Secrets Manager 控制台、Secrets Manager 命令行界面 (CLI) 或 Secrets Manager API 和 SDK 集中存储和控制对这些机密的访问。
点击此链接为 RDS 创建密钥。首先,您可以禁用secret.
| 归档时间: |
|
| 查看次数: |
4828 次 |
| 最近记录: |