如何在 aws terraform 中的步骤函数中动态引用 lambda 函数?

How to dynamically reference a lambda function arn inside step function in aws terraform?

我正在使用现有模块创建 lambda 函数。目前我在步骤函数定义 json 文件中引用静态 arn。我需要动态引用它,即在运行时创建 arn。这是代码:

module "student_lambda"{
source = git@github...// Some git repo
//Other info like vpc, runtime, memory, etc
}

如何在我的 json 文件中引用此 student_lambda arn 以获取步进函数?

这是 json 文件片段

"Student lambda response": {
"Type":"Task",
"Resource":"arn:aws:states:::lambda:invoke",
"Parameters":{
"Payload"......// Generic code
"FunctionName":"arn:aws:lambda:us-east-2:..."// Here I want to use something like Student_Lmabda.arn


}}

注意:模块在 main.tf 文件中声明。步骤函数 json 文件在另一个文件夹中。

我假设文件结构是这样的。

=====================

  • main.tf
  • variables.tf
  • 文件夹 json/ -json 文件
  • 模块

=====================

为了实现这一点,我们可以在模块的 output.tf 文件中创建我们正在创建的 lambda 函数的输出。

    output "lambda_arn" {
        value = aws_lambda.<name of the lambda fn>.arn
    }

完成后我们可以使用

引用变量
"Student lambda response": {
"Type":"Task",
"Resource":"arn:aws:states:::lambda:invoke",
"Parameters":{
"Payload"......
"FunctionName":"${module.student_lambda.lambda_arn}"
}}