gpt4 book ai didi

json - 将JSON对象发布到AWS Lambda

转载 作者:行者123 更新时间:2023-12-03 16:13:53 25 4
gpt4 key购买 nike

我如何通过aws API网关将json对象发布到aws lambda函数?

ps-我的目标是在python中编写lambda函数,然后将其发布到AWS SQS。

提前致谢。

最佳答案

我想到了。现在,我有一个API网关接受客户端以指定格式发布JSON数据,然后将其传递到AWS-Lambda函数,该函数将数据转储到AWS-SQS中。以下详细说明了这些步骤-

步骤1-

用任何支持的语言创建一个lambda函数(我使用过Python 3.6)。这是示例代码。

import boto3  
import json

def lambda_handler(event, context):

sqs = boto3.resource('sqs')

queue = sqs.get_queue_by_name(QueueName='userData')

response = queue.send_message(MessageBody=json.dumps(event))

return {
"status":"0",
"message":"",
"pubId":event["ClientID"],
"routetitle":event["routeTitle"]
}

注意:我已经导入了json和boto3库,它们都可以在aws上下文中使用,而无需添加任何其他文件。还要看到,除了名称之外,我没有为SQS指定任何详细信息,因为我的Lambda函数和SQS都位于同一AWS区域中。我将整个“事件”变量转储到SQS,因为它仅包含发布的JSON数据。

步骤2-

现在,在AWS控制台中转到“API网关”,然后创建一个新的API网关,然后在资源下创建一个“POST”操作。

Please check the screenshot

现在,在发布操作下,单击“集成请求”。现在像下面给出的示例一样向其添加一个主体模板:
{
"userMobile" : "$input.params('userMobile')",
"ClientID" : "$input.params('ClientID')",
"routeTitle" : "$input.params('routeTitle')"
}

另外,请确保您的API的“集成类型”为“Lambda”,并且我们在STEP-1中创建的Lambda函数已连接到该API。

现在,我们快完成了。现在,我们要做的就是为已经创建并部署API的API创建一个阶段。 ***

部署后,请注意API的HTTP URL。

步骤3-

现在转到“简单队列服务(SQS)”,然后创建一个保留所有默认参数的简单SQS。确保队列名称与您在Lambda函数中提供的名称匹配,并且Lambda函数和SQS都在同一AWS区域中。

现在,您可以将相同格式的JSON数据发布到您的API,您的Lambda函数会将其转储到SQS队列中,您可以在其中查看数据。

您也可以使用Fidler之类的工具测试API。

***确保每次更改API时都重新部署该API。

关于json - 将JSON对象发布到AWS Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43907527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com