Шраван упомянул половину проблемы. Другая вещь, которую вам нужно сделать, это использовать «DefinitionBody» и «Fn :: Transform», как показано ниже, при добавлении вашего файла swagger в ваш шаблон или переменные в вашем файле swagger не будут заменены.
Resources:
MyApi:
Type: AWS::Serverless::Api
Properties:
Name: my-api
StageName: dev
DefinitionBody:
'Fn::Transform':
Name: 'AWS::Include'
Parameters:
Location: s3://my-api/swagger.yaml
Простое использование «DefinitionUri» для указания файла чванства не будет работать.
# This will cause the variables in your swagger file to not be substituted. You must use the format above to get variables to work in your swagger file.
Resources:
MyApi:
Type: AWS::Serverless::Api
Properties:
Name: my-api
StageName: dev
DefinitionUri: swagger.yaml
К сожалению, это также означает, что вам необходимо указать полный путь s3 к файлу swagger и загрузить его на S3 перед развертыванием SAM. Смотри: https://github.com/awslabs/serverless-application-model/issues/305