AWS Javascript SDK: Greengrass createFunctionDefinition - PullRequest
0 голосов
/ 25 января 2019

Я форматирую свои параметры в соответствии с этим https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Greengrass.html#createFunctionDefinition-property

Но по какой-то причине это дает мне ключевую ошибку, когда для "Выполнение", а также DefaultConfig

Response:

Request ID:
"3ed83472-39af-493b-9df7-7f82d2f14636"

Function Logs:
r: Unexpected key \'Execution\' found in params.InitialVersion.Functions[0].FunctionConfiguration.Environment',
  code: 'MultipleValidationErrors',
  errors: 
   [ { UnexpectedParameter: Unexpected key 'DefaultConfig' found in params.InitialVersion
    at ParamValidator.fail (/var/runtime/node_modules/aws-

икод

GG.createFunctionDefinition({
                                InitialVersion: {  
                                    DefaultConfig: {
                                        Execution: {
                                            IsolationMode: "NoContainer"}
                                            },
                                    Functions: [
                                        {
                                            FunctionArn: "arn:aws:lambda:us-west-2:644226108543:function:SahmCumminsTelemetryTest:1",
                                            FunctionConfiguration: {
                                                MemorySize: 524288,
                                                Pinned: true,
                                                Timeout: 600,
                                                Environment: {
                                                 AccessSysfs: false,
                                                    Execution: {
                                                        IsolationMode: "NoContainer",
                                                        RunAs: {
                                                            Gid: 0,
                                                            Uid: 0
                                                        }
                                                    }
                                                }
                                            },
                                            Id: "function_definition",
                                        },
                                    ],
                                },
                                Name: "function_definition",
                            }, function (err, data) {
                                if (err) {
                                    console.log(err, err.stack);
                                }
                                else {
                                    funcArn = data.LatestVersionArn;

                                    };

1 Ответ

0 голосов
/ 12 февраля 2019

Я думаю, что проблема в том, что данные конфигурации определяют два взаимоисключающих параметра. Указано значение размера памяти И он говорит, что должен использовать «NoContainer». Когда контейнер Greengrass не используется, объем памяти недопустим.

Попробуйте удалить размер памяти и посмотрите, исправит ли это.

Код обеспечения, которым я поделился на Github, «scrubs» функции, когда NoContainer настроен, чтобы обойти эту проблему. Процесс очистки состоит в том, чтобы установить размер памяти в NULL, чтобы при сериализации в JSON поле отсутствовало.

https://github.com/awslabs/aws-greengrass-provisioner/blob/e2608654b65682ca9b5b03da962cc8cb29ea1cbf/src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicGreengrassHelper.java#L390

...