如何通过Terraform读取AWS App Config中的最新配置值
如何通过Terraform读取AWS App Config中的配置值
我的流水线原本通过Terraform(tf)脚本使用部分配置值,近期已将所有配置值迁移至AWS App Config,但仍有部分tf脚本出于监控需求需要引用这些值,请问如何通过Terraform读取AWS App Config中的配置值?
方法一:使用Terraform数据源
借助AWS Provider提供的数据源,可直接在Terraform中获取AWS App Config的配置信息:
data "aws_appconfig_configuration_profiles" "example" { application_id = "some-app-id" } data "aws_appconfig_configuration_profile" "example" { for_each = data.aws_appconfig_configuration_profiles.example.configuration_profile_ids configuration_profile_id = each.value application_id = aws_appconfig_application.example.id }
获取到配置信息后,即可在其他Terraform资源中直接引用,比如用于监控配置:
resource "aws_cloudwatch_metric_alarm" "config_monitor" { alarm_name = "app-config-threshold-alarm" alarm_description = "监控阈值来自App Config配置: ${data.aws_appconfig_configuration_profile.example["your-profile-id"].name}" # 其余告警配置项... }
方法二:下载配置文件后读取本地文件
先通过AWS CLI将App Config的配置内容下载到本地JSON文件:
aws appconfig get-configuration --application some-app-id --environment prod --client-id local-cli --configuration config-name --output json > output.json
之后在Terraform中读取并解析这个本地文件:
locals { app_config_data = jsondecode(file("output.json")) } # 示例:在监控仪表盘中引用配置值 resource "aws_cloudwatch_dashboard" "config_dashboard" { dashboard_body = jsonencode({ widgets = [ { type = "text" properties = { markdown = "当前配置值: ${local.app_config_data.target_threshold}" } } ] }) }
内容的提问来源于stack exchange,提问作者Key_coder
相关产品推荐
相关产品推荐

