Terraform AWS Provider配置报错:无法获取共享配置文件terragrunt(未用Terragrunt)
问题解决:Terraform执行plan时提示找不到terragrunt共享配置文件(未使用Terragrunt)
问题场景
使用纯Terraform,main.tf配置如下:
terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 4.16" } } required_version = ">= 1.2.0" } provider "aws" { region = "us-west-2" }
执行terraform plan时出现错误:
Error: configuring Terraform AWS Provider: failed to get shared config profile, terragrunt with provider["registry.terraform.io/hashicorp/aws"], on provider.tf line 2, in provider "aws": 2: provider "aws" {
原因分析
虽然没使用Terragrunt,但AWS Provider读取的配置被指向了名为terragrunt的profile,可能的触发点:
- 环境变量
AWS_PROFILE被设置为terragrunt - AWS本地配置文件(
~/.aws/config或~/.aws/credentials)中存在terragrunt相关的profile配置,或默认profile被错误指向 - 系统残留了Terragrunt相关的环境变量,干扰了AWS Provider的配置读取
解决步骤
1. 检查并清理环境变量
- 查看当前
AWS_PROFILE值:
如果输出是echo $AWS_PROFILEterragrunt,取消该环境变量:unset AWS_PROFILE - 检查是否有
TERRAGRUNT_*前缀的环境变量,有则同样用unset命令清除
2. 检查AWS本地配置文件
- 打开
~/.aws/config(Linux/macOS)或C:\Users\<用户名>\.aws\config(Windows),确认:- 不存在
[profile terragrunt]的配置块(不需要的话直接删除) - 默认的
[default]配置块指向的是你实际使用的AWS账号信息
- 不存在
- 同步检查
~/.aws/credentials(或对应Windows路径),确保没有错误关联terragrunt的密钥配置
3. 显式指定AWS Profile(可选)
在Terraform的provider块中直接指定要使用的AWS profile,强制跳过默认读取逻辑:
provider "aws" { region = "us-west-2" profile = "default" # 替换成你实际的profile名称 }
内容的提问来源于stack exchange,提问作者azizbro
相关产品推荐
相关产品推荐

