我使用terraform创建了一个Lambda函数,如下所示:
module "my-lambda" {
source = "terraform-aws-modules/lambda/aws"
version = "~> v1.31.0"
function_name = "${var.environment_name}-${local.lambda_name}"
...
publish = true
}
#...
module "alias" {
source = "terraform-aws-modules/lambda/aws//modules/alias"
name = "${var.lambda_name}-latest"
function_name = module.my-lambda.this_lambda_function_name
function_version = module.my-lambda.this_lambda_function_version
}因此,目前我有一个已发布的带有编号的Lambda版本,我还为它添加了一个别名,还有$LATEST版本。我需要发布版本的原因是提供的并发性只能附加到发布版本。
我的API网关集成如下所示:
module "api_gateway" {
source = "terraform-aws-modules/apigateway-v2/aws"
version = "~> 0.9.0"
name = "${var.environment_name}-my-api"
# ...Abriged...
integrations = {
"GET /mymethod" = {
integration_type = "AWS_PROXY"
integration_http_method = "POST"
payload_format_version = "2.0"
lambda_arn = module.my-lambda.this_lambda_function_invoke_arn
}
}但是在控制台中,我可以看到它触发的是$LATEST版本,而不是已发布的版本。如何更改配置,以便API Gateway集成触发特定版本(或别名)?
发布于 2021-03-02 21:31:05
我不熟悉terraform,但要从api网关调用别名,您需要在API网关集成中具有lambda别名arn。
您正在从lambda模块获取lambda arn,但您需要别名的arn。
lambda_arn = module.my-lambda.this_lambda_function_invoke_arn
别名arn只不过是<Lambda ARN>:<AliasName>。
因此,您可以尝试从module.alias中获取arn,或者在集成中使用:附加别名和lambda arn。
https://stackoverflow.com/questions/66439988
复制相似问题