我今天一直在尝试使用AWS lambda进行一些尝试。我目前正在尝试从浏览器中的URL触发功能。
URL看起来类似于:https://abcdef.execute-api.eu-west-2.amazonaws.com/default/test
据我了解,我可以为端点分配自定义域,但是也可以摆脱url的路径部分,例如:
GET: https://example.com/
GET: https://example.com/somefile.txt
POST: https://example.com/ ['some_post_field' => 'some data']
是否将所有信息传递给我的函数,还是我需要使用NGINX配置EC2实例以将请求代理传递给lambda?
任何想法都会有用。
答案 0 :(得分:0)
现在有两种不同的方法可以在AWS中完成此操作:
如何专门设置端点取决于您选择的服务。就个人而言,鉴于您希望提供不同类型的内容,我倾向于使用CloudFront,并为动态Lambda内容定义一个“行为” URL。如果URL请求与您定义的行为之一不匹配,则默认为Cloudfront缓存/来源来提供您的静态资产(somefile.txt)。仅匹配项将与表单数据一起发送到您所附的Lambda fn。 非常光滑!
很多Lambda @ Edge fn的are available here示例。
我既使用了这两个功能,又同时拥有了两个客户。 Lambda @ Edge可笑的是更快,更便宜,BUT的文档更少,学习曲线更陡峭,控制台几乎没有帮助。老实说,我会同时尝试看看哪一种最适合您的情况和经验水平。两者都将完成工作。绝对肯定不需要EC2(也许也不希望)。希望有帮助-祝你好运!
答案 1 :(得分:0)
与其通过URL直接公开Lambda函数,不如通过AWS API Gateway公开它,您可以在其中定义自己的路径并映射到域。