首页 > 解决方案 > 为 AWS Lambda 函数使用 Count 时构建 Terraform 自定义变量

问题描述

我正在尝试为 Lambda 函数生成一个变量,该变量基于使用 Terraform 同时创建的 API 网关的设置。我正在使用 trimprefix 和 trimsuffix 修改从 api 网关获得的设置,然后我将其设置为环境变量以供 Lambda 函数代码使用。

我最初使用的是输出语句,因为我最初使用的是模块。从那以后,我决定远离模块以简化代码。但是,我真正的问题是,当我还使用计数功能时,如何执行 trimprefix 和 trimsuffix 操作。

这是我还在使用模块时的原始代码,它在从头开始修剪“https://”和从末尾修剪“/default”后成功创建了最终的“invoke_url”。

## Obtain the rest_api_id
output "rest_api_id" {
  value = aws_api_gateway_deployment.retaildiscount[count.index].rest_api_id
}

## Trim the https prefix from the invoke URL and store in var.invoke_url_tmp
output "invoke_url_tmp" {
  value = trimprefix(aws_api_gateway_deployment.retaildiscount[count.index].invoke_url, "https://")
}

## Trim the /default suffix from var.invoke_url_tmp and output as var.invoke_url to be used
## by the retailorderprice function
output "invoke_url" {
  value = trimsuffix(var.invoke_url_tmp, "/default")
}

我现在正在尝试做同样的事情,但是当使用“计数”创建相同 Lambda 函数和 API 网关的多个副本时(这是为实验室风格的研讨会创建多个实例,每个函数都将具有一个从aito.tfvars 文件

对于我的一生,我无法弄清楚如何生成修改后的变量并将其链接回适当的函数

标签: variablesaws-lambdacountterraform

解决方案


推荐阅读