首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aws_lambda_invocation >条件

aws_lambda_invocation >条件
EN

Stack Overflow用户
提问于 2020-08-08 14:59:01
回答 1查看 1.1K关注 0票数 0

我将一些值传递给lambda函数,然后调用它。效果很好。

我有几个依赖于彼此,在依赖链中的一些资源也。

代码语言:javascript
复制
Invoke_1 > Invoke_2 > aws_glue_catalog_database > Invoke_3

然而,在每个计划中,lambdas被列为“read”,在每一个应用程序中都会被执行。

首先,这使得这个计划更难读懂。冗长的输出(列出我传递的所有值)意味着很难发现其他资源的真正变化。

其次,它运行的是一个不需要运行的函数,这是不干净的。

所以.

是否有一种方法可以使这些调用具有条件性,而不破坏我的依赖链?

代码语言:javascript
复制
// zips the python file in order to be used by lambda
data "archive_file" "lf_settings_1_zip" {
  type        = "zip"
  source_dir  = "${path.module}/scripts/lf_settings_s1/"
  output_path = "${path.module}/scripts/s1deploy.zip"
}

resource "aws_lambda_function" "lakeformation_settings_1" {
  function_name    = "dlsettings_1"
  filename         = data.archive_file.lf_settings_1_zip.output_path
  source_code_hash = data.archive_file.lf_settings_1_zip.output_base64sha256
  role             = aws_iam_role.myRole.arn
  handler          = "main.main"
  runtime          = "python3.8"
}

locals {
  lf1_json = <<JSON
  {
            "account":"${local.account_id}",
            "principals":[
              "arn:aws:iam::${local.account_id}:role/Role1",
              "arn:aws:iam::${local.account_id}:role/Role2"
            ]
        }
  JSON
}

data "aws_lambda_invocation" "invo1" {
  function_name = "dlsettings_1"
  input         = local.lf1_json
  
  depends_on = [
    aws_lambda_invocation.invo0,
    aws_lambda_function.lakeformation_settings_1
  ]
}
EN

回答 1

Stack Overflow用户

发布于 2020-08-08 15:37:51

数据源仍然允许使用count参数。我不太清楚您将如何用当前的terraform代码来实现它,但这就是我的想法。如果var.boolean_youcreate设置为false,那么它就不会调用它:

代码语言:javascript
复制
data "aws_lambda_invocation" "example" {
  count         = var.boolean_youcreate ? "1" : "0"
  function_name = aws_lambda_function.lambda_function_test.function_name

  input = <<JSON
{
  "key1": "value1",
  "key2": "value2"
}
JSON
}

output "result_entry" {
  value = jsondecode(data.aws_lambda_invocation.example.result)["key1"]
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63316813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档