Size: a a a

DevOps — русскоговорящее сообщество

2020 May 09

V

Valentin in DevOps — русскоговорящее сообщество
Artem Barshatskyi
звучит как то сложно, для получения массива из базы
Ну тебе так или иначе нужно обрабатывать разные методы, и все они перенаправлены на одну лямбду, верно?
источник

AB

Artem Barshatskyi in DevOps — русскоговорящее сообщество
Valentin
Для этого нужен тип интеграции прокси, и проверять httpMethod в event
Название ключа могу перепутать
но я так делаю без прокси, как описал выше, проверяю метод и обрабатываю в зависимости от метода
источник

AB

Artem Barshatskyi in DevOps — русскоговорящее сообщество
Valentin
Ну тебе так или иначе нужно обрабатывать разные методы, и все они перенаправлены на одну лямбду, верно?
в данный момент да, но это костыль

должно быть как? на каждый метод по лямбде?
источник

V

Valentin in DevOps — русскоговорящее сообщество
Artem Barshatskyi
но я так делаю без прокси, как описал выше, проверяю метод и обрабатываю в зависимости от метода
Что-то у меня в памяти, что проверить тип запроса без прокси никак.
Параметры get точно никак не вытащить без него.
источник

V

Valentin in DevOps — русскоговорящее сообщество
Artem Barshatskyi
в данный момент да, но это костыль

должно быть как? на каждый метод по лямбде?
Так зависит от разного же.
Если лямбды короткие и логически обособлены - я бы делал отдельные.
Если все логически связано и общий код - все в одну.
источник

AB

Artem Barshatskyi in DevOps — русскоговорящее сообщество
Valentin
Так зависит от разного же.
Если лямбды короткие и логически обособлены - я бы делал отдельные.
Если все логически связано и общий код - все в одну.
может есть какие то дополнительные пермишины которые я мог упустить? или кроме как дать доступ лямбде к dynamodb, ничего больше настраивать не надо?
источник

V

Valentin in DevOps — русскоговорящее сообщество
Artem Barshatskyi
может есть какие то дополнительные пермишины которые я мог упустить? или кроме как дать доступ лямбде к dynamodb, ничего больше настраивать не надо?
Нет, если оба метода обрабатывает одна и та же лямбда, и один работает, а другой нет - надо смотреть где лямбда падает, и при каких условиях
источник

AB

Artem Barshatskyi in DevOps — русскоговорящее сообщество
Valentin
Нет, если оба метода обрабатывает одна и та же лямбда, и один работает, а другой нет - надо смотреть где лямбда падает, и при каких условиях
не, если рассматривать как 2 лямбды, каждая для своего метода
источник

V

Valentin in DevOps — русскоговорящее сообщество
Artem Barshatskyi
не, если рассматривать как 2 лямбды, каждая для своего метода
Сделай тест(ы) прямо в самой лямбде.
Проверь что работает из теста метода в api gateway
Проверь что ты деплой сделал 😊
источник

AB

Artem Barshatskyi in DevOps — русскоговорящее сообщество
Valentin
Сделай тест(ы) прямо в самой лямбде.
Проверь что работает из теста метода в api gateway
Проверь что ты деплой сделал 😊
стоит автодеплой, по тестам все гуд, ответ приходит как надо, а в постмане статус 500
источник

V

Valentin in DevOps — русскоговорящее сообщество
А посконно curl'ом?
Может в постмане env забыл сменить?
Выглядит как какая-то мелочь, про которую забыл
источник

AB

Artem Barshatskyi in DevOps — русскоговорящее сообщество
Valentin
А посконно curl'ом?
Может в постмане env забыл сменить?
Выглядит как какая-то мелочь, про которую забыл
а у меня нет никаких env, я поставил Security API endpoint: Open
источник

V

Valentin in DevOps — русскоговорящее сообщество
Artem Barshatskyi
а у меня нет никаких env, я поставил Security API endpoint: Open
Я имел в виду, может в запросе в постмане что-то не так
Не тот адрес, не тот параметр
Пересоздать
источник

V

Valentin in DevOps — русскоговорящее сообщество
Если тупой запрос через curl работает, через постман нет - надо ковырять постман
источник

AB

Artem Barshatskyi in DevOps — русскоговорящее сообщество
Valentin
Я имел в виду, может в запросе в постмане что-то не так
Не тот адрес, не тот параметр
Пересоздать
щас еще ссылки проверю, но я думаю я правильно указывал

просто один и тот же код для GET запроса, срабатывает по разному, если проверять метод в одной лямбде то все гуд а если создать отдельную лямбду то мистика, в тесте все норм а в постмане 500
источник

V

Valentin in DevOps — русскоговорящее сообщество
Artem Barshatskyi
щас еще ссылки проверю, но я думаю я правильно указывал

просто один и тот же код для GET запроса, срабатывает по разному, если проверять метод в одной лямбде то все гуд а если создать отдельную лямбду то мистика, в тесте все норм а в постмане 500
А в curl тоже 500,или все норм, если отдельная лямбда?
источник

AB

Artem Barshatskyi in DevOps — русскоговорящее сообщество
Valentin
А в curl тоже 500,или все норм, если отдельная лямбда?
если отдельная лямбда то
{"message":"Internal Server Error"}
источник

V

Valentin in DevOps — русскоговорящее сообщество
Artem Barshatskyi
если отдельная лямбда то
{"message":"Internal Server Error"}
Тогда варианта два
Если тип интеграции прокси, то или неверный формат ответа, или лямбда падает при запросе, или нет прав.
Смотреть логи в apigw, тест там же
источник

V

Valentin in DevOps — русскоговорящее сообщество
Если не прокси, то или права, или эксепшн в лямбде.
источник

AB

Artem Barshatskyi in DevOps — русскоговорящее сообщество
может моя цепочка не верная?

у меня есть API, в ней 2 метода, POST и GET, я создаю 2 лямбды и в каждой добавляю API Gateway, ссылаясь на мою API и даю доступ к DynamoDB

и интегрирую лямбды в API Gateway, для каждого метода своя лямбда
источник