Python 有没有办法从Lambda触发EC2内部的代码?

Python 有没有办法从Lambda触发EC2内部的代码?,python,amazon-ec2,aws-lambda,boto3,Python,Amazon Ec2,Aws Lambda,Boto3,要求: 通过SMTP(仅出于特定原因通过SMTP)将邮件发送给从云跟踪中通过事件“RunInstances”读取的用户 由于SMTP代码不能与lambda一起使用,我必须将其保存在EC2中,并通过lambda触发它 您的问题似乎是您有一个AWS Lambda函数,该函数将在创建实例时向不同的人发送电子邮件。但是,Lambda函数无法到达SMTP服务器 与使用AmazonEC2创建复杂的解决方案不同,我建议您使用AmazonSES作为SMTP服务器来发送电子邮件 我还建议您使用Amazon Clo

要求:

  • 通过SMTP(仅出于特定原因通过SMTP)将邮件发送给从云跟踪中通过事件“RunInstances”读取的用户
  • 由于SMTP代码不能与lambda一起使用,我必须将其保存在EC2中,并通过lambda触发它

  • 您的问题似乎是您有一个AWS Lambda函数,该函数将在创建实例时向不同的人发送电子邮件。但是,Lambda函数无法到达SMTP服务器

    与使用AmazonEC2创建复杂的解决方案不同,我建议您使用AmazonSES作为SMTP服务器来发送电子邮件

    我还建议您使用Amazon CloudWatch事件来触发AWS Lambda函数,而不是在CloudTrail中查找
    运行实例


    例如,请参阅:

    您的问题似乎是您有一个AWS Lambda函数,该函数将在创建实例时向不同的人发送电子邮件。但是,Lambda函数无法到达SMTP服务器

    与使用AmazonEC2创建复杂的解决方案不同,我建议您使用AmazonSES作为SMTP服务器来发送电子邮件

    我还建议您使用Amazon CloudWatch事件来触发AWS Lambda函数,而不是在CloudTrail中查找
    运行实例

    有关示例,请参见:

    有几个选项:

  • 使用SQS:使用Lambda向SQS发送消息,在EC2中添加工作进程以使用消息

  • 在EC2中创建一个侦听端口流量的服务器,例如:80。使用Lambda向EC2服务器发送HTTP请求

  • (不建议在这种情况下使用):使用步骤功能活动。Lambda调用step函数,传递的输入是电子邮件内容。步骤函数将运行并创建一个活动。然后,EC2实例将实现一个worker,该worker保持来自Step函数的轮询活动

  • 有几个选择:

  • 使用SQS:使用Lambda向SQS发送消息,在EC2中添加工作进程以使用消息

  • 在EC2中创建一个侦听端口流量的服务器,例如:80。使用Lambda向EC2服务器发送HTTP请求

  • (不建议在这种情况下使用):使用步骤功能活动。Lambda调用step函数,传递的输入是电子邮件内容。步骤函数将运行并创建一个活动。然后,EC2实例将实现一个worker,该worker保持来自Step函数的轮询活动



  • 让Lambda函数到达SMTP服务器的具体问题是什么?您是否尝试过将Lambda功能连接到与SMTP服务器相同的VPC?仅供参考:您之前提出的相同问题以“范围太广”结束,这表明您没有提供足够的信息供人们提供建议。与其提出另一个相同的问题,不如提高问题的详细程度。这将使您更有可能收到相关响应。是的,我在lambda中尝试了SMTP,但它不起作用,我无法使用SES,因为所有邮件都必须在SES中验证。您可以在EC2上配置一个HTTP端点,lambda可以触发该端点,HTTP终结点上的GET或POST请求可能会触发smtp服务。@JamesDean您能否提供一个示例片段,我如何通过在EC2上配置终结点来实现这一点。让Lambda函数到达smtp服务器的具体问题是什么?您是否尝试过将Lambda功能连接到与SMTP服务器相同的VPC?仅供参考:您之前提出的相同问题以“范围太广”结束,这表明您没有提供足够的信息供人们提供建议。与其提出另一个相同的问题,不如提高问题的详细程度。这将使您更有可能收到相关响应。是的,我在lambda中尝试了SMTP,但它不起作用,我无法使用SES,因为所有邮件都必须在SES中验证。您可以在EC2上配置一个HTTP端点,lambda可以触发该端点,HTTP端点上的GET或POST请求可以触发您的smtp服务。@JamesDean您能否提供一个示例片段,我如何通过在EC2上配置端点来实现这一点。嗯,如果我使用SES,则必须验证每个邮件,但如果创建实例的用户邮件未在SES中验证,则SES将抛出邮件未在SES中验证的错误。Amazon SES仅要求在沙箱模式下运行时验证电子邮件地址。请参阅:正如我在prod环境中所做的那样,将帐户移出沙箱不是一个好的做法。如果我在这种情况下使用SNS,则创建ec2实例的用户的详细信息不会以JSON格式的事件出现。它不会将“帐户移出沙箱”。AmazonSES默认在“沙箱模式”下工作,直到您明确请求更改为止。它只影响SES,而不影响您的整个AWS帐户。如果我使用SES,则必须验证每封邮件,但如果创建实例的用户邮件未在SES中验证,则SES将抛出邮件未在SES中验证的错误。亚马逊SES仅要求在沙箱模式下运行时验证电子邮件地址。请参阅:正如我在prod环境中所做的那样,将帐户移出沙箱不是一个好的做法。如果我在这种情况下使用SNS,则创建ec2实例的用户的详细信息不会以JSON格式的事件出现。它不会将“帐户移出沙箱”。AmazonSES默认在“沙箱模式”下工作,直到您明确请求更改为止。它只影响SES,而不影响您的整个AWS帐户。谢谢,但解决方案似乎已完成且冗长。是否有其他解决方案可以使用SMTP发送邮件。然后使用解决方案#3:)谢谢,但解决方案似乎比较复杂