Terraform init执行成功,但AWS未创建Glue数据库与权限配置
问题根源
terraform init仅用于初始化Terraform工作目录,完成以下操作:
- 下载配置中声明的AWS Provider插件
- 初始化远程后端(如果配置了)
- 加载模块依赖(如果有)
这个命令不会触发任何AWS资源的创建或修改,所以你在AWS控制台看不到数据库是正常的。
正确部署流程
要让Terraform创建你定义的Glue数据库和Lake Formation权限,需要执行以下步骤:
- 执行
terraform plan
这个命令会生成执行计划,预览即将创建的资源,同时检查配置语法和依赖是否有问题,确认输出中显示要创建aws_glue_catalog_database.database和aws_lakeformation_permissions.db两个资源。 - 执行
terraform apply
确认执行计划无误后,输入yes确认,Terraform会调用AWS API创建对应的资源。执行完成后,再去AWS Glue控制台就能看到创建的数据库了。
额外检查项
- 确保你的AWS凭据(环境变量、
~/.aws/credentials或IAM角色)拥有足够权限:需要glue:CreateDatabase、lakeformation:GrantPermissions等相关权限 - 检查配置中的
principalARN,将arn:aws:iam::number:user/name中的number替换为你的AWS账号ID,name替换为实际的IAM用户名 - 如果执行
terraform apply时出现报错,根据错误信息排查,比如权限不足、资源名称冲突等
内容的提问来源于stack exchange,提问作者Sasa
相关产品推荐
相关产品推荐

