AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > lambda-dagger-sample Sample SAM Template for lambda-dagger Globals: Function: Tracing: Active CodeUri: target/dagger-lambda-function-1.0.0-SNAPSHOT.jar Runtime: java11 Timeout: 30 MemorySize: 1024 Environment: Variables: JAVA_TOOL_OPTIONS: "-XX:+TieredCompilation -XX:TieredStopAtLevel=1" PRODUCT_TABLE_NAME: !Ref ProductsTable Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: prod Name: My Lambda Dagger Sample API GetProductByIdFunction: Type: AWS::Serverless::Function Properties: Handler: software.amazonaws.example.product.handler.GetProductByIdHandler::handleRequest Policies: - DynamoDBReadPolicy: TableName: !Ref ProductsTable Events: GetRequestById: Type: Api Properties: RestApiId: !Ref MyApi Path: /products/{id} Method: get GetProductByIdFunctionLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Sub "/aws/lambda/${GetProductByIdFunction}" RetentionInDays: 7 GetProductsFunction: Type: AWS::Serverless::Function Properties: Handler: software.amazonaws.example.product.handler.GetAllProductsHandler::handleRequest Policies: - DynamoDBReadPolicy: TableName: !Ref ProductsTable Events: GetRequest: Type: Api Properties: RestApiId: !Ref MyApi Path: /products Method: get GetProductsFunctionLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Sub "/aws/lambda/${GetProductsFunction}" RetentionInDays: 7 PutProductFunction: Type: AWS::Serverless::Function Properties: Handler: software.amazonaws.example.product.handler.CreateProductHandler::handleRequest Policies: - DynamoDBCrudPolicy: TableName: !Ref ProductsTable Events: PutRequest: Type: Api Properties: RestApiId: !Ref MyApi Path: /products/{id} Method: put PutProductFunctionLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Sub "/aws/lambda/${PutProductFunction}" RetentionInDays: 7 DeleteProductFunction: Type: AWS::Serverless::Function Properties: Handler: software.amazonaws.example.product.handler.DeleteProductHandler::handleRequest Policies: - DynamoDBCrudPolicy: TableName: !Ref ProductsTable Events: PutRequest: Type: Api Properties: RestApiId: !Ref MyApi Path: /products/{id} Method: delete DeleteProductFunctionLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Sub "/aws/lambda/${DeleteProductFunction}" RetentionInDays: 7 ProductsTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: 'PK' AttributeType: 'S' KeySchema: - AttributeName: 'PK' KeyType: 'HASH' BillingMode: PAY_PER_REQUEST Outputs: DaggerApiEndpoint: Description: "API Gateway endpoint URL for Prod stage for Dagger sample function" Value: !Sub "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/prod/products"