You need to enable JavaScript to run this app.
导航

Terraform

最近更新时间2024.04.28 11:36:22

首次发布时间2024.04.28 11:36:22

关于 Terraform

Terraform 是一个开源的 IT 基础设施编排工具,支持使用配置文件定义基础设施或应用。通过 Terraform,可以轻松的编排云数据库 PostgreSQL 版的资源,例如创建和管理实例等。

产品计费

Terraform 当前可免费使用。

Terraform 支持的功能

Terraform 为云数据库 PostgreSQL 版提供的功能及相应资源如下表所示。

功能使用指引

创建实例、删除实例、修改实例名称、变更实例配置(为实例扩缩容或变更节点规格,不含增删只读节点)、修改实例参数、为实例绑定或解绑标签。

请参见 volcengine_rds_postgresql_instance

为指定实例增加或删除只读节点。请参见 volcengine_rds_postgresql_instance_readonly_node
为指定实例创建或删除数据库。请参见 volcengine_rds_postgresql_database
为指定实例创建账号、删除账号、修改账号权限或重置账号密码。请参见 volcengine_rds_postgresql_account
为指定实例创建 schema、删除 chema 或修改 Schema 的 owner。请参见 volcengine_rds_postgresql_schema
查询指定实例的账号信息。请参见 volcengine_rds_postgresql_accounts
查询指定实例的数据库信息。请参见 volcengine_rds_postgresql_databases
查询实例列表或查询指定实例的详细信息。请参见 volcengine_rds_postgresql_instances
查询指定实例的 schema 信息。请参见 volcengine_rds_postgresql_schemas

安装 Terraform

使用 Terraform 编排云数据库 PostgreSQL 版的资源时,需要安装 Terraform 和 0.0.139 或更新版本的 Provider volcengine。

使用 Terraform

关于使用 Terraform 的详细信息,请参见使用 Terraform

使用示例

  • 创建规格如下表所示的 PostgreSQL 实例,代码如下:

    实例属性配置值
    实例名称acc-test-1
    实例兼容版本PostgreSQL_12
    实例规格rds.postgres.1c2g
    存储空间40
    私有网络acc-test-project1
    子网acc-subnet-test-2
    计费类型PostPaid
    所属项目default
    标签标签键为 tagkey,标签值为 tagvalue。

    实例参数

    为该实例设定了两个参数:

    • 设定参数auto_explain.log_analyze 的值为 off

    • 设定参数 auto_explain.log_format的值为 text

    data "volcengine_zones" "foo" {
    }
    
    resource "volcengine_vpc" "foo" {
      vpc_name   = "acc-test-project1"
      cidr_block = "172.16.0.0/16"
    }
    
    resource "volcengine_subnet" "foo" {
      subnet_name = "acc-subnet-test-2"
      cidr_block  = "172.16.0.0/24"
      zone_id     = data.volcengine_zones.foo.zones[0].id
      vpc_id      = volcengine_vpc.foo.id
    }
    
    
    resource "volcengine_rds_postgresql_instance" "foo" {
      db_engine_version = "PostgreSQL_12"
      node_spec         = "rds.postgres.1c2g"
      primary_zone_id   = data.volcengine_zones.foo.zones[0].id
      secondary_zone_id = data.volcengine_zones.foo.zones[0].id
      storage_space     = 40
      subnet_id         = volcengine_subnet.foo.id
      instance_name     = "acc-test-1"
      charge_info {
        charge_type = "PostPaid"
      }
      project_name = "default"
      tags {
        key   = "tagkey"
        value = "tagvalue"
      }
      parameters {
        name  = "auto_explain.log_analyze"
        value = "off"
      }
      parameters {
        name  = "auto_explain.log_format"
        value = "text"
      }
    }
    
  • 为实例 postgres-95472335**** 创建一个高权限账号 Account_super 和一个普通账号 Account_normal,密码分别为 93c@*****!ab12 和 9wc@*****b12,为普通账号 Account_normal 赋予 InheritLoginCreateDB 权限。代码如下:

    resource "volcengine_rds_postgresql_account" "foo" {
      account_name     = "Account_super"
      account_password = "93c@*****!ab12"
      account_type     = "Super"
      instance_id      = "postgres-95472335****"
    }
    
    resource "volcengine_rds_postgresql_account" "foo1" {
      account_name       = "Account_normal"
      account_password   = "9wc@****b12"
      account_type       = "Normal"
      instance_id        = "postgres-95472335****"
      account_privileges = "Inherit,Login,CreateDB"
    }