2.0.0 • Published 2 years ago

yandex-cloud-deploy-fn v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

yandex-cloud-deploy-fn

CLI для деплоя функций в Yandex Cloud на Node.js.

Зачем

Отличия от связки serverless framework + yandex-cloud-serverless-plugin:

  •  Нет зависимости на yc cli (#13)
  •  Нет лишних сообщений в логах вида Serverless: Unknonwn function "xxx" found (#18)
  •  загрузка кода через Object Storage (для архивов > 3.5 Mb)
  •  Интерактивное выставление тегов
  •  Пока деплоится только функция. Триггеры, сервисные аккаунты и message queue не создаются

Установка

npm i -D yandex-cloud-deploy-fn

Использование

Создайте в корне проекта конфиг deploy.config.js следующего вида:

module.exports = {
  useCliConfig: true,
  functionName: 'test-fn',
  deploy: {
    files: [ 'package*.json', 'dist/**' ],
    handler: 'dist/index.handler',
    runtime: 'nodejs14',
    timeout: 5,
    memory: 128,
    environment: {
      NODE_ENV: 'production'
    },
  },

  // === Для загрузки больших функций через object storage ===
  // storage: {
  //   bucketName: 'upload',
  //   bucketPath: '/',
  //   accessKeyId: process.env.AWS_ACCESS_KEY_ID,
  //   secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
  // },

  // === Для интерактивного выставления тегов ===
  // tags: [
  //   'testing',
  //   { name: 'prod', cmdPre: 'TAG={newVersionTag} npm run test' },
  // ]
};

Для деплоя функции запустите:

npx deploy-fn

Пример вывода:

[test-fn]: Deploying function "test-fn"...
[test-fn]: Creating zip...
[test-fn]: Authorized by: yc-cli
[test-fn]: Sending API request...
[test-fn]: Waiting operation complete...
[test-fn]: Version created: d4e5qq24h0cpqg9rfmi3
[test-fn]: Version size: 20 Kb
[test-fn]: Done (25s).

Для интерактивного выставления тегов запустите:

npx deploy-fn-tag

Пример вывода:

? Select version of "test-fn": (Use arrow keys)
❯ d4e5qq24h0cpqg9rfmi3  $latest
  d4ebrpdvjl50mtccr5pu  prod
  d4eiuu6oc7thuu11v1jo  prod-1,testing
  d4ecqudlemi9f2qijgh6  prod-2

? Select tag: (Use arrow keys)
❯ prod
  testing
  all (prod, testing)

Set tag "testing" to version: d4e5qq24h0cpqg9rfmi3

Другие способы авторизации

В примере выше используется авторизация через конфиг yc cli - поле useCliConfig: true. Возможны и другие способы. Например, через файл авторизованных ключей сервисного аккаунта, от имени которого будете деплоить функцию:

  1. Сгенерите файл auth-key.json:

    yc iam key create --service-account-name <service-account-name> -o auth-key.json
  2. Измените deploy.config.js:

    module.exports = {
    -  useCliConfig: true,
    +  authKeyFile: 'auth-key.json',
    ...

Подробнее про способы авторизации можно посмотреть в доке по yandex-cloud-lite.

Лицензия

MIT @ Vitaliy Potapov

1.7.0

2 years ago

1.6.0

2 years ago

1.5.1

2 years ago

1.5.0

2 years ago

1.4.0

2 years ago

1.3.0

2 years ago

2.0.0

2 years ago

1.2.0

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.5

3 years ago

1.1.3

3 years ago

1.0.4

3 years ago

1.1.2

3 years ago

1.0.2

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago