使用Terraform在非根账户部署AWS Grafana遇配置JSON无效错误
解决AWS Grafana工作区Terraform部署的ValidationException问题
排查与修复步骤
1. 确认AWS Grafana版本的有效值
AWS Managed Grafana仅支持特定完整版本号,不能只写主版本(如9.4)。通过AWS CLI查询当前支持的版本:
aws grafana list-versions
返回结果会列出可用的精确版本(如9.4.3、10.1.0),配置时必须使用这些完整字符串。
2. 修正Terraform资源配置结构
确保grafana_version字段(下划线分隔,非驼峰)处于正确层级,非根账户的典型配置示例:
resource "aws_grafana_workspace" "example" { account_access_type = "CURRENT_ACCOUNT" authentication_providers = ["AWS_SSO"] permission_type = "SERVICE_MANAGED" grafana_version = "9.4.3" # 替换为list-versions返回的有效版本 workspace_data_sources = ["AMAZON_CLOUDWATCH"] workspace_name = "example-grafana-workspace" }
同时确认非根账户已附加AmazonGrafanaFullAccess权限策略,且AWS SSO(若使用该认证方式)已完成配置。
3. 清理Terraform状态缓存
若错误配置已写入状态文件,执行以下命令重置:
terraform state rm aws_grafana_workspace.example terraform init -reconfigure
之后重新执行terraform plan和terraform apply。
4. 检查区域版本兼容性
不同AWS区域支持的Grafana版本可能不同,可在AWS控制台的Grafana工作区创建页面查看当前区域的可选版本,再对应到Terraform配置中。
5. 移除版本字段后的额外检查
若移除grafana_version仍报错,排查其他配置项:
- 确认
account_access_type设为CURRENT_ACCOUNT(非根账户默认值) - 验证
authentication_providers取值合法(避免混用不兼容的认证方式) - 检查工作区名称符合格式要求(1-255字符,无特殊字符)
内容的提问来源于stack exchange,提问作者Staggerlee011
相关产品推荐
相关产品推荐

