从 DynamoDB 触发 lambda 函数

x89*_*x89 6 amazon-web-services amazon-dynamodb aws-lambda terraform terraform-provider-aws

每次新项目到达我的发电机表时,我都想运行 lambda 函数trigger_lambda_function。这就是我定义表和触发器的方式。但是,触发器无法按预期工作。

\n
resource "aws_dynamodb_table" "filenames" {\n  name           = local.dynamodb_table_filenames\n  billing_mode   = "PROVISIONED"\n  read_capacity  = 1000\n  write_capacity = 1000\n  hash_key       = "filename"\n\n  #range_key      = ""\n\n  attribute {\n    name = "filename"\n    type = "S"\n  }\n\n  tags = var.tags\n}\n\n\nresource "aws_lambda_event_source_mapping" "allow_dynamodb_table_to_trigger_lambda" {\n  event_source_arn  = aws_dynamodb_table.filenames.stream_arn\n  function_name     = aws_lambda_function.trigger_stepfunction_lambda.arn\n  starting_position = "LATEST"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

terraform apply,我收到一个错误:

\n
\xe2\x94\x82 Error: error creating Lambda Event Source Mapping (): InvalidParameterValueException: Unrecognized event source.\n\xe2\x94\x82 {\n\xe2\x94\x82   RespMetadata: {\n\xe2\x94\x82     StatusCode: 400,\n\xe2\x94\x82     RequestID: "5ae68da6-3f6d-4adb-b104-72ae584dbca7"\n\xe2\x94\x82   },\n\xe2\x94\x82   Message_: "Unrecognized event source.",\n\xe2\x94\x82   Type: "User"\n\xe2\x94\x82 }\n\xe2\x94\x82 \n\xe2\x94\x82   with module.ingest_system["alpegatm"].aws_lambda_event_source_mapping.allow_dynamodb_table_to_trigger_lambda,\n\xe2\x94\x82   on ../../modules/ingest_system/dynamo.tf line 39, in resource "aws_lambda_event_source_mapping" "allow_dynamodb_table_to_trigger_lambda":\n\xe2\x94\x82   39: resource "aws_lambda_event_source_mapping" "allow_dynamodb_table_to_trigger_lambda" {\n
Run Code Online (Sandbox Code Playgroud)\n

我也尝试过.arnstream_arn但这也引发了错误。我还能尝试什么?

\n

我遵循了触发器的文档:\n https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping

\n

Erv*_*gyi 2

aws_dynamodb_table文档来看,仅当设置为stream_arn时才可用。您可能想要添加到 DynamoDB 表定义。stream_enabledtruestream_enabled = true

默认stream_enabled设置为false您可以在此处查看的所有默认值aws_dynamodb_table