npm License

Serverless Yandex Cloud Functions Plugin

This plugin enables support for Yandex Cloud Functions within the Serverless Framework.

Quick Start

First you need to install the serverless command-line tool. Check the official getting started guide. Fastest way to do this is to use npm:

npm install serverless -g

Now you can create new project from template provided by this plugin:

serverless create \
  --template-url https://github.com/yandex-cloud/serverless-plugin/tree/master/templates/nodejs

Before you deploy your first functions using Serverless, you need to configure Yandex.Cloud credentials. There are two ways to do it:

  • Install the yc command-line tool and use the setup wizard to provide all required parameters. All required guides and in-depth documentation is available at Yandex.Cloud website.
  • Provide YC_OAUTH_TOKEN (or YC_IAM_TOKEN), YC_CLOUD_ID and YC_FOLDER_ID environment variables
  • If you are going to create/edit YMQ or S3 buckets, you need to provide AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY environment variables. How to create static access keys

To deploy your project use:

serverless deploy

To invoke (test) your function:

serverless invoke -f simple

To remove all deployed resources:

serverless remove

Configuration variables from Lockbox

This plugin adds configuration variable source, which allows to retrieve secrets from Lockbox. Usage example:

functions:
  simple:
    handler: dist/index.hello
    memorySize: 128
    timeout: '5'
    account: function-sa
    environment:
      DB_PASSWORD: ${lockbox:<lockbox_secret_id>/<lockbox_secret_key>}

Environment Variables

API Endpoints

  • S3_ENDPOINT
  • SQS_ENDPOINT
  • YC_ENDPOINT

AWS Access Key (for YMQ and Object Storage manipulations)

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

Cloud API Authentication

  • YC_OAUTH_TOKEN_ENV
  • YC_IAM_TOKEN_ENV
  • YC_CLOUD_ID
  • YC_FOLDER_ID

Supported resources

  • Cloud Functions
  • Triggers
  • Service Accounts
  • Container Registries
  • Message Queues
  • S3 Buckets