我有一个aws lambda函数,它运行一些python代码(正在使用一些额外的函数调用外部api)。我附加了一个触发器,一个api网关,如果我转到url,则lambda函数可以正常运行。
但是,我希望仅当他们单击api-url的“网站”上某个按钮时才运行lambda函数。换句话讲,我希望api-url页面上有一个按钮,单击该按钮即可执行lambda函数。 我认为这应该很容易,但是我不知道怎么做。由于信息过多,我似乎找不到正确的视频,有关如何执行操作的文档示例。
我试图通过在“ api-gateway资源”页面上的“方法执行”上的api-url页面上添加一个按钮,将映射模板更改为text / html而不是json。 (有点像https://blog.it-playground.eu/display-html-page-using-only-api-gateway/中的内容),但是然后我不知道如何运行按钮的lambda函数onClick。 ==>这是正确的开始吗?
(由于它不是真正的编码问题,因此我无法提供任何代码)。
这个问题是否是如此简单,以至于它表明我只是对基础知识不够了解(因此应该再次遍历它们)?
答案 0 :(得分:1)
当然可以。 API Gateway公开了REST API。您需要做的就是在API网关中创建一些资源和方法,例如
GET /posts
将lambda函数附加到该函数,并使用前端的一些ajax请求(通过fetch
,axios
,...)访问该API端点,该请求将在单击按钮时执行。像这样:
button.addEventListener("click", () => {
fetch("https://my-api-gateway-url/posts").then() ...
}
您可以在.then
部分中处理响应数据,但是请不要忘记这是异步编码,因此您需要这样处理。