首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Terraform创建的postgreSQL数据库中获取内部ip

如何在Terraform创建的postgreSQL数据库中获取内部ip
EN

Stack Overflow用户
提问于 2022-07-16 07:23:43
回答 2查看 135关注 0票数 1

我正在学习terraform部署和GCP,以简化部署。

我已经成功地部署了一个postgreSQL db。

现在,我正试图利用terraform输出将postgreSQL DB服务器生成的私有ip写入启动terraform的输出目录。我不清楚的是:

(1)输出是在同一个main.tf文件中定义的?

(2)输出参数从哪里引用?我找不到正确的aline文档。这样的话,我在应用:Error: Reference to undeclared resource时一直会遇到错误。

我的main.tf看起来像这样

代码语言:javascript
复制
resource "google_sql_database_instance" "main" {
  name             = "db"
  database_version = "POSTGRES_12"
  region           = "us-west1"

  settings {
    availability_type = "REGIONAL"
    tier = "db-custom-2-8192"
    disk_size = "10"
    disk_type = "PD_SSD"
    disk_autoresize = "true"
  }
}

output "instance_ip_addr" {
  value       = google_sql_database_instance.private_network.id
  description = "The private IP address of the main server instance."
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-16 07:42:27

至于代码样式,通常会有一个名为outputs.tf的单独文件,在该文件中,您将在成功的应用程序之后添加希望输出的所有值。问题的第二部分分为两部分:

  1. 您必须了解对资源属性/参数的引用是如何工作的。
  2. 您必须引用资源的正确逻辑ID,即您分配给它的名称,后面跟着参数/属性3

所以,在你的情况下,应该是:

代码语言:javascript
复制
output "instance_ip_addr" {
  value       = google_sql_database_instance.main.private_ip_address # <RESOURCE TYPE>.<NAME>.<ATTRIBUTE>
  description = "The private IP address of the main server instance."
}

1

2

3.

票数 2
EN

Stack Overflow用户

发布于 2022-07-16 07:39:32

要引用资源的属性,应该放置如下内容:

代码语言:javascript
复制
[resource type].[resource name].[attribute]

在这种情况下,输出应该是:

代码语言:javascript
复制
output "instance_ip_addr" {
  value       = google_sql_database_instance.main.private_ip_address
  description = "The private IP address of the main server instance."
}

输出属性列在文献资料中。把它放在main.tf中是可以的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73002346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档