You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过Terraform将AWS Redshift日志同时发送至CloudWatch和S3?

AWS Redshift能否通过Terraform同时将日志发送到S3和CloudWatch?

问题描述

我们计划通过Terraform在AWS账户中部署Redshift,查阅Terraform Registry文档后发现,redshift_cluster资源的log_destination_type仅支持选择s3或cloudwatch其中一种。我们想知道是否可以将日志同时发送至这两个服务?如果可以,能否通过Terraform实现?

补充:尝试添加两个logging块时无法生效,执行terraform validate时出现如下错误:

│ Error: Attribute redefined
│
│ on redshift.tf line 36, in module "redshift":
│ 36: logging = {
│
│ The argument "logging" was already set at redshift.tf:30,3-10. Each argument may be set only once.

回答

  • 无法直接通过Terraform的redshift_cluster资源同时将日志发送到S3和CloudWatch。核心原因是AWS Redshift本身不支持同时配置两种日志目标类型,Terraform的redshift_cluster资源只是对AWS原生API的封装,自然受限于这个底层限制。
  • 你遇到的Attribute redefined错误,是Terraform的语法规则导致的:logging参数属于单值配置项,重复设置会触发参数重复定义的校验错误,和Redshift本身的功能限制是两回事。
  • 可行的替代方案:
    1. CloudWatch转S3:先将Redshift日志配置到CloudWatch,再通过CloudWatch Logs的订阅过滤器,把日志转发到指定S3存储桶。需要额外配置aws_cloudwatch_log_subscription_filter资源,以及对应的IAM权限(允许CloudWatch向S3写入日志)。
    2. S3转CloudWatch:先配置S3作为Redshift日志目标,再通过S3事件通知触发Lambda函数,将日志同步到CloudWatch Logs。这种方式步骤更多,复杂度更高,一般优先选第一种方案。

内容的提问来源于stack exchange,提问作者philMarius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:18:26