我有一个用于 AWS Glue 连接的 Terraform 资源,如下所示:
resource "aws_glue_connection" "some-connection-name" {
name = "some-connection-name"
physical_connection_requirements {
availability_zone = var.availability_zone
security_group_id_list = var.security_group_id_list
subnet_id = var.subnet_id
}
connection_properties = {
JDBC_CONNECTION_URL = "jdbc:postgresql://change_host_name:5432/db_name"
JDBC_ENFORCE_SSL = "false"
PASSWORD = "change_password"
USERNAME = "change_username"
}
}
对于上下文,此资源是导入的,而不是最初使用 Terraform 创建的。我一直在通过迭代导入、规划和应用将 Terraform 改造到现有项目中。
当然,我不想将凭据保存在 Terraform 文件中。所以我使用了占位符值,如上所示。部署后,我假设我可以手动更改用户名、密码和连接 URL。
当我运行时,terraform plan
我得到这个指示,表明 Terraform 正在准备更改 Glue Connection:
~ connection_properties = (sensitive value)
Terraform 计划修改 ,connection_properties
因为它们(故意)与实时配置不同。但我不希望它。我想要terraform apply
我的脚本而不覆盖凭据。定期申请是我的开发工作流程的一部分。就目前情况而言,我每次申请后都必须手动恢复凭据。
我想指示 Terraform 不要用我的占位符凭据覆盖远程凭据。我试着简单地省略这个connection_properties
论点,但问题仍然存在。是否有另一种方法可以诱使 Terraform 在申请时不覆盖主机、用户名和密码?