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

OSCHINA-MIRROR/serverless-devs-Serverless-Devs

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

Пособие по проектированию инструмента

Определение кодов выхода

Код Описание
0 Нормальный выход
100 Выход, вызванный ошибкой Serverless Devs
101 Выход, вызванный ошибкой компонента Serverless Devs

Спецификация дизайна CLI

Serverless Devs — это инструмент для разработчиков в области безсерверных технологий. Стандартизация и нормализация, внесенные Serverless Devs, оказывают значительное влияние на пользовательский опыт.Для получения дополнительной информации о спецификации дизайна CLI в Serverless Devs, см. cli_design.md

Приоритеты

Некоторые параметры и переменные в Serverless Devs имеют значения по умолчанию. В этом разделе описываются приоритеты параметров и переменных. В этом разделе приоритеты элементов указаны в порядке убывания. В качестве примера используется спецификация приоритетов YAML-файлов.

  • YAML-файлы, указанные параметром -t/--template.
  • YAML-файлы по умолчанию (s.yaml и s.yml). Приоритет YAML-файлов s.yaml выше, чем у YAML-файлов s.yml.

Когда Serverless Devs использует файлы описания ресурсов, Serverless Devs предпочтительно выбирает YAML-файлы, указанные параметром -t или --template, перед использованием YAML-файлов по умолчанию (s.yaml и s.yml). Приоритет s.yaml выше, чем у s.yml.

Спецификация приоритетов YAML-файлов

  • YAML-файлы, указанные параметром -t или --template.
  • YAML-файлы по умолчанию (s.yaml и s.yml). Приоритет YAML-файлов s.yaml выше, чем у YAML-файлов s.yml.

Порядок развертывания служб в приложении

  • Зависимые службы.
  • Другие службы, которые разворачиваются сверху вниз.> В следующем примере описывается YAML-файл:
edition: 1.0.0    # Версия синтаксиса YAML. Версия соответствует спецификации семантической версионной нумерации.
name: FullStack    # Название проекта.
access: xxx-account1 # Алиас ключа.

services:
  nextjs-portal: # Название службы.
    component: vue-component # Название компонента.
    props: # Значение свойств компонента.
      src: ./frontend_src
      url: url

  assets:
    component: static
    props:
      www: "./public"

  gateway:
    component: serverless-gateway # Компонент маршрутизации HTTP-URL к службам.
    props:
      routes:
        - url: ${assets.output.url}

Вы можете анализировать зависимости для каждой службы в YAML-файле. Анализ зависимостей показывает, что службы nextjs-portal и assets не имеют дополнительных зависимостей. Служба gateway зависит от службы assets с помощью магической переменной ${assets.output.url}. В этом случае служба gateway разворачивается с приоритетом. Затем разворачиваются службы nextjs-portal и assets сверху вниз. Таким образом, следующий порядок развертывания применим: gateway -> nextjs-portal -> assets.### Порядок использования и спецификация ключей

  • Информация о ключе, указанная параметром -a/--access
  • Информация о ключе по умолчанию
  • Информация о ключе, настроенная с помощью переменной окружения default_serverless_devs_access
  • Отсутствие информации о ключе или запрос на настройку информации о ключе

Следующая диаграмма описывает процесс получения информации о ключе.

Диаграмма

Настройка ключей с помощью переменных окружения

Serverless Devs позволяет легко настраивать информацию о ключах с помощью переменных окружения. Вы можете использовать следующие методы для настройки ключей с помощью переменных окружения:

  1. Использование команды для введения ключей в переменные окружения. Например, переменные окружения содержат следующие значения: ALIBABA_CLOUD_ACCOUNT_ID, ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET. Вы можете использовать команду s config add для добавления ключей:
s config add -a default-aliyun -kl AccountID,AccessKeyID,AccessKeySecret -il ${ALIBABA_CLOUD_ACCOUNT_ID},${ALIBABA_CLOUD_ACCESS_KEY_ID},${ALIBABA_CLOUD_ACCESS_KEY_SECRET}.
  1. Настройте ключи с помощью указанных переменных окружения. Например, для следующих пар ключей:

    • AccountID: temp_accountid
    • AccessKeyID: temp_accesskeyid
    • AccessKeySecret: temp_accesskeysecret Вы можете назвать ключ как *********_serverless_devs_access в переменной окружения и установить значение в строку в формате JSON. В следующем примере используется default_serverless_devs_access.
    • Ключ: default_serverless_devs_access
    • Значение: {"AccountID":"temp_accountid","AccessKeyID":"temp_accesskeyid","AccessKeySecret":"temp_accesskeysecret"} В этом случае вы можете указать ключ default_serverless_devs_access при настройке ключей. Пример: ${env(default_serverless_devs_access)}.

    При настройке файла s.yaml следует придерживаться следующего формата:

    edition: 1.0.0          # Версия синтаксиса YAML. Версия соответствует спецификации семантической версии.
    name: fcDeployApp       # Имя проекта.
    access: default_serverless_devs_access  # Алиас ключа.
    
    services:
      fc-deploy-test:
        component: fc-deploy  # Имя компонента
        props: # Значение свойства компонента
          region: cn-shenzhen
          service:
            name: fc-deploy-service

Устранение неполадок с помощью искусственного интеллекта (AI)

Serverless Devs предоставляет возможности, основанные на искусственном интеллекте, для устранения неполадок. Если вы столкнулись с ошибкой Serverless Devs, система выполняет маскировку данных и получает решения через API-запросы. Пример:

Если у вас есть проблема с форматом в текущем YAML-файле проекта, выполните команду s deploy в проекте:

$ s deploy

ERROR:
TypeError: Не удается преобразовать неопределенное или null значение в объект

AI Советы:
Вы можете попробовать решить проблему через: http://qa.devsapp.cn/7867adf78017601dffd8c3611c90cadf.html
```TraceId:     a483e74739551640838688289
Environment: @serverless-devs/s: 2.0.96, @serverless-devs/core: 0.1.23, darwin-x64, node-v12.15.0
Документация: https://www.serverless-devs.com
Обсуждения: https://github.com/Serverless-Devs/Serverless-Devs/discussions
Проблемы: https://github.com/Serverless-Devs/Serverless-Devs/issues
```Пожалуйста, скопируйте traceId: a483e74739551640838688289 и присоединитесь к группе Dingding: 33947367 для консультации.
Вы можете запустить 's clean --cache' для очистки Serverless devs.
И запустите снова с опцией '--debug' или 's -h' для получения дополнительных логов.

Исправленный текст:

Вы можете запустить 's clean --cache' для очистки Serverless Devs.
И запустите снова с опцией '--debug' или 's -h' для получения дополнительных логов.
```Показанное ниже содержимое отображается на странице системных уведомлений.

![Изображение alt](https://serverless-article-picture.oss-cn-hangzhou.aliyuncs.com/1640838881038_20211230043441520071.png)

> **Примечание:** При использовании этой функции Serverless Devs собирает и обрабатывает ошибки клиента. На этих ошибках выполняется маскировка данных для обеспечения конфиденциальности. Если вы не хотите использовать эту функцию, запустите команду `s set analysis disable` для отключения этой функции.

Опубликовать ( 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