0

我正在尝试使用极光无服务器数据 API 功能来减少无服务器应用程序中的数据库连接时间。但是建立客户需要时间。

我想通过 lambda 调用 rds HTTP 服务来获取/发布数据。

我遇到了一些帖子,但我仍然收到错误,缺少身份验证令牌

https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_ExecuteStatement.html

我对 MySQL 的示例请求如下。我已经通过 AWS 云外壳运行了它。

curl --location --request POST 'https://rds-data.us-west-2.amazonaws.com/Execute' \
--header 'Content-Type: application/json' \
--data-raw '{
"continueAfterTimeout": false,
"database": "demo_data",
"includeResultMetadata": true,
"parameters": [],
"resourceArn": "arn:aws:rds:us-west-2:*******:cluster:rds-serverless",
"schema": "demo_data",
"secretArn": "arn:aws:secretsmanager:us-west-2:******:secret:serverless/user_u-cMt2Q4",
"sql": "select now()"
}'

4

1 回答 1

0

如果我可以推荐一种不同的方法——AWS 已经为你做了很多工作,所以你不需要为数据 api 构建自己的访问机制。

例如,您可以从命令行使用 aws cli 应用程序(适用于macwindowslinux等)访问数据 api,如下所示

aws rds-data execute-statement --resource-arn "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster" \
--database "mydb" --secret-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret" \
--sql "select * from mytable"

要从 lambda 中访问数据 api,您通常需要为您的 lambda 设置运行的任何语言引入 sdk,然后使用它们的库来访问数据 api 和其他服务。

如果您对在 lambda 中使用命令行一无所知,您甚至可以创建一个包含上述 aws cli 的 lambda 层,然后使用系统命令以这种方式调用 api,尽管我不推荐这样做。

希望这些更简单的解决方案之一比 curl 更适合您!

于 2021-04-17T13:52:53.100 回答