如何在 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}"
}}
我正在使用现有模块创建 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}"
}}