Можно ли использовать более новую версию aws-sdk, чем в AWS Lambda? - PullRequest
0 голосов
/ 14 декабря 2018

В последней версии aws-sdk есть функции для ComprehendMedical, для которых я хотел бы создать лямбда-функцию.

Однако версия AWS-SDK устарела на несколько месяцев и пока не может использовать эти функции.Хотите знать, есть ли способ использовать последнюю библиотеку?

Спасибо!

Ответы [ 4 ]

0 голосов
/ 05 апреля 2019

Я нашел простой способ.Если у вас есть webpack.config.js, вы можете просто изменить externals: ['aws-sdk'], на externals: [],.

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

0 голосов
/ 14 декабря 2018

По умолчанию Lambda использует эти SDK AWS SDK для JavaScript - 2.290.0 SDK для Python (Boto3) - 3-1.7.74 botocore-1.10.74

Но вы можете установить новейший SDK через npm (или что вы используете), а затем загрузите всю кучу файлов в lamda.

Взгляните на SLS (бессерверный фреймворк), легко добавить файлы, которые вы хотите развернуть;)

https://serverless.com/framework/docs/providers/aws/

https://serverless.com/framework/docs/providers/aws/guide/packaging/

0 голосов
/ 14 декабря 2018

Я рекомендую вам создать библиотечный комплект и создать лямбда-слой вместе с ним с нужной версией AWS-SDK в комплекте библиотеки (включая любые другие библиотеки, которые вы хотите),После того, как вы установили лямбда-слой, вы можете назначить его вашей лямбда-функции.Это помогает уменьшить размер кода вашей лямбда-функции без необходимости связывать все необходимые библиотеки с каждой лямбда-функцией.Полагая, что AWS-SDK является довольно большой библиотекой, Lambda Layer поможет вам управлять размером отдельных функций Lambda, используя в нем только ваш код.

Шаги просты.

  1. Создайте каталог с именем nodejs, это будет каталог вашего проекта.Имя должно быть nodejs.
  2. Выполнить npm init внутри этого каталога.
  3. Установите все библиотеки из npm, используя npm install --save. Примечание: важна локальная установка.
  4. После того, как все сделано, заархивируйте каталог nodejs и загрузите его в Lambda Layer.
  5. Используйте Lambda Layer во всех ваших функциях Lambda.

Ознакомьтесь с моей статьей для получения полной информации о том, как настроить Lambda Layer для Node JS.зависимостей.Я считаю, что в дальнейшем Lambda Layer должен стать для всех выбором управления зависимостями в Lambda.

ПРИМЕЧАНИЕ : Lambda Layer был недавно представлен в AWS re: Invent 2018. Он не только совместим сNodeJS, но также и с почти любым другим языком (согласно Amazon), таким как Python, Java, C #, C ++ (да!), Go, Rust и т. Д.

0 голосов
/ 14 декабря 2018

Да, вам просто нужно упаковать последнюю версию SDK в файл развертывания функции Lambda, а не полагаться на имеющуюся версию.

...