无法通过serverless.yml创建S3Buckets

时间:2017-02-07 16:37:11

标签: amazon-s3 bucket amazon-cloudformation serverless-framework

我只是尝试在Resources部分添加一个新的S3Bucket,并且不再构建堆栈:

resources:
  Resources:
    myBucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: prefix-${self:custom.env.myvar}-myBucket

我得到的错误并没有太多帮助: 模板格式错误:未解决的资源依赖性      模板的资源块中的[] ([]之间没有任何内容可以指示要查找的内容)

知道发生了什么事吗?

我正在运行无服务器v1.5.0

serverless.yml

service: myService
frameworkVersion: "=1.5.0"

custom:
  env: ${file(./.variables.yml)}

provider:
  name: aws
  runtime: nodejs4.3
  stage: ${opt:stage, self:custom.env.stage}
  region: ${self:custom.env.region}
  profile: myProfile-${opt:stage, self:custom.env.stage}
  memorySize: 128

  iamRoleStatements:
    - Effect: "Allow"
      Action:
        - "lambda:InvokeFunction"
      Resource: "*"
    - Effect: "Allow"
      Action:
    - "s3:ListBucket"
      Resource: { "Fn::Join" : ["", ["arn:aws:s3:::", { "Ref" : "ServerlessDeploymentBucket" } ] ]  }
    - Effect: "Allow"
      Action:
        - "s3:PutObject"
      Resource:
        Fn::Join:
          - ""
          - - "arn:aws:s3:::"
            - "Ref" : "ServerlessDeploymentBucket"
            - "Ref" : ""

functions:
  myFunction:
    handler: functions/myFunction.handler
    name: ${opt:stage, self:custom.env.stage}-myFunction

resources:
  Resources:
    myBucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: myService-${opt:stage, self:custom.env.myVar}-myBucket

1 个答案:

答案 0 :(得分:2)

iamRoleStatements部分- "Ref" : ""中对空字符串的引用可能会导致Unresolved resource dependencies []错误。从模板中删除此行,因为它似乎是不必要的。