小编pop*_*ppe的帖子

无法删除 Terraform 中包含提供程序的模块实例

我有一个包含以下资源的模块:

  • 天蓝色的 postgres 服务器
  • 天蓝色的 postgres 数据库
  • postgres 角色(用户)
  • postgres 提供程序(用于服务器并用于创建角色)

在我的一个 env 目录中,我可以有 0-N 个 .tf 文件,它是该模块的一个实例,每个文件都指定了数据库名称等。因此,如果我添加另一个具有新名称的 .tf 文件,那么带有数据库的新数据库服务器将被提供。所有这些工作正常。

但是,如果我现在删除现有的数据库模块(我的 env 目录中的 .tf 文件之一),我会遇到问题。Terraform 现在将尝试获取所有先前存在的资源的状态,并且由于该特定提供程序(针对该 postgres 服务器)现在已经消失,因此 terraform 无法获取创建的 postgres 角色的状态,所有输出都需要提供程序配置块操作

我明白为什么会发生这种情况,但我不知道如何解决这个问题。我想“动态”创建(和删除)带有数据库的 postgres 服务器,但这需要“动态”提供程序,这让我陷入困境。

外观示例

resource "azurerm_postgresql_server" "postgresserver" {
  name                = "${var.db_name}-server"
  location            = "${var.location}"
  resource_group_name = "${var.resource_group}"

  sku = ["${var.vmSize}"]

  storage_profile = ["${var.storage}"]

  administrator_login = "psqladminun"
  administrator_login_password = "${random_string.db-password.result}"
  version = "${var.postgres_version}"
  ssl_enforcement = "Disabled"
}

provider "postgresql" {
  version         = "0.1.0"
  host            = …
Run Code Online (Sandbox Code Playgroud)

postgresql azure terraform

6
推荐指数
1
解决办法
1155
查看次数

根据我之前是否打印出切片,计算 sha256 会在附加切片后给出不同的结果

我正在从多个字符串计算 sha256。我以特定方式将它们转换为字节切片并将它们全部附加在一起,然后使用内置库计算散列。但是,根据我是否在计算 sha256 之前打印出切片,我会得到不同的结果。在操场上测试时,我无法重现它。

可以在https://play.golang.org/p/z8XKx-p9huG上查看并运行经过测试的代码,在这两种情况下,它实际上给出了相同的结果。

func getHash(input1 string, input2hex string, input3hex string, input4 string) (string, error) {
    input1bytes := []byte(input1)
    firstHalfinput1Bytes := input1bytes[:8]
    secondHalfinput1Bytes := input1bytes[8:16]

    input4Bytes := []byte(input4)

    input3Bytes, err := hex.DecodeString(input3hex)
    if err != nil {
        fmt.Println("err " + err.Error())
    }

    input2Bytes, err := hex.DecodeString(input2hex)
    if err != nil {
        fmt.Println("err " + err.Error())
    }

    fullHashInputBytes := append(firstHalfinput1Bytes, input2Bytes...)
    // THIS IS THE OPTIONAL PRINT WHICH CHANGES OUTPUT LOCALLY:
    fmt.Println("fullHashInputBytes", fullHashInputBytes)
    fullHashInputBytes = append(fullHashInputBytes, secondHalfinput1Bytes...)
    fullHashInputBytes …
Run Code Online (Sandbox Code Playgroud)

sha256 go slice

2
推荐指数
1
解决办法
151
查看次数

标签 统计

azure ×1

go ×1

postgresql ×1

sha256 ×1

slice ×1

terraform ×1