Python 执行AWS Lambda函数不工作
我试图用以下代码创建一个简单的Lambda函数Python 执行AWS Lambda函数不工作,python,amazon-web-services,aws-lambda,Python,Amazon Web Services,Aws Lambda,我试图用以下代码创建一个简单的Lambda函数ChildFunction: import json import uuid def lambda_handler(event, context): productName = event['ProductName'] quantity = event['Quantity'] unitPrice = event['UnitPrice']
ChildFunction
:
import json
import uuid
def lambda_handler(event, context):
productName = event['ProductName']
quantity = event['Quantity']
unitPrice = event['UnitPrice']
transactionId = str(uuid.uuid1())
amount = quantity * unitPrice
return {
'TransactionID' : transactionId,
'ProductName' : productName,
'Amount' : amount
}
我正在使用以下测试参数创建一个测试事件
:
{
"ProductName": "iPhone SE",
"Quantity": "2",
"UnitPrice": "499"
}
当我执行测试事件时,我得到以下输出:
Response:
{
"statusCode": 200,
"body": "\"Hello from Lambda!\""
}
Request ID:
"9c68e0d8-3781-4046-ac26-127c45321d71"
Function logs:
START RequestId: 9c68e0d8-3781-4046-ac26-127c45321d71 Version: $LATEST
END RequestId: 9c68e0d8-3781-4046-ac26-127c45321d71
REPORT RequestId: 9c68e0d8-3781-4046-ac26-127c45321d71 Duration: 1.19 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 52 MB
我不知道为什么Lambda函数没有执行。我做错了什么?Lambda有一个特定的响应格式:
试试这个,输出命令在哪里:
import json
return { 'statusCode': 200,
'body' :json.dumps({'response': out})
}
相关问题:即使您正确执行了函数,它也不会工作。原因是数量
和单价
是字符串,而不是整数。正确的版本是:
import json
import uuid
def lambda_handler(event, context):
productName = event['ProductName']
quantity = int(event['Quantity'])
unitPrice = int(event['UnitPrice'])
transactionId = str(uuid.uuid1())
amount = quantity * unitPrice
return {
'TransactionID' : transactionId,
'ProductName' : productName,
'Amount' : amount
}
根据您的描述,无法确定您执行不同功能的原因。也许您在测试之前没有部署它,或者测试它的一些旧版本。在第一种情况下,您必须在测试前显式部署,在第二种情况下,您必须确保选择要测试的函数的正确版本。您真的执行了正确的Lambda吗?在给定代码的情况下,如何使用JSON对象和键statusCode进行响应?@raupach是的,我正在执行正确的Lambda。我的意思是,我正在Lambda函数中创建一个测试事件,但它不起作用。您确定它指向最新的Lambda吗?如何部署最新代码?@TraychoIvanov我正在使用Test按钮执行。Cloudwatch中没有错误日志。它说的是执行结果:当我点击Test时成功了。但它不提供任何输出。显示您的配置。添加屏幕截图等。这需要为API网关集成设置。如果是独立函数,则可以使用自定义返回格式。您的响应仍然需要一个正文作为输出。dumps(out)也很重要!试试看。