#amazon-web-services #amazon-cloudformation #serverless-framework
#amazon-web-services #aws-cloudformation #Бессерверный фреймворк
Вопрос:
Я использую serverless deploy
для создания стека в cloudformation для своего приложения. Стек включает в себя значение, lambda layer
которое я могу найти на вкладке cloudformation Ouptputs
. В нем есть строка с ключом как CommonLambdaLayerQualifiedArn
, значение — это его ARN, description
и Export name
пусты.
В другом стеке я использую приведенный ниже синтаксис для ссылки на лямбда-слой из предыдущего стека. Это работает нормально, но я не понимаю, почему это работает без экспорта лямбда-слоя в предыдущий стек. Cloudformation поддерживает перекрестную ссылку на стек, которая выполняется путем экспорта значения. Но в вышеуказанном стеке Export name
для лямбда-слоя пусто. Как получается, что это работает без перекрестной ссылки на стек? Есть ли другой способ импортировать ссылку?
...
layers:
- ${cf:${opt:lambdaLayerStackName}.CommonLambdaLayerQualifiedArn}
...
Комментарии:
1. Используется ли корзина повторно для обоих стеков? возможно, serverless-layers разрешает зависимость на основе имени стека и его шаблона cloudformation
2. Нет, они используют разные сегменты s3.
Ответ №1:
Используемый вами синтаксис не предусматривает импорта переменных из другого стека. Согласно документу, это просто
ссылка на выходные значения стека CloudFormation в качестве источника ваших переменных для использования в вашем сервисе
Это то же самое, что получение выходных значений из cloudformation с помощью AWS CLI.
Комментарии:
1. Является ли это
reference
функцией дляserverless
или частьюcloudformation
?2. Я пробовал это, но обнаружил, что между
reference
иimportin&
есть небольшая разница. Когда я используюimport
, у него возникает зависимость между стеками, что означает, что это мешает мне удалить стек, от которого зависят другие стеки. С помощьюreference
я могу удалить стек даже с другими зависимостями. Поэтому мне интересно, действительно ли они одинаковы?