【发布时间】:2021-12-28 15:38:47
【问题描述】:
每当一个新项目到达我的发电机表时,我想运行一个 lambda 函数trigger_lambda_function。这就是我定义表和触发器的方式。但是,触发器无法按预期工作。
resource "aws_dynamodb_table" "filenames" {
name = local.dynamodb_table_filenames
billing_mode = "PROVISIONED"
read_capacity = 1000
write_capacity = 1000
hash_key = "filename"
#range_key = ""
attribute {
name = "filename"
type = "S"
}
tags = var.tags
}
resource "aws_lambda_event_source_mapping" "allow_dynamodb_table_to_trigger_lambda" {
event_source_arn = aws_dynamodb_table.filenames.stream_arn
function_name = aws_lambda_function.trigger_stepfunction_lambda.arn
starting_position = "LATEST"
}
在terraform apply 上,我收到一个错误:
│ Error: error creating Lambda Event Source Mapping (): InvalidParameterValueException: Unrecognized event source.
│ {
│ RespMetadata: {
│ StatusCode: 400,
│ RequestID: "5ae68da6-3f6d-4adb-b104-72ae584dbca7"
│ },
│ Message_: "Unrecognized event source.",
│ Type: "User"
│ }
│
│ with module.ingest_system["alpegatm"].aws_lambda_event_source_mapping.allow_dynamodb_table_to_trigger_lambda,
│ on ../../modules/ingest_system/dynamo.tf line 39, in resource "aws_lambda_event_source_mapping" "allow_dynamodb_table_to_trigger_lambda":
│ 39: resource "aws_lambda_event_source_mapping" "allow_dynamodb_table_to_trigger_lambda" {
我也尝试了.arn 而不是stream_arn,但这也引发了错误。我还能尝试什么?
我遵循了触发器的文档: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping
【问题讨论】:
-
随机猜测 - 尽管有错误消息文本,但您的 Lambda 调用
dynamodb:*是否缺少 IAM 权限? -
分配的角色有
"dynamodb:GetItem","dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:Query"但我怀疑这是问题@GrzegorzOledzki
标签: amazon-web-services aws-lambda amazon-dynamodb terraform terraform-provider-aws