如何将对象(列表)传递到字符串(列表)-Terraform



我想将一个包含2个对象的列表作为数组变量传递给lambda_name,lambda_name必须接收my_app和my_app_2密钥名。例如:

variable "lambda" {
type = object({
my_app = object({
name = string
})
my_app_2 = object({
name = string
})
})
description = "Lambda Function required values"
}
data "external" "lambdas" {
program = ["bash", "scripts/random.sh"]
query = {
lambda_name  = (["${var.lambda.my_app.name}", "${var.lambda.my_app_2.name}"])
environment = var.environment
}
}

我得到的错误:

属性"的值不合适;查询":元素";lambda_name":需要字符串。

解决方案:

data "external" "lambdas" {
program = ["bash", "scripts/random.sh"]
query = {
lambda_name = "${var.lambda.my_app.name} ${var.lambda.my_app_2.name}"
environment = var.environment
}
}

scripts/random.sh上,我使用lambda_name作为数组变量。

#!/bin/bash
set -e
eval "$(jq -r '@sh "export LAMBDA_NAME=(.lambda_name)"')"
for lambda in ${LAMBDA_NAME[@]}; do echo $lambda; done

最新更新