Вызов лямбда-функции из другой лямбда-функции внутри VPC - PullRequest
0 голосов
/ 11 октября 2018

Я отлаживал, настраивал, и вы называете это последние пару часов, и я не могу понять, почему это происходит.

Я пытаюсь вызвать лямбда-функцию, которая только получаетосновная информация от ec2.когда я тестирую эту лямбда-функцию в консоли aws, кажется, она работает нормально.Однако, вызывая его в другой лямбде, используя следующий код:

    BasicAWSCredentials awsCreds = new BasicAWSCredentials("key1" , "key2");
    AWSLambdaClientBuilder builder = AWSLambdaClientBuilder.standard()
            .withRegion("eu-west-1")
            .withCredentials(new AWSStaticCredentialsProvider(awsCreds));
    AWSLambda client = builder.build();

    InvokeRequest req = new InvokeRequest()
            .withFunctionName("GetWhateverIneed");
    InvokeResult result = client.invoke(req);

, он просто истекает.Никакого ответа ... Обе Lambdas подключены к VPC и всем подсетям

Я думаю, что это мой новый VPC, который вызывает эту проблему.Мой VPC состоит из:

1 VPC.
-2x подсетей (1x Private с ipv4 10.0.0.0/17, 1x Public с ipv4 10.0.128.0/17).
-1x IGW Connectedв частную подсеть.
-1x шлюз NAT, подключенный к общедоступной подсети.
-2x Конечные точки (одна для Ec2, одна для SecretsManager)

Я также настроил две таблицы маршрутов, одну дляОбщедоступная подсеть: «Маршруты» ->
Назначение: 10.0.0.0/16 Цель: локальная
Назначение: 0.0.0.0/0 Цель: Мой интернет-шлюз (IGW)

Один для«Частная» подсеть: «Маршруты» ->
Назначение: 10.0.0.0/16 Цель: локальная.
Назначение: 0.0.0.0/0 Цель: Мой nat

Я убедился, что обамои Lambdas работают на одном и том же VPC, они оба используют одну и ту же группу безопасности: enter image description here

Я впервые работаю с VPC, поэтому возможно, что я что-то пропустил,

1 Ответ

0 голосов
/ 11 октября 2018

Если ваша функция Lambda подключена к VPC, она должна иметь возможность связываться через ваш VPC с API-интерфейсом AWS.Лямбды не общаются с другими лямбдами по сети, они инициируют запросы с помощью API-интерфейса AWS или шлюза API, который передает запрос в функцию лямбда.

Если вам нужна подключенная лямбда-ловушка VPC для запуска другой лямбдынеобходимо получить доступ к AWS API или API-шлюзу через Интернет.Кроме того, вы можете сохранить все это в частных сетях, добавив конечную точку VPC к службе шлюза API .

Шаблон, которому я следую в аналогичных обстоятельствах, описан в моем предыдущем посте: https://stackoverflow.com/a/43969112/6427978

...