我使用Terraform0.14并尝试部署AWS函数。在发布新版本的lambda之前,我希望将event_age和retry_attempts设置为特定值(1分钟event_age,0次重试尝试)。下面的代码显示事件年龄和重试尝试都是使用lambda的$LATEST版本设置的。然而,当发布新版本(作为terraform构建的一部分)时,retry_attempts和event_age默认为6小时event_age和2次最大重试尝试。
下面是实现逻辑的tf文件。
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值的地方?
发布于 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"或使用默认值。
https://stackoverflow.com/questions/72000505
复制相似问题