AWS Lambda + API网关:仅通过单击按钮触发Lambda

时间:2019-12-21 18:10:29

标签: amazon-web-services aws-lambda aws-api-gateway

我有一个aws lambda函数,它运行一些python代码(正在使用一些额外的函数调用外部api)。我附加了一个触发器,一个api网关,如果我转到url,则lambda函数可以正常运行。

但是,我希望仅当他们单击api-url的“网站”上某个按钮时才运行lambda函数。换句话讲,我希望api-url页面上有一个按钮,单击该按钮即可执行lambda函数。 我认为这应该很容易,但是我不知道怎么做。由于信息过多,我似乎找不到正确的视频,有关如何执行操作的文档示例。

  • 可能吗? (单击按钮即可运行lambda函数)。如果是这样,是否有一些很好的例子说明文件?

我试图通过在“ api-gateway资源”页面上的“方法执行”上的api-url页面上添加一个按钮,将映射模板更改为text / html而不是json。 (有点像https://blog.it-playground.eu/display-html-page-using-only-api-gateway/中的内容),但是然后我不知道如何运行按钮的lambda函数onClick。 ==>这是正确的开始吗?

(由于它不是真正的编码问题,因此我无法提供任何代码)。

这个问题是否是如此简单,以至于它表明我只是对基础知识不够了解(因此应该再次遍历它们)?

1 个答案:

答案 0 :(得分:1)

当然可以。 API Gateway公开了REST API。您需要做的就是在API网关中创建一些资源和方法,例如

GET /posts

将lambda函数附加到该函数,并使用前端的一些ajax请求(通过fetchaxios,...)访问该API端点,该请求将在单击按钮时执行。像这样:

button.addEventListener("click", () => {
    fetch("https://my-api-gateway-url/posts").then() ...
}

您可以在.then部分中处理响应数据,但是请不要忘记这是异步编码,因此您需要这样处理。