Aws lambda Terraform-通过别名调用lambda的URI是什么? 问题

Aws lambda Terraform-通过别名调用lambda的URI是什么? 问题,aws-lambda,terraform,Aws Lambda,Terraform,要从API GW调用Lambda,可用于aws_Lambda_函数资源 invoke_arn-用于从API网关调用Lambda函数的arn 在uri中设置什么来通过别名调用相同的lambda resource "aws_lambda_alias" "lambda_alias_list_videos" { name = "get_video_list" description = "Alias to lambda_list_videos" functi

要从API GW调用Lambda,可用于aws_Lambda_函数资源

invoke_arn-用于从API网关调用Lambda函数的arn

uri中设置什么来通过别名调用相同的lambda

resource "aws_lambda_alias" "lambda_alias_list_videos" {
  name             = "get_video_list"
  description      = "Alias to lambda_list_videos"
  function_name    = "${aws_lambda_function.list_videos.arn}"
  function_version = "$LATEST"
}

aws_lambda_alias
资源创建一个别名,该别名指向lambda函数的特定版本。别名本身不可调用

相反,您应该创建一个指向别名版本的
aws\u lambda\u函数
数据源,并使用其
invoke\u arn
属性。您可以在
aws_lambda_函数中使用
限定符
参数来指定版本或别名(有关详细信息,请参阅)

您的示例显示您已经创建了一个名为get_video_list的别名,该别名指向$LATEST版本。您需要创建指向此别名的新数据源:

data "aws_lambda_function" "my_function_get_video_list" {
  function_name = "your-function-name"
  qualifier = "get_video_list"
}
您现在可以获得别名函数的调用ARN:

${aws_lambda_function.my_function.get_video_list.invoke_arn}

aws\u lambda\u alias
资源具有为API网关设计的
invoke\u arn
属性(请参阅)。例如:

resource "aws_lambda_alias" "api_function_alias_live" {
  name             = "live"
  function_name    = aws_lambda_function.api_function.function_name
  function_version = "1"
}

resource "aws_api_gateway_integration" "proxy_integration" {
  rest_api_id             = aws_api_gateway_rest_api.api_gateway.id
  resource_id             = aws_api_gateway_resource.proxy_resource.id
  http_method             = aws_api_gateway_method.proxy_method.http_method
  integration_http_method = "POST"
  type                    = "AWS_PROXY"
  uri                     = aws_lambda_alias.api_function_alias_live.invoke_arn
}

没有限定符属性。答案内容正确吗?这是资源的文档。它是具有qualifier属性的数据源
resource "aws_lambda_alias" "api_function_alias_live" {
  name             = "live"
  function_name    = aws_lambda_function.api_function.function_name
  function_version = "1"
}

resource "aws_api_gateway_integration" "proxy_integration" {
  rest_api_id             = aws_api_gateway_rest_api.api_gateway.id
  resource_id             = aws_api_gateway_resource.proxy_resource.id
  http_method             = aws_api_gateway_method.proxy_method.http_method
  integration_http_method = "POST"
  type                    = "AWS_PROXY"
  uri                     = aws_lambda_alias.api_function_alias_live.invoke_arn
}