CloudFormation 中 Aurora Serverless 的日志保留



我在CloudFormation中设置了一个Aurora Cluster(无服务器 - PostgreSQL(,我想将日志保留期配置为大约7天,但我无法找到在哪里设置此设置。

这是我对DBCluster的CloudFormation定义:

AuroraDBCluster:
Type: AWS::RDS::DBCluster
DeletionPolicy: Delete
UpdateReplacePolicy: Delete
Properties:
Engine: aurora-postgresql
EngineMode: serverless
EngineVersion: 10.7
DatabaseName: test-db
DeletionProtection: false
ScalingConfiguration:
AutoPause: True
MaxCapacity: 8
MinCapacity: 2
SecondsUntilAutoPause: 300
VpcSecurityGroupIds: 
- !Ref AuroraClusterSecurityGroup
Port: !Ref DBPort
MasterUsername:
!Join ['', ['{{resolve:secretsmanager:', !Ref AuroraMasterSecret, ':SecretString:username}}' ]]
MasterUserPassword:
!Join ['', ['{{resolve:secretsmanager:', !Ref AuroraMasterSecret, ':SecretString:password}}' ]]
DBSubnetGroupName: !Ref DBSubnetGroup      
BackupRetentionPeriod: 35
DBClusterParameterGroupName: !Ref RDSDBClusterParameterGroup
StorageEncrypted: true
KmsKeyId: !Ref AuroraKMSCMK

我创建了一个不同的日志组,如下所示:

AuroraClusterLogGroup:
Type: "AWS::Logs::LogGroup"
Properties:
RetentionInDays: 7
LogGroupName: !Join ["", ["/aws/rds/cluster/", !Ref AuroraDBCluster, /postgresql]]

但是当我部署堆栈时,它说:

CREATE_FAILED  AWS::Logs::LogGroup  AuroraClusterLogGroup  /aws/rds/cluster/aurora-serverless-db-ufeihfhef74465/postgresql already exists

因为(我认为(AuroraDBCluster资源创建了自己的同名日志组。

我已经查看了AWS::RDS::DBCluster文档,但没有找到任何有关日志保留的参考资料。

在这种情况下我该怎么办?

谢谢!

如果 Aurora 已经创建了自己的日志组,则无法从 CloudFormation 更改它。执行此操作的唯一方法是在模板中使用自定义资源。

在自定义资源中,您可以使用放置保留策略来修改所选日志组的保留时间。

我能够按照建议自己解决这个限制 https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/190#issuecomment-1318541109

  1. 提取集群标识符作为参数,所以你可以先使用 Dependson 创建日志组 下面是一个示例堆栈 缺点:每当修改任何需要替换的 DBCluster 参数时,都需要使用新的参数值,否则堆栈更新将失败。
Parameters:
ClusterId:
Type: string
Resources:
DBCluster:
Type: AWS::RDS::DBCluster
DependsOn: DBClusterLogGroupError
Properties:
DBClusterIdentifier: !Ref ClusterId
DatabaseName: foo
Engine        : aurora
EngineMode    : serverless
EngineVersion : 5.6.10a
MasterUsername: testuser
MasterUserPassword: testpassword
DBClusterLogGroupError:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: !Sub /aws/rds/cluster/${ClusterId}/error
RetentionInDays: 90
<小时 />

你提到,

但是当我部署堆栈时,它说:

CREATE_FAILED  AWS::Logs::LogGroup  AuroraClusterLogGroup  /aws/rds/cluster/aurora-serverless-db-ufeihfhef74465/postgresql already exists

假设您实施了我上面提供的建议,您可以通过手动删除 CloudWatch 中的日志来解决此问题。然后运行此新模板。然后它将被重新创建,但这次是由CloudFormation本身创建的。

相关内容

  • 没有找到相关文章

最新更新