AWS.Transfer не является конструктором - PullRequest
1 голос
/ 30 мая 2019

Я настраиваю процесс SFTP с помощью AWS Transfer для SFTP API в Lambda.Я следовал примеру в документации и ограниченным примерам, которые нашел в Интернете, но получаю только сообщение об ошибке «AWS.Transfer is not constructor».Вот простой пример:

const AWS = require('aws-sdk')

const transfer = new AWS.Transfer({
    apiVersion: '2018-11-05',
    region: `us-west-2`
});

const params = {
    ServerId: 'hlaoslloesses' /* required */
};

transfer.describeServer(params, (err, data) => {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response
});

Сообщение об ошибке:

Response:
{
  "errorMessage": "AWS.Transfer is not a constructor",
  "errorType": "TypeError",
  "stackTrace": [
    "Module._compile (module.js:652:30)",
    "Object.Module._extensions..js (module.js:663:10)",
    "Module.load (module.js:565:32)",
    "tryModuleLoad (module.js:505:12)",
    "Function.Module._load (module.js:497:3)",
    "Module.require (module.js:596:17)",
    "require (internal/module.js:11:18)"
  ]
}

Request ID:
"ced0c74a-d81a-42b0-94a1-3e667921f7c4"

Function Logs:
START RequestId: ced0c74a-d81a-42b0-94a1-3e667921f7c4 Version: $LATEST
module initialization error: TypeError
    at Object.<anonymous> (/var/task/index.js:3:18)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
END RequestId: ced0c74a-d81a-42b0-94a1-3e667921f7c4
REPORT RequestId: ced0c74a-d81a-42b0-94a1-3e667921f7c4	Duration: 79.81 ms	Billed Duration: 100 ms 	Memory Size: 128 MB	Max Memory Used: 67 MB	
module initialization error
TypeError

Я пытался изменить пример из API и SDK docs , но все равно получаю тот же результат.Кто-нибудь заставил это работать?

1 Ответ

1 голос
/ 31 мая 2019

AWS Transfer является относительно новым. Во время выполнения Node 8.10 Lambda работает версия 2.290.0 SDK, в которую не входит AWS.Transfer.

Вы можете либо развернуть свою функцию в среде выполнения Node10.x, которая в настоящее время работает под управлением 2.437.0, либо упаковать более новую версию JS SDK вместе с вашим кодом функции.

Вот ссылка для дальнейшего использования: https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...