AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > sam-app Sample SAM Template for sam-app # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst Globals: Function: Timeout: 20 MemorySize: 512 Environment: # More info about Env Vars: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object Variables: TABLE_NAME: !Ref OrdersTable ENDPOINT_OVERRIDE: "" Resources: GetOrderFunction: Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: target/aws-sam-java-rest-1.0.0.jar Handler: com.amazonaws.handler.GetOrderHandler::handleRequest Runtime: java8 Policies: - DynamoDBReadPolicy: TableName: !Ref OrdersTable Events: GetOrder: Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api Properties: Path: /orders/{order_id} Method: get GetOrdersFunction: Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: target/aws-sam-java-rest-1.0.0.jar Handler: com.amazonaws.handler.GetOrdersHandler::handleRequest Runtime: java8 Policies: - DynamoDBReadPolicy: TableName: !Ref OrdersTable Events: GetOrders: Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api Properties: Path: /orders Method: get UpdateOrderFunction: Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: target/aws-sam-java-rest-1.0.0.jar Handler: com.amazonaws.handler.UpdateOrderHandler::handleRequest Runtime: java8 Policies: - DynamoDBCrudPolicy: TableName: !Ref OrdersTable Events: UpdateOrder: Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api Properties: Path: /orders/{order_id} Method: post DeleteOrderFunction: Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: target/aws-sam-java-rest-1.0.0.jar Handler: com.amazonaws.handler.DeleteOrderHandler::handleRequest Runtime: java8 Policies: - DynamoDBCrudPolicy: TableName: !Ref OrdersTable Events: DeleteOrder: Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api Properties: Path: /orders/{order_id} Method: delete CreateOrderFunction: Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: target/aws-sam-java-rest-1.0.0.jar Handler: com.amazonaws.handler.CreateOrderHandler::handleRequest Runtime: java8 Policies: - DynamoDBCrudPolicy: TableName: !Ref OrdersTable Events: CreateOrder: Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api Properties: Path: /orders Method: post OrdersTable: Type: AWS::DynamoDB::Table Properties: TableName: orders_table AttributeDefinitions: - AttributeName: orderId AttributeType: S KeySchema: - AttributeName: orderId KeyType: HASH BillingMode: PAY_PER_REQUEST Outputs: HelloWorldApi: Description: "API Gateway endpoint URL for Prod stage for Hello World function" Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/" GetOrderFunction: Description: "GetOrder Lambda Function ARN" Value: !GetAtt GetOrderFunction.Arn GetOrdersFunction: Description: "GetOrders Lambda Function ARN" Value: !GetAtt GetOrdersFunction.Arn UpdateOrderFunction: Description: "UpdateOrder Lambda Function ARN" Value: !GetAtt UpdateOrderFunction.Arn DeleteOrderFunction: Description: "DeleteOrder Lambda Function ARN" Value: !GetAtt DeleteOrderFunction.Arn CreateOrderFunction: Description: "CreateOrder Lambda Function ARN" Value: !GetAtt CreateOrderFunction.Arn