Я пытаюсь использовать AWS SAM для развертывания простого API.Когда API прост (то есть не указывает явно API-шлюз).развертывание выполнено успешно.
Однако следующее развертывание завершается неудачно:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Sample API
Parameters:
Stage:
Type: String
AllowedValues:
- dev
- sat
- demo
- staging
- prod
Description: Enter dev, sat, demo, staging or prod
Resources:
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: !Ref Stage
EndpointConfiguration: PRIVATE
DefinitionBody:
swagger: '2.0'
x-amazon-apigateway-policy:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal: "*"
Action: execute-api:Invoke
Resource:
- !Sub arn:aws:execute-api:*:*:*/${Stage}/*
ThumbnailFunction:
Type: 'AWS::Serverless::Function'
Properties:
Runtime: nodejs8.10
Handler: get-config.handler
CodeUri: ./functions
Events:
ThumbnailApi:
Type: Api
Properties:
RestApiId: !Ref MyApi
Path: /thumbnail
Method: GET
Сообщение об ошибке выглядит следующим образом:
The REST API doesn't contain any methods (Service: AmazonApiGateway;
Status Code: 400; Error Code: BadRequestException
Глядя на Google, я нахожу упоминанияэтой ошибки при указании развертывания вручную ( здесь или здесь ).В моем случае развертывание неявное, поэтому я предполагаю, что моя проблема в другом.
Код, который я использую, основан на примере SAM ( здесь ).Я ломаю голову, чтобы понять, что не так с моим стеком.
Есть какие-нибудь указатели на решение?