这是我之前问过的一个问题:如何使用 Terraform 获取 AWS Lambda ARN? https://stackoverflow.com/questions/65798783/how-to-get-aws-lambda-arn-using-terraform
这个问题得到了回答,但事实证明并没有真正解决我的问题,所以这是一个后续行动。
我编写的 terraform 代码提供了 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:找不到函数...”错误。
data "aws_lambda_function" "existing" {
function_name = "lambda_function"
}
output "arn" {
value = data.aws_lambda_function.existing.arn
}
我需要在哪里或如何包含此信息才能获取 ARN,或者这是否可能?