IamRoleLambdaExecution-策略中的语法错误

问题描述 投票:0回答:1

面对语法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
amazon-web-services serverless-framework serverless aws-serverless serverless-architecture
1个回答
2
投票

基于OP在评论中的反馈,应该将kinesis: "PutRecord"更改为"kinesis: PutRecord"

© www.soinside.com 2019 - 2024. All rights reserved.