Размер. Гораздо больше размера. Образы Docker позволяют упаковывать и развертывать функции Lambda в виде образов контейнеров размером до 10 ГБ. Таким образом, вы также можете легко создавать и развертывать более крупные рабочие нагрузки, основанные на значительных зависимостях, таких как машинное обучение или рабочие нагрузки с интенсивным использованием данных.

В этом посте мы покажем вам, как развернуть ваш AWS Lambda, чтобы он использовал образ Docker с AWS CDK.

Хотите узнать больше? Этот пост является кратким, а полную версию можно найти в нашем блоге. На нашем веб-сайте содержится масса информации о том, как развернуть ваши первые приложения в облаке.

🎓В конце этого поста

Вы развернете функцию AWS Lambda, которая запускает ваш код Python. Это позволяет вам обойти ограничения размера Lambda, затрачивая некоторое время на вызов/инициализацию.

📝 Требования — Уровень 100

Этот пост требует очень ограниченных знаний об AWS CDK. Вы должны сгенерировать пример проекта с помощью CLI или вы можете проверить исходный код любого другого сообщения CDK.

  • У вас есть работающая учетная запись AWS
  • Вы установили и получили начальное представление об AWS CDK.

💼 Варианты использования

Бессерверное машинное обучение? Раньше это было мечтой из-за ограничений по размеру, которые предлагала AWS Lambda. Специалисты по данным хотят использовать библиотеки, которые часто имеют большой размер: Panda, Matplotlib и т. д. С этой реализацией образа Docker вам больше не придется об этом думать.

📚Учебник

  1. Создать новый проект CDK

Сначала вам нужно будет создать новую папку и инициализировать в ней ваш проект CDK.

mkdir cdk-docker-lambda
cd cdk-docker-lambda
cdk init app --language typescript

2. Установите библиотеку aws-лямбда

Чтобы использовать и развернуть образ Docker, вам потребуется использовать конструкцию DockerImage из библиотеки aws-lambda. Для этого:

npm i @aws-cdk/aws-lambda --save

3. Создайте свою конструкцию CDK

Конструкции — это основные строительные блоки приложений AWS CDK. Конструкция представляет собой «облачный компонент» и инкапсулирует все, что необходимо знать AWS CloudFormation.

Сначала импортируйте только что установленную библиотеку в свой app.js:

import * as lambda from "@aws-cdk/aws-lambda";

А затем используйте класс DockerImage библиотеки aws-lambda, чтобы создать новую AWS Lambda:

const DockerImageFunction = new lambda.DockerImageFunction(scope, 'DockerImageFunctionHandler', {
code: lambda.DockerImageCode.fromImageAsset(path.join(__dirname, '../../lambda/lambdaname'), {
cmd: ["entryfile.handler"],
entrypoint: ["/lambda-entrypoint.sh"],
}),
memorySize: 10240,
timeout: Duration.seconds(40)
});

В этом определении мы указываем классу папку двумя уровнями выше (лямбда), которая называется и содержит подпапку (лямбда-имя), в которой находятся файл докеры и фактический код.

4. Разверните стек

Это все, что вам нужно! Последним шагом будет развертывание стека CDK в вашей учетной записи. Для этого:

cdk deploy

🧽 Очистка и заключение

Если вы не продолжаете свой проект, обязательно запустите команду destroy, чтобы удалить все ресурсы из вашей учетной записи AWS:

cdk destroy

НБТЛ

Если вам интересно узнать больше об AWS CDK и о том, как с его помощью создавать приложения на AWS, рекомендуем ознакомиться с похожими сообщениями в нашем блоге: