Рубрики
Без рубрики

Как проложить lambda и labbda слой с использованием cdk

Зачем использовать CDK? CDK Позвольте вам обеспечить всю свою службу AWS, используя язык программирования y … Помечено с AWS, Serverless, CDK, Python.

Как-aws lambda (4 части серии)

Зачем использовать CDK?

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

В этом примере я определим Lambda и Lambda слои, используя Python CDK.

Во-первых, сделайте новый проект

CDK INIT MY-образец-приложение – Anganguage Python

Затем активируйте виртуальную ENV

.env \ Scripts \ Activate.bat

Настройте структуру проекта

my-sample-app
|-lambda
|--boto3Folder
|--MyFirstLambdaFunction
|---app.py
|--All the lambda folder here
|-MySampleAppStack
|--my_sample_stack.py

Что такое слой лямбда? Собственные слова: Лоуры лямбда – это место, которое вы устанавливаете свою библиотеку в облаке. Обычно вы просто PIP Установить некоторую библиотеку Для вашего проекта Python справа? Лоуры лямбда просто делают это, вы устанавливаете библиотеку внутри локальной папки, затем CDK поможет вам упаковать все файл внутри этой папки и загрузить его в облаку, затем вы можете использовать его в другом месте.

Первая установка библиотеки Boto3 внутри лямбда/boto3folder

pip install --target=d:\yourLocalPath\my-sample-app\lambda\boto3Folder boto3

Этим, вы устанавливаете BOTO3 Библиотека в My-образец-приложение/лямбда/boto3folder Тогда вы должны увидеть файл и папку внутри Boto3folder.

Тогда внутри my_sample_stack.py Определите слой лямбда как следует следующим образом:

from aws_cdk.aws_lambda_python import PythonFunction, PythonLayerVersion


class MySampleStack(core.Stack):

        def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
           super().__init__(scope, id, **kwargs)

           # All the aws resources define here

            # Here define a Lambda Layer 
            boto3_lambda_layer = PythonLayerVersion(
               self, 'Boto3LambdaLayer',
               entry='lambda/boto3Folder',
               compatible_runtimes=[lambda_.Runtime.PYTHON_3_8],
               description='Boto3 Library',
               layer_version_name='Whatever name you want'
           )

В этих нескольких линиях кода вы определили слой лямбда, скажите CDK, где находится папка в Вход В нашем случае это лямбда/boto3folder и другая необходимая информация.

Итак, теперь у вас есть ламбда, теперь мы хотим использовать эти слои лямбда, внутри функции лямбда.

В Mysamplestack Выше добавьте это, чтобы определить функцию лямбда:

my_first_lambda_function=PythonFunction(
         self, 'MyFirstLambda',
         entry='lambda/MyFirstLambdaFunction',
         index='app.py',
         runtime=lambda_.Runtime.PYTHON_3_8,
         layers=[boto3_lambda_layer], # here you use the lambda layer above 
         handler='MyFirstLambdaHandler',
         timeout=core.Duration.seconds(10)
)

Это вы определяете функцию лямбда, которая будет использовать Lambda слои. В вашем Myfirstlambdafunction/app.py Вы можете использовать BOTO3 как обычно.

Внутри myfirstlambdafunction/app.py

import boto3

def MyFirstLambdaHandler(event, context):
    client = boto3.client('dynamodb')

    # do all the stuff with the client
cdk deploy

Все ресурсы начнут обеспечивать в облаке.

Зачем использовать Lambda слои? 1) Избегайте установки одной и той же библиотеки снова и снова. Позвольте сказать, что у вас есть 10 функций Lambda, все будет использовать 2 же библиотеки, то вам нужно будет установить 10 отдельных времен на 10 лямбда. Используйте Lambda слои, установите 1 раз, вы это на 10 разных лямбда.

2) Уменьшите размер вашей функции лямбда. Если ваша функция лямбда составляет более 10 МБ, вы не сможете редактировать его в консоли aws lambda.

Резюме В этой статье вы узнали

  • Как создать Lambda слой и функцию лямбда
  • Как использовать слой лямбда внутри лямбда
  • Почему вам нужно использовать Lambda слой?

Я надеюсь, что вы узнали что-то. Хорошего дня.

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

Прежде чем идти, Если вам нравится эта серия, или найди это полезное, чтобы купить мне кофе 😊🤞 на 5 долларов США или более. Я подготовим Github Repo для всего этого учебного пособия и договориться в отдельный коммит для каждой части. Это доступно только для моего сторонника, потому что я провел много времени, чтобы подготовить это. Во всяком случае, я ценю вас здесь. Хорошего дня.

Крича мне в Twitter: @upupkenchoong

Как-aws lambda (4 части серии)

Оригинал: “https://dev.to/upupkenchoong/how-to-provision-lambda-and-lambda-layer-with-cdk-2ff4”