【发布时间】:2021-02-05 13:31:18
【问题描述】:
我有一个使用 Python 的 lambda 函数。 它连接到一个 EventBridge 规则,每次 Glue 表发生更改时都会触发该规则。
它输出的事件模式如下所示:
{
"version":"0",
"detail":{
"databaseName":"flights-db",
"typeOfChange":"UpdateTable",
"tableName":"flightscsv"
}
}
我想将此输出中的tableName 和databaseName 值作为变量输入到函数中。
我的 Lambda 函数:
import json
import boto3
def lambda_handler(event, context):
boto3_version = boto3.__version__
return_statement = 'Boto3 version: ', boto3_version,\
'Event output: ', event
return {
'statusCode': 200,
'body': json.dumps(return_statement)
}
我希望在我的 return 语句中从 event 获得事件模式输出,但事实并非如此。
在测试此函数时,event 的返回输出为:
{\"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"value3\"}
这个键和值在函数的测试模式中是这样定义的。
如何将事件模式中的值传递给变量?
我是否需要配置测试模式才能将结果输入event?
【问题讨论】:
-
函数触发时
print(event)的结果是什么。您还可以显示触发 lambda 的 EB 规则吗? -
当然。我会用图片更新帖子。
-
请查看更新后的帖子@Marcin
-
谢谢,但我的意思是
print(event),当您的函数实际被 EB 调用时,而不是当您在控制台中测试它时。event对象在这两种情况下都会有所不同。 -
我明白了。该规则处于活动状态,我通过表更改触发它,但不知道在哪里可以看到此
print(event)信息。你知道我在哪里可以查到吗?也许是 CloudWatch?
标签: amazon-web-services aws-glue aws-event-bridge