Terraform functions are supported through terrascript.function.* or its shortcuts
terrascript.func.*, terrascript.fn.*, terrascript.f.*.
from terrascript import function, variable, dump
from terrascript.aws.r import aws_instance
aws_region = variable('aws_region', default='us-east-1', description='The AWS region to create things in.')
aws_amis = variable('aws_amis', default={'us-east-1': 'ami-5f709f34', 'us-west-2': 'ami-7f675e4f'})
aws_instance('web', instance_type='t2.micro', ami=function.lookup(aws_amis, aws_region))
print(dump())The Terraform configuration
{
"resource": {
"aws_instance": {
"web": {
"ami": "${lookup(var.aws_amis,var.aws_region)}",
"instance_type": "t2.micro"
}
}
},
"variable": {
"aws_amis": {
"default": {
"us-east-1": "ami-5f709f34",
"us-west-2": "ami-7f675e4f"
}
},
"aws_region": {
"default": "us-east-1",
"description": "The AWS region to create things in."
}
}
}