首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aws_lambda_function和aws_lambda_function_event_invoke_config

aws_lambda_function和aws_lambda_function_event_invoke_config
EN

Stack Overflow用户
提问于 2022-04-25 13:38:07
回答 1查看 252关注 0票数 0

我使用Terraform0.14并尝试部署AWS函数。在发布新版本的lambda之前,我希望将event_age和retry_attempts设置为特定值(1分钟event_age,0次重试尝试)。下面的代码显示事件年龄和重试尝试都是使用lambda的$LATEST版本设置的。然而,当发布新版本(作为terraform构建的一部分)时,retry_attempts和event_age默认为6小时event_age和2次最大重试尝试。

下面是实现逻辑的tf文件。

代码语言:javascript
复制
terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
    }
  }
  required_version = ">= 0.14"

  backend "s3" {
      region = "us-east-1"
      bucket = "s3bucket"
  }
}

provider "aws" {
  assume_role {
    role_arn     = "arn:aws:iam::${var.accountID}:role/Jenkins-CC"
    session_name = "AssumingJenkins-CC"
  }

  region = var.region
}

resource "aws_lambda_function" "lambda-deploy" {
  filename      = var.filename
  function_name = var.functionname
  role          = "arn:aws:iam::${var.accountID}:role/${var.iam_role}"
  handler       = var.handler
  runtime       = var.runtime
  memory_size   = var.memory_size
  timeout       = var.timeout
  description   = var.description
  publish       = var.publish
  source_code_hash = filebase64sha256(var.filename)

  layers = var.layers

  environment {
    variables = var.envVars
  }

  tags = {
    PLATFORM        = var.tag_PLATFORM
    BUSINESS_UNIT   = var.tag_BUSINESS_UNIT
    CLIENT          = var.tag_CLIENT
    BUSINESS_REGION = var.tag_BUSINESS_REGION
  }

  vpc_config {
    subnet_ids         = var.subnet_ids
    security_group_ids = var.security_group_ids
  }
}

resource "aws_lambda_function_event_invoke_config" "event-lambda" {
  function_name = aws_lambda_function.lambda-deploy.function_name
  maximum_event_age_in_seconds = var.event_age //6 hours
  maximum_retry_attempts = var.retry //set to 0 to avoid lambda retry attempts

  depends_on = [
    aws_lambda_function.lambda-deploy
  ]
}

当我的Jenkins作业运行apply步骤时,我看到下面的输出,其中event_invoke_config作为构建步骤的一部分被调用。

但是,当作业运行时,我在AWS控制台中检查新版本时,我发现event_age和max_retry尝试默认为6小时(event_age)和2 (max_retry尝试)。

在新版本发布时,Terraform逻辑中是否有什么不正确配置max_retry和event_age值的地方?

EN

回答 1

Stack Overflow用户

发布于 2022-04-25 13:46:32

您似乎没有在aws_lambda_function_event_invoke_config上设置aws_lambda_function_event_invoke_config参数。

如果要发布新版本,请使用别名或设置qualifier = aws_lambda_function.lambda-deploy.version。如果不打算使用已发布的版本,请设置qualifier = "$LATEST"或使用默认值。

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

https://stackoverflow.com/questions/72000505

复制
相关文章

相似问题

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