amazon-dynamodb – 如何在AWS dynamodb触发器函数中获取表名?

我是AWS的新手,正致力于在Python上创建lambda函数.该函数将获取dynamodb表流并写入s3中的文件.这里文件的名称应该是表的名称.
有人可以告诉我如果调用lambda函数的触发器如何获取表名?

感谢帮助.

既然您提到您是AWS的新手,我将以描述性方式回答.

我假设您已将DynamoDB表的“Stream enabled”设置为“Yes”,并将其设置为lambda函数的事件源.

这就是我从调用我的lambda函数的流中获取表名的方法 –

def lambda_handler(event, context):
   print(json.dumps(event, indent=2)) # Shows what's in the event object
   for record in event['Records']:
      ddbARN = record['eventSourceARN']
      ddbTable = ddbARN.split(':')[5].split('/')[1]
      print("DynamoDB table name: " + ddbTable)
   return 'Successfully processed records.'

基本上,包含有关特定lambda函数调用的特定DynamoDB流的所有信息的事件对象包含参数eventSourceARN.此eventSourceARN是唯一标识发生事件的DynamoDB表的ARN(Amazon资源编号).

这是eventSourceARN的示例值 –

arn:aws:dynamodb:us-east-1:111111111111:table/test/stream/2020-10-10T08:18:22.385

注意上面的粗体文本 – 测试;这是您要查找的表名.

在上面的行ddbTable = ddbARN.split(‘:’)[5] .split(‘/’)[1]中,我试图首先用’:’拆分整个ARN,然后用’/’按顺序拆分得到价值测试.获得此值后,可以调用S3 API以使用相同名称写入S3中的文件.

希望这可以帮助.

翻译自:https://stackoverflow.com/questions/35278881/how-to-get-the-table-name-in-aws-dynamodb-trigger-function

转载注明原文:amazon-dynamodb – 如何在AWS dynamodb触发器函数中获取表名?