1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/serverless-devs-Serverless-Devs

Клонировать/Скачать
custom.md 9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.05.2025 16:44 c46f8bb
title description position category
Пользовательские команды
Руководство по использованию пользовательских команд
10
Команды

Руководство по использованию пользовательских команд

Пользовательские команды — это команды, определенные компонентами. Поскольку инструмент Serverless Devs сам по себе не имеет никакой бизнес-специфической функциональности (включая, но не ограничиваясь, развертывание функций, сборку приложений, тестирование проектов и т.д.), эти функции предоставляются компонентами и выводятся через инструмент Serverless Devs.

Например, файл описания ресурсов/поведения приложения может выглядеть следующим образом:

edition: 1.0.0        # Версия YAML-схемы командной строки, следующая стандарту семантической версии (Semantic Versioning)
name: FullStack       # Имя проекта
access: xxx-account1

services:
  backend: # Имя службы
    component: django-component  # Имя компонента
    props: # Значения свойств компонента
      src: ./backend_src
      url: url
  user-frontend: # Имя службы
    component: vue-component  # Имя компонента
    props: # Значения свойств компонента
      src: ./frontend_src_user
      url: url
  admin-frontend: # Имя службы
    component: vue-component  # Имя компонента
    props: # Значения свойств компонента
      src: ./frontend_src_admin
      url: url
```Из этого YAML-файла можно выделить следующую информацию:
1. Имя приложения — `FullStack`, будет использоваться ключ `xxx-account1`;
2. Приложение состоит из трех служб:
    - Служба `backend`: использует компонент `django-component`
    - Служба `user-frontend`: использует компонент `vue-component`
    - Служба `admin-frontend`: использует компонент `vue-component`
    
Если в данный момент компоненты `django-component` и `vue-component` поддерживают следующие пользовательские команды:

| | `django-component` | `vue-component` |
| --- | --- | --- |
| `deploy` | Поддерживается | Поддерживается |
| `remove` | Поддерживается | Поддерживается |
| `test` | Поддерживается | Не поддерживается |

То можно использовать пользовательские команды для выполнения [операций уровня приложения](#операции-уровня-приложения) и [операций уровня службы](#операции-уровня-службы).

## Операции уровня приложенияВ текущем проекте можно выполнить команду `s [пользовательская команда]` для выполнения операций на уровне приложения. При выполнении команд `s deploy` или `s remove`, поскольку компоненты, соответствующие трем службам — `backend`, `user-frontend`, `admin-frontend`, поддерживают методы `deploy` и `remove`, система выполнит эти методы для каждого компонента в соответствии с [порядком служб, определённым в Serverless User Model](../../../spec/zh/0.0.2/serverless_user_model/3.user_model.md#порядок-служб); **в этом случае код завершения системы равен 0;**

При выполнении команды `s test`, поскольку компоненты, соответствующие двум службам — `user-frontend`, `admin-frontend`, не поддерживают метод `test`, система выполнит метод `test` для компонента `backend` (django-component); **в этом случае система выдаст предупреждение для двух служб `user-frontend` и `admin-frontend`, но не выдаст ошибку, и код завершения системы будет равен 0;**

Если при выполнении команд `s deploy`, `s remove` или `s test` произойдёт ошибка в любом из трёх служб — `backend`, `user-frontend`, `admin-frontend`, система выдаст ошибку и прекратит выполнение следующих шагов; **в этом случае код завершения системы будет равен 101;**

> О проекте Serverless Devs разработческих инструментов, связанных с кодом завершения (exit code), можно ознакомиться с [документацией проектирования инструментов](../tool.md)## Уровень сервиса

В рамках текущего проекта можно выполнить команду `s [имя сервиса] [персонализированная команда]` для выполнения операций на уровне сервиса.

- Выполнение команды `s backend deploy` и подобных команд позволяет выполнить операции, связанные с развертыванием сервиса `backend`. **Если операция завершается успешно, код завершения (exit code) системы будет равен 0; в случае ошибки, код завершения (exit code) системы будет равен 101**;
- Выполнение команды `s admin-frontend test` приведет к тому, что система не найдет метод `test` для сервиса `admin-frontend`. **В этом случае система будет считать, что метод не найден, и код завершения (exit code) системы будет равен 100**;

## Важные моменты

В разделах [операций уровня приложения](#операции-уровня-приложения) и [операций уровня сервиса](#операции-уровня-сервиса) можно заметить, что при отсутствии определенных методов в компонентах, их поведение отличается. Такой подход выбран для обеспечения плавности выполнения [операций уровня приложения](#операции-уровня-приложения). Обычно правила следующие:1. [Аппликейшн-уровневые операции](#операции-уровня-приложения) представляют собой массовые операции, которые выполняются для всех сервисов в приложении в соответствии с [порядком сервисов, определенным в модели пользователя Serverless](../../../spec/zh/0.0.2/serverless_user_model/3.user_model.md#порядок-сервисов). Если для какого-либо сервиса отсутствует метод в компоненте, система пропустит этот сервис, выдаст предупреждение и продолжит выполнение. **В этом случае код завершения (exit code) системы будет равен 0**;
2. [Сервис-уровневые операции](#операции-уровня-сервиса) представляют собой операции, выполненные для конкретного сервиса в приложении. Если метод не найден, это означает, что операция не имеет смысла, и система выдаст сообщение об ошибке. **В этом случае код завершения (exit code) системы будет равен 100**;

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/serverless-devs-Serverless-Devs.git
git@api.gitlife.ru:oschina-mirror/serverless-devs-Serverless-Devs.git
oschina-mirror
serverless-devs-Serverless-Devs
serverless-devs-Serverless-Devs
master