I want to pass a list with 2 objects to lambda_name as an array variable, lambda_name must receive my_app and my_app_2 key name, example:
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
}
}
The error i got:
Inappropriate value for attribute "query": element "lambda_name": string required.
Solution:
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
}
}
on scripts/random.sh, i'm using lambda_name as array variable.
#!/bin/bash
set -e
eval "$(jq -r '@sh "export LAMBDA_NAME=\(.lambda_name)"')"
for lambda in ${LAMBDA_NAME[@]}; do echo $lambda; done