Я использую SAM, чтобы развернуть функцию Lambda и сделать ее вызываемой через HTTP с помощью шлюза API, используя примерно этот фрагмент шаблона:
MyFunction:
Type: AWS::Serverless::Function
Properties:
…
Events:
MyApi:
Type: Api
Properties:
Path: /
Method: any
Это работает, но создает этап API под названием «Prod», который необходимо использовать в качестве префикса для всех URL-адресов. Я не хочу, чтобы мои URL-адреса были "https://something/Prod/foo", я хочу, чтобы они быть "https://something/v1/foo", то есть чем-то, что я выберу.
Как изменить название сцены?
Я попытался объявить API как отдельный ресурс и использовал свойство StageName
для установки имени этапа, однако это требует, чтобы я также установил DefinitionBody
, и это похоже на глубокую кроличью нору.
MyFunction:
Type: AWS::Serverless::Function
Properties:
…
Events:
MyApi:
Type: Api
Properties:
Path: /
Method: any
RestApiId: !Ref MyApi
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: v1
DefinitionBody:
???
Я знаю, что ???
в приведенном выше примере должен быть Swagger, но я бы предпочел не писать там ничего, шаблон становится достаточно подробным. Поскольку мне не нужно писать эту часть, если я могу просто жить со сценическим псевдонимом «Prod», мне кажется, что должен быть способ избежать необходимости писать что-либо там и просто установить сценическое имя.
Как я могу изменить название сцены без написания большого количества кода шаблона и / или Swagger?