Serverless

Все это можно настраивать через AWS CLI, YC CLI/Console, или через Terraform.

  • Yandex Cloud Functions (CF)

  • API Gateway

  • Serverless YDB

  • Yandex Message Queue

Cloud Functions (CF)

Function-As-A-Service

Usage

Создать CF:

$ yc serverless function create --name my-first-function 

done (1s)
id: d4eor1nq6c7natelf0dl
...
http_invoke_url: https://functions.yandexcloud.net/d4eor1nq6c7natelf0dl
...

Загрузить код функции в облако и создать ее версию:

$ yc serverless function version create \
   --function-name my-first-function \
   --memory 256m \
   --execution-timeout 5s \
    --runtime python37 \
    --entrypoint main.handler \
    --service-account-id $SERVICE_ACCOUNT_ID \
    --source-path main.py 

Вызов функции:

$ yc serverless function list
$ yc serverless function version list --function-name my-first-function 
$ yc serverless function invoke <идентификатор_функции> 

Сделать функцию публичной:

$ yc serverless function allow-unauthenticated-invoke my-first-function

Получить публичную ссылку на функцию

$ yc serverless function get my-first-function 

Нюансы

Каждая функция должна соответствовать модели программирования.

Триггеры

Можно вызывать функцию при наступлении какого-то события. Причем и при наступлении событий в других сервисах. Примерно это выглядит так:

API Gateway

Прокси сервер

Serverless YDB

Отличие от обычной YDB, что здесь поддерживается Document API (совместимое с AWS Dinamo DB)

В общем, есть AWS SDK для работы с Document API, и обычное SDK для работы с YDB.

Yandex Message Queue (YMQ)

Примерно это так выглядит

YMQ поддерживает AWS API и другие подходы, которые используют в сервисе Amazon SQS, поэтому для работы с ними вы можете использовать уже существующие инструменты, например библиотеки boto3 для Python.

Last updated