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
							 |