我有一个AWS lambda函数的terraform模块,如下所示:
module "my-lambda-function" {
...
source_code_path = local.filename
source_code_hash = filebase64sha256(local.filename)
...
}
语法是正确的,但是我有一个问题,当运行tflint时,tflint评估所有变量,并试图在不存在的local.filename
上调用filebase64sha256()
(因为terraform apply尚未执行)来生成资源的source_code_hash
。
有办法防止这种计算吗?虽然我想检查模块,但是当检查器调用函数对定义的资源进行操作时,它看起来像一个bug,而不是实际的资源。
解决这个问题:
source_code_hash = fileexists(local.filename) ? filebase64sha256(local.filename) : null