Amazon web services AWS-SAM:restapi没有';不包含任何方法
我正在尝试使用AWS SAM部署一个简单的API。 当API很简单时(即,不显式指定API网关)。部署成功 但是,以下部署失败:Amazon web services AWS-SAM:restapi没有';不包含任何方法,amazon-web-services,aws-lambda,amazon-cloudformation,aws-api-gateway,aws-sam,Amazon Web Services,Aws Lambda,Amazon Cloudformation,Aws Api Gateway,Aws Sam,我正在尝试使用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
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示例()。我挠头想弄明白我的堆栈出了什么问题
有没有指向解决方案的指针?正如错误消息所说,您还没有定义任何方法。我想你的困惑就在这里: 在我的例子中,部署是隐式的,因此我假设我的问题不同 SAM确实从AWS::Serverless::Function resources上定义的Api事件的联合中创建AWS::Serverless::Api类型的隐式Api,但前提是这些事件没有引用(通过RestApiId属性)模板中显式定义的AWS::Serverless::Api资源。对你来说,确实如此 此外,您提到您的模板基于“api_swagger_cors”示例SAM模板,但实际上您的模板与该示例之间有一个关键区别,即:在该示例中,一个swagger YAML文件正在从S3存储桶中拉入;而在您的中,您的招摇过市是内联定义的,但它没有定义任何方法 有关更多信息:
- 参见隐式v显式API的答案(我也写过)
- 有关招摇过市的结构,请参见第页