#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
.
В более крупных проектах принято изолировать функции авторизации в их собственном стеке (на который ссылаются несколько других стеков), что устраняет проблему внутренней зависимости — в этом случае вы, естественно, сначала развертываете стек авторизации.