serverless frameworkのdeployで[IamRoleLambdaExecution - Syntax errors in policy.]が出る

serverless frameworkでデプロイするときにエラーが出てしまい詰まったのでメモ。

$ sls deploy

を実行すると、

 

Serverless Error ----------------------------------------

An error occurred: IamRoleLambdaExecution - Syntax errors in policy. (Service: AmazonIdentityManagement; Status Code: 400; Error Code: MalformedPolicyDocument; Request ID: xxx; Proxy: null).

が表示されてしまう。

 

対処法

クオーテーションで囲む部分が違っていた。

修正前

# serverless.yml

  iamRoleStatements:
    - Effect: Allow
      Action:
        - dynamodb: "DescribeTable"
        - dynamodb: "Query"
        - dynamodb: "Scan"

修正後 serverless.yml

# serverless.yml

  iamRoleStatements:
    - Effect: Allow
      Action:
        - "dynamodb:DescribeTable" # 全部囲む
        - "dynamodb:Query"
        - "dynamodb:Scan"

ドキュメントと照らし合わせたらちゃんとその通りに書いてました。。。

www.serverless.com