Yandex Cloud function deployment CLI
npm install yandex-cloud-deploy-fnServerless: Unknonwn function "xxx" found (#18)
npm i -D yandex-cloud-deploy-fn
`Использование
Создайте в корне проекта конфиг deploy.config.js следующего вида:
`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 -o auth-key.json
`2. Измените
deploy.config.js:
`diff
module.exports = {
- useCliConfig: true,
+ authKeyFile: 'auth-key.json',
...
``> Подробнее про способы авторизации можно посмотреть в доке по yandex-cloud-lite.