Без сервера.Ошибка развертывания платформы — Функция не найдена

#amazon-web-services #lambda #aws-lambda #serverless-framework #serverless

Вопрос:

В моей инфраструктуре sls у меня есть функция авторизации, которую я создал и подключил к большинству других своих функций. когда я развернул его последовательно (сначала функция аутентификации, затем подключение к другим функциям), все работало так, как ожидалось. Однако, когда я хочу развернуть все в новой среде, я получаю сообщение об ошибке, что моя функция аутентификации не найдена, и я думаю, что это потому, что она еще не создана, когда Cloudformation пытается ссылаться на нее.

Мой вопрос заключается в следующем: могу ли я указать зависимость между ресурсами? так что я разверну ресурс только после того, как будет развернута его зависимость.

Если нет, как я могу преодолеть эту проблему?

Комментарии:

1. ДА. Вы можете использовать атрибут dependsOn CloudFormation. docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/…

2. Спасибо за ответ @shimo , но я имел в виду ключ «dependsOn» в файле.yml без сервера. У меня нет намерения изменять json CloudFormation.

Ответ №1:

Вы должны быть в состоянии определить функцию и пользовательскую функцию авторизатора для нее в одной и той же бессерверной инфраструктурной службе (как видно также из документации).

Если вы столкнулись с проблемами при новом развертывании, которые могут указывать на ошибку в бессерверной среде, в ней часто возникают проблемы со временем между функциями в стеках CloudFormation. Вы всегда можете попробовать обновить свой sls .

В более крупных проектах принято изолировать функции авторизации в их собственном стеке (на который ссылаются несколько других стеков), что устраняет проблему внутренней зависимости — в этом случае вы, естественно, сначала развертываете стек авторизации.