2

I am trying to call the detectText method from Rekognition framework and it failed to call S3 bucket. I am not sure how to give roles in SAM Template. Below is my SAM template

GetTextFunction:
Type: AWS::Serverless::Function
Properties:
  CodeUri: gettextfn/
  Handler: text.handler
  Runtime: nodejs12.x
  Timeout: 3
  MemorySize: 128
  Environment:
    Variables:
        imagebucket: !Ref s3bucket
  Events:
    TextApiEvent:
      Type: HttpApi
      Properties:
        Path: /gettext
        Method: get
        ApiId: !Ref myapi
Rollend Xavier
  • 572
  • 4
  • 18
Raygun
  • 75
  • 5

1 Answers1

2

Looks like your lambda needs RekognitionDetectOnlyPolicy and also looks you miss the policy to read/write data from S3 bucket also. Have a look at below Policies: added after Environment:

Environment:
    Variables:
      imagebucket: !Ref s3bucket
  Policies:
    - S3ReadPolicy:
        BucketName: !Ref s3bucket
    - RekognitionDetectOnlyPolicy: {}
  Events:

You can refer the complete list of AWS SAM policy templates here https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html

Also have a look at a sample template here https://github.com/rollendxavier/serverless_computing/blob/main/template.yaml

Rollend Xavier
  • 572
  • 4
  • 18