Как включить лямбда-функцию для доступа к API на экземпляре EC2 через nginx - PullRequest
0 голосов
/ 29 марта 2019

Я создал сервер, который предоставляет API, используя программу nodejs и nginx для обратного прокси.Я установил входящие правила так, чтобы только определенные IP-адреса могли обращаться к API.

Теперь я хочу создать лямбда-функцию, которая будет получать доступ к API в этом экземпляре ec2.Я назначил их в один и тот же VPC и группу безопасности.Тем не менее, я получаю ответ HTTP 502. Когда я вызываю лямбда-функцию, я использовал блок try-catch для ошибки.

const axios = require('axios');
const serializeError = require('serialize-error');

module.exports.translate = async (event, context) => {
    try {
        const response = await axios.post("http://EC2-DOMAIN")
        return { statusCode: 200 };
    } catch( error ){
        console.log(JSON.stringify(serializeError(error), null, 4));
        return { statusCode: 400 };
    }
};

Есть ли какая-либо ошибка, которую я допустил?Спасибо!

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Если я правильно понимаю ваш конфиг, вам может понадобиться добавить правило в вашей группе безопасности, разрешающее трафик на 80 (или на какой порт вы используете ваш API), ссылаясь на себя в качестве источника.

Вот ссылка на документацию, объясняющую это поведение.

Ресурсы в одной группе безопасности не могут общаться друг с другом, если не существует правила, позволяющего им это делать. Чтобы сделать его менее запутанным, вы можете подумать о создании группы безопасности для ваших лямбда-функций и добавлении правила для вашего экземпляра SG, который разрешает трафик с вашего лямбда-SG на ваш порт API.

1 голос
/ 29 марта 2019

Как вы должны подойти к этой проблеме:

  1. Проверьте, есть ли у лямбды разрешения на общение со службой EC2. См. this .

  2. Далее вы должны попытаться определить, действительно ли вы можете подключиться к API с помощью лямбда-функции, пытаясь записать этот вызов, простым способом было бы проверить, можете ли вы подключиться к ec2 через лямбду на Порт Nginx.

  3. Вышеуказанные 2 шага помогут вам отладить проблему, если у вас есть какое-либо разрешение или неправильная настройка где-либо. Дайте мне знать, если до этого вы можете сделать
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...