从外部模块获取 lambda arn?

Getting lambda arn from an external module?

我正在使用这个 module。具体来说,我的 lambda 看起来像这样:

module "lambda_function_existing_package_s3" {
  source = "terraform-aws-modules/lambda/aws"

  function_name = "lambda"
  description   = "lambda"
  lambda_role    = aws_iam_role.iam_for_lambda.arn
  handler = "lambda_function.lambda_handler"
  runtime = "python3.8"
  timeout = 30

  create_package      = false
  
  s3_existing_package = {
    bucket = var.bucket_id
    key    = "bucket/location"
  }

  vpc_subnet_ids         = [var.subnet1, var.subnet2]
  vpc_security_group_ids = [aws_security_group.allow_egress.id]
  attach_network_policy = true

  environment_variables = {
    1 = "1",
    2 = "2"
  }
}

我正在尝试将此 lambda 的 arn 导出为 SSM,如下所示:

resource "aws_ssm_parameter" "lambda" {
  name  = "/lambda/arn"
  type  = "String"
  value = module.lambda_function_existing_package_s3.this.arn
}

这是我最近的尝试,它抛出一个错误,说 this object doesn't have attribute "this",尽管文档中提到了它。我也试过:

value = module.lambda_function_existing_package_s3.arn,以及

value = aws_lambda_function.this.arn

None 有效,我不确定为什么。当我注释掉 SSM 部分时,我已经成功地部署了 lambda,这就是输出的样子:

name: this  
provider: hashicorp/aws
type: aws_lambda_function   
module: lambda_function_existing_package_s3

我在这里错过了什么?

根据 module outputs documentation,Lambda 函数 ARN 值的命名空间将为 module.<declared name>.lambda_function_arn

resource "aws_ssm_parameter" "lambda" {
  name  = "/lambda/arn"
  type  = "String"
  value = module.lambda_function_existing_package_s3.lambda_function_arn
}