6

根据无服务器应用程序模型中的文档,可以为资源的属性AWS::Serverless::Function指定 IAM 策略文档对象 (PDO) 列表。Policies

但是,当我尝试定义 IAM PDO 时,AWS Toolkit for Visual Studio 会标记语法错误: 在此处输入图像描述

这是我的Resources部分的完整示例:

"Resources": { "Example" : { "Type" : "AWS::Serverless::Function", "Properties": { "Handler": "Example::Example.Controllers.ExampleController::ExampleAction", "Runtime": "dotnetcore2.0", "CodeUri": "", "MemorySize": 256, "Timeout": 30, "Policies": [{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "*", "Resource": "*" } }], "Events": { "PutResource": { "Type": "Api", "Properties": { "Path": "/{id}", "Method": "GET" } } } } } }

我有什么问题吗,还是 SAM 或 AWS Toolkit 语法验证有问题?

4

3 回答 3

1

我认为问题在于您的语法应该是一个语句数组,因为可以有多个策略,如下所示,

"Statement":[ 
              {
                "Effect": "Allow",
                "Action": "*",
                "Resource": "*"
              }
            ]

拥有多个策略的示例如下,

"Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "dynamodb:Query"
              ],
              "Resource": "arn:aws:dynamodb:${region}:*:table/${project}-songs-${dev}/*/*"
            },
            {
              "Effect": "Allow",
              "Action": [
                "dynamodb:GetItem"                  ],
              "Resource": "arn:aws:dynamodb:${region}:*:table/${project}-users-${dev}"
            },

         ]
于 2018-07-13T06:35:32.233 回答
1

我刚刚更新了 VS CloudFormation 架构。下次重新启动 Visual Studio 时,该问题应该会消失。

于 2018-07-19T20:55:13.280 回答
0

问题似乎是由 Visual Studio 和 AWS Toolkit 中的语法解析问题引起的。我在 GitHub 上提出了一个问题,您可以在这里跟踪它:https ://github.com/aws/aws-sdk-net/issues/1001

于 2018-07-19T12:00:33.097 回答