2

我正在尝试从 Rekognition 框架调用 detectText 方法,但它未能调用 S3 存储桶。我不确定如何在 SAM 模板中赋予角色。下面是我的 SAM 模板

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
4

1 回答 1

2

看起来您的 lambda 需要RekognitionDetectOnlyPolicy并且看起来您也错过了从 S3 存储桶读取/写入数据的策略。看看在Policies:Environment之后添加的以下内容:

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

您可以在此处参考 AWS SAM 策略模板的完整列表https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html

还可以在这里查看示例模板 https://github.com/rollendxavier/serverless_computing/blob/main/template.yaml

于 2021-04-07T01:00:03.063 回答