Может ли кто-нибудь сказать мне, как / почему моя функция Lambda не может «видеть» веб-сайт, обслуживаемый Apache в экземпляре EC2, когда они оба находятся в одном VPC?
Моя установка:
Функция Amazon Linux v2 Lambda в VPC по умолчанию, такая же, как у экземпляра EC2, использующего функцию Lambda с использованием «по умолчанию» или роль всех разрешений для доступа к экземпляру EC2. Apache установлен и правильно работает на гибком IP-адресе, обслуживающем API и веб-сайт публично.
Я знаю, что, если я решу использовать функцию Lambda в VPC, доступ в Интернет будет удален, поэтому я больше не смогу получить доступ к веб-сайту с помощью mydomain.com, и это нормально. В долгосрочной перспективе я перейду на VPC с общедоступными и частными подсетями и настрою интернет-шлюз, который может использовать функция Lambda, но сейчас мне просто интересно, почему я не могу использовать веб-сайт, размещенный на EC2, без интернет-шлюза. Конечно, функция Lambda должна иметь возможность подключаться к сайту EC2?
Я пробовал использовать как частный, так и общедоступный IP-адрес экземпляра EC2 и оба тайм-аута при попытке подключиться к Apache.
Любая помощь с благодарностью получена!
Спасибо.
P.S. Я новичок в AWS, поэтому будьте добры :)
Извините, обнаружил проблему - хотя я не совсем понимаю ее. Это не имеет отношения к AWS - у меня все еще был https в URL-адресе API. Изменил это на http, и он работал нормально. Очевидно, что если я нахожусь в VPC, тогда мне все равно не нужен https.
Спасибо за ответ @MLu - да, я проверил оба, и они были в порядке.
Есть ли Группа безопасности Lambda разрешить исходящий доступ? Попробуйте для начала открыть все исходящие сообщения на 0.0.0.0/0.
Есть ли Группа безопасности EC2 разрешить входящий доступ от SG Lambda?