有什么方法可以从Lambda触发EC2内部的代码吗?

时间:2019-05-07 15:15:19

标签: python amazon-ec2 aws-lambda boto3

要求:

  1. 通过SMTP(由于特定原因仅通过SMTP)发送邮件给用户,该事件是通过Cloud-trail的事件“ RunInstances”读取的。
  2. 由于SMTP代码不适用于lambda,因此我必须保留在EC2内并通过lambda触发它。

2 个答案:

答案 0 :(得分:1)

您的问题似乎是您拥有一个AWS Lambda函数,该函数将在创建实例后向所有人员发送电子邮件。但是,您的Lambda函数无法访问SMTP服务器。

建议您将 Amazon SES 用作SMTP服务器来发送电子邮件,而不是使用Amazon EC2创建复杂的解决方法。

我还建议您使用 Amazon CloudWatch Events 触发AWS Lambda函数,而不要在CloudTrail跟踪中寻找RunInstances

有关示例,请参见:Email notification through SNS and Lambda

答案 1 :(得分:1)

选项很少:

  1. 使用SQS:使用Lambda将消息发送到SQS,在EC2中添加worker以使用消息。

  2. 在EC2中创建一个服务器,以侦听来自端口的流量,例如:80。使用Lambda将HTTP请求发送到EC2服务器。

  3. (在这种情况下不建议使用):使用“步函数活动”。 Lambda调用步骤功能,传递作为电子邮件内容的输入。步骤功能将运行并创建一个活动。然后,将在EC2实例中实现一个工作程序,该工作程序将保留来自Step函数的轮询活动。