AWS::RDS::DBProxy - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::RDS::DBProxy

AWS::RDS::DBProxy 资源创建或更新数据库代理。

有关适用于 Amazon RDS 的 RDS 代理的信息,请参阅 Amazon RDS 用户指南 中的使用 Amazon RDS 代理管理连接

有关适用于 Amazon Aurora 的 RDS 代理的信息,请参阅 Amazon Aurora 用户指南 中的使用 Amazon RDS 代理管理连接

注意

限制适用于 RDS 代理,包括数据库引擎版本限制和 AWS 区域限制。

有关适用于 Amazon RDS 的 RDS 代理的限制的信息,请参阅 Amazon RDS 用户指南 中的 RDS 代理的限制

有关适用于 Amazon Aurora 的 RDS 代理的限制的信息,请参阅 Amazon Aurora 用户指南 中的 RDS 代理的限制

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::RDS::DBProxy", "Properties" : { "Auth" : [ AuthFormat, ... ], "DBProxyName" : String, "DebugLogging" : Boolean, "EngineFamily" : String, "IdleClientTimeout" : Integer, "RequireTLS" : Boolean, "RoleArn" : String, "Tags" : [ TagFormat, ... ], "VpcSecurityGroupIds" : [ String, ... ], "VpcSubnetIds" : [ String, ... ] } }

YAML

Type: AWS::RDS::DBProxy Properties: Auth: - AuthFormat DBProxyName: String DebugLogging: Boolean EngineFamily: String IdleClientTimeout: Integer RequireTLS: Boolean RoleArn: String Tags: - TagFormat VpcSecurityGroupIds: - String VpcSubnetIds: - String

属性

Auth

代理使用的授权机制。

必需:是

类型AuthFormat 的列表

Update requires: No interruption

DBProxyName

代理的标识符。对于指定 AWS 区域中您的 AWS 账户拥有的所有代理,此名称必须唯一。标识符必须以字母开头,并且只能包含 ASCII 字母、数字和连字符,不能以连字符结尾,也不能包含两个连续的连字符。

必需:是

类型:字符串

Update requires: Replacement

DebugLogging

代理是否在其日志中包含有关 SQL 语句的详细信息。这些信息可帮助您调试涉及 SQL 行为或代理连接的性能和可扩展性的问题。调试信息包括您通过代理提交的 SQL 语句的文本。因此,只有在需要调试,并且仅当您已采取安全措施来保护日志中显示的任何敏感信息时,才启用该设置。

必需:否

类型:布尔值

Update requires: No interruption

EngineFamily

代理可以连接到的数据库的类型。此值确定代理在解释数据库的出入网络流量时,识别哪个数据库网络协议。引擎系列适用于 RDS 和 Aurora 的 MySQL 和 PostgreSQL。

有效值MYSQL | POSTGRESQL

必需:是

类型:字符串

Update requires: Replacement

IdleClientTimeout

与代理的连接可处于非活动状态的秒数,超过该时间代理将断开连接。您可以将此值设置为高于或低于关联数据库的连接超时限制。

必需:否

类型:整数

Update requires: No interruption

RequireTLS

一个布尔参数,指定与代理的连接是否需要传输层安全性 (TLS) 加密。通过启用此设置,您可以强制与代理进行加密 TLS 连接。

必需:否

类型:布尔值

Update requires: No interruption

RoleArn

代理用于访问 AWS Secrets Manager 中密钥的 IAM 角色的 Amazon 资源名称 (ARN)。

必需:是

类型:字符串

Update requires: No interruption

Tags

一组可选的键/值对,用于将您选择的任意数据与代理相关联。

必需:否

类型TagFormat 的列表

Update requires: No interruption

VpcSecurityGroupIds

要与新代理关联的一个或多个 VPC 安全组 ID。

如果您计划更新资源,请勿在共享 VPC 中指定 VPC 安全组。

必需:否

类型:字符串列表

Update requires: No interruption

VpcSubnetIds

要与新代理关联的一个或多个 VPC 子网 ID。

必需:是

类型:字符串列表

Update requires: Replacement

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回数据库代理的名称。

For more information about using the Ref function, see Ref.

Fn::GetAtt

DBProxyArn

表示目标组的 Amazon 资源名称 (ARN)。

Endpoint

RDS 数据库实例或 Aurora 数据库集群的写入器终端节点。

示例

创建数据库代理并注册数据库实例

以下示例创建数据库代理并注册数据库实例。

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "ProxyName": { "Type": "String", "Default": "exampleProxy" }, "InstanceName": { "Type": "String", "Default": "database-1" }, "BootstrapSecretReaderRoleArn": { "Type": "String", "Default": "arn:aws:iam::123456789012:role/RDSSecretReaderRoleForDBProxy" }, "BootstrapProxySecretArn": { "Type": "String", "Default": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecretForDBProxy" }, "SubnetIds": { "Type": "String", "Default": "subnet-01b761b31fb498f20,subnet-012b9a958ef0f9949,subnet-05e8e263052025378" } }, "Resources": { "TestDBProxy": { "Type": "AWS::RDS::DBProxy", "Properties": { "DebugLogging": true, "DBProxyName": { "Ref": "ProxyName" }, "EngineFamily": "MYSQL", "IdleClientTimeout": 120, "RequireTLS": true, "RoleArn": { "Ref": "BootstrapSecretReaderRoleArn" }, "Auth": [ { "AuthScheme": "SECRETS", "SecretArn": { "Ref": "BootstrapProxySecretArn" }, "IAMAuth": "DISABLED" } ], "VpcSubnetIds": { "Fn::Split": [ ",", { "Ref": "SubnetIds" } ] } } }, "ProxyTargetGroup": { "Type": "AWS::RDS::DBProxyTargetGroup", "Properties": { "DBProxyName": { "Ref": "TestDBProxy" }, "DBInstanceIdentifiers": [ { "Ref": "InstanceName" } ], "TargetGroupName": "default", "ConnectionPoolConfigurationInfo": { "MaxConnectionsPercent": 12, "MaxIdleConnectionsPercent": 11, "ConnectionBorrowTimeout": 120 } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Parameters: ProxyName: Type: String Default: exampleProxy InstanceName: Type: String Default: database-1 BootstrapSecretReaderRoleArn: Type: String Default: arn:aws:iam::123456789012:role/RDSSecretReaderRoleForDBProxy BootstrapProxySecretArn: Type: String Default: arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecretForDBProxy SubnetIds: Type: String Default: subnet-01b761b31fb498f20,subnet-012b9a958ef0f9949,subnet-05e8e263052025378 Resources: TestDBProxy: Type: AWS::RDS::DBProxy Properties: DebugLogging: true DBProxyName: !Ref ProxyName EngineFamily: MYSQL IdleClientTimeout: 120 RequireTLS: true RoleArn: !Ref BootstrapSecretReaderRoleArn Auth: - {AuthScheme: SECRETS, SecretArn: !Ref BootstrapProxySecretArn, IAMAuth: DISABLED} VpcSubnetIds: Fn::Split: [",", !Ref SubnetIds] ProxyTargetGroup: Type: AWS::RDS::DBProxyTargetGroup Properties: DBProxyName: !Ref TestDBProxy DBInstanceIdentifiers: [!Ref InstanceName] TargetGroupName: default ConnectionPoolConfigurationInfo: MaxConnectionsPercent: 12 MaxIdleConnectionsPercent: 11 ConnectionBorrowTimeout: 120