Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aws lambda 创建后如何构造地形代码以获得Lambda ARN?_Aws Lambda_Terraform - Fatal编程技术网

Aws lambda 创建后如何构造地形代码以获得Lambda ARN?

Aws lambda 创建后如何构造地形代码以获得Lambda ARN?,aws-lambda,terraform,Aws Lambda,Terraform,这是我之前提出的一个问题: 这个问题得到了回答,但实际上并没有解决我的问题,所以这是一个后续问题 我编写的地形代码规定了Lambda函数: 根模块: terraform { required_providers { aws = { source = "hashicorp/aws" } } } provider "aws" { region = var.region profile = var.aws_pro

这是我之前提出的一个问题:

这个问题得到了回答,但实际上并没有解决我的问题,所以这是一个后续问题

我编写的地形代码规定了Lambda函数:

根模块:

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
    }
  }
}

provider "aws" {
   region = var.region
   profile = var.aws_profile
}

module "aws_lambda_function" {
   source = "./modules/lambda_function"
}
子模块:

resource "aws_lambda_function" "lambda_function" {
   function_name = "lambda_function"
   handler = "lambda_function.lambda_handler"
   runtime = "python3.8"
   filename = "./task/dist/package.zip"
   role = aws_iam_role.lambda_exec.arn
}

resource "aws_iam_role" "lambda_exec" {
   name = "aws_iam_lambda"
   assume_role_policy = file("policy.json")
}
我希望用户能够做什么来获得Lambda ARN:

terraform output
问题:我的terraform代码中似乎无法包含以下代码,因为它会导致“ResourceNotFOundException:Function not found…”错误


我需要在何处或如何包含这些信息才能获取ARN,或者这是可能的?

您不能同时为正在创建的资源查找
数据。您需要从模块输出ARN,然后从主地形模板再次输出

在Lambda模块中:

output "arn" {
  value = aws_lambda_function.lambda_function.arn
}
然后在主文件中:

output "arn" {
  value = module.aws_lambda_function.arn
}
output "arn" {
  value = module.aws_lambda_function.arn
}