Я использую Serverless Framework для создания лямбда-функции и хотел бы иметь возможность перекрестной ссылки на ее Arn и имя в других частях serverless.yml.
Я удивлен, насколько сложно я ' Нахожу это как! GetAtt и! Ref, похоже, не работают так, как я ожидал бы, если бы лямбда была создана с помощью vanilla CloudFormation. (AWS :: Lambda :: Function возвращает Ref и Fn :: GetAtt, которые упростили бы это!)
Я нашел несколько сообщений, которые ссылаются на решения, но ничего не говорится в простом английском языке sh как этого добиться.
НАСТРОЙКА
serverless.yml
...
functions:
- ${file(functions/sendEmail.yml)}
...
sendEmail.yml
sendEmail:
handler: lambda-functions/send-email.handler
...
ПОПЫТКИ НА ССЫЛКУ
Arn
В другой части шаблона я попытался:
...
LambdaFunctionArn: !GetAtt sendEmail.Arn
, но при развертывании получаю:
Error: The CloudFormation template is invalid: Template error: instance of Fn::GetAtt references undefined resource sendEmail
Я заметил, что окончательный шаблон CloudFormation преобразовал sendEmail в sendEmailLambdaFunction, поэтому я попытался:
LambdaFunctionArn: !GetAtt sendEmailLambdaFunction.Arn
, но получил похожую ошибку.
Имя
Я также хотел бы иметь возможность ссылаться на имя, но, к сожалению,
!Ref sendEmail
вызывает ошибку:
Error: The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [sendEmail] in the Resources block of the template
Любая помощь в отношении точных изменений, которые мне нужно сделать, чтобы добиться захвата лямбда-арна и имя, будет принята с благодарностью!
Спасибо заранее! I