Function中未使用MemorySize的AWS SAM全局设置

时间:2018-09-07 02:39:21

标签: amazon-web-services serverless sam

我正在使用eclipse创建无服务器应用程序。在尝试清理我的部署模板时,我尝试使用Globals。但是,我发现在部署Java函数时会忽略内存大小属性。

以下是我的SAM模板中的一部分:

"Globals":{
"Function": {
  "Tags" : {
    "Client" : { "Ref": "Client"},
    "Stage" : { "Ref" : "NameExt" }
  },
  "Runtime" : "java8",
  "MemorySize" : "1024",
  "Timeout" : 300,
  "Environment" : {
    "Variables" : {
      "REGION" : { "Ref" : "AWS::Region" },
      "STAGE" : { "Ref" : "NameExt" }
    }
  }
}
},
"Resources": {
"RunReports" : {
  "Type" : "AWS::Serverless::Function",
  "Properties" : {
    "Handler" : "APIReports",
    "FunctionName" : "RunReport",
    "Policies" :  [ "AmazonDynamoDBFullAccess", "AmazonS3FullAccess" ],
    "Events" : {
      "GetResource" : {
        "Type" : "Api",
        "Properties" : {
          "Path" : "/commands/report",
          "Method" : "Get"
        }
      }
    }
  }
},
},

使用Eclipse部署项目后,该功能的MemorySize设置为512。

任何帮助,我们将不胜感激。 干杯

1 个答案:

答案 0 :(得分:0)

看起来就在附近,您只需要进行一次小调整。我只是查看了一个拥有的SAM template.yaml文件,并使用this nifty tool将其转换为json。

无论如何,问题似乎在于Memory属性的值是一个字符串。删除周围的引号,就可以了。

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Description": "Something really descriptive", "Globals": { "Function": { "Timeout": 120, "MemorySize": 256 } },

希望这会有所帮助。