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

如何通过Terraform为AWS Beanstalk环境开启CloudWatch日志流?

解决Terraform配置AWS Beanstalk CloudWatch日志流的问题

这个功能可以通过Terraform实现,只是不在aws_elastic_beanstalk_environment的顶层参数里,需要通过**option_settings配置块**指定Beanstalk的配置选项,对应控制台里的“配置”页面设置。

具体要配置aws:elasticbeanstalk:cloudwatch:logs命名空间下的选项,示例代码如下:

resource "aws_elastic_beanstalk_environment" "your_env" {
  name                = "your-beanstalk-env"
  application         = aws_elasticbeanstalk_application.your_app.name
  solution_stack_name = "64bit Amazon Linux 2 v3.4.10 running Python 3.8" # 根据你的技术栈调整

  # 开启CloudWatch日志流核心配置
  option_settings {
    namespace = "aws:elasticbeanstalk:cloudwatch:logs"
    name      = "StreamLogs"
    value     = "true"
  }

  # 可选:指定自定义日志组名称(默认会自动生成带环境名前缀的日志组)
  option_settings {
    namespace = "aws:elasticbeanstalk:cloudwatch:logs"
    name      = "LogGroupName"
    value     = "/aws/elasticbeanstalk/your-beanstalk-env/logs"
  }

  # 可选:设置日志保留天数(比如30天)
  option_settings {
    namespace = "aws:elasticbeanstalk:cloudwatch:logs"
    name      = "RetentionInDays"
    value     = "30"
  }

  # 可选:针对特定容器/组件开启日志流(以Python容器为例)
  option_settings {
    namespace = "aws:elasticbeanstalk:container:python"
    name      = "ApplicationLogStream"
    value     = "true"
  }
}

关键说明:

  • StreamLogs设为true就是开启控制台里的“CloudWatch日志流”开关;
  • 确保Beanstalk实例使用的IAM角色(默认是aws-elasticbeanstalk-ec2-role)拥有足够的CloudWatch日志写入权限,默认的Beanstalk实例角色策略已经包含了必要权限;
  • 不同技术栈(如Java、Node.js)对应的容器日志配置命名空间会有差异,需要根据你的实际栈调整对应option_settings。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:20:48