How to reference a s3 bucket in the lambda trigger

I want to create an s3 bucket, and trigger a lambda function whenever some file is uploaded to ‘uploads’ folder in the bucket. I want to create those resources using serverless framework in aws.

I have defined my s3 bucket configuration in under ‘provider.s3’, and then I am trying to reference that bucket under functions.hello.events.bucket

However, I am getting following error when i run sls package

 Serverless Error ----------------------------------------

     MyS3Bucket - Bucket name must conform to pattern (?!^(\d{1,3}\.){3}\d{1,3}$)(^(([a-z0-9]|[a-z0-9][a-z0-9-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9-]*[a-z0-9])$). Please check provider.s3.MyS3Bucket and/or s3 events of function "hello".

serverless.yml

service: some-service
frameworkVersion: '2'
useDotenv: true

provider:
  name: aws
  runtime: python3.8
  lambdaHashingVersion: 20201221
  s3:
    MyS3Bucket:
      bucketName: ${env:MY_BUCKET_NAME}
      accessControl: Private
      lifecycleConfiguration:
        Rules:
          - Id: ExpireRule
            Status: Enabled
            ExpirationInDays: '7'    
package:
  individually: true

functions:
  hello:
    name: my-lambda-function
    handler: function.handler
    memorySize: 128
    timeout: 900
    events:
      - s3:
          bucket: MyS3Bucket
          event: s3:ObjectCreated:*
          rules:
            - prefix: uploads/

My next try was defining the s3 bucket under ‘resources’, and using the reference of the bucket in the lambda trigger. I am still getting the warning messages

Serverless: Configuration warning at 'functions.hello.events[0].s3.bucket': should be string

serverless.yml

service: some-service
frameworkVersion: '2'
useDotenv: true

provider:
  name: aws
  runtime: python3.8
  lambdaHashingVersion: 20201221
    
package:
  individually: true

functions:
  hello:
    name: my-lambda-function
    handler: handler.handler
    memorySize: 128
    timeout: 900
    events:
      - s3:
          bucket: 
            Ref: MyS3Bucket
          event: s3:ObjectCreated:*
          rules:
            - prefix: uploads/
          existing: true

resources:
  Resources:
    MyS3Bucket:
      Type: AWS::S3::Bucket
      Properties:
        AccessControl: Private
        BucketName: 'test.bucket'
        OwnershipControls:
          Rules:
            - ObjectOwnership: ObjectWriter
        LifecycleConfiguration:
          Rules:
            - Id: ExpireRule
              Status: Enabled
              ExpirationInDays: '7'

Have you fix this?? Use boot3