112 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
		
		
			
		
	
	
			112 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
|  | AWSTemplateFormatVersion: '2010-09-09'
 | ||
|  | Transform: 'AWS::Serverless-2016-10-31'
 | ||
|  | Description: Baeldung Serverless Application Model Example with Inline Swagger API Definition
 | ||
|  | Resources:
 | ||
|  |   PersonTable:
 | ||
|  |     Type: AWS::Serverless::SimpleTable
 | ||
|  |     Properties:
 | ||
|  |       PrimaryKey:
 | ||
|  |           Name: id
 | ||
|  |           Type: Number
 | ||
|  |       TableName: Person
 | ||
|  |   StorePersonFunction:
 | ||
|  |     Type: AWS::Serverless::Function
 | ||
|  |     Properties:
 | ||
|  |       Handler: com.baeldung.lambda.apigateway.APIDemoHandler::handleRequest
 | ||
|  |       Runtime: java8
 | ||
|  |       Timeout: 15
 | ||
|  |       MemorySize: 512
 | ||
|  |       CodeUri: ../target/aws-lambda-0.1.0-SNAPSHOT.jar
 | ||
|  |       Policies:
 | ||
|  |         - DynamoDBCrudPolicy:
 | ||
|  |             TableName: !Ref PersonTable
 | ||
|  |       Environment:
 | ||
|  |         Variables:
 | ||
|  |           TABLE_NAME: !Ref PersonTable
 | ||
|  |       Events:
 | ||
|  |         StoreApi:
 | ||
|  |           Type: Api
 | ||
|  |           Properties:
 | ||
|  |             Path: /persons
 | ||
|  |             Method: PUT
 | ||
|  |             RestApiId:
 | ||
|  |                 Ref: MyApi
 | ||
|  |   GetPersonByHTTPParamFunction:
 | ||
|  |     Type: AWS::Serverless::Function
 | ||
|  |     Properties:
 | ||
|  |       Handler: com.baeldung.lambda.apigateway.APIDemoHandler::handleGetByParam
 | ||
|  |       Runtime: java8
 | ||
|  |       Timeout: 15
 | ||
|  |       MemorySize: 512
 | ||
|  |       CodeUri: ../target/aws-lambda-0.1.0-SNAPSHOT.jar
 | ||
|  |       Policies:
 | ||
|  |         - DynamoDBReadPolicy:
 | ||
|  |             TableName: !Ref PersonTable
 | ||
|  |       Environment:
 | ||
|  |         Variables:
 | ||
|  |           TABLE_NAME: !Ref PersonTable
 | ||
|  |       Events:
 | ||
|  |         GetByPathApi:
 | ||
|  |           Type: Api
 | ||
|  |           Properties:
 | ||
|  |             Path: /persons/{id}
 | ||
|  |             Method: GET
 | ||
|  |             RestApiId:
 | ||
|  |                 Ref: MyApi
 | ||
|  |         GetByQueryApi:
 | ||
|  |           Type: Api
 | ||
|  |           Properties:
 | ||
|  |             Path: /persons
 | ||
|  |             Method: GET
 | ||
|  |             RestApiId:
 | ||
|  |                 Ref: MyApi
 | ||
|  |   MyApi:
 | ||
|  |     Type: AWS::Serverless::Api
 | ||
|  |     Properties:
 | ||
|  |       StageName: test
 | ||
|  |       EndpointConfiguration: REGIONAL
 | ||
|  |       DefinitionBody:
 | ||
|  |         swagger: "2.0"
 | ||
|  |         info:
 | ||
|  |           title: "TestAPI"
 | ||
|  |         paths:
 | ||
|  |           /persons:
 | ||
|  |             get:
 | ||
|  |               parameters:
 | ||
|  |               - name: "id"
 | ||
|  |                 in: "query"
 | ||
|  |                 required: true
 | ||
|  |                 type: "string"
 | ||
|  |               x-amazon-apigateway-request-validator: "Validate query string parameters and\
 | ||
|  |                 \ headers"
 | ||
|  |               x-amazon-apigateway-integration:
 | ||
|  |                 uri:
 | ||
|  |                   Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${GetPersonByHTTPParamFunction.Arn}/invocations
 | ||
|  |                 responses: {}
 | ||
|  |                 httpMethod: "POST"
 | ||
|  |                 type: "aws_proxy"
 | ||
|  |             put:
 | ||
|  |               x-amazon-apigateway-integration:
 | ||
|  |                 uri:
 | ||
|  |                   Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${StorePersonFunction.Arn}/invocations
 | ||
|  |                 responses: {}
 | ||
|  |                 httpMethod: "POST"
 | ||
|  |                 type: "aws_proxy"
 | ||
|  |           /persons/{id}:
 | ||
|  |             get:
 | ||
|  |               parameters:
 | ||
|  |               - name: "id"
 | ||
|  |                 in: "path"
 | ||
|  |                 required: true
 | ||
|  |                 type: "string"
 | ||
|  |               responses: {}
 | ||
|  |               x-amazon-apigateway-integration:
 | ||
|  |                 uri:
 | ||
|  |                   Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${GetPersonByHTTPParamFunction.Arn}/invocations
 | ||
|  |                 responses: {}
 | ||
|  |                 httpMethod: "POST"
 | ||
|  |                 type: "aws_proxy"
 | ||
|  |         x-amazon-apigateway-request-validators:
 | ||
|  |           Validate query string parameters and headers:
 | ||
|  |             validateRequestParameters: true
 | ||
|  |             validateRequestBody: false
 |