我希望使用无服务器应用程序模型(sam.yml)文件部署两个带有 API 网关集成的 AWS Lambda 函数。我的文件如下所示:
在Lambda Web控制台中,我可以看到两个函数都已创建,但是我只能通过API Gateway调用其中一个。对于另一个,我得到了{"message":"Gateway timeout"}的错误信息。
有什么想法吗?如何最好地描述在单个无服务器应用程序模型中部署两个函数?
我看过这个示例:https://github.com/awslabs/serverless-application-model/blob/master/examples/2016-10-31/api_backend/template.yaml 然而,这个示例是从同一源代码创建了两个Lambda函数。这不是我想要实现的。我希望在一个sam.yml文件中从不同的部署中创建两个Lambda函数。
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: "Client Service"
Resources:
PetStoreServerFunction:
Type: AWS::Serverless::Function
Properties:
Handler: server.LambdaHandler::handleRequest
Runtime: java8
CodeUri: petstore-server/target/petstore-server-1.0-SNAPSHOT.jar
MemorySize: 512
Policies:
- AWSLambdaBasicExecutionRole
Timeout: 20
Events:
GetResource:
Type: Api
Properties:
Path: /server/{proxy+}
Method: any
PetStoreClientFunction:
Type: AWS::Serverless::Function
Properties:
Handler: client.LambdaHandler::handleRequest
Runtime: java8
CodeUri: petstore-client/target/petstore-client-1.0-SNAPSHOT.jar
MemorySize: 512
Policies:
- AWSLambdaBasicExecutionRole
Timeout: 20
Events:
GetResource:
Type: Api
Properties:
Path: /client/{proxy+}
Method: any
在Lambda Web控制台中,我可以看到两个函数都已创建,但是我只能通过API Gateway调用其中一个。对于另一个,我得到了{"message":"Gateway timeout"}的错误信息。
有什么想法吗?如何最好地描述在单个无服务器应用程序模型中部署两个函数?
我看过这个示例:https://github.com/awslabs/serverless-application-model/blob/master/examples/2016-10-31/api_backend/template.yaml 然而,这个示例是从同一源代码创建了两个Lambda函数。这不是我想要实现的。我希望在一个sam.yml文件中从不同的部署中创建两个Lambda函数。
.yaml
文件和示例文件最明显的区别在于超时键。示例文件没有使用它们。你尝试过将它们删除吗? - Nicholas Martinez