【问题标题】:IamRoleLambdaExecution - Syntax errors in policyIamRoleLambdaExecution - 策略中的语法错误
【发布时间】:2020-09-13 19:05:15
【问题描述】:

面对语法 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

【问题讨论】:

  • 您可以尝试将kinesis: "PutRecord" 更改为"kinesis: PutRecord" 吗?
  • @jellycsc,谢谢伙计,它有效。

标签: amazon-web-services serverless-framework serverless aws-serverless serverless-architecture


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-11-26
    • 1970-01-01
    • 2021-11-11
    • 2021-01-01
    • 2023-01-30
    • 1970-01-01
    • 2021-02-18
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多