如何在Terraform中为AWS Glue Job指定Map/JSON结构输入参数?
解决Terraform配置AWS Glue Job嵌套参数时的类型不一致错误
问题原因
AWS Glue Job的default_arguments参数要求所有值必须是字符串类型,你直接传入嵌套的Map/JSON结构,Terraform无法正确解析,因此抛出条件结果类型不一致(原错误Inconsistent conditional result types)的异常。
修复后的配置
使用Terraform的jsonencode函数将嵌套的Map结构序列化为JSON字符串,示例如下:
glue_jobs = [ { name = "SampleGlueJob" default_arguments = { "--dateConversion" = jsonencode({ "columns" = ["column_1"] "dateFormat" = "yyyy-MM-dd'T'HH:mm:ss" }) } } ]
说明
jsonencode会自动将复杂的Map/List结构转换成符合JSON规范的字符串,满足Glue Job对参数格式的要求。- 部署时Terraform会将这个JSON字符串传递给Glue Job,Job运行时可解析该字符串获取内部配置信息。
内容的提问来源于stack exchange,提问作者Kamil W
相关产品推荐
相关产品推荐

