【问题标题】:AWS Lambda unable to ping EC2 instance within VPCAWS Lambda 无法 ping VPC 内的 EC2 实例
【发布时间】:2017-06-23 12:43:15
【问题描述】:

我有一个由 S3 存储桶触发的 AWS Lambda 函数。 Lambda 函数 ping VPC 内的 EC2 实例。 VPC 没有 NAT。由于某种原因,Lambda 无法连接到 EC2 并且正在超时。我尝试将 lambda 保留在 VPC 中和 VPC 之外。我也尝试过使用实例的公共和私有 IP,但似乎不起作用。关于我下一步可以做什么的任何建议。 lambda函数的代码如下

from __future__ import print_function

import json
import boto3
import urllib2

print('Loading function')

s3 = boto3.client('s3')


def lambda_handler(event, context):
    bucket = event['Records'][0]['s3']['bucket']['name']
    url = urllib2.urlopen("http://ip-address/API/")

【问题讨论】:

    标签: python amazon-web-services amazon-ec2 aws-lambda


    【解决方案1】:

    首先,使用 VPC 中的 Lambda 函数,确保您使用 EC2 实例的私有 IP。然后在 EC2 实例的安全组中打开端口 80,以允许来自您分配给 Lambda 函数的安全组的任何内容的传入连接。

    【讨论】:

    • Mark 我有两个问题:第一,lambda 是否应该在 EC2 所在的 VPC 中?其次,我们如何为安全组开放 80 端口?我目前已经为我的安全组中的某些 IP 打开了端口 80,通过它我可以访问我的 EC2 实例。请注意,我不希望每个人都通过 HTTP 访问我的机器。
    • 嗨,马克,感谢您的回答。我有两个问题要问你。第一个,lambda 函数是否应该在 VPC 内?第二个,我目前只为我的 EC2 机器的某些 IP 打开了端口 80,我应该如何打开 HTTP 端口 80,以便 lambda 安全组内的任何东西都可以访问 EC2?
    • 是的,Lambda 函数应该在 VPC 中,即 EC2 实例所在的 VPC。要为安全组打开端口,当您添加入站规则时,请为源类型,然后输入安全组 ID 作为源值。如果您开始在此字段中输入“sg”,它将弹出您的安全组列表。
    • 私有IP,就是这样,哇,尝试了太多东西才找到这个帖子:')
    猜你喜欢
    • 2020-08-19
    • 2019-09-04
    • 2022-01-18
    • 1970-01-01
    • 2020-03-22
    • 2018-12-19
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多