IamRoleLambdaExecution - 策略中的语法错误

IamRoleLambdaExecution - Syntax errors in policy

面临语法 IamRoleLambdaExecution - 策略中的语法错误。 (服务:AmazonIdentityManagement;状态代码:400;错误代码:MalformedPolicyDocument;请求 ID:*********-****-****-****-********* ****)。 对于下面的 serverless.yml 文件。


plugins:
  - serverless-pseudo-parameters

provider:
  name: aws
  runtime: nodejs8.10

  iamRoleStatements:
    - Effect: Allow
      Action:
        - "dynamodb:PutItem"
        - "dynamodb:GetItem"
      Resource:
        - arn:aws:dynamodb:#{AWS::Region}:#{AWS::AccountId}:table/ordersTable
    - Effect: Allow
      Action:
        - kinesis: "PutRecord"
      Resource:
        - arn:aws:kinesis:#{AWS::Region}:#{AWS::AccountId}:stream/order-events

functions:
  createOrder:
    handler: handler.createOrder
    events:
      - http:
          path: /order
          method: post
    environment:
      orderTableName: ordersTable
      orderStreamName: order-events

resources:
  Resources:
    orderEventsStream:
      Type: AWS::Kinesis::Stream
      Properties:
        Name: order-events
        ShardCount: 1
    orderTable:
      Type: AWS::DynamoDB::Table
      Properties:
        TableName: ordersTable
        AttributeDefinitions:
          - AttributeName: "orderId"
            AttributeType: "S"
        KeySchema:
          - AttributeName: "orderId"
            KeyType: "HASH"
        BillingMode: PAY_PER_REQUEST```

serverless details:

- Framework Core: 1.71.3
- Plugin: 3.6.12
- SDK: 2.3.0
- Components: 2.30.11

根据 OP 在评论中的反馈,将 kinesis: "PutRecord" 更改为 "kinesis: PutRecord" 应该可行。