Amazon Aurora
Aurora 用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 Aurora Serverless 的数据 API

对于 Aurora Serverless,数据 API 为测试版,可能会发生变化。

您可以使用内置数据 API 访问 Aurora Serverless 数据库集群。利用此 API,您可以使用基于 Web 服务的应用程序(包括 AWS Lambda 和 AWS AppSync)访问 Aurora Serverless。

数据 API 不需要与数据库集群的持久连接。相反,它提供了安全 HTTP 终端节点以及与 AWS 开发工具包的集成。您可以使用终端节点以与通过 MySQL 本机协议相同的方式执行 SQL 语句,但不需要管理连接。此 API 以 JSON 格式返回查询结果。对数据 API 的所有调用都是同步的。如果未完成处理,调用会在 1 分钟后超时并终止。

API 使用存储在 AWS Secrets Manager 中的数据库凭证,因此,您无需在 API 调用中传递凭证。如果您使用的是 AWS Lambda,此 API 为您提供了一种安全的方式来访问您的数据库集群,而无需配置 Lambda 函数来访问 Amazon VPC 中的资源。有关 AWS Secrets Manager 的更多信息,请参阅 AWS Secrets Manager 用户指南 中的什么是 AWS Secrets Manager?

在启用数据 API 时,您也可以使用 Aurora Serverless 的查询编辑器。有关更多信息,请参阅 使用 Aurora Serverless 的查询编辑器

数据 API 的可用性

目前,数据 API 仅在美国东部(弗吉尼亚北部)区域提供。使用 HTTPS 协议链接到 rds-data.us-east-1.amazonaws.com 以访问数据 API。

启用数据 API

要使用数据 API,您必须为 Aurora Serverless 数据库集群启用它。您可以在修改数据库集群时启用数据 API。

在修改 Aurora Serverless 数据库集群时,您可以使用 RDS 控制台启用数据 API。您可以在 RDS 控制台的网络与安全部分中启用数据 API 来做到这一点。

以下屏幕截图显示启用的 Data API (数据 API)


                            使用控制台为 Aurora Serverless 数据库集群启用数据 API

有关说明,请参阅修改 Aurora Serverless 数据库集群

在 AWS Secrets Manager 中存储数据库凭证

在调用数据 API 时,您可以使用 AWS Secrets Manager 中的密钥传递 Aurora Serverless 数据库集群的凭证。要通过此方式传递凭证,您需要指定密钥的名称或密钥的 Amazon 资源名称 (ARN)。

在密钥中存储数据库集群凭证

  1. 使用 AWS Secrets Manager 创建包含 Aurora 数据库集群的凭证的密钥。

    有关说明,请参阅 AWS Secrets Manager 用户指南 中的创建基本密钥

  2. 使用 AWS Secrets Manager 控制台查看创建的密钥的详细信息,或运行 describe-secret AWS CLI 命令。

    记下密钥的名称和 ARN。您可以将其用于对数据 API 的调用中。

调用数据 API

在为 Aurora Serverless 数据库集群启用数据 API 后,您可以调用数据 API 以对集群运行 SQL 语句。

您可以从应用程序或使用 AWS Command Line Interface (AWS CLI) 调用数据 API。

要使用 AWS CLI,请使用 aws rds-data execute-sql 命令并指定以下选项:

  • --db-cluster-or-instance-arn – Aurora Serverless 数据库集群的 Amazon 资源名称 (ARN)。

  • --database – 要运行 SQL 语句的数据库的名称。

  • --schema – 要运行 SQL 语句的架构的名称。

  • --aws-secret-store-arn – 允许访问数据库集群的密钥的名称或 ARN。

  • --sql-statements – 要对数据库集群运行的一个或多个 SQL 语句。

    您可以使用分号 (;) 分隔 SQL 语句。允许任何有效的 SQL 语句,包括数据定义、数据操作和提交语句。

  • --region – 包含 Aurora Serverless 数据库集群的 AWS 区域。

  • --no-verify-ssl – 覆盖验证 SSL 证书的默认行为。

  • --endpoint-url – 给定 AWS 区域中 RDS API 的 HTTP 终端节点的 URL。对于美国东部(弗吉尼亚北部)区域,URL 为 https://rds-data.us-east-1.amazonaws.com

  • --profile – 凭证文件中的一个特定的配置文件。

数据库集群为每个调用返回一个响应。

注意

在响应中,行限制是 1000 行,大小限制是 1 MB。

例如,以下 AWS CLI 命令运行单个 SQL 语句。

针对 Linux、OS X 或 Unix:

aws rds-data execute-sql --db-cluster-or-instance-arn arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster --schema "" \ --database "mydatabase" --aws-secret-store-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret" \ --sql-statements "select * from mytable" --region us-east-1 --no-verify-ssl \ --endpoint-url https://rds-data.us-east-1.amazonaws.com --profile myprofile

对于 Windows:

aws rds-data execute-sql --db-cluster-or-instance-arn arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster --schema "" ^ --database "mydatabase" --aws-secret-store-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret" ^ --sql-statements "select * from mytable" --region us-east-1 --no-verify-ssl ^ --endpoint-url https://rds-data.us-east-1.amazonaws.com --profile myprofile

以下 AWS CLI 命令运行多个 SQL 语句并提交更改。

针对 Linux、OS X 或 Unix:

aws rds-data execute-sql --db-cluster-or-instance-arn arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster --schema "" \ --database "mydatabase" --aws-secret-store-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret" \ --sql-statements "create table mytable(c1 INT, c2 VARCHAR(40));insert into mytable(c1,c2)values(1,"Data1");commit;" \ --region us-east-1 --no-verify-ssl --endpoint-url https://rds-data.us-east-1.amazonaws.com \ --profile myprofile

对于 Windows:

aws rds-data execute-sql --db-cluster-or-instance-arn arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster --schema "" ^ --database "mydatabase" --aws-secret-store-arn "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret" ^ --sql-statements "create table mytable(c1 INT, c2 VARCHAR(40));insert into mytable(c1,c2)values(1,"Data1");commit;" ^ --region us-east-1 --no-verify-ssl --endpoint-url https://rds-data.us-east-1.amazonaws.com ^ --profile myprofile