Глобальная настройка AWS SAM для MemorySize не используется в функции - PullRequest
0 голосов
/ 07 сентября 2018

Я использую Eclipse для создания приложения без сервера. При попытке очистить шаблон развертывания я пытаюсь использовать глобальные переменные. Однако я обнаружил, что атрибут размера памяти игнорируется при развертывании моей функции 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"
        }
      }
    }
  }
},
},

Когда проект развертывается с использованием затмения, MemorySize для функции устанавливается в 512.

Любая помощь, с благодарностью. Ура,

1 Ответ

0 голосов
/ 02 октября 2018

Похоже, что вы почти там, вам нужно сделать только одну небольшую настройку. Я просто посмотрел на файл SAM template.yaml, который у меня есть, и преобразовал его в json с помощью этого замечательного инструмента .

Так или иначе, проблема, кажется, со значением свойства Memory, являющимся строкой. Бросьте кавычки, и все будет в порядке.

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

Надеюсь, это поможет.

...