У меня есть лямбда-функция, которую нужно активировать через Amazon API Gateway. Есть ли способ включить уже существующий API (созданный с помощью консоли AWS) в шаблон AWS SAM?
AWS SAM: можем ли мы использовать уже существующий API в шаблоне aws sam?
Ответы (1)
SAM еще не поддерживает !ImportValue в шаблоне.
На GitHub модели aws/serverless-application-model есть открытый PR для этой функции.
Если вы хотите, вы можете помочь и внести свой вклад в этот PR, чтобы вы могли начать использовать !ImportValue в своем SAM template.yml
В противном случае я предлагаю вам пойти по-старому: вы создаете CI/CD с шаблоном CloudFormation, который может использовать !ImportValue и связан с корзиной S3, где находится код вашей лямбда-функции.
Примеры шаблонов Cloudformation
Обновлять
SAM CLI теперь поддерживает !ImportValue, проблема на Github закрыта.
Вы можете использовать его следующим образом
# You need to export the resource that you want to use in another template first
# This goes at the end of your template.yml file, after the Resources
# template.yml in the first repo
Outputs:
myExportedResource:
Value: !Ref TheResource
Export:
Name: !Sub "{environment}-nice-export-name"
# template.yml in the second repo (This obviously goes in Resources)
MyLambda:
Type: AWS::Serverless::Function
Properties:
FunctionName: awesome-lambda
CodeUri: ./dist
Handler: this-file.handler
Role: !GetAtt LambdaRole.Arn
VpcConfig:
SecurityGroupIds:
- !GetAtt SecurityGroup.GroupId
SubnetIds:
- Fn::ImportValue: !Sub "${environment}-nice-export-name"
Вы можете использовать его точно так же, как обычный шаблон cloudformation.
Обратите внимание, что здесь я использовал Fn:ImportValue, потому что мне нужно было использовать !Sub, но если вам не нужно ссылаться на параметр в значении импорта, просто используйте !ImportValue
!ImportValue
?
- person Mooncrater; 02.07.2021
!ImportValue
. Убедитесь, что у вас установлена последняя версия sam cli. Вы можете проверить версию, набрав sam --version
в своей оболочке. убедитесь, что версия не ниже 1.24.1
- person Ben; 04.07.2021