需要帮助将输入变量发送到源自S3的Terraform模块

时间:2019-12-15 03:33:46

标签: terraform terraform-provider-aws

当我尝试从S3获取Terraform模块时遇到了一个问题。我有一个模块api_module,它从调用者那里接收几个输入变量(name, environment)。我压缩了此模块代码并将其上传到S3,以便可以在任何需要的地方从S3采购它。

当我将此模块从S3导出到另一个程序中时,terraform不接受设置任何输入变量。如果我从git repo中获取模块,则同一程序将接受输入变量。

这是我正在谈论的示例代码:

     source                 = "s3::http://s3.amazonaws.com/module_bucket/api_module.zip"
     name                   = "api_name"
     environment            = "tst"
} 

terraform在运行 plan 时返回错误,指出输入变量名称和环境不被接受。

如果我从git repo中获取模块,则相同的代码可以很好地工作:

module "my_module" {
     source                 = "git::ssh://git@wwwin-github.com/api_module.git"
     name                   = "api_name"
     environment            = "tst"
}

我需要一些如何将这些输入参数发送到从S3获取源代码的模块的帮助。

谢谢 -hyvrt

1 个答案:

答案 0 :(得分:0)

我可以在另一个门户网站的帮助下解决这个问题。

我的s3归档文件有一个额外的层,这导致下载的模块在路径中具有一个额外的目录。我将归档文件固定为仅压缩文件而不压缩文件夹。现在我看不到从S3采购模块的任何问题。

谢谢