AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: SAM Template for apigw-lambda-layer # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst Globals: Function: Runtime: python3.9 Timeout: 30 Architectures: - arm64 Resources: # More info about Layers: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-layers.html LambdaLayerCode: Type: 'AWS::Serverless::LayerVersion' Properties: CompatibleRuntimes: - python3.9 ContentUri: src/sampleCodeLayer Description: Common code layer LayerName: !Sub "${AWS::StackName}-CodeLayer" LambdaLayerSchema: Type: 'AWS::Serverless::LayerVersion' Properties: CompatibleRuntimes: - python3.9 ContentUri: src/sampleSchemaLayer Description: Common schema (API contract) layer LayerName: !Sub "${AWS::StackName}-SchemaLayer" PythonTestDemo: 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: Tracing: Active CodeUri: src/sampleLambda Handler: app.lambda_handler Layers: - !Ref LambdaLayerCode - !Ref LambdaLayerSchema Policies: - AWSXrayWriteOnlyAccess - Version: '2012-10-17' # Policy Document Statement: - Effect: Allow Action: - s3:ListAllMyBuckets Resource: 'arn:aws:s3:::*' 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/lambda/layers Method: get 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 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/lambda/layers/" PythonTestDemo: Description: "Hello World Lambda Function ARN" Value: !GetAtt PythonTestDemo.Arn PythonTestDemoIamRole: Description: "Implicit IAM Role created for Hello World function" Value: !GetAtt PythonTestDemoRole.Arn