首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将API网关指向函数或别名的特定版本

将API网关指向函数或别名的特定版本
EN

Stack Overflow用户
提问于 2021-03-02 21:04:46
回答 1查看 133关注 0票数 0

我使用terraform创建了一个Lambda函数,如下所示:

代码语言:javascript
复制
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网关集成如下所示:

代码语言:javascript
复制
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集成触发特定版本(或别名)?

EN

回答 1

Stack Overflow用户

发布于 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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66439988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档