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

Развертывание вашей первой функции Lambda с командной строкой

В качестве разработчика вам часто нужно создавать API для взаимодействия с различными системами и интеграциями …. Помечено с AWS, Python, Serverless, начинающим.

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

Однако этот метод медленно и дорого.

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

Пример сервиса без сервеса – AWS LAMBDA Отказ Лямбда работает аналогично конечной точке API в том смысле, что вы можете вызвать одну функцию, если у вас есть доступ к указанной функции.

Эта услуга выполняет код только при необходимости, и масштабирует запросы в день согласно требованиям автоматически. Это пригодится в сочетании с шлюзами API для разработки одного оптимального решения.

AWS API Gateway Сама – это полностью управляемая услуга, которая позволяет разработчикам создавать, публиковать, монитор и поддерживать их API в любой масштабе.

Когда вы объединили его с помощью функции лямбда, у вас сейчас есть то, что известно как FAAS (функция как услуга). Это позволяет разработчикам заменить медленный, традиционный обратный процесс разработки с экономически эффективным решением сервера.

Существует несколько преимуществ работы с немозвенными технологиями.

На уровне разработки Lambda облегчает управление систематической сложностью и проводить тестирование интеграции. Проще говоря, Lambda позволяет инженерам полностью сосредоточиться на бизнес-логике, поскольку она обрабатывает масштабирование, регистрацию, отслеживание ошибок и авторизации.

Некоторые из самых существенных преимуществ лямбда следующие:

Встроенный в систему

Вы когда-нибудь разработали кусок инфраструктуры и поняли, что вам нужно было посвятить приличное количество времени, чтобы включить отслеживание журнала и отслеживания ошибок?

Ну, лямбда делает все это для тебя. Вы можете увидеть все ваши журналы в консоли управления AWS.

Регистрация нашей тестовой функции

Масштабируемость

Еще одной интересной особенностью является то, что aws lambda вешает ваше приложение автоматически.

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

Со всеми преимуществами давайте обсудим, как настроить функцию AWS Lambda.

Давайте начнем с поиска функции ниже. Это стандартная функция «Hello World». Вы также заметите, что мы используем Python, что важно, когда речь идет о настройке вашей настройки позже.

Мы хотели бы протолкнуть эту базовую функцию на AWS Lambda. В отличие от вашей стандартной функции «Hello World», где вы можете пройти только в одну переменную, эта примет параметр, который ссылается на «событие». Это будет содержать данные, которые мы будем передаваться в нашем HTTP-запросе.

Затем эти данные будут проанализированы и вытаскивают любые параметры в этом запросе тела и устанавливают их на все, что нам нужно. В этом случае есть только переменная «имя».

Что мы будем использовать для отправки обратно «Hello» + имя и код состояния 200. Это будет успешно представлять функцию возвращения.

Шаг 1: код Python

import json
def test_function(event, context):
    body={'message':'OK'}
    params = event['eventStringParameters']

    name =str(params['name'])
    helloString = "Hello " + name
    body['helloString'] = helloString

    response={
        'StatusCode':200,
        'body':json.dumps(body),
    }

    return response

Шаг 2: файл Serverless.yml

Чтобы легко нажать эту функцию на лямбда, используя командную строку, мы также создадим Serverless.yml файл.

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

Это помогает настроить функцию лямбда, поэтому легко нажать в облако с командной строкой.

Файл ниже – это то, что мы будем использовать.

service: lambda
provider:
  name: aws
  stage: dev
  runtime: python3.6
  region: us-east-2
  credentials:
    accessKeyId: YOUR KEY HERE 
    secretAccessKey: YOUR SECRET HERE

functions:
  test_function:
    handler: handler.test_function
    memorySize: 512
    timeout: 60
    events:
      - http:
          path: get-hello
          method: get
          request:
            parameters:
              queryStrings:
                name: true


plugins:
  - serverless-python-requirements

custom:
  pythonRequirements:
    dockerizePip: true
    slim: true

Шаг 3: Установить серверу

Теперь, когда у нас есть наша базовая функция и Serverless.yml Файл, следующий шаг в развертывании этой функции для лямбда – это NPM установить серверуссы , что позволит вам получить доступ к SLS команда.

Приведенные ниже команды помогут вам установить эту услугу.

npm install -g serverless
npm i -D serverless-dotenv-plugin
sls plugin install -n serverless-python-requirements

Шаг 4: Развернуть функцию

С установленным без промежуток времени у вас теперь есть доступ к SLS команда. Это позволит вам развернуть функцию без сервеса с помощью одной командой.

Во-первых, вам нужно убедиться, что вы находитесь в папке, где ваш Serverless.yml и test_function.py существовать. Убедитесь, что это единственные вещи в папке.

Это важно, потому что, когда вы запускаете команду развертывания, ваш файл будет развернут. Вы не хотите случайно развернуть 500 ГБ какого-либо случайного файла.

После того, как вы гарантировали, что только файлы, которые вы хотите развернуть в вашей папке, вы можете запустить команду ниже в вашем терминале.

sudo sls deploy

После этого SLS будет развернуть ваш код в AWS. В конце концов, вы должны быть в состоянии найти его автоматически в вашей консоли управления AWS.

Поздравляю! Вы запустили свою первую функцию без сервеса.

Шаг 5: Тестирование вашей функции

Чтобы проверить эту функцию, мы собираемся использовать файл JSON для передачи параметров. Это будет представлять собой базовый HTTP-запрос.

Ниже приведен файл, который мы звоним Event.json Что вам понадобится. Обратите внимание, что у него есть только параметр «name», но в будущем вы можете сделать свои функции без сервеса гораздо более сложными и, в свою очередь, имеют больше параметров.

Как только у вас установлено этот файл JSON, то вы можете использовать команду ниже для проверки функции в командной строке.

sudo sls invoke --- function predict-price --- path event.json

После запуска этой функции вы получите вывод, как приведенный ниже.

Это ответ, который вы вернетесь, если бы вы могли реализовать эту функцию без сервеса в вашей инфраструктуре.

Там вы идете, вы запустили и проверили свою первую функцию Lambda, используя командную строку.

AWS LAMBDA – это высокоманарный, управляемый событиями сервис без серверов, который позволяет разработчикам быстро развивать функции. Он может использоваться разработчиками программного обеспечения для создания конечных точек и также использовалась инженерами данных для разработки трубопроводов данных между компонентами AWS, как S3 С Кинес , а также Redshift Отказ

Способность лямбда снижать время, необходимое для разработки инфраструктуры, делает использование лямбда более популярных каждый день. Не говоря уже, со всеми этими дорогими затратами EC2, способность лишь платить за вызов функции делает Lambda очень соблазнительным решением.

В целом этот FAAS (функция как услуга) отлично подходит для разработчиков и может помочь упростить процесс вашего развития.

Если вы хотите узнать больше о науке о данных, облачных вычислениях и технологиях, посмотрите статьи ниже!

Техника данных 101: написание вашего первого трубопровода

5 Отличные библиотеки для управления большими данными

Каковы различные виды облачных вычислений

4 простых идеи Python для автоматизации Ваш рабочий процесс

4 должны иметь навыки для ученых данных

SQL лучшие практики — Проектирование видео ETL

5 Отличные библиотеки для управления большими данными с Python

Присоединение к данным в Dynamodb и S3 для Live Ad HOC анализ

Оригинал: “https://dev.to/seattledataguy/deploying-your-first-lambda-function-with-command-line-4b8”