AIR*_*AIR 12 amazon-dynamodb aws-lambda
我是AWS的新手,正致力于在Python上创建lambda函数.该函数将获取dynamodb表流并写入s3中的文件.这里文件的名称应该是表的名称.有人可以告诉我如果调用lambda函数的触发器如何获取表名?
感谢帮助.
rk2*_*rk2 19
由于您提到您是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.'
Run Code Online (Sandbox Code Playgroud)
基本上,event
包含有关特定lambda函数调用的特定DynamoDB流的所有信息的对象包含一个参数eventSourceARN
.这eventSourceARN
是唯一标识event
发生过的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中的文件.
希望这可以帮助.
归档时间: |
|
查看次数: |
3899 次 |
最近记录: |