AWS Lambda не может получить доступ к внутренним серверам из VPC - PullRequest
0 голосов
/ 26 июня 2019

У меня есть лямбда, которая пытается сделать REST-вызов на локальный сервер за пределами AWS. У нас есть лямбда, запущенная из VPC, который имеет VPN-соединение с нашими локальными ресурсами. Тот же самый остальной вызов успешно выполняется из EC2 с VPC, но лямбда-запрос зависает. Группы безопасности открыты. Есть идеи, как это отладить?

Вот основная масса лямбды

def lambda_handler(event, context):
    config = configparser.ConfigParser()
    config.read('config')

    pattern = re.compile(".*"+config['DEFAULT']['my-pattern'])
    logger.info(event['Records'])
    sns_json = event['Records'][0]['Sns']
    sns_message = json.loads(sns_json['Message'])
    logger.info(sns_message['Records'][0]['s3'])
    s3_object = sns_message['Records'][0]['s3']
    new_file_name = s3_object['object']['key']
    bucket = s3_object['bucket']['name']
    if pattern.match(new_file_name):
        new_json = {"text": "New file (" + new_file_name + ") added to the bucket. " + bucket,
                   "title": config['DEFAULT']['default_message_title']}
        webhook_post = requests.get("http://some-ip:4500/")
        logger.info("Webhook Post Status: " + str(webhook_post.status_code) + str(webhook_post))
        logger.info("Skip teams webhook");
        outgoing_message_dict = {
            's3Bucket': bucket,
            'somefile': new_file_name
        }
        return outgoing_message_dict

Я не получаю никаких ошибок из запроса, он просто зависает до тех пор, пока не истечет время моей лямбды.

1 Ответ

0 голосов
/ 26 июня 2019

Мне кажется, я нашел источник проблемы.В конечном счете, я считаю, что проблема связана с нашим предварительным межсетевым экраномТуннель VPN не был активен все время.Другие отметили, что его нужно активировать из локальной сети.Я создал экземпляр ec2 и подключился к нему, активировав VPN.Вскоре после того, как я запустил лямбду, я смог успешно достичь локальной конечной точки REST, к которой я пытался подключиться.

Я еще не реализовал окончательное решение, но из брандмауэра мы должны установить соединение для проверки связи, чтобы наше соединение не истекло.Я надеюсь, что это помогает другим.Спасибо за отзыв!

...