问题描述
我一直在尝试使用AWS Lambda, Amazon API Gateway 和SES为我的网站创建电子邮件表单。
我遵循了blog中AWS所提供的指示。本文未提供添加目的地以及在mailFwd和目的地之间创建链接的说明。
此外,文章的一部分提到在策略下添加代码段,以便SES可以访问lambda函数。我找不到政策部分在哪里。
解决方法
应用程序流程如下:
JavaScript / HTML -> API Gateway -> AWS Lambda Function mailfwd -> SES
这意味着,您的前端将HTTP请求发送到API网关,API网关将HTTP事件转发到Lambda函数,而Lambda函数处理来自HTTP事件的邮件数据并将其转发到SES。
为避免任何混乱:SES既不调用也不访问Lambda函数,而只是相反。为了允许Lambda函数调用SES并发送邮件,您必须将IAM策略从博客文章(关于ses:SendMail
的策略)复制到Lambda函数的IAM角色的策略。 (我承认博客文章的措词在这里有点令人困惑)。
除此之外,您无需在服务之间创建任何链接。您只需要告诉API网关,如果有HTTP请求进入,就调用哪个Lambda函数。在这种情况下,您可以按照本文中所述选择mailfwd
函数:
- 选择新创建的资源,然后选择“创建方法”。选择一个POST。在这里,您将选择我们的AWS Lambda函数。为此,请从下拉列表中选择“ mailfwd ”。