AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > apigw-lambda-dynamodb Sample SAM Template for apigw-lambda-dynamodb # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst Globals: Function: Timeout: 3 MemorySize: 128 Resources: DynamoDBTable: Type: AWS::DynamoDB::Table UpdateReplacePolicy: Delete Properties: AttributeDefinitions: - AttributeName: PK AttributeType: S - AttributeName: SK AttributeType: S KeySchema: - AttributeName: PK KeyType: HASH - AttributeName: SK KeyType: RANGE BillingMode: PAY_PER_REQUEST SSESpecification: SSEEnabled: true Metadata: SamResourceId: DynamoDBTable HelloPerson: 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: src/ Handler: app.lambdaHandler Runtime: nodejs16.x Architectures: - x86_64 Tracing: Active # Available policies: # https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-template-list.html Policies: - AWSXrayWriteOnlyAccess - DynamoDBCrudPolicy: TableName: !Ref DynamoDBTable Environment: Variables: DYNAMODB_TABLE_NAME: Ref: DynamoDBTable Events: HelloWorld: 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: /hello/{id} Method: get Metadata: # Manage esbuild properties BuildMethod: esbuild BuildProperties: Minify: true Target: "es2020" # Sourcemap: true # Enabling source maps will create the required NODE_OPTIONS environment variables on your lambda function during sam build EntryPoints: - app.ts Outputs: # ServerlessRestApi is an implicit API created out of Events key under Serverless::Function # Find out more about other implicit resources you can reference within SAM # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api HelloPersonApi: Description: "API Gateway endpoint URL for Prod stage for Hello Person function" Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/" TypeScriptDemoFunction: Description: "Hello Person Lambda Function ARN" Value: !GetAtt HelloPerson.Arn DynamoDBTableName: Description: "Hello Person DynamoDB table name" Value: !Ref DynamoDBTable #TypescriptDemoIamRole: # Description: "Implicit IAM Role created for Hello World function" # Value: !GetAtt HelloPerson.Arn